소스 검색

保存报销详情修改

user5 3 년 전
부모
커밋
821bf10a82
23개의 변경된 파일289개의 추가작업 그리고 55개의 파일을 삭제
  1. 5 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/controller/AccountantReimbursementUserController.java
  2. 18 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/domain/dto/AccountantReimbursementBusinessDTO.java
  3. 21 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/domain/dto/AccountantReimbursementBusinessReturnDTO.java
  4. 13 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/mapper/xml/AccountantReimbursementBusinessMapper.xml
  5. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/service/AccountantReimbursementUserService.java
  6. 10 3
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/service/impl/AccountantReimbursementUserServiceImpl.java
  7. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/controller/ReimbursementBusinessController.java
  8. 6 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/controller/ReimbursementUserController.java
  9. 21 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementBusinessDTO.java
  10. 22 0
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementBusinessReturnDTO.java
  11. 8 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/mapper/ReimbursementBusinessMapper.java
  12. 35 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/mapper/xml/ReimbursementBusinessMapper.xml
  13. 1 1
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/ReimbursementUserService.java
  14. 5 5
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementBusinessServiceImpl.java
  15. 17 4
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementUserServiceImpl.java
  16. 7 7
      jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/WuHanReimbursementBusinessServiceImpl.java
  17. 13 9
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java
  18. 1 1
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java
  19. 8 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/UserMapper.java
  20. 37 7
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml
  21. 18 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml
  22. 16 2
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java
  23. 5 0
      jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

+ 5 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/controller/AccountantReimbursementUserController.java

