Browse Source

新增合同审批逻辑修改

master
gjh 10 hours ago
parent
commit
50b3a0142d
  1. 13
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java
  2. 47
      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
private ProjectManagerService projectManagerService;
@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 groupid = UUID.randomUUID().toString().replace("-","");
String newValue = "";
@ -83,15 +86,15 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
//获取旧值
String oldvalue ="";
HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo();
HuzhouProjectinfo projectinfo = projectinfoMapper.selectById(projectid);
//projectinfo是null说明是子项目
if(projectinfo==null){
HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(projectid);
BeanUtils.copyProperties(huzhouSubProjectinfo,huzhouProjectinfo);
projectinfo = huzhouProjectinfo;
}
//如果是修改金额
if("Money".equals(fieldValue)){
//获取字段配置信息
@ -174,6 +177,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
}else{
String projectId = projectinfo.getId();
ProjectManager projectManager = projectManagerService.getProjectManagerInfo(projectId);
// 如果是修改项目负责人
if("manager".equals(fieldValue)){
projectinfo.setManager(projectManager.getManager());
projectinfo.setManagerPhone(projectManager.getPhone());
@ -200,7 +204,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
newValue = s.split("=")[1];
}
}
//保存修改记录
//保存项目负责人修改记录
if("manager".equals(fieldValue)){
oldvalue=projectinfo.getManager()+"("+projectinfo.getManagerPhone()+")";
newValue=newProjectinfo.getManager()+"("+newProjectinfo.getManagerPhone()+")";
@ -217,6 +221,7 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
queryWrapper1.eq(HuzhouChangefieldmanage::getFieldValue,fieldValue);
HuzhouChangefieldmanage huzhouChangefieldmanage = changefieldmanageMapper.selectOne(queryWrapper1);
String isapproval = huzhouChangefieldmanage.getIsapproval();
//是审批就发起审批流程
if("1".equals(isapproval)){
huzhouFieldchangehistory.setStatus("1");

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

Loading…
Cancel
Save