Переглянути джерело

添加补贴字段,报销人可多选

huangguoce 7 годин тому
батько
коміт
e290b53ef1
42 змінених файлів з 802 додано та 91 видалено
  1. 6 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/UserApiFallbackFactory.java
  2. 10 0
      jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IUserApi.java
  3. 4 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfo.java
  4. 4 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoContract.java
  5. 4 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoOther.java
  6. 4 1
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoProcured.java
  7. 4 0
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml
  8. 102 6
      jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java
  9. 4 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfo.java
  10. 4 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoContract.java
  11. 4 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoOther.java
  12. 4 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoProcured.java
  13. 4 1
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoReport.java
  14. 5 0
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml
  15. 142 11
      jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java
  16. 4 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfo.java
  17. 4 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoContract.java
  18. 4 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoOther.java
  19. 4 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoProcured.java
  20. 4 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoProject.java
  21. 4 1
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoReport.java
  22. 7 0
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml
  23. 162 16
      jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java
  24. 4 1
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfo.java
  25. 4 1
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoContract.java
  26. 4 1
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoOther.java
  27. 4 1
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoProcured.java
  28. 4 1
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoReport.java
  29. 5 0
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml
  30. 138 10
      jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java
  31. 4 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfo.java
  32. 4 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoContract.java
  33. 4 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoOther.java
  34. 4 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoProcured.java
  35. 4 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoReport.java
  36. 5 1
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java
  37. 20 0
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml
  38. 51 24
      jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java
  39. 25 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/UserApiImpl.java
  40. 5 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java
  41. 10 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml
  42. 5 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

+ 6 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/factory/UserApiFallbackFactory.java

@@ -10,6 +10,7 @@ import com.jeeplus.sys.service.dto.UserDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.io.IOException;
 import java.util.*;
@@ -114,6 +115,11 @@ public class UserApiFallbackFactory implements FallbackFactory <IUserApi> {
             }
 
             @Override
+            public String getNamesByIds(String userIds) {
+                return null;
+            }
+
+            @Override
             public String getByIdForXXL(String id) {
                 return null;
             }

+ 10 - 0
jeeplus-api/jeeplus-system-api/src/main/java/com/jeeplus/sys/feign/IUserApi.java

