Browse Source

新增二次上传合同信息逻辑

master
gjh 2 days ago
parent
commit
d80b7dad05
  1. 7
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java
  2. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java
  3. 81
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java

7
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java

@ -97,8 +97,11 @@ public class HuzhouPlaninfofileController {
@RequestParam(value = "modifyNum",required = false) String modifyNum, @RequestParam(value = "modifyNum",required = false) String modifyNum,
@RequestParam(value = "adviceFile",required = false) MultipartFile[] adviceFiles, @RequestParam(value = "adviceFile",required = false) MultipartFile[] adviceFiles,
@RequestParam(value = "approvalMoneyFieldsValue" ,required = false) String approvalMoneyFieldsValue, @RequestParam(value = "approvalMoneyFieldsValue" ,required = false) String approvalMoneyFieldsValue,
@RequestParam(value = "contractMoneyFieldsValue" ,required = false) String contractMoneyFieldsValue) throws Exception { @RequestParam(value = "contractMoneyFieldsValue" ,required = false) String contractMoneyFieldsValue,
planinfofileService.approvePlanFile(files,taskId,flag,planinfoid,comment,modifyNum,adviceFiles,approvalMoneyFieldsValue,contractMoneyFieldsValue); @RequestParam(value = "contractinfoList", required = false) String contractinfoList) throws Exception {
planinfofileService.approvePlanFile(files,taskId,flag,planinfoid,comment,modifyNum,adviceFiles,
approvalMoneyFieldsValue,
contractMoneyFieldsValue,contractinfoList);
return Result.ok(); return Result.ok();

3
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java

@ -19,7 +19,8 @@ public interface IHuzhouPlaninfofileService extends IService<HuzhouPlaninfofile>
String contractMoneyFieldsValue, String contractMoneyFieldsValue,
List<HuzhouContractinfo> contractList) throws IOException; List<HuzhouContractinfo> contractList) throws IOException;
void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles,String approvalMoneyFieldsValue,String contractMoneyFieldsValue) throws IOException; void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles,String approvalMoneyFieldsValue,
String contractMoneyFieldsValue,String contractinfoList) throws IOException;
String getProcessName(String pid); String getProcessName(String pid);

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

