|
@@ -1,5 +1,6 @@
|
|
|
package com.jeeplus.test.reimbursement.reimbursementInfo.service;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
@@ -20,11 +21,20 @@ import com.jeeplus.sys.utils.DictUtils;
|
|
|
import com.jeeplus.sys.utils.StringUtils;
|
|
|
import com.jeeplus.sys.utils.UserUtils;
|
|
|
import com.jeeplus.test.cw.common.CommonApi;
|
|
|
+import com.jeeplus.test.cw.projectRecords.domain.CwProjectRecords;
|
|
|
+import com.jeeplus.test.cw.projectRecords.service.CwProjectRecordsService;
|
|
|
import com.jeeplus.test.cw.reimbursementApproval.approvalInfo.domain.*;
|
|
|
import com.jeeplus.test.manytomany.domain.Student;
|
|
|
import com.jeeplus.test.mould.service.SerialnumTplService;
|
|
|
import com.jeeplus.test.oss.domain.WorkAttachment;
|
|
|
import com.jeeplus.test.oss.mapper.OssServiceMapper;
|
|
|
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramProjectListInfo;
|
|
|
+import com.jeeplus.test.program.configuration.projectList.domain.ProgramReportNo;
|
|
|
+import com.jeeplus.test.program.configuration.projectList.mapper.ProgramReportNoMapper;
|
|
|
+import com.jeeplus.test.program.configuration.projectList.mapper.ProjectListMapper;
|
|
|
+import com.jeeplus.test.program.configuration.projectList.service.ProjectListService;
|
|
|
+import com.jeeplus.test.projectRecords.domain.Project;
|
|
|
+import com.jeeplus.test.projectRecords.service.ProjectService;
|
|
|
import com.jeeplus.test.reimbursement.reimbursementInfo.domain.*;
|
|
|
import com.jeeplus.test.reimbursement.reimbursementInfo.mapper.*;
|
|
|
import com.jeeplus.test.reimbursement.reimbursementInfo.service.dto.QueryListDto;
|
|
@@ -88,6 +98,11 @@ public class ReimbursementInfoService {
|
|
|
@Autowired
|
|
|
private TaskService taskService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ProjectListMapper projectListMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProgramReportNoMapper programReportNoMapper;
|
|
|
/**
|
|
|
* 列表查询
|
|
|
*/
|
|
@@ -180,10 +195,61 @@ public class ReimbursementInfoService {
|
|
|
item.setAuditUserIds(flowTaskService.getTaskAuditUsers(item.getTaskId())); // 获取数据审核人
|
|
|
}
|
|
|
}
|
|
|
+ if (StringUtils.isNotBlank(item.getSourceType()) && "1".equals(item.getSourceType())) { //项目报销
|
|
|
+ if (StringUtils.isNotBlank(item.getProjectId())) {
|
|
|
+ String proName = selectProjectByIds(item.getProjectId());
|
|
|
+ item.setProjectName(proName);
|
|
|
+ String reportNo = selectReportNoByIds(item.getProjectId());
|
|
|
+ item.setReportNumber(reportNo);
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
return pageList;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据项目id查询项目名称
|
|
|
+ * @param ids 以逗号分隔的多个项目id字符串
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String selectProjectByIds(String ids) {
|
|
|
+ String projectName = "";
|
|
|
+ String[] split = ids.split(",");
|
|
|
+ List<String> idList = Arrays.asList(split);
|
|
|
+ List<ProgramProjectListInfo> list = projectListMapper.selectList(new LambdaQueryWrapper<ProgramProjectListInfo>().in(ProgramProjectListInfo::getId, idList));
|
|
|
+ if (CollectionUtil.isNotEmpty(list)) {
|
|
|
+ projectName = list.stream().map(ProgramProjectListInfo::getName).collect(Collectors.joining(","));
|
|
|
+ }
|
|
|
+ return projectName;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据项目id查询报告号
|
|
|
+ * @param ids 以逗号分隔的多个项目id字符串
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String selectReportNoByIds(String ids) {
|
|
|
+ List<String> reportNoList = new ArrayList<>();
|
|
|
+ String reportNo = "";
|
|
|
+ String[] split = ids.split(",");
|
|
|
+ List<String> idList = Arrays.asList(split);
|
|
|
+ List<ProgramProjectListInfo> list = projectListMapper.selectList(new LambdaQueryWrapper<ProgramProjectListInfo>().in(ProgramProjectListInfo::getId, idList));
|
|
|
+ if (CollectionUtil.isNotEmpty(list)) {
|
|
|
+ list.stream().forEach(item -> {
|
|
|
+ ProgramReportNo programReportNo = programReportNoMapper.selectOne(new LambdaQueryWrapper<ProgramReportNo>().eq(ProgramReportNo::getProgramId, item.getId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(programReportNo) && StringUtils.isNotBlank(programReportNo.getReportNo())) {
|
|
|
+ reportNoList.add(programReportNo.getReportNo());
|
|
|
+ } else {
|
|
|
+ reportNoList.add("无");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (CollectionUtil.isNotEmpty(reportNoList)) {
|
|
|
+ reportNo = reportNoList.stream().collect(Collectors.joining(","));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return reportNo;
|
|
|
+ }
|
|
|
+
|
|
|
public ReimbursementInfo save(SaveInfoDto dto) throws Exception{
|
|
|
// 获取当前登录人信息
|
|
|
UserDTO userDTO = UserUtils.getCurrentUserDTO();
|
|
@@ -408,7 +474,19 @@ public class ReimbursementInfoService {
|
|
|
}
|
|
|
}
|
|
|
// 项目报销详情
|
|
|
- dto.setDetailInfos(infoMapper.getDetailList(id));
|
|
|
+ List<ReimbursementDetailInfo> detailList = infoMapper.getDetailList(id);
|
|
|
+ detailList.stream().forEach(projectDetail -> {
|
|
|
+ if (StringUtils.isNotBlank(projectDetail.getProjectId())) {
|
|
|
+ String proName = selectProjectByIds(projectDetail.getProjectId());
|
|
|
+ projectDetail.setProjectName(proName);
|
|
|
+ String reportNo = selectReportNoByIds(projectDetail.getProjectId());
|
|
|
+ projectDetail.setReportNumber(reportNo);
|
|
|
+ } else {
|
|
|
+ projectDetail.setProjectName("");
|
|
|
+ projectDetail.setReportNumber("");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ dto.setDetailInfos(detailList);
|
|
|
// 合同报销详情
|
|
|
dto.setDetailInfoContracts(infoMapper.getContractDetailList(id));
|
|
|
// 其他报销
|
|
@@ -762,4 +840,22 @@ public class ReimbursementInfoService {
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+ public List<ProgramProjectListInfo> queryByProIds(String ids) {
|
|
|
+ String[] split = ids.split(",");
|
|
|
+ List<String> idList = Arrays.asList(split);
|
|
|
+ List<ProgramProjectListInfo> list = projectListMapper.selectList(new LambdaQueryWrapper<ProgramProjectListInfo>().in(ProgramProjectListInfo::getId, idList));
|
|
|
+ if (CollectionUtil.isNotEmpty(list)) {
|
|
|
+ list.stream().forEach(item -> {
|
|
|
+ ProgramReportNo programReportNo = programReportNoMapper.selectOne(new LambdaQueryWrapper<ProgramReportNo>().eq(ProgramReportNo::getProgramId, item.getId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(programReportNo) && StringUtils.isNotBlank(programReportNo.getReportNo())) {
|
|
|
+ item.setReportNo(programReportNo.getReportNo());
|
|
|
+ } else {
|
|
|
+ item.setReportNo("无");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|