@@ -171,6 +171,16 @@ public interface IUserApi {
     String getOpenIdsByIds(@RequestParam("userIds") String userIds);
 
     /**
+     * 根据id获取用户名
+     *
+     * @param userIds
+     * @return
+     */
+    @GetMapping(value = BASE_URL + "/getNamesByIds")
+    String getNamesByIds(@RequestParam("userIds") String userIds);
+
+
+    /**
      * 根据id获取用户
      *
      * @param id

+ 4 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfo.java

@@ -70,7 +70,10 @@ public class ReimbursementDetailInfo extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoContract.java

@@ -80,7 +80,10 @@ public class ReimbursementDetailInfoContract extends BaseEntity implements Seria
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoOther.java

@@ -78,7 +78,10 @@ public class ReimbursementDetailInfoOther extends BaseEntity implements Serializ
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/domain/ReimbursementDetailInfoProcured.java

@@ -79,7 +79,10 @@ public class ReimbursementDetailInfoProcured extends BaseEntity implements Seria
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/mapper/xml/ReimbursementInfoMapper.xml

@@ -362,6 +362,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -395,6 +396,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		a.reimbursement_type,
@@ -430,6 +432,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		a.reimbursement_type,
@@ -465,6 +468,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,

+ 102 - 6
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/reimbursement/reimbursementInfo/service/ReimbursementInfoService.java

@@ -796,6 +796,18 @@ public class ReimbursementInfoService {
         return "操作成功";
     }
 
+    public String getOfficeNameByIds(String ids){
+        List<String> deptIdList = new ArrayList<>();
+        if (ids != null && !ids.trim().isEmpty()) {
+            deptIdList = Arrays.stream(ids.split(","))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
+            List<String> names = SpringUtil.getBean( IOfficeApi.class ).getOfficeNameByIds(deptIdList);
+            return String.join(",",names);
+        }
+        return "";
+    }
     public SaveInfoDto findById(String id) {
         SaveInfoDto dto = new SaveInfoDto();
         // 查询基础信息表
@@ -808,6 +820,7 @@ public class ReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean(IUserApi.class);
             // 项目报销详情
             List<ReimbursementDetailInfo> detailList = infoMapper.getDetailList(id);
             detailList.stream().forEach(projectDetail -> {
@@ -820,14 +833,55 @@ public class ReimbursementInfoService {
                     projectDetail.setProjectName("");
                     projectDetail.setReportNumber("");
                 }
+                if (StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
             });
             dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(id));
+            List<ReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(id);
+            contractDetailList.stream().forEach(contract -> {
+                if (StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(id));
+            List<ReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(id);
+            otherDetailList.stream().forEach(details -> {
+                if (StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(id));
+            List<ReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(id);
+            procuredDetailList.stream().forEach(details -> {
+                if (StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoProcured(procuredDetailList);
             // 查询专用发票信息列表
             LambdaQueryWrapper<ReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(ReimbursementAmountInfo::getInfoId, id);
@@ -1727,6 +1781,7 @@ public class ReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean ( IUserApi.class );
             // 项目报销详情
             List<ReimbursementDetailInfo> detailList = infoMapper.getDetailList(reimId);
             detailList.stream().forEach(projectDetail -> {
@@ -1739,14 +1794,55 @@ public class ReimbursementInfoService {
                     projectDetail.setProjectName("");
                     projectDetail.setReportNumber("");
                 }
+                if (StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
             });
             dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(reimId));
+            List<ReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(reimId);
+            contractDetailList.stream().forEach(contract -> {
+                if (StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(reimId));
+            List<ReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(reimId);
+            otherDetailList.stream().forEach(details -> {
+                if (StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(reimId));
+            List<ReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(reimId);
+            procuredDetailList.stream().forEach(details -> {
+                if (StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoProcured(procuredDetailList);
             // 查询专用发票信息列表
             LambdaQueryWrapper<ReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(ReimbursementAmountInfo::getInfoId, reimId);

+ 4 - 1
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfo.java

@@ -72,7 +72,10 @@ public class CcpmReimbursementDetailInfo extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoContract.java

@@ -75,7 +75,10 @@ public class CcpmReimbursementDetailInfoContract extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoOther.java

@@ -61,7 +61,10 @@ public class CcpmReimbursementDetailInfoOther extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoProcured.java

@@ -61,7 +61,10 @@ public class CcpmReimbursementDetailInfoProcured extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/domain/CcpmReimbursementDetailInfoReport.java

@@ -75,7 +75,10 @@ public class CcpmReimbursementDetailInfoReport extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 5 - 0
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/mapper/xml/CcpmReimbursementInfoMapper.xml

@@ -520,6 +520,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -551,6 +552,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+        a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -583,6 +585,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+        a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -614,6 +617,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+        a.subsidy,
 		a.days,
 		a.reimbursement_type,
 		a.unique_id,
@@ -648,6 +652,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+        a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,

+ 142 - 11
jeeplus-modules/jeeplus-ccpm/src/main/java/com/jeeplus/ccpm/approvalInfo/service/CcpmReimbursementInfoService.java

@@ -756,6 +756,24 @@ public class CcpmReimbursementInfoService {
         return "操作成功";
     }
 
+    /**
+     * 根据部门id查询
+     * @param ids
+     * @return
+     */
+    public String getOfficeNameByIds(String ids){
+        List<String> deptIdList = new ArrayList<>();
+        if (ids != null && !ids.trim().isEmpty()) {
+            deptIdList = Arrays.stream(ids.split(","))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
+            List<String> names = SpringUtil.getBean( IOfficeApi.class ).getOfficeNameByIds(deptIdList);
+            return String.join(",",names);
+        }
+        return "";
+    }
+
     public CcpmSaveInfoDto findById(String id) {
         CcpmSaveInfoDto dto = new CcpmSaveInfoDto();
         // 查询基础信息表
@@ -769,21 +787,79 @@ public class CcpmReimbursementInfoService {
                 }
             }
 
+            IUserApi userApi = SpringUtil.getBean(IUserApi.class);
             // 查询详情列表
 //        LambdaQueryWrapper<ZsReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
 //        detailInfoLambdaQueryWrapper.eq(ZsReimbursementDetailInfo::getInfoId, id);
 //        detailInfoLambdaQueryWrapper.orderByAsc(ZsReimbursementDetailInfo::getNumber);
 //        List<ZsReimbursementDetailInfo> detailInfos = detailInfoMapper.selectList(detailInfoLambdaQueryWrapper);
+
             // 项目报销详情
-            dto.setDetailInfos(infoMapper.getDetailList(id));
+            List<CcpmReimbursementDetailInfo> detailList = infoMapper.getDetailList(id);
+            detailList.stream().forEach(projectDetail -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(id));
+            List<CcpmReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(id);
+            contractDetailList.stream().forEach(contract -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 报告报销详情
-            dto.setDetailInfoReports(infoMapper.getReportDetailList(id));
+            List<CcpmReimbursementDetailInfoReport> reportDetailList = infoMapper.getReportDetailList(id);
+            reportDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoReports(reportDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(id));
+            List<CcpmReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(id);
+            otherDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(id));
+            List<CcpmReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(id);
+            procuredDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoProcured(procuredDetailList);
+
             // 查询专用发票信息列表
             LambdaQueryWrapper<CcpmReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(CcpmReimbursementAmountInfo::getInfoId, id);
@@ -1199,17 +1275,72 @@ public class CcpmReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
-
+            IUserApi userApi = SpringUtil.getBean ( IUserApi.class );
             // 项目报销详情
-            dto.setDetailInfos(infoMapper.getDetailList(reimId));
+            List<CcpmReimbursementDetailInfo> detailList = infoMapper.getDetailList(reimId);
+            detailList.stream().forEach(projectDetail -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(reimId));
+            List<CcpmReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(reimId);
+            contractDetailList.stream().forEach(contract -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 报告报销详情
-            dto.setDetailInfoReports(infoMapper.getReportDetailList(reimId));
+            List<CcpmReimbursementDetailInfoReport> reportDetailList = infoMapper.getReportDetailList(reimId);
+            reportDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoReports(reportDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(reimId));
+            List<CcpmReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(reimId);
+            otherDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(reimId));
+            List<CcpmReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(reimId);
+            procuredDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoProcured(procuredDetailList);
             // 查询专用发票信息列表
             LambdaQueryWrapper<CcpmReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(CcpmReimbursementAmountInfo::getInfoId, reimId);

+ 4 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfo.java

@@ -73,6 +73,10 @@ public class ZsReimbursementDetailInfo extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
+    /**
+     *  补贴
+     */
+    private String subsidy;
 
     /**
      * 费用汇总

+ 4 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoContract.java

@@ -74,7 +74,10 @@ public class ZsReimbursementDetailInfoContract extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoOther.java

@@ -61,7 +61,10 @@ public class ZsReimbursementDetailInfoOther extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoProcured.java

@@ -61,7 +61,10 @@ public class ZsReimbursementDetailInfoProcured extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoProject.java

@@ -58,7 +58,10 @@ public class ZsReimbursementDetailInfoProject extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/domain/ZsReimbursementDetailInfoReport.java

@@ -72,7 +72,10 @@ public class ZsReimbursementDetailInfoReport extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 7 - 0
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/mapper/xml/ZsReimbursementInfoMapper.xml

@@ -576,6 +576,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.reimbursement_type,
 		a.unique_id,
@@ -609,6 +610,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -641,6 +643,7 @@
 			a.ordinary_receipt_number,
 			a.receipt_number_count,
 			a.number_count,
+			a.subsidy,
 			a.days,
 			a.content,
 			a.reimbursement_type,
@@ -675,6 +678,7 @@
 			a.ordinary_receipt_number,
 			a.receipt_number_count,
 			a.number_count,
+			a.subsidy,
 			a.days,
 			a.content,
 			a.reimbursement_type,
@@ -709,6 +713,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.reimbursement_type,
 		a.unique_id,
@@ -744,6 +749,7 @@
 			a.ordinary_receipt_number,
 			a.receipt_number_count,
 			a.number_count,
+			a.subsidy,
 			a.days,
 			a.content,
 			a.reimbursement_type,
@@ -781,6 +787,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,

+ 162 - 16
jeeplus-modules/jeeplus-centrecareful/src/main/java/com/jeeplus/centrecareful/approvalInfo/service/ZsReimbursementInfoService.java

@@ -813,6 +813,23 @@ public class ZsReimbursementInfoService {
         return "操作成功";
     }
 
+    /**
+     * 根据部门id查询
+     * @param ids
+     * @return
+     */
+    public String getOfficeNameByIds(String ids){
+        List<String> deptIdList = new ArrayList<>();
+        if (ids != null && !ids.trim().isEmpty()) {
+            deptIdList = Arrays.stream(ids.split(","))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
+            List<String> names = SpringUtil.getBean( IOfficeApi.class ).getOfficeNameByIds(deptIdList);
+            return String.join(",",names);
+        }
+        return "";
+    }
     public ZsSaveInfoDto findById(String id) {
         ZsSaveInfoDto dto = new ZsSaveInfoDto();
         // 查询基础信息表
@@ -825,6 +842,7 @@ public class ZsReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean(IUserApi.class);
 
             // 查询详情列表
 //        LambdaQueryWrapper<ZsReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -833,21 +851,82 @@ public class ZsReimbursementInfoService {
 //        List<ZsReimbursementDetailInfo> detailInfos = detailInfoMapper.selectList(detailInfoLambdaQueryWrapper);
             // 项目报销详情
             List<ZsReimbursementDetailInfo> detailList = infoMapper.getDetailList(id);
+            detailList.stream().forEach(projectDetail -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
+            });
             dto.setDetailInfos(detailList);
-            //dto.setDetailInfos(infoMapper.getDetailList(id));
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(id));
+            List<ZsReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(id);
+            contractDetailList.stream().forEach(contract -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 报告报销详情
-            List<ZsReimbursementDetailInfoReport> detailInfoReports=infoMapper.getCwReportDetailList(id);
-            dto.setDetailInfoReports(detailInfoReports);
-
-            //dto.setDetailInfoReports(infoMapper.getReportDetailList(id));
+            List<ZsReimbursementDetailInfoReport> reportDetailList = infoMapper.getReportDetailList(id);
+            reportDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoReports(reportDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(id));
-            // 中审项目报销
-            dto.setDetailInfoProject(infoMapper.getZsProjectDetailList(id));
+            List<ZsReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(id);
+            otherDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(id));
+            List<ZsReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(id);
+            procuredDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            // 中审项目报销
+            List<ZsReimbursementDetailInfoProject> zsProjectDetailList = infoMapper.getZsProjectDetailList(id);
+            zsProjectDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoProject(zsProjectDetailList);
+
             // 查询专用发票信息列表
             LambdaQueryWrapper<ZsReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(ZsReimbursementAmountInfo::getInfoId, id);
