From 78d366880d8075fa2110d8036f7089f64b3f485a Mon Sep 17 00:00:00 2001 From: zhouhaibin Date: Mon, 22 Apr 2024 11:11:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=B5=81=E7=A8=8B=E4=BF=A1?= =?UTF-8?q?=E6=81=AF2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HuzhouContractinfoController.java | 18 ++ .../huzhou/controller/WorkflowController.java | 124 +++++++------ .../dao/HuzhouContractinfoHistoryMapper.java | 7 + .../dao/mapping/HuzhouContractinfoMapper.xml | 28 +-- .../dao/mapping/HuzhouProjectinfoMapper.xml | 3 +- .../entity/HuzhouContractinfoHistory.java | 60 ++++++ .../huzhou/entity/HuzhouSubProjectinfo.java | 6 +- .../service/IHuzhouContractinfoService.java | 1 + .../impl/HuzhouContractinfoServiceImpl.java | 175 ++++++++++++++++-- .../impl/HuzhouPlaninfoServiceImpl.java | 39 +++- .../impl/HuzhouPlaninfofileServiceImpl.java | 23 ++- .../impl/HuzhouProjectinfoServiceImpl.java | 18 +- .../impl/HuzhouUploadfileinfoServiceImpl.java | 3 + .../service/impl/WorkflowServiceImpl.java | 5 +- .../huzhou/vo/HuzhouProjectinfoOV.java | 4 + 15 files changed, 410 insertions(+), 104 deletions(-) create mode 100644 huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoHistoryMapper.java create mode 100644 huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfoHistory.java 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 89249cc..4beae34 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 @@ -56,6 +56,24 @@ public class HuzhouContractinfoController { contractinfoService.addContractinfo(file,contractList); return Result.ok("上传成功"); } + @PostMapping(value = "/approvalContractinfo") + public Result approvalContractinfo(@RequestParam(value = "file",required = false) MultipartFile[] file, + @RequestParam String taskId, + @RequestParam String flag, + @RequestParam String projectid, + @RequestParam String comment, + @RequestParam boolean isEdit, + String contractinfoList) throws IOException { + if(contractinfoList!=null){ + ObjectMapper mapper = new ObjectMapper(); + List contractList = mapper.readValue(contractinfoList, new TypeReference>(){}); + contractinfoService.approvalContractinfo(file,contractList,taskId,flag,projectid,comment,isEdit); + }else{ + contractinfoService.approvalContractinfo(file,null,taskId,flag,projectid,comment,isEdit); + + } + return Result.ok("上传成功"); + } @GetMapping("/isExitTaskNameInPlanInfo") public Result isExitTaskNameInPlanInfo(String projectid,String taskName){ Boolean exitTaskNameInPlanInfo = planinfoService.isExitTaskNameInPlanInfo(projectid, taskName); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java index d58c627..6c3a502 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java @@ -287,6 +287,7 @@ public class WorkflowController { queryWrapper.eq(HuzhouProcessinfo::getProjectid,projectid); queryWrapper.eq(HuzhouProcessinfo::getProcessName,stage); queryWrapper.orderByDesc(BaseEntity::getCreateDate); + HuzhouProcessinfo huzhouProcessinfo = processinfoService.list(queryWrapper).get(0); processInstanceId=huzhouProcessinfo.getProcessinstanceid(); } @@ -313,7 +314,7 @@ public class WorkflowController { .list(); if (variablelist.size()>0) { for (HistoricVariableInstance hisvar:variablelist) { - hashMap.put(hisvar.getVariableName(),hisvar.getValue()); + hashMap.put(hisvar.getVariableName(),hisvar.getValue());//approvalStatue } } @@ -344,69 +345,82 @@ public class WorkflowController { if(processInstance!=null){ BpmnModel bpmnModel = repositoryService.getBpmnModel(processInstance.getProcessDefinitionId()); Collection flowElements = bpmnModel.getProcesses().get(0).getFlowElements(); + List userTaskList = new ArrayList<>(); for (FlowElement element : bpmnModel.getProcesses().get(0).getFlowElements()) { if (element instanceof UserTask) { UserTask userTask = (UserTask) element; - String taskId = userTask.getId(); - boolean match = approvalEntityList.stream().anyMatch(stream-> userTask.getName().equals(stream.get("taskName"))); - if(match){ - //存在判断最后一个是不是撤回 - HashMap stringObjectHashMap = approvalEntityList.get(approvalEntityList.size() - 1); - if (userTask.getName().equals(stringObjectHashMap.get("taskName"))&&stringObjectHashMap.get("comment").toString().contains("撤回")){ - match=false; - } - } - //未处理 - if(!match){ - HashMap hashMap = new HashMap<>(); - List candidateGroups = userTask.getCandidateGroups(); - String assignee = userTask.getAssignee(); - hashMap.put("taskName", userTask.getName()); - if(candidateGroups.size()==0){ - if(assignee==null){ - //设置审批人名字 - //说明任务没有被认领 - //获取变量名称 - List candidateUsers = userTask.getCandidateUsers(); - String candidateUsersString = candidateUsers.get(0);//${taskLeadingDepartment} - //正则表达式提取变量名 - Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}"); - Matcher matcher = pattern.matcher(candidateUsersString); - if (matcher.find()) { - String groupName = matcher.group(1);// 提取大括号中的内容 - // 获取所有变量 - Map variables = runtimeService.getVariables(processInstanceId); - List variableValue = (List)runtimeService.getVariable(processInstanceId, groupName); - String name = ""; - for (String id:variableValue - ) { - String nickname = sysUserService.getById(id).getNickname(); - name=name+nickname+","; - } - hashMap.put("operator", name.substring(0,name.length()-1)); - } + userTaskList.add(userTask); + } + } + for (int i =0;i lastUser = approvalEntityList.get(approvalEntityList.size() - 1);//获取最后一个 + Object taskName = lastUser.get("taskName"); + boolean match = task.getName().equals(taskName); + if(!match){ + userTaskList.remove(task); + }else{ + userTaskList.remove(task); + break; + } + i--; + } + for (UserTask userTask: userTaskList ) { + HashMap hashMap = new HashMap<>(); + List candidateGroups = userTask.getCandidateGroups(); + String assignee = userTask.getAssignee(); + hashMap.put("taskName", userTask.getName()); + if(candidateGroups.size()==0){ + if(assignee==null){ + //设置审批人名字 + //说明任务没有被认领 + //获取变量名称 + List candidateUsers = userTask.getCandidateUsers(); + String candidateUsersString = candidateUsers.get(0);//${taskLeadingDepartment} + //正则表达式提取变量名 + Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}"); + Matcher matcher = pattern.matcher(candidateUsersString); + if (matcher.find()) { + String groupName = matcher.group(1);// 提取大括号中的内容 + // 获取所有变量 + Map variables = runtimeService.getVariables(processInstanceId); + Object variable = runtimeService.getVariable(processInstanceId, groupName); + if(variable instanceof String){ + String startUserid = (String)variable; + String nickname = sysUserService.getById(startUserid).getNickname(); + + hashMap.put("operator", nickname); }else{ - hashMap.put("operator", sysUserService.getById(assignee).getNickname()); - } - }else{ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysUserRole::getRoleId,candidateGroups.get(0)); - List sysUserRoles = userRoleMapper.selectList(queryWrapper); - String name=""; - if(sysUserRoles.size()>0){ - for (SysUserRole userRole:sysUserRoles){ - name = name+sysUserService.getById(userRole.getUserId()).getNickname()+","; + List variableValue = (List)variable; + String name = ""; + for (String id:variableValue + ) { + String nickname = sysUserService.getById(id).getNickname(); + name=name+nickname+","; } + hashMap.put("operator", name.substring(0,name.length()-1)); } - if(StringUtils.isNotBlank(name)){ - name=name.substring(0,name.length()-1); - } - hashMap.put("operator", name); - } - approvalEntityList.add(hashMap); + } + }else{ + hashMap.put("operator", sysUserService.getById(assignee).getNickname()); + } + }else{ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUserRole::getRoleId,candidateGroups.get(0)); + List sysUserRoles = userRoleMapper.selectList(queryWrapper); + String name=""; + if(sysUserRoles.size()>0){ + for (SysUserRole userRole:sysUserRoles){ + name = name+sysUserService.getById(userRole.getUserId()).getNickname()+","; + } + } + if(StringUtils.isNotBlank(name)){ + name=name.substring(0,name.length()-1); } + hashMap.put("operator", name); } + approvalEntityList.add(hashMap); } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoHistoryMapper.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoHistoryMapper.java new file mode 100644 index 0000000..d56f72b --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoHistoryMapper.java @@ -0,0 +1,7 @@ +package com.easy.admin.modules.huzhou.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.easy.admin.modules.huzhou.entity.HuzhouContractinfoHistory; + +public interface HuzhouContractinfoHistoryMapper extends BaseMapper { +} diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml index b0bbdd3..637dc36 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml @@ -81,6 +81,7 @@ + @@ -98,11 +99,12 @@ - - - - diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml index fe1a9a3..02105e1 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml @@ -163,8 +163,9 @@ order by create_date desc and u.stage >= #{info.stage} + order by u.create_date desc \ No newline at end of file diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfoHistory.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfoHistory.java new file mode 100644 index 0000000..66ac8ba --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfoHistory.java @@ -0,0 +1,60 @@ +package com.easy.admin.modules.huzhou.entity; + +import java.util.Date; +import java.io.Serializable; + +/** + * (HuzhouContractinfoHistory)实体类 + * + * @author makejava + * @since 2024-04-19 16:02:15 + */ +public class HuzhouContractinfoHistory extends BaseEntity implements Serializable { + private static final long serialVersionUID = 390927610448195008L; + /** + * id + */ + private String id; + /** + * 项目id + */ + private String projectId; + /** + * 支付时间 + */ + private Date payDate; + /** + * 属性(计划节点) + */ + private String taskName; + /** + * 总金额 + */ + private Double totalMoney; + /** + * 自筹资金 + */ + private Double selfMoney; + /** + * 省级资金 + */ + private Double provincialMoney; + /** + * 市级资金 + + */ + private Double cityMoney; + /** + * 区县资金 + */ + private Double countyMoney; + /** + * 中央资金 + */ + private Double centralMoney; + private String groupId; + + private String status; + +} + diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouSubProjectinfo.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouSubProjectinfo.java index 9df78c0..e942e50 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouSubProjectinfo.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouSubProjectinfo.java @@ -19,7 +19,11 @@ public class HuzhouSubProjectinfo extends HuzhouProjectinfo implements Serializa @TableField(exist = false) String planProcessStatus; - + /** + * 合同流程状态 + */ + @TableField(exist = false) + String contractStatus; } 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 50978ef..b24ecce 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 @@ -30,4 +30,5 @@ public interface IHuzhouContractinfoService extends IService List getContractinfoByprojectId(String projectid); + void approvalContractinfo(MultipartFile[] file, List contractList, String taskId, String flag, String projectid, String comment,boolean isEdit) throws IOException; } 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 68714af..06bfa36 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 @@ -4,29 +4,28 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.easy.admin.auth.model.SysRole; -import com.easy.admin.auth.model.SysUser; +import com.easy.admin.auth.service.SysUserService; +import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.common.util.CommonUtils; +import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoHistoryMapper; import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper; import com.easy.admin.modules.huzhou.dao.HuzhouSubProjectinfoMapper; -import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo; -import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; -import com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo; -import com.easy.admin.modules.huzhou.service.IHuzhouContractinfoService; -import com.easy.admin.modules.huzhou.service.IHuzhouUploadfileinfoService; -import com.easy.admin.modules.huzhou.vo.HuzhouContractinfoOV; +import com.easy.admin.modules.huzhou.entity.*; +import com.easy.admin.modules.huzhou.service.*; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; -import com.easy.admin.util.ShiroUtil; +import com.easy.admin.sys.model.SysDict; +import com.easy.admin.sys.service.SysDictService; +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.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import org.springframework.util.FileCopyUtils; import org.springframework.web.multipart.MultipartFile; -import java.io.File; import java.io.IOException; -import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -41,7 +40,22 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl getContractProjectPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize) { Page page = new Page(pageNo, pageSize); @@ -76,8 +90,47 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl contractinfoList) throws IOException { String projectid = contractinfoList.get(0).getProjectId(); uploadfileinfoService.saveFileAndFileInfo(file, projectid, "4"); - saveBatch(contractinfoList); + 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"); + return contract; + }).collect(Collectors.toList()); + saveBatch(collect); } @@ -88,11 +141,60 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(HuzhouContractinfo::getStatus,"0"); - updateWrapper.eq(HuzhouContractinfo::getProjectId,projectid); - update(null,updateWrapper); - saveBatch(contractinfoList); + //查询旧的合同保存 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouContractinfo::getProjectId,projectid); + List oldList = list(queryWrapper); + oldList.forEach(item->{ + HuzhouContractinfoHistory huzhouContractinfoHistory = new HuzhouContractinfoHistory(); + BeanUtils.copyProperties(item,huzhouContractinfoHistory); + contractinfoHistoryMapper.insert(huzhouContractinfoHistory); + }); + //删除合同表数据 + remove(queryWrapper); + List collect = contractinfoList.stream().map(contract -> { + contract.setStatus("1"); + return contract; + }).collect(Collectors.toList()); + saveBatch(collect); + + + 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); + return true; } @@ -109,10 +211,43 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl getContractinfoByprojectId(String projectid) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); - queryWrapper.eq(HuzhouContractinfo::getStatus,"1"); 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)){ + if(file!=null){ + uploadfileinfoService.modifyUploadFile(file,projectId,"4"); + } + //查询旧的合同保存 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouContractinfo::getProjectId,projectId); + List oldList = list(queryWrapper); + oldList.forEach(item->{ + HuzhouContractinfoHistory huzhouContractinfoHistory = new HuzhouContractinfoHistory(); + BeanUtils.copyProperties(item,huzhouContractinfoHistory); + contractinfoHistoryMapper.insert(huzhouContractinfoHistory); + }); + //删除合同表数据 + remove(queryWrapper); + List collect = contractList.stream().map(contract -> { + contract.setStatus("1"); + return contract; + }).collect(Collectors.toList()); + saveBatch(collect); + } + WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult(); + //审批通过修改项目要状态 + if(processInstance==null&&"1".equals(flag)){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(HuzhouContractinfo::getStatus,"2"); + updateWrapper.eq(HuzhouContractinfo::getProjectId,projectId); + update(updateWrapper); + } + } + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java index 9d4f0ef..a8ca3ef 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java @@ -691,7 +691,6 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl planinfoHistory = getListByProjectId(projectid); @@ -705,6 +704,44 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl variables = new HashMap<>(); + 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 = sysUserService.getUserDictByRoles(dictName); + ArrayList strings = new ArrayList<>(); + if(userDictByRoles==null||userDictByRoles.size()==0){ + String error = "任务牵头处室"+dictName+"负责人未找到"; + throw new EasyException(error); + } + for (HashMap map:userDictByRoles + ) { + String userid = map.get("value"); + strings.add(userid); + } + variables.put("taskLeadingDepartment",strings); + runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息 + taskService.complete(taskId, variables); + //修改项目的阶段状态 + projectinfoService.modifyStageById(projectid,"4"); } @Override 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 64c059d..9e393da 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 @@ -119,7 +119,26 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl strings2 = new ArrayList<>(); if(userDictByRoles==null||userDictByRoles.size()==0){ @@ -144,7 +163,7 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(HuzhouContractinfo::getTaskName,taskName); queryWrapper.eq(HuzhouContractinfo::getProjectId,projectId); - queryWrapper.eq(HuzhouContractinfo::getStatus,"1"); + queryWrapper.ge(HuzhouContractinfo::getStatus,"1"); List contractinfoList = contractinfoMapper.selectList(queryWrapper); if(contractinfoList!=null&&contractinfoList.size()>0){ existsContractinfo=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 39a8231..4121cce 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 @@ -91,6 +91,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl huzhouUploadfileinfoLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); huzhouUploadfileinfoLambdaUpdateWrapper.eq(HuzhouUploadfileinfo::getProjectid,projectid); huzhouUploadfileinfoLambdaUpdateWrapper.eq(HuzhouUploadfileinfo::getStage,stage); + huzhouUploadfileinfoLambdaUpdateWrapper.orderByDesc(BaseEntity::getCreateDate); IPage uploadfileinfoIPage = this.page(huzhouUploadfileinfoIPage, huzhouUploadfileinfoLambdaUpdateWrapper); return uploadfileinfoIPage; } @@ -133,6 +135,7 @@ public class HuzhouUploadfileinfoServiceImpl extends ServiceImpl huzhouProcessinfos = processinfoMapper.selectList(huzhouProcessinfoLambdaQueryWrapper); //未通过返回空 if(huzhouProcessinfos.size()==0){ diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java index aa0f5ec..cfdfd9b 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java @@ -160,6 +160,7 @@ public class WorkflowServiceImpl implements IWorkflowService { // outRes.put("buttons",actionButtons); workflowActionParamOV.setButtons(actionButtons); workflowActionParamOV.setShowApprovalForm(false); + workflowActionParamOV.setIsEdit(false); // outRes.put("showApprovalForm",false); SysUser currentUser = ShiroUtil.getCurrentUser(); String currentLoginuserId = currentUser.getId(); @@ -209,7 +210,9 @@ public class WorkflowServiceImpl implements IWorkflowService { } }else{ //代办 发起人可以作废,还要可以修改,加一个修改表示(前端也行) + workflowActionParamOV.setButtons(actionButtons); workflowActionParamOV.setShowApprovalForm(true); + workflowActionParamOV.setIsEdit(false); // outRes.put("showApprovalForm",true); Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); //获取当前模型 @@ -269,7 +272,7 @@ public class WorkflowServiceImpl implements IWorkflowService { List taskList = taskService.createTaskQuery() .orderByTaskCreateTime() .desc() - .taskCandidateOrAssigned(currentUser.getId()) + .taskAssignee(currentUser.getId()) .list(); hashMap.put("daiban",taskList.size()); return hashMap; diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java index 2447fed..2074d9d 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java @@ -18,5 +18,9 @@ public class HuzhouProjectinfoOV extends HuzhouProjectinfo { * 是否缺失子项目标志 true 缺失 */ Boolean missingSubprojects; + /** + * 合同流程状态 + */ + String contractStatus; // String isSubProject; }