Browse Source

新增合同审批逻辑修改

master
gjh 14 hours ago
parent
commit
50b3a0142d
  1. 13
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java
  2. 51
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java

13
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java

@ -64,7 +64,10 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
@Autowired @Autowired
private ProjectManagerService projectManagerService; private ProjectManagerService projectManagerService;
@Override @Override
public void submitChangeFieldManage(MultipartFile[] multipartFiles, String projectid, String fieldValue, HuzhouProjectinfo newProjectinfo) throws Exception { public void submitChangeFieldManage(MultipartFile[] multipartFiles,
String projectid,
String fieldValue,
HuzhouProjectinfo newProjectinfo) throws Exception {
String id = UUID.randomUUID().toString().replace("-",""); String id = UUID.randomUUID().toString().replace("-","");
String groupid = UUID.randomUUID().toString().replace("-",""); String groupid = UUID.randomUUID().toString().replace("-","");
String newValue = ""; String newValue = "";
@ -83,15 +86,15 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
//获取旧值 //获取旧值
String oldvalue =""; String oldvalue ="";
HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo(); HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo();
HuzhouProjectinfo projectinfo = projectinfoMapper.selectById(projectid); HuzhouProjectinfo projectinfo = projectinfoMapper.selectById(projectid);
//projectinfo是null说明是子项目 //projectinfo是null说明是子项目
if(projectinfo==null){ if(projectinfo==null){
HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(projectid); HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(projectid);
BeanUtils.copyProperties(huzhouSubProjectinfo,huzhouProjectinfo); BeanUtils.copyProperties(huzhouSubProjectinfo,huzhouProjectinfo);
projectinfo = huzhouProjectinfo; projectinfo = huzhouProjectinfo;
} }
//如果是修改金额 //如果是修改金额
if("Money".equals(fieldValue)){ if("Money".equals(fieldValue)){
//获取字段配置信息 //获取字段配置信息
@ -174,6 +177,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
}else{ }else{
String projectId = projectinfo.getId(); String projectId = projectinfo.getId();
ProjectManager projectManager = projectManagerService.getProjectManagerInfo(projectId); ProjectManager projectManager = projectManagerService.getProjectManagerInfo(projectId);
// 如果是修改项目负责人
if("manager".equals(fieldValue)){ if("manager".equals(fieldValue)){
projectinfo.setManager(projectManager.getManager()); projectinfo.setManager(projectManager.getManager());
projectinfo.setManagerPhone(projectManager.getPhone()); projectinfo.setManagerPhone(projectManager.getPhone());
@ -200,7 +204,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
newValue = s.split("=")[1]; newValue = s.split("=")[1];
} }
} }
//保存修改记录 //保存项目负责人修改记录
if("manager".equals(fieldValue)){ if("manager".equals(fieldValue)){
oldvalue=projectinfo.getManager()+"("+projectinfo.getManagerPhone()+")"; oldvalue=projectinfo.getManager()+"("+projectinfo.getManagerPhone()+")";
newValue=newProjectinfo.getManager()+"("+newProjectinfo.getManagerPhone()+")"; newValue=newProjectinfo.getManager()+"("+newProjectinfo.getManagerPhone()+")";
@ -217,6 +221,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
queryWrapper1.eq(HuzhouChangefieldmanage::getFieldValue,fieldValue); queryWrapper1.eq(HuzhouChangefieldmanage::getFieldValue,fieldValue);
HuzhouChangefieldmanage huzhouChangefieldmanage = changefieldmanageMapper.selectOne(queryWrapper1); HuzhouChangefieldmanage huzhouChangefieldmanage = changefieldmanageMapper.selectOne(queryWrapper1);
String isapproval = huzhouChangefieldmanage.getIsapproval(); String isapproval = huzhouChangefieldmanage.getIsapproval();
//是审批就发起审批流程 //是审批就发起审批流程
if("1".equals(isapproval)){ if("1".equals(isapproval)){
huzhouFieldchangehistory.setStatus("1"); huzhouFieldchangehistory.setStatus("1");

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

@ -33,6 +33,7 @@ import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task; import org.activiti.engine.task.Task;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -41,6 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -108,6 +110,7 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
List<HuzhouContractinfo> contractList) throws IOException { List<HuzhouContractinfo> contractList) throws IOException {
// 判断是否为二次上传,是则清楚原有记录 // 判断是否为二次上传,是则清楚原有记录
hasOldContractInfo(contractList); hasOldContractInfo(contractList);
//立项审批和合同签订 金额输入 //立项审批和合同签订 金额输入
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney();
if(approvalMoneyFieldsValue!=null){ if(approvalMoneyFieldsValue!=null){
@ -462,23 +465,43 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
// 如果审批同意,则修改合同信息 // 如果审批同意,则修改合同信息
if (StrUtil.isNotBlank(contractinfoList) && "1".equals(flag)) { if (StrUtil.isNotBlank(contractinfoList) && "1".equals(flag)) {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
// 1.需要更新的合同信息集合
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() { List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() {
}); });
// 1.遍历contractList并针对每个元素更新数据库中的记录 LambdaQueryWrapper<HuzhouContractinfo> qw = new LambdaQueryWrapper<>();
for (HuzhouContractinfo contract : contractList) { 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);
// 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<>(); LambdaUpdateWrapper<HuzhouContractinfo> updateWrapper = new LambdaUpdateWrapper<>();
// 2.根据阶段不同执行对应的更新操作 updateWrapper.eq(HuzhouContractinfo::getProjectId, contractinfo.getProjectId())
if (taskName.equals("合同签订")) { .eq(HuzhouContractinfo::getTaskName, contractinfo.getTaskName())
updateWrapper.eq(HuzhouContractinfo::getProjectId, contract.getProjectId()) .eq(HuzhouContractinfo::getPayDate, contractinfo.getPayDate())
.eq(HuzhouContractinfo::getTaskName, contract.getTaskName()) .eq(HuzhouContractinfo::getFlag, taskName.equals("合同签订") ? "计划" : "实际");
.eq(HuzhouContractinfo::getFlag, "计划"); contractinfoService.update(contractDb, updateWrapper);
} else { log.info("更新合同信息成功!--{}",key);
updateWrapper.eq(HuzhouContractinfo::getProjectId, contract.getProjectId()) }else {
.eq(HuzhouContractinfo::getTaskName, contract.getTaskName()) //contractinfoService.addContractinfo(files, contractList);
.eq(HuzhouContractinfo::getFlag, "实际"); }
}
contract.setEditDate(new Date());
contractinfoService.update(contract, updateWrapper);
} }
} }
if("3".equals(flag)){ if("3".equals(flag)){

Loading…
Cancel
Save