@@ -1220,22 +1299,89 @@ public class ZsReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
-
+            IUserApi userApi = SpringUtil.getBean ( IUserApi.class );
             // 查询详情列表
 //        LambdaQueryWrapper<ZsReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
 //        detailInfoLambdaQueryWrapper.eq(ZsReimbursementDetailInfo::getInfoId, id);
 //        detailInfoLambdaQueryWrapper.orderByAsc(ZsReimbursementDetailInfo::getNumber);
 //        List<ZsReimbursementDetailInfo> detailInfos = detailInfoMapper.selectList(detailInfoLambdaQueryWrapper);
             // 项目报销详情
-            dto.setDetailInfos(infoMapper.getDetailList(reimId));
+            List<ZsReimbursementDetailInfo> detailList = infoMapper.getDetailList(reimId);
+            detailList.stream().forEach(projectDetail -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(reimId));
+            List<ZsReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(reimId);
+            contractDetailList.stream().forEach(contract -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 报告报销详情
-            dto.setDetailInfoReports(infoMapper.getReportDetailList(reimId));
+            List<ZsReimbursementDetailInfoReport> reportDetailList = infoMapper.getReportDetailList(reimId);
+            reportDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoReports(reportDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(reimId));
+            List<ZsReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(reimId);
+            otherDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(reimId));
+            List<ZsReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(reimId);
+            procuredDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            // 中审项目报销
+            List<ZsReimbursementDetailInfoProject> zsProjectDetailList = infoMapper.getZsProjectDetailList(reimId);
+            zsProjectDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoProject(zsProjectDetailList);
             // 查询专用发票信息列表
             LambdaQueryWrapper<ZsReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(ZsReimbursementAmountInfo::getInfoId, reimId);