@ -24,6 +24,7 @@ import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService; import com.easy.admin.sys.service.SysDictService;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.FlowElement; import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.UserTask; import org.activiti.bpmn.model.UserTask;
@ -35,6 +36,7 @@ import org.activiti.engine.task.Task;
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;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
@ -43,6 +45,7 @@ import java.util.stream.Collectors;
@Service @Service
@Transactional @Transactional
@Slf4j
public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofileMapper, HuzhouPlaninfofile> implements IHuzhouPlaninfofileService { public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofileMapper, HuzhouPlaninfofile> implements IHuzhouPlaninfofileService {
@Autowired @Autowired
private IHuzhouPlaninfoService planinfoService; private IHuzhouPlaninfoService planinfoService;
@ -100,7 +103,11 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
} }
@Override @Override
public void submitPlanUploadFile(MultipartFile[] files, String planinfoid,String approvalMoneyFieldsValue,String contractMoneyFieldsValue,List<HuzhouContractinfo> contractList) throws IOException { public void submitPlanUploadFile(MultipartFile[] files, String planinfoid,String approvalMoneyFieldsValue,
String contractMoneyFieldsValue,
List<HuzhouContractinfo> contractList) throws IOException {
// 判断是否为二次上传,是则清楚原有记录
hasOldContractInfo(contractList);
//立项审批和合同签订 金额输入 //立项审批和合同签订 金额输入
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney();
if(approvalMoneyFieldsValue!=null){ if(approvalMoneyFieldsValue!=null){
@ -354,6 +361,31 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
// } // }
} }
/**
* 判断是否为二次上传合同信息
* @param contractList 合同信息集合
*/
private void hasOldContractInfo(List<HuzhouContractinfo> contractList) {
// 获取合同信息集合中的第一个元素即可判断是否为二次提交
HuzhouContractinfo contractinfo = contractList.get(0);
LambdaQueryWrapper<HuzhouContractinfo> qw = new LambdaQueryWrapper<>();
qw.eq(HuzhouContractinfo::getProjectId,contractinfo.getProjectId())
.eq(HuzhouContractinfo::getTaskName,contractinfo.getTaskName())
.eq(HuzhouContractinfo::getFlag,"实际");
List<HuzhouContractinfo> tmp = contractinfoService.list(qw);
if (tmp.size()>0){
// 清楚原有合同信息(实际)
LambdaQueryWrapper<HuzhouContractinfo> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(HuzhouContractinfo::getProjectId, contractinfo.getProjectId())
.eq(HuzhouContractinfo::getTaskName, contractinfo.getTaskName())
.eq(HuzhouContractinfo::getFlag,"实际");
boolean success = contractinfoService.remove(deleteWrapper);
if(success){
log.info("删除原有合同信息(实际)成功!");
}
}
}
/** /**
* 校验项目阶段是否存在 合同信息(计划) 如果存在则需要填写 合同信息(实际) * 校验项目阶段是否存在 合同信息(计划) 如果存在则需要填写 合同信息(实际)
* @param taskName * @param taskName
@ -378,10 +410,28 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
} }
} }
/**
*
* @param files
* @param taskId
* @param flag 0:拒绝 1:同意 2:撤回 3:作废
* @param planinfoid
* @param comment
* @param modifyNum
* @param adviceFiles
* @param approvalMoneyFieldsValue
* @param contractMoneyFieldsValue
* @param contractinfoList 合同信息列表
* @throws IOException
*/
@Override @Override
public void approvePlanFile(MultipartFile[] files, String taskId, String flag, public void approvePlanFile(MultipartFile[] files, String taskId, String flag,
String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles, String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles,
String approvalMoneyFieldsValue,String contractMoneyFieldsValue) throws IOException { String approvalMoneyFieldsValue,String contractMoneyFieldsValue,
String contractinfoList) throws IOException {
//获取阶段名称
HuzhouPlaninfo byId = planinfoService.getById(planinfoid);
String taskName = StrUtil.trim(byId.getTaskName());
//立项审批和合同签订 金额输入 //立项审批和合同签订 金额输入
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney();
if(approvalMoneyFieldsValue!=null){ if(approvalMoneyFieldsValue!=null){
@ -393,6 +443,7 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
huzhouProjectinfoMoney = mapper.readValue(contractMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); huzhouProjectinfoMoney = mapper.readValue(contractMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){});
projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney); projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney);
} }
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid); queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid);
@ -408,7 +459,28 @@ 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();
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() {
});
// 1.遍历contractList并针对每个元素更新数据库中的记录
for (HuzhouContractinfo contract : contractList) {
LambdaUpdateWrapper<HuzhouContractinfo> updateWrapper = new LambdaUpdateWrapper<>();
// 2.根据阶段不同执行对应的更新操作
if (taskName.equals("合同签订")) {
updateWrapper.eq(HuzhouContractinfo::getProjectId, contract.getProjectId())
.eq(HuzhouContractinfo::getTaskName, contract.getTaskName())
.eq(HuzhouContractinfo::getFlag, "计划");
} else {
updateWrapper.eq(HuzhouContractinfo::getProjectId, contract.getProjectId())
.eq(HuzhouContractinfo::getTaskName, contract.getTaskName())
.eq(HuzhouContractinfo::getFlag, "实际");
}
contract.setEditDate(new Date());
contractinfoService.update(contract, updateWrapper);
}
}
if("3".equals(flag)){ if("3".equals(flag)){
huzhouPlaninfo.setIsfinish("0"); huzhouPlaninfo.setIsfinish("0");
planinfoService.updateById(huzhouPlaninfo); planinfoService.updateById(huzhouPlaninfo);
@ -450,8 +522,6 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
} }
} }
if(processInstance==null&&"1".equals(flag)){ if(processInstance==null&&"1".equals(flag)){
HuzhouPlaninfo byId = planinfoService.getById(planinfoid);
String taskName = StrUtil.trim(byId.getTaskName());
if("可研报告送审稿编制".equals(taskName)){ if("可研报告送审稿编制".equals(taskName)){
//查询是否已有完成的流程。有两个以上 //查询是否已有完成的流程。有两个以上
queryWrapper.clear(); queryWrapper.clear();
@ -472,7 +542,6 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
throw new EasyException("未找到造价评估报告确认阶段"); throw new EasyException("未找到造价评估报告确认阶段");
} }
HuzhouPlaninfo planinfo1 = list.get(0); HuzhouPlaninfo planinfo1 = list.get(0);
String planinfo1Id = planinfo1.getId(); String planinfo1Id = planinfo1.getId();
//获取项目上级指导室 //获取项目上级指导室

Loading…
Cancel
Save