Browse Source

重新提交合同逻辑

ai_dev
gjh 1 month ago
parent
commit
1c4d8a7b33
  1. 12
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java
  2. 107
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java
  3. 44
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java

12
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java

@ -131,18 +131,13 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
// String comment = "同意"; // String comment = "同意";
// taskService.addComment(taskId,processInstanceId,comment);//添加审批意见 // taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
// taskService.complete(taskId, variables); // taskService.complete(taskId, variables);
// 区分添加合同信息类型 // 区分添加合同信息类型 状态,1有效,0无效
List<HuzhouContractinfo> collect = contractinfoList.stream().map(contract -> { List<HuzhouContractinfo> collect = contractinfoList.stream().map(contract -> {
contract.setStatus("1"); contract.setStatus("1");
String itemProjectId = contract.getProjectId(); String itemProjectId = contract.getProjectId();
String itemTaskName = contract.getTaskName(); String itemTaskName = contract.getTaskName();
// 存在合同信息(计划) 则插入的为实际合同信息 // 存在合同信息(计划) 则插入的为实际合同信息
Boolean flag = this.hasContractinfoByTaskName(itemProjectId, itemTaskName); contract.setFlag(this.hasContractinfoByTaskName(itemProjectId, itemTaskName) ? "实际" : "计划");
if (flag) {
contract.setFlag("实际");
} else {
contract.setFlag("计划");
}
return contract; return contract;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
saveBatch(collect); saveBatch(collect);
@ -360,9 +355,6 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid);
queryWrapper.eq(HuzhouContractinfo::getTaskName, taskName); queryWrapper.eq(HuzhouContractinfo::getTaskName, taskName);
// List<HuzhouContractinfo> rs = tmp.stream()
// .filter(item -> item.getFlag() != null && item.getFlag().contains("计划"))
// .collect(Collectors.toList());
boolean exists = this.list(queryWrapper).size() > 0; boolean exists = this.list(queryWrapper).size() > 0;
if (exists) { if (exists) {
log.info("该项目阶段填存在合同信息(计划)"); log.info("该项目阶段填存在合同信息(计划)");

107
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java

@ -77,6 +77,9 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
private HuzhouProjectinfoMoneyMapper projectinfoMoneyMapper; private HuzhouProjectinfoMoneyMapper projectinfoMoneyMapper;
@Autowired @Autowired
private RepositoryService repositoryService; private RepositoryService repositoryService;
@Autowired
private IHuzhouUploadfileinfoService uploadfileinfoService;
// private String[] names ={"可研技术审查报告(初稿)确认","可研技术审查报告(复审稿)确认","可研技术审查报告(终稿)确认","造价评估报告确认","可行性研究报告审批(发改)","合同签订","首付支付","初验阶段","终验阶段","初步设计审批"}; // private String[] names ={"可研技术审查报告(初稿)确认","可研技术审查报告(复审稿)确认","可研技术审查报告(终稿)确认","造价评估报告确认","可行性研究报告审批(发改)","合同签订","首付支付","初验阶段","终验阶段","初步设计审批"};
private String[] names ={"合同签订","首付支付","初验阶段","终验阶段","初步设计审批"}; private String[] names ={"合同签订","首付支付","初验阶段","终验阶段","初步设计审批"};
@ -358,10 +361,6 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
throw new EasyException("合同信息不能为空!"); throw new EasyException("合同信息不能为空!");
} }
contractinfoService.addContractinfo(files,contractList); contractinfoService.addContractinfo(files,contractList);
// if (CollectionUtil.isNotEmpty(contractList)) {
// contractinfoService.addContractinfo(files, contractList);
// throw new EasyException("合同信息不能为空!");
// }
} }
/** /**
@ -435,6 +434,7 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
//获取阶段名称 //获取阶段名称
HuzhouPlaninfo byId = planinfoService.getById(planinfoid); HuzhouPlaninfo byId = planinfoService.getById(planinfoid);
String taskName = StrUtil.trim(byId.getTaskName()); String taskName = StrUtil.trim(byId.getTaskName());
log.info("审批阶段为:{}",taskName);
//立项审批和合同签订 金额输入 //立项审批和合同签订 金额输入
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney();
if(approvalMoneyFieldsValue!=null){ if(approvalMoneyFieldsValue!=null){
@ -462,48 +462,10 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
} }
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo(); HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid); huzhouPlaninfo.setId(planinfoid);
// 如果审批同意,则修改合同信息
if (StrUtil.isNotBlank(contractinfoList) && "1".equals(flag)) {
ObjectMapper mapper = new ObjectMapper();
// 1.需要更新的合同信息集合
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() {
});
LambdaQueryWrapper<HuzhouContractinfo> 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<HuzhouContractinfo> dbList = contractinfoService.list(qw); updateContractInfo(files, flag, contractinfoList, taskName);
// 3. 将dbList转换为Map,方便根据projectId和taskName快速查找
Map<String, HuzhouContractinfo> 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<HuzhouContractinfo> 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)){ if("3".equals(flag)){
huzhouPlaninfo.setIsfinish("0"); huzhouPlaninfo.setIsfinish("0");
planinfoService.updateById(huzhouPlaninfo); planinfoService.updateById(huzhouPlaninfo);
@ -608,6 +570,63 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
} }
} }
private void updateContractInfo(MultipartFile[] files, String flag, String contractinfoList, String taskName) throws IOException {
if (StrUtil.isNotBlank(contractinfoList) && "1".equals(flag)) {
ObjectMapper mapper = new ObjectMapper();
// 1.需要更新的合同信息集合
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() {
});
// 2.封装条件
LambdaQueryWrapper<HuzhouContractinfo> qw = new LambdaQueryWrapper<>();
qw.eq(HuzhouContractinfo::getProjectId, contractList.get(0).getProjectId())
.eq(HuzhouContractinfo::getFlag, taskName.equals("合同签订") ? "计划" : "实际");
// 3.查询数据库中符合条件的合同信息
List<HuzhouContractinfo> 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<HashMap<String, String>> userDictByRoles = userService.getUserDictByRoles(dictName);
ArrayList<String> userIdlist = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
userIdlist.add(userid);
}
List<HuzhouContractinfo> 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 @Override
public String getProcessName(String pid) { public String getProcessName(String pid) {
String name = processinfoService.getProcessName(pid); String name = processinfoService.getProcessName(pid);

44
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouUploadfileinfoServiceImpl.java

@ -127,28 +127,30 @@ public class HuzhouUploadfileinfoServiceImpl extends ServiceImpl<HuzhouUploadfil
filePath.mkdirs(); filePath.mkdirs();
} }
String huzhouUploadfileinfos = ""; String huzhouUploadfileinfos = "";
for (MultipartFile item:files) { if (files != null){
String fileName =null; for (MultipartFile item:files) {
String originalFilename = item.getOriginalFilename(); String fileName =null;
originalFilename = CommonUtils.getFileName(originalFilename); String originalFilename = item.getOriginalFilename();
if(originalFilename.indexOf(".")!=-1){ originalFilename = CommonUtils.getFileName(originalFilename);
fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")) + "_"+ System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf(".")); if(originalFilename.indexOf(".")!=-1){
}else{ fileName = originalFilename.substring(0, originalFilename.lastIndexOf(".")) + "_"+ System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf("."));
fileName = originalFilename+ "_" + System.currentTimeMillis(); }else{
fileName = originalFilename+ "_" + System.currentTimeMillis();
}
String savePath = filePath.getPath() + File.separator + fileName;
File savefile = new File(savePath);
FileCopyUtils.copy(item.getBytes(), savefile);//保存文件
HuzhouUploadfileinfo huzhouUploadfileinfo = new HuzhouUploadfileinfo();
huzhouUploadfileinfo.setDocumentName(originalFilename);//未加工过的文件名称
huzhouUploadfileinfo.setDocumentType(item.getContentType());
huzhouUploadfileinfo.setDocumentPath(savePath);
huzhouUploadfileinfo.setStatus("1");
huzhouUploadfileinfo.setStage(stage);
huzhouUploadfileinfo.setSize(item.getSize());
huzhouUploadfileinfo.setProjectid(projectid);
this.save(huzhouUploadfileinfo);
huzhouUploadfileinfos=huzhouUploadfileinfo.getId()+","+huzhouUploadfileinfos;
} }
String savePath = filePath.getPath() + File.separator + fileName;
File savefile = new File(savePath);
FileCopyUtils.copy(item.getBytes(), savefile);//保存文件
HuzhouUploadfileinfo huzhouUploadfileinfo = new HuzhouUploadfileinfo();
huzhouUploadfileinfo.setDocumentName(originalFilename);//未加工过的文件名称
huzhouUploadfileinfo.setDocumentType(item.getContentType());
huzhouUploadfileinfo.setDocumentPath(savePath);
huzhouUploadfileinfo.setStatus("1");
huzhouUploadfileinfo.setStage(stage);
huzhouUploadfileinfo.setSize(item.getSize());
huzhouUploadfileinfo.setProjectid(projectid);
this.save(huzhouUploadfileinfo);
huzhouUploadfileinfos=huzhouUploadfileinfo.getId()+","+huzhouUploadfileinfos;
} }
} }

Loading…
Cancel
Save