+ 4 - 1
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfo.java

@@ -71,7 +71,10 @@ public class ConsultancyReimbursementDetailInfo extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoContract.java

@@ -75,7 +75,10 @@ public class ConsultancyReimbursementDetailInfoContract extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoOther.java

@@ -60,7 +60,10 @@ public class ConsultancyReimbursementDetailInfoOther extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoProcured.java

@@ -61,7 +61,10 @@ public class ConsultancyReimbursementDetailInfoProcured extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/domain/ConsultancyReimbursementDetailInfoReport.java

@@ -75,7 +75,10 @@ public class ConsultancyReimbursementDetailInfoReport extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 5 - 0
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/mapper/xml/ConsultancyReimbursementInfoMapper.xml

@@ -495,6 +495,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -526,6 +527,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -558,6 +560,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -589,6 +592,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.reimbursement_type,
 		a.unique_id,
@@ -623,6 +627,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,

+ 138 - 10
jeeplus-modules/jeeplus-consult/src/main/java/com/jeeplus/consultancy/approvalInfo/service/ConsultancyReimbursementInfoService.java

@@ -34,6 +34,7 @@ import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.stream.Collectors;
 
 //import com.jeeplus.finance.contractRegistration.service.ContractInfoService;
 //import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.QueryListDto;
