diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java index 6114d63..9783393 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java @@ -131,18 +131,13 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl collect = contractinfoList.stream().map(contract -> { contract.setStatus("1"); String itemProjectId = contract.getProjectId(); String itemTaskName = contract.getTaskName(); // 存在合同信息(计划) 则插入的为实际合同信息 - Boolean flag = this.hasContractinfoByTaskName(itemProjectId, itemTaskName); - if (flag) { - contract.setFlag("实际"); - } else { - contract.setFlag("计划"); - } + contract.setFlag(this.hasContractinfoByTaskName(itemProjectId, itemTaskName) ? "实际" : "计划"); return contract; }).collect(Collectors.toList()); saveBatch(collect); @@ -360,9 +355,6 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); queryWrapper.eq(HuzhouContractinfo::getTaskName, taskName); -// List rs = tmp.stream() -// .filter(item -> item.getFlag() != null && item.getFlag().contains("计划")) -// .collect(Collectors.toList()); boolean exists = this.list(queryWrapper).size() > 0; if (exists) { log.info("该项目阶段填存在合同信息(计划)"); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java index f86159d..a274c3d 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java @@ -77,6 +77,9 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl contractList = mapper.readValue(contractinfoList, new TypeReference>() { - }); - LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); - qw.eq(HuzhouContractinfo::getProjectId, contractList.get(0).getProjectId()) - .eq(HuzhouContractinfo::getTaskName, contractList.get(0).getTaskName()) - // 根据taskName动态设置Flag - .eq(HuzhouContractinfo::getFlag, taskName.equals("合同签订") ? "计划" : "实际"); - // 2.查询数据库中符合条件的合同信息 - List dbList = contractinfoService.list(qw); + // 判断是否更新合同信息 + updateContractInfo(files, flag, contractinfoList, taskName); - // 3. 将dbList转换为Map,方便根据projectId和taskName快速查找 - Map dbMap = dbList.stream() - .collect(Collectors.toMap(h -> h.getProjectId() + "_" + h.getTaskName()+ "_" + h.getPayDate().toString(), - Function.identity(), - (oldValue, newValue) -> newValue)); - // 4.进行更新contractList 的属性更新到dbList中 - for (HuzhouContractinfo contractinfo : contractList) { - String key = contractinfo.getProjectId() + "_" + contractinfo.getTaskName()+ "_" +contractinfo.getPayDate().toString(); - HuzhouContractinfo contractDb = dbMap.get(key); - - if (contractDb != null) { - contractDb.setEditDate(new Date()); - BeanUtils.copyProperties(contractinfo, contractDb); - // 更新数据库中的记录 - // 创建更新条件,基于projectId和taskName更新 - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(HuzhouContractinfo::getProjectId, contractinfo.getProjectId()) - .eq(HuzhouContractinfo::getTaskName, contractinfo.getTaskName()) - .eq(HuzhouContractinfo::getPayDate, contractinfo.getPayDate()) - .eq(HuzhouContractinfo::getFlag, taskName.equals("合同签订") ? "计划" : "实际"); - contractinfoService.update(contractDb, updateWrapper); - log.info("更新合同信息成功!--{}",key); - }else { - //contractinfoService.addContractinfo(files, contractList); - } - } - } if("3".equals(flag)){ huzhouPlaninfo.setIsfinish("0"); planinfoService.updateById(huzhouPlaninfo); @@ -608,6 +570,63 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl contractList = mapper.readValue(contractinfoList, new TypeReference>() { + }); + // 2.封装条件 + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(HuzhouContractinfo::getProjectId, contractList.get(0).getProjectId()) + .eq(HuzhouContractinfo::getFlag, taskName.equals("合同签订") ? "计划" : "实际"); + // 3.查询数据库中符合条件的合同信息 + List dbList = contractinfoService.list(qw); + // 4.先删除原有数据再新增 + if (dbList.size() > 0) { + contractinfoService.removeBatchByIds(dbList); + log.info("删除原有合同信息:{}", dbList); + } + String projectid = contractList.get(0).getProjectId(); + uploadfileinfoService.saveFileAndFileInfo(files, projectid, "4"); + + HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectid); + String superLeader = ""; + //如果项目信息为空说明是子项目 + if(huzhouProjectinfo==null){ + HuzhouSubProjectinfo bySubId = subProjectinfoService.getById(projectid); + superLeader = bySubId.getSuperLeader(); + }else { + superLeader=huzhouProjectinfo.getSuperLeader(); + } + //获取上级指导室中文名称 + SysDict dict = sysDictService.getDictByCode("superLeader", superLeader); + String dictName = dict.getName(); + //上级指导室中文名称查询角色有哪些人 + List> userDictByRoles = userService.getUserDictByRoles(dictName); + ArrayList userIdlist = new ArrayList<>(); + if(userDictByRoles==null||userDictByRoles.size()==0){ + String error = "任务牵头处室"+dictName+"负责人未找到"; + throw new EasyException(error); + } + for (HashMap map:userDictByRoles + ) { + String userid = map.get("value"); + userIdlist.add(userid); + } + List collectForSave = contractList.stream().map(contract -> { + contract.setStatus("1"); + String itemProjectId = contract.getProjectId(); + String itemTaskName = contract.getTaskName(); + // 存在合同信息(计划) 则插入的为实际合同信息 + contract.setFlag(contractinfoService.hasContractinfoByTaskName(itemProjectId, itemTaskName) ? "实际" : "计划"); + return contract; + }).collect(Collectors.toList()); + contractinfoService.saveBatch(collectForSave); + log.info("新增原有合同信息:{}", collectForSave); + } + } + @Override public String getProcessName(String pid) { String name = processinfoService.getProcessName(pid); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java index 026f70c..13bd450 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java @@ -127,28 +127,30 @@ public class HuzhouUploadfileinfoServiceImpl extends ServiceImpl