@@ -133,17 +133,18 @@ public class AccountantReimbursementUserController {
     @ApiLog("查询业务报销信息列表")
     @PreAuthorize("hasAuthority('accountant:reimbursementBusiness:view')")
     @GetMapping("findListByUserId")
-    public ResponseEntity findListByUserId(String id) {
-        if(StringUtils.isBlank(id)){
+    public ResponseEntity findListByUserId(AccountantReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO) {
+        if(StringUtils.isBlank(reimbursementBusinessReturnDTO.getUserId())){
             return ResponseEntity.badRequest ().body ("请先选择报销人员信息");
         }
 
         //根据id查询人员填报的报销信息
-        AccountantReimbursementUserDTO reimbursementUserDTO = service.queryById(id);
+        AccountantReimbursementUserDTO reimbursementUserDTO = service.queryById(reimbursementBusinessReturnDTO.getUserId());
         if(null == reimbursementUserDTO){
             return ResponseEntity.badRequest ().body ("报销人员信息无效,请重新选择");
         }
-        AccountantReimbursementBusinessReturnDTO info = service.findListByUserId(reimbursementUserDTO);
+        AccountantReimbursementBusinessReturnDTO info = service.findListByUserId(reimbursementUserDTO,reimbursementBusinessReturnDTO);
+        info.setUserId(reimbursementBusinessReturnDTO.getUserId());
         return ResponseEntity.ok(info);
     }
     /**

+ 18 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/domain/dto/AccountantReimbursementBusinessDTO.java

@@ -5,6 +5,8 @@ import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.Date;
+
 /**
  * 报销信息表
  * @author: 徐滕
@@ -30,6 +32,22 @@ public class AccountantReimbursementBusinessDTO extends BaseEntity {
     private String reimbursementAmount;  //报销额度
     private String remainReimbursementAmount;  //剩余报销额度
     private String remarks; //备注
+    /**
+     * 报销开始日期
+     */
+    private Date beginDate;
+    /**
+     * 报销结束日期
+     */
+    private Date endDate;
+    /**
+     * 报销额度前区间
+     */
+    private String beginReimbursementQuota;
+    /**
+     * 报销额度后区间
+     */
+    private String endReimbursementQuota;
 
 
 }

+ 21 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/domain/dto/AccountantReimbursementBusinessReturnDTO.java

@@ -1,8 +1,10 @@
 package com.jeeplus.test.reimbursementAccountant.domain.dto;
 
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementAddressDTO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -25,5 +27,24 @@ public class AccountantReimbursementBusinessReturnDTO {
     private String surplusReimbursementAmount;  //剩余报销额度
     private List<AccountantReimbursementBusinessDTO> list;
 
+    private String userId;  //报销人员id
+    private String year; //报销年份
+
+    /**
+     * 报销开始日期
+     */
+    private Date beginDate;
+    /**
+     * 报销结束日期
+     */
+    private Date endDate;
+    /**
+     * 报销额度前区间
+     */
+    private String beginReimbursementQuota;
+    /**
+     * 报销额度后区间
+     */
+    private String endReimbursementQuota;
 
 }

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/mapper/xml/AccountantReimbursementBusinessMapper.xml

@@ -239,6 +239,19 @@
             a.del_flag = 0
             and a.user_id = #{userId}
             and a.year = #{year}
+
+            <if test="beginReimbursementQuota != null and beginReimbursementQuota != ''">
+                and a.reimbursement_amount >= #{beginReimbursementQuota}
+            </if>
+            <if test="endReimbursementQuota != null and endReimbursementQuota != ''">
+                and a.reimbursement_amount &lt;= #{endReimbursementQuota}
+            </if>
+            <if test="beginDate != null">
+                and a.create_date >= #{beginDate}
+            </if>
+            <if test="endDate != null">
+                and a.create_date &lt;= #{endDate}
+            </if>
         </where>
         order by a.update_date desc,a.year desc, a.user_id asc
     </select>

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/service/AccountantReimbursementUserService.java

@@ -62,7 +62,7 @@ public interface AccountantReimbursementUserService {
      * @param reimbursementUserDTO
      * @return
      */
-    AccountantReimbursementBusinessReturnDTO findListByUserId(AccountantReimbursementUserDTO reimbursementUserDTO);
+    AccountantReimbursementBusinessReturnDTO findListByUserId(AccountantReimbursementUserDTO reimbursementUserDTO,AccountantReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO);
 
     /**
      * 根据部门和人员名称查询人员信息

+ 10 - 3
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementAccountant/service/impl/AccountantReimbursementUserServiceImpl.java

@@ -166,16 +166,23 @@ public class AccountantReimbursementUserServiceImpl implements AccountantReimbur
     }
 
     @Override
-    public AccountantReimbursementBusinessReturnDTO findListByUserId(AccountantReimbursementUserDTO reimbursementUserDTO) {
+    public AccountantReimbursementBusinessReturnDTO findListByUserId(AccountantReimbursementUserDTO reimbursementUserDTO, AccountantReimbursementBusinessReturnDTO reimbursementBusinessReturn) {
         AccountantReimbursementBusinessDTO reimbursementBusiness = new AccountantReimbursementBusinessDTO();
         reimbursementBusiness.setUserId(reimbursementUserDTO.getUserId());
         reimbursementBusiness.setYear(reimbursementUserDTO.getYear());
-        AccountantReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new AccountantReimbursementBusinessReturnDTO();
         List<AccountantReimbursementBusinessDTO> list = businessMapper.findListByUserIdAndYear(reimbursementBusiness);
 
+        reimbursementBusiness.setBeginDate(reimbursementBusinessReturn.getBeginDate());
+        reimbursementBusiness.setEndDate(reimbursementBusinessReturn.getEndDate());
+        reimbursementBusiness.setBeginReimbursementQuota(reimbursementBusinessReturn.getBeginReimbursementQuota());
+        reimbursementBusiness.setEndReimbursementQuota(reimbursementBusinessReturn.getEndReimbursementQuota());
+
+        AccountantReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new AccountantReimbursementBusinessReturnDTO();
+        List<AccountantReimbursementBusinessDTO> showList = businessMapper.findListByUserIdAndYear(reimbursementBusiness);
+
         //获取人员年度报销详情
         AccountantReimbursementUserDTO reimbursementUserInfo = mapper.queryByUserIdAndYear(reimbursementUserDTO);
-        reimbursementBusinessReturnDTO.setList(list);
+        reimbursementBusinessReturnDTO.setList(showList);
         reimbursementBusinessReturnDTO.setReimbursementQuota(reimbursementUserInfo.getReimbursementQuota());
 
         //已报销额度

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/controller/ReimbursementBusinessController.java

@@ -127,7 +127,7 @@ public class ReimbursementBusinessController {
             return ResponseEntity.badRequest ().body ("请先选择业务信息");
         }
         ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
-        reimbursementBusiness.setReimbursementAddress(0);
+        reimbursementBusiness.setReimbursementAddress("0");
         reimbursementBusiness.setBusinessCodeId(id);
         ReimbursementBusinessReturnDTO info = service.findListByBusinessCodeId(reimbursementBusiness);
         return ResponseEntity.ok(info);

+ 6 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/controller/ReimbursementUserController.java

@@ -10,6 +10,7 @@ import com.jeeplus.core.excel.utils.EasyPoiUtil;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.DictUtils;
 import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementAddressDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
 import com.jeeplus.test.reimbursementsys.service.ReimbursementUserService;
@@ -133,17 +134,18 @@ public class ReimbursementUserController {
     @ApiLog("查询业务报销信息列表")
     @PreAuthorize("hasAuthority('reimbursementBusiness:view')")
     @GetMapping("findListByUserId")
-    public ResponseEntity findListByUserId(String id) {
-        if(StringUtils.isBlank(id)){
+    public ResponseEntity findListByUserId(ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO) {
+        if(StringUtils.isBlank(reimbursementBusinessReturnDTO.getUserId())){
             return ResponseEntity.badRequest ().body ("请先选择报销人员信息");
         }
 
         //根据id查询人员填报的报销信息
-        ReimbursementUserDTO reimbursementUserDTO = service.queryById(id);
+        ReimbursementUserDTO reimbursementUserDTO = service.queryById(reimbursementBusinessReturnDTO.getUserId());
         if(null == reimbursementUserDTO){
             return ResponseEntity.badRequest ().body ("报销人员信息无效,请重新选择");
         }
-        ReimbursementBusinessReturnDTO info = service.findListByUserId(reimbursementUserDTO);
+        ReimbursementBusinessReturnDTO info = service.findListByUserId(reimbursementUserDTO,reimbursementBusinessReturnDTO);
+        info.setUserId(reimbursementBusinessReturnDTO.getUserId());
         return ResponseEntity.ok(info);
     }
     /**

+ 21 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementBusinessDTO.java

@@ -5,6 +5,8 @@ import com.jeeplus.core.domain.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.Date;
+
 /**
  * 报销信息表
  * @author: 徐滕
@@ -30,6 +32,24 @@ public class ReimbursementBusinessDTO extends BaseEntity {
     private String reimbursementAmount;  //报销额度
     private String remainReimbursementAmount;  //剩余报销额度
     private String remarks; //备注
-    private int reimbursementAddress;  //地区类型(0:正常报销;1:武汉)
+    private String reimbursementAddress;  //地区类型(0:正常报销;1:武汉)
+
+
+    /**
+     * 报销开始日期
+     */
+    private Date beginDate;
+    /**
+     * 报销结束日期
+     */
+    private Date endDate;
+    /**
+     * 报销额度前区间
+     */
+    private String beginReimbursementQuota;
+    /**
+     * 报销额度后区间
+     */
+    private String endReimbursementQuota;
 
 }

+ 22 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementBusinessReturnDTO.java

@@ -3,6 +3,7 @@ package com.jeeplus.test.reimbursementsys.domain.dto;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -24,6 +25,27 @@ public class ReimbursementBusinessReturnDTO{
     private String alreadyReimbursementAmount;  //已报销额度
     private String surplusReimbursementAmount;  //剩余报销额度
     private List<ReimbursementBusinessDTO> list;
+    private String userId;  //报销人员id
+    private List<ReimbursementAddressDTO> reimbursementAddressList; //报销来源列表
+    private String reimbursementAddress; //报销来源
+    private String year; //报销年份
+
+    /**
+     * 报销开始日期
+     */
+    private Date beginDate;
+    /**
+     * 报销结束日期
+     */
+    private Date endDate;
+    /**
+     * 报销额度前区间
+     */
+    private String beginReimbursementQuota;
+    /**
+     * 报销额度后区间
+     */
+    private String endReimbursementQuota;
 
 
 }

+ 8 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/mapper/ReimbursementBusinessMapper.java

@@ -3,10 +3,7 @@ package com.jeeplus.test.reimbursementsys.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
-import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementDTO;
-import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
-import com.jeeplus.test.reimbursementsys.domain.dto.WuHanReimbursementDTO;
+import com.jeeplus.test.reimbursementsys.domain.dto.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -41,6 +38,13 @@ public interface ReimbursementBusinessMapper extends BaseMapper<ReimbursementUse
     List<ReimbursementBusinessDTO> findListByUserIdAndYear(ReimbursementBusinessDTO reimbursementBusiness);
 
     /**
+     * 根据人员和年份获取数据来源信息
+     * @param reimbursementBusiness
+     * @return
+     */
+    List<ReimbursementAddressDTO> getReimbursementAddressByUserIdAndYear(ReimbursementBusinessDTO reimbursementBusiness);
+
+    /**
      * 根据条件查询武汉数据信息
      * @param reimbursementBusiness
      * @return

+ 35 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/mapper/xml/ReimbursementBusinessMapper.xml

@@ -210,7 +210,7 @@
         from zs_reimbursement_business_info a
         where a.del_flag = 0
         and a.business_code_id= #{businessCodeId}
-        and a.reimbursement_address = 0
+        and a.reimbursement_address =  #{reimbursementAddress}
     </select>
 
     <select id="getGatheringStatusById" resultType="java.lang.String">
@@ -252,9 +252,43 @@
             a.del_flag = 0
             and a.user_id = #{userId}
             and a.year = #{year}
+
+            <if test="reimbursementAddress != null and reimbursementAddress != ''">
+                and a.reimbursement_address = #{reimbursementAddress}
+            </if>
+            <if test="beginReimbursementQuota != null and beginReimbursementQuota != ''">
+                and a.reimbursement_amount >= #{beginReimbursementQuota}
+            </if>
+            <if test="endReimbursementQuota != null and endReimbursementQuota != ''">
+                and a.reimbursement_amount &lt;= #{endReimbursementQuota}
+            </if>
+            <if test="beginDate != null">
+                and a.create_date >= #{beginDate}
+            </if>
+            <if test="endDate != null">
+                and a.create_date &lt;= #{endDate}
+            </if>
         </where>
         order by a.update_date desc,a.year desc, a.user_id asc
     </select>
+
+
+    <select id="getReimbursementAddressByUserIdAndYear" resultType="com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementAddressDTO">
+        SELECT
+        a.reimbursement_address AS "value",
+        (case when a.reimbursement_address = '0' then '分所报销' when a.reimbursement_address = '1' then '总所报销' else 0 end) as "label"
+        FROM zs_reimbursement_business_info a
+        <include refid="reimbursementUserJoinColumns"/>
+        left join zs_reimbursement_info zri on zri.id = a.business_code_id
+        <where>
+            a.del_flag = 0
+            and a.user_id = #{userId}
+            and a.year = #{year}
+        </where>
+        group by a.reimbursement_address
+        order by a.reimbursement_address desc
+    </select>
+
 <!--武汉-->
     <select id="findWuHanListByUserIdAndYear" resultType="com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO">
         SELECT

+ 1 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/ReimbursementUserService.java

@@ -68,7 +68,7 @@ public interface ReimbursementUserService {
      * @param reimbursementUserDTO
      * @return
      */
-    ReimbursementBusinessReturnDTO findListByUserId(ReimbursementUserDTO reimbursementUserDTO);
+    ReimbursementBusinessReturnDTO findListByUserId(ReimbursementUserDTO reimbursementUserDTO,ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO);
 
     /**
      * 查询武汉人员报销信息列表

+ 5 - 5
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementBusinessServiceImpl.java

@@ -52,7 +52,7 @@ public class ReimbursementBusinessServiceImpl implements ReimbursementBusinessSe
         reimbursement.setBusinessCodeId(id);
         ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
         reimbursementBusiness.setBusinessCodeId(id);
-        reimbursementBusiness.setReimbursementAddress(0);
+        reimbursementBusiness.setReimbursementAddress("0");
         //根据业务id查询已收款的发票信息收款总额
         String getReceiptInvoiceByReimbursementId = reimbursementSysMapper.getReceiptInvoiceIncomeByReimbursementId(id);
         BigDecimal income = new BigDecimal(getReceiptInvoiceByReimbursementId);    //发票收入
@@ -79,7 +79,7 @@ public class ReimbursementBusinessServiceImpl implements ReimbursementBusinessSe
         reimbursement.setBusinessCodeId(id);
         ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
         reimbursementBusiness.setBusinessCodeId(id);
-        reimbursementBusiness.setReimbursementAddress(0);
+        reimbursementBusiness.setReimbursementAddress("1");
         //根据业务id查询已收款的发票信息收款总额
         String getReceiptInvoiceByReimbursementId = wuHanReimbursementSysMapper.getReceiptInvoiceIncomeByReimbursementId(id);
         BigDecimal income = new BigDecimal(getReceiptInvoiceByReimbursementId);    //发票收入
@@ -199,7 +199,7 @@ public class ReimbursementBusinessServiceImpl implements ReimbursementBusinessSe
             return map;
         }
         //查询该人员该年度已报销额度(正常报销额度)
-        reimbursementUser.setReimbursementAddress(0);
+        reimbursementUser.setReimbursementAddress("0");
         String alreadyReimbursementQuota = mapper.getAlreadyReimbursementQuotaByUserIdAndYear(reimbursementUser);
         //判断本地报销额度是否超过该年度所剩余报销额度,如果超过,则不允许报销,并抛出。否则进行报销并保存报销数据
         BigDecimal alreadyReimbursementQuotaB = new BigDecimal(alreadyReimbursementQuota);    //已报销额度
@@ -321,7 +321,7 @@ public class ReimbursementBusinessServiceImpl implements ReimbursementBusinessSe
             return map;
         }
         //查询该人员该年度已报销额度(正常报销额度)
-        reimbursementUser.setReimbursementAddress(0);
+        reimbursementUser.setReimbursementAddress("0");
         String alreadyReimbursementQuota = mapper.getAlreadyReimbursementQuotaByUserIdAndYear(reimbursementUser);
         //判断本地报销额度是否超过该年度所剩余报销额度,如果超过,则不允许报销,并抛出。否则进行报销并保存报销数据
         BigDecimal alreadyReimbursementQuotaB = new BigDecimal(alreadyReimbursementQuota);    //已报销额度
@@ -422,7 +422,7 @@ public class ReimbursementBusinessServiceImpl implements ReimbursementBusinessSe
 
     @Override
     public ReimbursementBusinessReturnDTO findListByBusinessCodeId(ReimbursementBusinessDTO reimbursementBusiness) {
-        reimbursementBusiness.setReimbursementAddress(0);
+        reimbursementBusiness.setReimbursementAddress("0");
         List<ReimbursementBusinessDTO> list = mapper.findListByBusinessCodeId(reimbursementBusiness);
         for (ReimbursementBusinessDTO info : list) {
             info.setReimbursementType(DictUtils.getDictLabel(info.getReimbursementType(), "reimbursement_type", null));

+ 17 - 4
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementUserServiceImpl.java

@@ -7,6 +7,7 @@ import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.DictUtils;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementAddressDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementBusinessReturnDTO;
 import com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO;
@@ -189,16 +190,28 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
     }
 
     @Override
-    public ReimbursementBusinessReturnDTO findListByUserId(ReimbursementUserDTO reimbursementUserDTO) {
+    public ReimbursementBusinessReturnDTO findListByUserId(ReimbursementUserDTO reimbursementUserDTO,ReimbursementBusinessReturnDTO reimbursementBusinessReturn) {
         ReimbursementBusinessDTO reimbursementBusiness = new ReimbursementBusinessDTO();
         reimbursementBusiness.setUserId(reimbursementUserDTO.getUserId());
         reimbursementBusiness.setYear(reimbursementUserDTO.getYear());
-        ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new ReimbursementBusinessReturnDTO();
         List<ReimbursementBusinessDTO> list = businessMapper.findListByUserIdAndYear(reimbursementBusiness);
 
+        reimbursementBusiness.setBeginDate(reimbursementBusinessReturn.getBeginDate());
+        reimbursementBusiness.setEndDate(reimbursementBusinessReturn.getEndDate());
+        reimbursementBusiness.setBeginReimbursementQuota(reimbursementBusinessReturn.getBeginReimbursementQuota());
+        reimbursementBusiness.setEndReimbursementQuota(reimbursementBusinessReturn.getEndReimbursementQuota());
+        reimbursementBusiness.setReimbursementAddress(reimbursementBusinessReturn.getReimbursementAddress());
+
+        ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new ReimbursementBusinessReturnDTO();
+        List<ReimbursementBusinessDTO> showList = businessMapper.findListByUserIdAndYear(reimbursementBusiness);
+        //获取报销来源集合
+
+        List<ReimbursementAddressDTO> reimbursementAddressList = businessMapper.getReimbursementAddressByUserIdAndYear(reimbursementBusiness);
+        reimbursementBusinessReturnDTO.setReimbursementAddressList(reimbursementAddressList);
+
         //获取人员年度报销详情
         ReimbursementUserDTO reimbursementUserInfo = mapper.queryByUserIdAndYear(reimbursementUserDTO);
-        reimbursementBusinessReturnDTO.setList(list);
+        reimbursementBusinessReturnDTO.setList(showList);
         reimbursementBusinessReturnDTO.setReimbursementQuota(reimbursementUserInfo.getReimbursementQuota());
 
         //已报销额度
@@ -244,7 +257,7 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
         reimbursementBusiness.setUserId(reimbursementUserDTO.getUserId());
         reimbursementBusiness.setYear(reimbursementUserDTO.getYear());
         ReimbursementBusinessReturnDTO reimbursementBusinessReturnDTO = new ReimbursementBusinessReturnDTO();
-        reimbursementBusiness.setReimbursementAddress(1);
+        reimbursementBusiness.setReimbursementAddress("1");
         List<ReimbursementBusinessDTO> list = businessMapper.findWuHanListByUserIdAndYear(reimbursementBusiness);
 
         //获取武汉人员年度报销详情

+ 7 - 7
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/WuHanReimbursementBusinessServiceImpl.java

@@ -62,7 +62,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
         BigDecimal reimbursementRatio = new BigDecimal(getReimbursementRatioByReimbursementId);    //报销比例
         BigDecimal canReimbursementAmount = income.multiply(reimbursementRatio).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);    //该项目可报销额度计算
         //查询该业务总报销额度
-        reimbursementBusiness.setReimbursementAddress(1);
+        reimbursementBusiness.setReimbursementAddress("1");
         String alreadyReimbursementQuotaByBusinessCodeId = mapper.getAlreadyReimbursementQuotaByBusinessCodeId(reimbursementBusiness);
         BigDecimal allAlreadyReimbursementQuota = new BigDecimal(alreadyReimbursementQuotaByBusinessCodeId);    //总报销额度
         reimbursement.setAllAlreadyReimbursementQuota(allAlreadyReimbursementQuota.toString());
@@ -89,7 +89,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
         BigDecimal reimbursementRatio = new BigDecimal(getReimbursementRatioByReimbursementId);    //报销比例
         BigDecimal canReimbursementAmount = income.multiply(reimbursementRatio).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);    //该项目可报销额度计算
         //查询该业务总报销额度
-        reimbursementBusiness.setReimbursementAddress(1);
+        reimbursementBusiness.setReimbursementAddress("1");
         String alreadyReimbursementQuotaByBusinessCodeId = mapper.getAlreadyReimbursementQuotaByBusinessCodeId(reimbursementBusiness);
         BigDecimal allAlreadyReimbursementQuota = new BigDecimal(alreadyReimbursementQuotaByBusinessCodeId);    //总报销额度
         reimbursement.setAllAlreadyReimbursementQuota(allAlreadyReimbursementQuota.toString());
@@ -196,7 +196,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
             map.put("message", "该员工" + reimbursementUser.getYear() + "年度未添加报销信息,无法进行报销");
             return map;
         }
-        reimbursementUser.setReimbursementAddress(1);
+        reimbursementUser.setReimbursementAddress("1");
         //查询该人员该年度已报销额度(正常报销额度)
         String alreadyReimbursementQuota = mapper.getAlreadyReimbursementQuotaByUserIdAndYear(reimbursementUser);
         //判断本地报销额度是否超过该年度所剩余报销额度,如果超过,则不允许报销,并抛出。否则进行报销并保存报销数据
@@ -236,7 +236,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
         BigDecimal reimbursementRatio = new BigDecimal(getReimbursementRatioByReimbursementId);    //报销比例
         BigDecimal canReimbursementAmount = income.multiply(reimbursementRatio).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);    //该项目可报销额度计算
         //查询该业务总报销额度
-        reimbursementUser.setReimbursementAddress(1);
+        reimbursementUser.setReimbursementAddress("1");
         String alreadyReimbursementQuotaByBusinessCodeId = mapper.getAlreadyReimbursementQuotaByBusinessCodeId(reimbursementUser);
         String gatheringStatus = mapper.getGatheringStatusById(reimbursementUser);
         BigDecimal allAlreadyReimbursementQuota = new BigDecimal(alreadyReimbursementQuotaByBusinessCodeId);    //总报销额度
@@ -319,7 +319,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
             map.put("message", "该员工" + reimbursementUser.getYear() + "年度未添加报销信息,无法进行报销");
             return map;
         }
-        reimbursementUser.setReimbursementAddress(1);
+        reimbursementUser.setReimbursementAddress("1");
         //查询该人员该年度已报销额度(正常报销额度)
         String alreadyReimbursementQuota = mapper.getAlreadyReimbursementQuotaByUserIdAndYear(reimbursementUser);
         //判断本地报销额度是否超过该年度所剩余报销额度,如果超过,则不允许报销,并抛出。否则进行报销并保存报销数据
@@ -359,7 +359,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
         BigDecimal reimbursementRatio = new BigDecimal(getReimbursementRatioByReimbursementId);    //报销比例
         BigDecimal canReimbursementAmount = income.multiply(reimbursementRatio).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);    //该项目可报销额度计算
         //查询该业务总报销额度
-        reimbursementUser.setReimbursementAddress(1);
+        reimbursementUser.setReimbursementAddress("1");
         String alreadyReimbursementQuotaByBusinessCodeId = mapper.getAlreadyReimbursementQuotaByBusinessCodeId(reimbursementUser);
         String gatheringStatus = mapper.getWuHanGatheringStatusById(reimbursementUser);
         BigDecimal allAlreadyReimbursementQuota = new BigDecimal(alreadyReimbursementQuotaByBusinessCodeId);    //总报销额度
@@ -422,7 +422,7 @@ public class WuHanReimbursementBusinessServiceImpl implements WuHanReimbursement
 
     @Override
     public ReimbursementBusinessReturnDTO findListByBusinessCodeId(ReimbursementBusinessDTO reimbursementBusiness) {
-        reimbursementBusiness.setReimbursementAddress(1);
+        reimbursementBusiness.setReimbursementAddress("1");
         List<ReimbursementBusinessDTO> list = mapper.findListByBusinessCodeId(reimbursementBusiness);
         for (ReimbursementBusinessDTO info : list) {
             info.setReimbursementType(DictUtils.getDictLabel(info.getReimbursementType(), "reimbursement_type", null));

+ 13 - 9
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -227,10 +227,10 @@ public class UserController {
                         user.setPassword ( SecurityUtils.encryptPassword ( "123456" ) );
                         BeanValidators.validateWithException ( validator, user );
                         //查询人员公司信息
-                        Office company = officeService.getOfficeByName(user.getCompanyDTO().getName(),"");
+                        OfficeDTO company = officeService.getOfficeByName(user.getCompanyDTO().getName(),"");
                         user.getCompanyDTO().setId(company.getId());
                         //查询人员部门信息
-                        Office office = officeService.getOfficeByName(user.getOfficeDTO().getName(),user.getOfficeDTO().getParentName());
+                        OfficeDTO office = officeService.getOfficeByName(user.getOfficeDTO().getName(),user.getOfficeDTO().getParentName());
                         user.getOfficeDTO().setId(office.getId());
                         user.setLoginFlag("1");
                         userService.save ( UserWrapper.INSTANCE.toEntity ( user ) );
@@ -409,14 +409,18 @@ public class UserController {
     @GetMapping("treeUserDataByOfficeName")
     public ResponseEntity treeUserDataByOfficeName(@RequestParam(required = false) String officeName,@RequestParam(required = false) String extId, @RequestParam(required = false) String type, @RequestParam(required = false, defaultValue = CommonConstants.NO) String showAll) {
         List<OfficeDTO> list = officeService.getOfficeAllByOfficeName (officeName);
-        for (OfficeDTO info :
-                list) {
-            info.setTypeFlag(true);
+        if(list.size()>0){
+            List<String> officeIds = Lists.newArrayList();
+            for (OfficeDTO info :
+                    list) {
+                info.setTypeFlag(true);
+                officeIds.add(info.getId());
+            }
+            //根据部门查询对应部门下的所有数据
+            List<OfficeDTO> officeDTOList = userService.getUserByOffice(officeIds,type);
+            list.addAll(officeDTOList);
         }
-        //根据部门查询对应部门下的所有数据
-        List<OfficeDTO> officeDTOList = userService.disposeUserOffice(list,type);
-        list.addAll(officeDTOList);
-        List rootTree = officeService.getRootTree (list, extId, type, showAll);
+        List rootTree = officeService.getofficeUserTree (officeName,list, extId, type, showAll);
         return ResponseEntity.ok (rootTree);
     }
 

+ 1 - 1
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/OfficeMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
  */
 public interface OfficeMapper extends TreeMapper<Office> {
 
-    Office getOfficeByName(@Param("officeName") String officeName, @Param("parentName") String parentName);
+    OfficeDTO getOfficeByName(@Param("officeName") String officeName, @Param("parentName") String parentName);
 
     /**
      * 根据部门名称 查询部门及所有子部门信息

+ 8 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -102,4 +102,12 @@ public interface UserMapper extends BaseMapper<User> {
      */
     List <OfficeDTO> findListByCompanyId(@Param("companyId") String companyId,@Param("type") String type);
 
+    /**
+     * 根据部门获取员工数据
+     * @param officeIds
+     * @param type
+     * @return
+     */
+    List <OfficeDTO> getUserByOffice(@Param("officeIds") List<String> officeIds,@Param("type") String type);
+
 }

+ 37 - 7
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/OfficeMapper.xml

@@ -2,24 +2,54 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.sys.mapper.OfficeMapper">
 
+    <sql id="officeColumns">
+    	a.id as "id",
+        a.parent_id as "parent.id",
+        a.parent_ids as "parentIds",
+        a.name as "name",
+        a.sort as "sort",
+        a.area_id as "areaId",
+        a.code as "code",
+        a.type as "type",
+        a.grade as "grade",
+        a.address as "address",
+        a.zip_code as "zipCode",
+        a.master as "master",
+        a.phone as "phone",
+        a.fax as "fax",
+        a.email as "email",
+        a.useable as "useable",
+        a.primary_person as "primaryPerson",
+        a.deputy_person as "deputyPerson",
+		a.create_by as "createBy.id",
+		a.create_date as "createDate",
+		a.update_by as "updateBy.id",
+		a.update_date as "updateDate",
+        a.remarks as "remarks",
+        a.del_flag as "delFlag"
+    </sql>
 
-    <select id="getOfficeByName" resultType="com.jeeplus.sys.domain.Office">
-        select * from sys_office
+    <select id="getOfficeByName" resultType="com.jeeplus.sys.service.dto.OfficeDTO">
+        select
+        <include refid="officeColumns"/>
+        from sys_office a
         <where>
-            name = #{officeName}
+            a.name = #{officeName}
             <if test="null != parentName and '' != parentName">
                 ${parentName}
             </if>
-            and del_flag = 0
+            and a.del_flag = 0
         </where>
     </select>
 
     <select id="getOfficeAllByOfficeName" resultType="com.jeeplus.sys.service.dto.OfficeDTO">
-    select * from sys_office
+    select
+        <include refid="officeColumns"/>
+    from sys_office a
         <where>
-            id = (select id from sys_office where name = #{officeName})
+            a.id = (select id from sys_office where name = #{officeName})
             or
-            parent_ids like concat('%',(select id from sys_office where name = #{officeName}),'%')
+            a.parent_ids like concat('%',(select id from sys_office where name = #{officeName}),'%')
         </where>
     </select>
 </mapper>

+ 18 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -167,6 +167,24 @@
 		</where>
 	</select>
 
+	<!-- 查询岗位下的用户 -->
+	<select id="getUserByOffice" resultType="com.jeeplus.sys.service.dto.OfficeDTO">
+		SELECT
+		<include refid="userOfficeColumns"/>
+		,#{type} as "type"
+		FROM sys_user a
+		<include refid="userJoins"/>
+		<where>
+			a.del_flag = 0
+			<if test="officeIds != null and officeIds.size>0">
+				and a.office_id in
+				<foreach collection="officeIds" item="officeId" separator="," open="(" close=")">
+					#{officeId}
+				</foreach>
+			</if>
+		</where>
+	</select>
+
 
 	<!--删除用户角色关联数据-->
 	<delete id="deleteUserRole">

+ 16 - 2
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/OfficeService.java

@@ -48,6 +48,20 @@ public class OfficeService extends TreeService<OfficeMapper, Office> {
         return offices;
     }
 
+    public List <OfficeDTO> getofficeUserTree(String officeName, List<OfficeDTO> list, String extId, String type, String showAll) {
+        List<OfficeDTO> offices = Lists.newArrayList ();
+        //查询总部门信息
+        OfficeDTO root = mapper.getOfficeByName(officeName,"");
+        if(null != root){
+            if (this.isUseAble ( extId, type,root, showAll )){
+                // 不是被排除节点的子节点
+                List<OfficeDTO> officeList = formatListToTree (root, list, extId, type, showAll);
+                offices.addAll (officeList);
+            }
+        }
+        return offices;
+    }
+
 
     public List<OfficeDTO> formatListToTree(OfficeDTO root, List<OfficeDTO> allList, String extId, String type, String showAll) {
         String rootId = root.getId ();
@@ -119,7 +133,7 @@ public class OfficeService extends TreeService<OfficeMapper, Office> {
      * @param officeName
      * @return
      */
-    public Office getOfficeByName(String officeName,String parentName){
+    public OfficeDTO getOfficeByName(String officeName,String parentName){
         if(StringUtils.isBlank(parentName)){
             parentName = "";
         }
@@ -135,7 +149,7 @@ public class OfficeService extends TreeService<OfficeMapper, Office> {
                 parentSql.append(")");
             }
         }
-        Office office = mapper.getOfficeByName(officeName,parentSql.toString());
+        OfficeDTO office = mapper.getOfficeByName(officeName,parentSql.toString());
         return office;
     }
 

+ 5 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -204,5 +204,10 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 		return userMapper.findListByCompanyId(UserUtils.getCurrentUserDTO().getCompanyDTO().getId(),type);
 	}
 
+	//根据部门查询用户信息
+	public List<OfficeDTO> getUserByOffice(List<String> officeIds,String type){
+		return userMapper.getUserByOffice(officeIds,type);
+	}
+
 
 }