@@ -760,6 +761,23 @@ public class ConsultancyReimbursementInfoService {
         return "操作成功";
     }
 
+    /**
+     * 根据部门id查询
+     * @param ids
+     * @return
+     */
+    public String getOfficeNameByIds(String ids){
+        List<String> deptIdList = new ArrayList<>();
+        if (ids != null && !ids.trim().isEmpty()) {
+            deptIdList = Arrays.stream(ids.split(","))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
+            List<String> names = SpringUtil.getBean( IOfficeApi.class ).getOfficeNameByIds(deptIdList);
+            return String.join(",",names);
+        }
+        return "";
+    }
     public ConsultancySaveInfoDto findById(String id) {
         ConsultancySaveInfoDto dto = new ConsultancySaveInfoDto();
         // 查询基础信息表
@@ -772,6 +790,7 @@ public class ConsultancyReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean ( IUserApi.class );
 
             // 查询详情列表
 //        LambdaQueryWrapper<ZsReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -779,15 +798,69 @@ public class ConsultancyReimbursementInfoService {
 //        detailInfoLambdaQueryWrapper.orderByAsc(ZsReimbursementDetailInfo::getNumber);
 //        List<ZsReimbursementDetailInfo> detailInfos = detailInfoMapper.selectList(detailInfoLambdaQueryWrapper);
             // 项目报销详情
-            dto.setDetailInfos(infoMapper.getDetailList(id));
+            List<ConsultancyReimbursementDetailInfo> detailList = infoMapper.getDetailList(id);
+            detailList.stream().forEach(projectDetail -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(id));
+            List<ConsultancyReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(id);
+            contractDetailList.stream().forEach(contract -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 报告报销详情
-            dto.setDetailInfoReports(infoMapper.getReportDetailList(id));
+            List<ConsultancyReimbursementDetailInfoReport> reportDetailList = infoMapper.getReportDetailList(id);
+            reportDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoReports(reportDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(id));
+            List<ConsultancyReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(id);
+            otherDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(id));
+            List<ConsultancyReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(id);
+            procuredDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
             // 查询专用发票信息列表
             LambdaQueryWrapper<ConsultancyReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(ConsultancyReimbursementAmountInfo::getInfoId, id);
@@ -1182,6 +1255,7 @@ public class ConsultancyReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean ( IUserApi.class );
 
             // 查询详情列表
 //        LambdaQueryWrapper<ZsReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1189,15 +1263,69 @@ public class ConsultancyReimbursementInfoService {
 //        detailInfoLambdaQueryWrapper.orderByAsc(ZsReimbursementDetailInfo::getNumber);
 //        List<ZsReimbursementDetailInfo> detailInfos = detailInfoMapper.selectList(detailInfoLambdaQueryWrapper);
             // 项目报销详情
-            dto.setDetailInfos(infoMapper.getDetailList(reimId));
+            List<ConsultancyReimbursementDetailInfo> detailList = infoMapper.getDetailList(reimId);
+            detailList.stream().forEach(projectDetail -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(projectDetail.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfos(detailList);
             // 合同报销详情
-            dto.setDetailInfoContracts(infoMapper.getContractDetailList(reimId));
+            List<ConsultancyReimbursementDetailInfoContract> contractDetailList = infoMapper.getContractDetailList(reimId);
+            contractDetailList.stream().forEach(contract -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(contract.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(contract.getUserId());
+                    contract.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(contract.getDeptId());
+                    contract.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoContracts(contractDetailList);
             // 报告报销详情
-            dto.setDetailInfoReports(infoMapper.getReportDetailList(reimId));
+            List<ConsultancyReimbursementDetailInfoReport> reportDetailList = infoMapper.getReportDetailList(reimId);
+            reportDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoReports(reportDetailList);
             // 其他报销
-            dto.setDetailInfoOthers(infoMapper.getOtherDetailList(reimId));
+            List<ConsultancyReimbursementDetailInfoOther> otherDetailList = infoMapper.getOtherDetailList(reimId);
+            otherDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
+            dto.setDetailInfoOthers(otherDetailList);
             // 采购报销
-            dto.setDetailInfoProcured(infoMapper.getProcuredDetailList(reimId));
+            List<ConsultancyReimbursementDetailInfoProcured> procuredDetailList = infoMapper.getProcuredDetailList(reimId);
+            procuredDetailList.stream().forEach(details -> {
+                if (org.apache.commons.lang3.StringUtils.isBlank(details.getUserName())){
+                    //处理用户名
+                    String names = userApi.getNamesByIds(details.getUserId());
+                    details.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(details.getDeptId());
+                    details.setDeptName(offices);
+                }
+            });
             // 查询专用发票信息列表
             LambdaQueryWrapper<ConsultancyReimbursementAmountInfo> amountInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
             amountInfoLambdaQueryWrapper.eq(ConsultancyReimbursementAmountInfo::getInfoId, reimId);

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfo.java

@@ -72,6 +72,10 @@ public class CwReimbursementDetailInfo extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
+    /**
+     *  补贴
+     */
+    private String subsidy;
 
     /**
      * 费用汇总

+ 4 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoContract.java

@@ -75,7 +75,10 @@ public class CwReimbursementDetailInfoContract extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoOther.java

@@ -61,7 +61,10 @@ public class CwReimbursementDetailInfoOther extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoProcured.java

@@ -61,7 +61,10 @@ public class CwReimbursementDetailInfoProcured extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 4 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/domain/CwReimbursementDetailInfoReport.java

@@ -75,7 +75,10 @@ public class CwReimbursementDetailInfoReport extends BaseEntity {
      * 费用(元),普通发票
      */
     private String ordinaryNumber;
-
+    /**
+     *  补贴
+     */
+    private String subsidy;
     /**
      * 费用汇总
      */

+ 5 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/CwReimbursementInfoMapper.java

@@ -13,6 +13,7 @@ import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.Reture
 import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.TreeUserDto;
 //import com.jeeplus.pubmodules.oss.service.dto.WorkAttachmentDto;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.service.dto.UserDTO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -82,8 +83,11 @@ public interface CwReimbursementInfoMapper extends BaseMapper<CwReimbursementInf
     @InterceptorIgnore(tenantLine = "true")
     String findUserById(@Param("projectUser") String projectUser);
     @InterceptorIgnore(tenantLine = "true")
+    List<String> findUserByIds(@Param("idList")List<String> idList);
+    @InterceptorIgnore(tenantLine = "true")
     String findOfficeById(@Param("projectOffice")String projectOffice);
-
+    @InterceptorIgnore(tenantLine = "true")
+    List<String> findOfficeByIds(@Param("idList")List<String> idList);
     void updatePaymentById(@Param("id") String id,@Param("paymentStatus") String paymentStatus);
 
     List<String> getReimbursementIdList(String type);

+ 20 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/mapper/xml/CwReimbursementInfoMapper.xml

@@ -569,6 +569,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -602,6 +603,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		a.unique_id,
@@ -642,6 +644,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.unique_id,
 		a.reimbursement_type,
@@ -677,6 +680,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		a.unique_id,
@@ -712,6 +716,7 @@
 		a.ordinary_receipt_number,
 		a.receipt_number_count,
 		a.number_count,
+		a.subsidy,
 		a.days,
 		a.content,
 		su.name as user_name,
@@ -908,10 +913,25 @@ select
 	<select id="findUserById" resultType="string">
 		select name from sys_user where id = #{projectUser}
 	</select>
+
+	<select id="findUserByIds" resultType="string">
+		select name from sys_user where id in
+		<foreach collection="idList" item="id" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</select>
+
 	<select id="findOfficeById" resultType="string">
 		select name from sys_office where id = #{projectOffice}
 	</select>
 
+	<select id="findOfficeByIds" resultType="string">
+		select name from sys_office where id in
+		<foreach collection="idList" item="id" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</select>
+
 	<update id="updatePaymentById">
 		update
 			cw_reimbursement_info

+ 51 - 24
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/reimbursementApproval/approvalInfo/service/CwReimbursementInfoService.java

@@ -1014,6 +1014,19 @@ public class CwReimbursementInfoService {
         return "操作成功";
     }
 
+    public String getOfficeNameByIds(String ids){
+        List<String> deptIdList = new ArrayList<>();
+        if (ids != null && !ids.trim().isEmpty()) {
+            deptIdList = Arrays.stream(ids.split(","))
+                    .map(String::trim)
+                    .filter(s -> !s.isEmpty())
+                    .collect(Collectors.toList());
+            List<String> names = SpringUtil.getBean( IOfficeApi.class ).getOfficeNameByIds(deptIdList);
+            return String.join(",",names);
+        }
+        return "";
+    }
+
     public SaveInfoDto findById(String id) {
         SaveInfoDto dto = new SaveInfoDto();
         // 查询基础信息表
@@ -1026,6 +1039,7 @@ public class CwReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean(IUserApi.class);
 
             // 查询详情列表
 //        LambdaQueryWrapper<CwReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -1042,10 +1056,12 @@ public class CwReimbursementInfoService {
                     projectDetail.setProjectName("");
                 }
                 if (StringUtils.isBlank(projectDetail.getUserName())){
-                    String name = infoMapper.findUserById(projectDetail.getUserId());
-                    projectDetail.setUserName(name);
-                    String office = infoMapper.findOfficeById(projectDetail.getDeptId());
-                    projectDetail.setDeptName(office);
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
                 }
 
             });
@@ -1056,10 +1072,12 @@ public class CwReimbursementInfoService {
             List<CwReimbursementDetailInfoReport> detailInfoReports=infoMapper.getReportDetailList(id);
             detailInfoReports.stream().forEach(detailInfoReport->{
                 if (StringUtils.isBlank(detailInfoReport.getUserName())){
-                    String name = infoMapper.findUserById(detailInfoReport.getUserId());
-                    detailInfoReport.setUserName(name);
-                    String office = infoMapper.findOfficeById(detailInfoReport.getDeptId());
-                    detailInfoReport.setDeptName(office);
+                    //处理用户名
+                    String names = userApi.getNamesByIds(detailInfoReport.getUserId());
+                    detailInfoReport.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(detailInfoReport.getDeptId());
+                    detailInfoReport.setDeptName(offices);
                 }
             });
             dto.setDetailInfoReports(detailInfoReports);
@@ -1067,10 +1085,12 @@ public class CwReimbursementInfoService {
             List<CwReimbursementDetailInfoOther> otherDetailList=infoMapper.getOtherDetailList(id);
             otherDetailList.stream().forEach(other->{
                 if (StringUtils.isBlank(other.getUserName())){
-                    String name = infoMapper.findUserById(other.getUserId());
-                    other.setUserName(name);
-                    String office = infoMapper.findOfficeById(other.getDeptId());
-                    other.setDeptName(office);
+                    //处理用户名
+                    String names = userApi.getNamesByIds(other.getUserId());
+                    other.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(other.getDeptId());
+                    other.setDeptName(offices);
                 }
             });
             dto.setDetailInfoOthers(otherDetailList);
@@ -1617,6 +1637,7 @@ public class CwReimbursementInfoService {
                     dto.setDepartmentName(byId.getName());
                 }
             }
+            IUserApi userApi = SpringUtil.getBean(IUserApi.class);
             // 查询详情列表
 //        LambdaQueryWrapper<CwReimbursementDetailInfo> detailInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
 //        detailInfoLambdaQueryWrapper.eq(CwReimbursementDetailInfo::getInfoId, id);
@@ -1632,10 +1653,12 @@ public class CwReimbursementInfoService {
                     projectDetail.setProjectName("");
                 }
                 if (StringUtils.isBlank(projectDetail.getUserName())){
-                    String name = infoMapper.findUserById(projectDetail.getUserId());
-                    projectDetail.setUserName(name);
-                    String office = infoMapper.findOfficeById(projectDetail.getDeptId());
-                    projectDetail.setDeptName(office);
+                    //处理用户名
+                    String names = userApi.getNamesByIds(projectDetail.getUserId());
+                    projectDetail.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(projectDetail.getDeptId());
+                    projectDetail.setDeptName(offices);
                 }
 
             });
@@ -1646,10 +1669,12 @@ public class CwReimbursementInfoService {
             List<CwReimbursementDetailInfoReport> detailInfoReports=infoMapper.getReportDetailList(reimId);
             detailInfoReports.stream().forEach(detailInfoReport->{
                 if (StringUtils.isBlank(detailInfoReport.getUserName())){
-                    String name = infoMapper.findUserById(detailInfoReport.getUserId());
-                    detailInfoReport.setUserName(name);
-                    String office = infoMapper.findOfficeById(detailInfoReport.getDeptId());
-                    detailInfoReport.setDeptName(office);
+                    //处理用户名
+                    String names = userApi.getNamesByIds(detailInfoReport.getUserId());
+                    detailInfoReport.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(detailInfoReport.getDeptId());
+                    detailInfoReport.setDeptName(offices);
                 }
             });
             dto.setDetailInfoReports(detailInfoReports);
@@ -1657,10 +1682,12 @@ public class CwReimbursementInfoService {
             List<CwReimbursementDetailInfoOther> otherDetailList=infoMapper.getOtherDetailList(reimId);
             otherDetailList.stream().forEach(other->{
                 if (StringUtils.isBlank(other.getUserName())){
-                    String name = infoMapper.findUserById(other.getUserId());
-                    other.setUserName(name);
-                    String office = infoMapper.findOfficeById(other.getDeptId());
-                    other.setDeptName(office);
+                    //处理用户名
+                    String names = userApi.getNamesByIds(other.getUserId());
+                    other.setUserName(names);
+                    //处理部门名
+                    String offices = getOfficeNameByIds(other.getDeptId());
+                    other.setDeptName(offices);
                 }
             });
             dto.setDetailInfoOthers(otherDetailList);

+ 25 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/feign/UserApiImpl.java

@@ -152,6 +152,31 @@ public class UserApiImpl implements IUserApi {
     }
 
     @Override
+    public String getNamesByIds(String userIds) {
+        if(StrUtil.isBlank(userIds)){
+            return "";
+        }
+        // 使用逗号分隔字符串并转换为数组
+        String[] usersArray = userIds.split(",");
+
+        StringBuilder allUsersStringBuilder = new StringBuilder();
+        // 将数组转换为 List
+        List<String> usersList = Arrays.asList(usersArray);
+        List<String> openIds = userService.getNamesByIds(usersList);
+
+        for (String openId : openIds) {
+            if (allUsersStringBuilder.length() > 0) {
+                allUsersStringBuilder.append(","); // 添加逗号作为分隔符
+            }
+            allUsersStringBuilder.append(openId);
+        }
+        String names = allUsersStringBuilder.toString();
+        return names;
+    }
+
+
+
+    @Override
     public String getByIdForXXL(String id) {
         UserDTO userDTO = UserUtils.get(id);
         String s = JSON.toJSONString(userDTO);

+ 5 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/UserMapper.java

@@ -33,6 +33,11 @@ public interface UserMapper extends BaseMapper <User> {
     @InterceptorIgnore(tenantLine = "true")
     List<String> getOpenIdsByIds(@Param("ids") List<String> ids);
 
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<String> getNamesByIds(@Param("ids") List<String> ids);
+
+
     @InterceptorIgnore(tenantLine = "true")
     UserDTO getByOpenId(@Param("openId") String openId);
 

+ 10 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/mapper/xml/UserMapper.xml

@@ -652,6 +652,16 @@ select a.id, a.company_id as "companyDTO.id", a.office_id as "officeDTO.id", a.l
             office_id
         from sys_user_manage_office where user_id = #{id}
     </select>
+    <select id="getNamesByIds" resultType="java.lang.String">
+        select name from sys_user
+        where del_flag = 0
+        <if test="ids != null">
+            AND id IN
+            <foreach collection="ids" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </select>
     <select id="getOpenIdsByIds" resultType="java.lang.String">
         select open_id from sys_user
         where del_flag = 0

+ 5 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -93,6 +93,11 @@ public class UserService extends ServiceImpl<UserMapper, User> {
         return baseMapper.getOpenIdsByIds(ids);
     }
 
+    public List<String> getNamesByIds(List<String> ids) {
+        return baseMapper.getNamesByIds(ids);
+    }
+
+
 
     /**
      * 根据用户id 查询该用户会计报告的签字注师被选择次数