diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouContractinfoController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouContractinfoController.java index 4beae34..9753423 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouContractinfoController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouContractinfoController.java @@ -10,15 +10,12 @@ import com.easy.admin.modules.huzhou.service.IHuzhouContractinfoService; import com.easy.admin.modules.huzhou.service.IHuzhouPlaninfoService; import com.easy.admin.modules.huzhou.service.IHuzhouProjectinfoService; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; -import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; -import java.util.ArrayList; import java.util.List; @RestController @@ -47,15 +44,27 @@ public class HuzhouContractinfoController { Page pageList = contractinfoService.getContractinfoPageList(projectinfo, pageNo, pageSize); return Result.ok(pageList); } - + // 合同信息(计划) @PostMapping(value = "/addContractinfo") public Result addContractinfo(@RequestParam(value = "file",required = false) MultipartFile[] file, String contractinfoList) throws IOException { ObjectMapper mapper = new ObjectMapper(); List contractList = mapper.readValue(contractinfoList, new TypeReference>(){}); contractinfoService.addContractinfo(file,contractList); - return Result.ok("上传成功"); + return Result.ok("上传合同信息(计划)成功"); + } + + + @PostMapping(value = "/addRealContractinfo") + public Result addRealContractinfo(@RequestParam(value = "file",required = false) MultipartFile[] file, String contractinfoList) throws IOException { + ObjectMapper mapper = new ObjectMapper(); + List contractList = mapper.readValue(contractinfoList, new TypeReference>(){}); + + contractinfoService.addRealContractinfo(file,contractList); + return Result.ok("上传合同信息(实际)成功"); } + + @PostMapping(value = "/approvalContractinfo") public Result approvalContractinfo(@RequestParam(value = "file",required = false) MultipartFile[] file, @RequestParam String taskId, @@ -79,12 +88,27 @@ public class HuzhouContractinfoController { Boolean exitTaskNameInPlanInfo = planinfoService.isExitTaskNameInPlanInfo(projectid, taskName); return Result.ok(exitTaskNameInPlanInfo); } + // 合同信息(计划) @GetMapping("/getContractinfoByProjectId") public Result getContractinfoByProjectId(String projectid){ List contractinfoByprojectId = contractinfoService.getContractinfoByprojectId(projectid); return Result.ok(contractinfoByprojectId); } + + @GetMapping("/getRealContractinfoByProjectId") + public Result getRealContractinfoByProjectId(String projectid){ + List contractinfoByprojectId = contractinfoService.getRealContractinfoByprojectId(projectid); + + return Result.ok(contractinfoByprojectId); + } + // 该阶段是否存在合同计划 + @GetMapping("/hasContractinfoByTaskName") + public Result hasContractinfo(String projectid,String taskName){ + Boolean flag = contractinfoService.hasContractinfoByTaskName(projectid,taskName); + return Result.ok(flag); + } + @PostMapping("/modifyContractinfo") public Result modifyContractinfo(@RequestParam(value = "file",required = false) MultipartFile[] file, String contractinfoList) throws IOException { ObjectMapper mapper = new ObjectMapper(); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfo.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfo.java index c8ceb34..941b7df 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfo.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfo.java @@ -61,6 +61,9 @@ public class HuzhouContractinfo extends BaseEntity implements Serializable { private Double centralMoney; private String status; private String groupId; - + /** + * 计划实际标识符 + */ + private String flag; } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouContractinfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouContractinfoService.java index ee95409..8d2b591 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouContractinfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouContractinfoService.java @@ -21,7 +21,7 @@ public interface IHuzhouContractinfoService extends IService Integer pageSize); void addContractinfo(MultipartFile[] file, List contractinfoList) throws IOException; - + void addRealContractinfo(MultipartFile[] file, List contractinfoList) throws IOException; Boolean modifyContractinfo(MultipartFile[] file, List contractinfoList) throws IOException; @@ -30,7 +30,11 @@ public interface IHuzhouContractinfoService extends IService List getContractinfoByprojectId(String projectid); + List getRealContractinfoByprojectId(String projectid); + void approvalContractinfo(MultipartFile[] file, List contractList, String taskId, String flag, String projectid, String comment,boolean isEdit) throws IOException; List ListByProjectIds(List projectIds); + + Boolean hasContractinfoByTaskName(String projectid, String taskName); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java index 22a2fb1..fc7030d 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java @@ -16,6 +16,7 @@ import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; import com.easy.admin.modules.huzhou.vo.ProjectInfoAuthSelect; import com.easy.admin.sys.model.SysDict; import com.easy.admin.sys.service.SysDictService; +import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; @@ -33,7 +34,7 @@ import java.util.stream.Collectors; @Service @Transactional - +@Slf4j public class HuzhouContractinfoServiceImpl extends ServiceImpl implements IHuzhouContractinfoService { @Value(value = "${jeecg.path.upload}") private String uploadpath; @@ -137,6 +138,54 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl contractinfoList) throws IOException { + String projectid = contractinfoList.get(0).getProjectId(); + //uploadfileinfoService.saveFileAndFileInfo(file, projectid, "4"); + WorkFlow workFlow = workflowService.createFlow("createContract",projectid); + String projectId = contractinfoList.get(0).getProjectId(); + HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectId); + String superLeader = ""; + //如果项目信息为空说明是子项目 + if(huzhouProjectinfo==null){ + HuzhouSubProjectinfo byId = subProjectinfoService.getById(projectId); + superLeader = byId.getSuperLeader(); + }else { + superLeader=huzhouProjectinfo.getSuperLeader(); + } + //获取上级指导室中文名称 + SysDict dict = sysDictService.getDictByCode("superLeader", superLeader); + String dictName = dict.getName(); + //上级指导室中文名称查询角色有哪些人 + List> userDictByRoles = userService.getUserDictByRoles(dictName); + ArrayList userIdlist = new ArrayList<>(); + if(userDictByRoles==null||userDictByRoles.size()==0){ + String error = "任务牵头处室"+dictName+"负责人未找到"; + throw new EasyException(error); + } + for (HashMap map:userDictByRoles + ) { + String userid = map.get("value"); + userIdlist.add(userid); + } + Task task = workFlow.getTask(); + String taskId = task.getId(); + String processInstanceId = workFlow.getProcessInstanceId(); + Map variables = new HashMap<>(); + variables.put("taskLeadingDepartment",userIdlist); + taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过 + String comment = "同意"; + taskService.addComment(taskId,processInstanceId,comment);//添加审批意见 + taskService.complete(taskId, variables); + + List collect = contractinfoList.stream().map(contract -> { + contract.setStatus("1"); + contract.setFlag("实际"); + return contract; + }).collect(Collectors.toList()); + saveBatch(collect); + } + @Override public Boolean modifyContractinfo(MultipartFile[] file, List contractinfoList) throws IOException { @@ -218,6 +267,15 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl getRealContractinfoByprojectId(String projectid) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); + queryWrapper.eq(HuzhouContractinfo::getFlag,"实际"); + List list = list(queryWrapper); + return list; + } + @Override public void approvalContractinfo(MultipartFile[] file, List contractList, String taskId, String flag,String projectId, String comment,boolean isEdit) throws IOException { if(isEdit&&"1".equals(flag)){ @@ -267,5 +325,23 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); + queryWrapper.eq(HuzhouContractinfo::getTaskName, taskName); + //queryWrapper.ne(HuzhouContractinfo::getFlag, "实际"); + List tmp = list(queryWrapper); + List rs = tmp.stream() + .filter(item -> item.getFlag() != null && item.getFlag().contains("实际")) + .collect(Collectors.toList()); + if (rs.size() > 0) { + log.info("该项目阶段填已经填写实际支付金额"); + return false; + } + log.info("请根据合同信息(计划)信息填写实际支付金额!"); + return true; + } + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index f402882..c41992c 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -120,7 +120,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl