diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java index b922fd6..52d7854 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java +++ b/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 = "adviceFile",required = false) MultipartFile[] adviceFiles, @RequestParam(value = "approvalMoneyFieldsValue" ,required = false) String approvalMoneyFieldsValue, - @RequestParam(value = "contractMoneyFieldsValue" ,required = false) String contractMoneyFieldsValue) throws Exception { - planinfofileService.approvePlanFile(files,taskId,flag,planinfoid,comment,modifyNum,adviceFiles,approvalMoneyFieldsValue,contractMoneyFieldsValue); + @RequestParam(value = "contractMoneyFieldsValue" ,required = false) String 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(); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java index 1b04bfb..ff5f162 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java @@ -19,7 +19,8 @@ public interface IHuzhouPlaninfofileService extends IService String contractMoneyFieldsValue, List 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); 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 a3dda79..5275cda 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 @@ -24,6 +24,7 @@ import com.easy.admin.sys.model.SysDict; import com.easy.admin.sys.service.SysDictService; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.FlowElement; 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.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -43,6 +45,7 @@ import java.util.stream.Collectors; @Service @Transactional +@Slf4j public class HuzhouPlaninfofileServiceImpl extends ServiceImpl implements IHuzhouPlaninfofileService { @Autowired private IHuzhouPlaninfoService planinfoService; @@ -100,7 +103,11 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl contractList) throws IOException { + public void submitPlanUploadFile(MultipartFile[] files, String planinfoid,String approvalMoneyFieldsValue, + String contractMoneyFieldsValue, + List contractList) throws IOException { + // 判断是否为二次上传,是则清楚原有记录 + hasOldContractInfo(contractList); //立项审批和合同签订 金额输入 HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); if(approvalMoneyFieldsValue!=null){ @@ -354,6 +361,31 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl contractList) { + // 获取合同信息集合中的第一个元素即可判断是否为二次提交 + HuzhouContractinfo contractinfo = contractList.get(0); + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.eq(HuzhouContractinfo::getProjectId,contractinfo.getProjectId()) + .eq(HuzhouContractinfo::getTaskName,contractinfo.getTaskName()) + .eq(HuzhouContractinfo::getFlag,"实际"); + List tmp = contractinfoService.list(qw); + if (tmp.size()>0){ + // 清楚原有合同信息(实际) + LambdaQueryWrapper 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 @@ -378,10 +410,28 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl(){}); projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney); } + WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid); @@ -408,7 +459,28 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl contractList = mapper.readValue(contractinfoList, new TypeReference>() { + }); + // 1.遍历contractList并针对每个元素更新数据库中的记录 + for (HuzhouContractinfo contract : contractList) { + LambdaUpdateWrapper 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)){ huzhouPlaninfo.setIsfinish("0"); planinfoService.updateById(huzhouPlaninfo); @@ -450,8 +522,6 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl