diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java index 683ccfbd..7207f510 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/dto/ProcessDTO.java @@ -1,6 +1,9 @@ package com.jero.modules.activiti.process.fb.dto; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; import lombok.Data; +import org.activiti.engine.runtime.ProcessInstance; +import org.activiti.engine.task.Task; /** * @Author: liao @@ -16,4 +19,10 @@ public class ProcessDTO { private String taskId; // 任务id + private Task task; + + private ProcessInstance processInstance; + + private ProcessApprovalRecord processApprovalRecord; + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java index 395badcd..a23fc802 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessHandleServiceImpl.java @@ -225,6 +225,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { @Override public ProcessDTO getProcessDTO(String taskId) { ProcessDTO processDTO = new ProcessDTO(); + ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getToDoByTaskId(taskId); + processDTO.setProcessApprovalRecord(processApprovalRecord); Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); String processInstanceId = task.getProcessInstanceId(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); @@ -232,6 +234,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { processDTO.setTaskId(taskId); processDTO.setProcessInstanceId(processInstanceId); processDTO.setProcessDefinitionId(processDefinitionId); + processDTO.setTask(task); + processDTO.setProcessInstance(processInstance); return processDTO; } @@ -420,7 +424,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { basicTaskInfoDTO.setHandleText(processDraft.getHandleText()); basicTaskInfoDTO.setHandleFile(processDraft.getHandleFile()); processInfoVO.setBusinessId(processDraft.getProjectId()); - + processInfoVO.setDraftId(draftId); basicProcessInfoDTO.setProcessType(processDraft.getPrcType()); basicProcessInfoDTO.setProcessName(processDraft.getPrcName()); basicProcessInfoDTO.setProcessDescription(processDraft.getProcessDescription()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/common/ProcessProjectAssessCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/common/ProcessProjectAssessCommon.java index a94831c7..f77322b1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/common/ProcessProjectAssessCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/common/ProcessProjectAssessCommon.java @@ -5,6 +5,23 @@ package com.jero.modules.activiti.process.projectassess.common; * @date 2023-12-13 17:28 */ public class ProcessProjectAssessCommon { - public static String standardsEngineer = "standardsEngineer"; - public static String managerLeaderList = "managerLeaderList"; + public static final String STANDARDS_ENGINEER = "standardsEngineer"; + public static final String MANAGER_LEADER_LIST = "managerLeaderList"; + //法规工程师发起 + public static final String FGGCSFQ = "fggcsfq"; + //各部门主管级领导下发 + public static final String GBMZGJLDXF = "gbmzgjldxf"; + //模块负责人分发 + public static final String MKFZRFF = "mkfzrff"; + //设计工程师评估 + public static final String SJGCSPG = "sjgcspg"; + //模块负责人审批 + public static final String MKFZRSP = "mkfzrsp"; + //各部门主管级领导(汇总)审批 + public static final String GBMZGJLDSP = "gbmzgjldsp"; + //模块负责人修改 + public static final String MKFZRXG = "mkfzrxg"; + //法规工程师归档 + public static final String FGGCSGD = "fggcsgd"; + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java index f315c9b4..684476b6 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java @@ -7,7 +7,11 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; + +import java.util.ArrayList; import java.util.Date; +import java.util.List; + import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -111,5 +115,9 @@ public class ProcessProjectAssessTerm { @ApiModelProperty(value = "责任单位负责人id") private String responsibleUnitLeaders; + @TableField(exist = false) + @ApiModelProperty(value = "条款关联用户") + private List processProjectAssessTermUserListList; + } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java index 7f72a03d..fc61fd18 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java @@ -2,10 +2,14 @@ package com.jero.modules.activiti.process.projectassess.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author liJiaRao * @date 2023-12-06 10:37 */ public interface ProcessProjectAssessTermMapper extends BaseMapper { + List getByResponsibleUnitLeader(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId); } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml index ac2e8e3b..0ebbf3a0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml @@ -15,10 +15,24 @@ + + + id, create_by, create_time, update_by, update_time, org_code, del_flag, assessment_id, - term_number, term_name, term_text + term_number, term_name, term_text, split_info_id, can_assign_flag + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java index a8733284..fef284b7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java @@ -1,14 +1,15 @@ package com.jero.modules.activiti.process.projectassess.service; -import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.vo.ResultCommon; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; -import com.jero.common.system.vo.LoginUser; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; +import com.jero.modules.activiti.process.fb.dto.ProcessDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.projectassess.common.ProcessProjectAssessCommon; import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm; @@ -18,6 +19,7 @@ import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAsse import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO; import com.jero.modules.laws.common.util.CurrentUserUtil; +import org.activiti.engine.task.Task; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -62,11 +64,60 @@ public class ProcessProjectAssessService extends ServiceImpl queryProcessInfoVO(String draftId, String processInstanceId, String taskId) { - if (StringUtils.isNotBlank(draftId)){ + if (StringUtils.isNotBlank(draftId) && StringUtils.isBlank(taskId)){ ProcessInfoVO draft = processHandleService.getDraft(draftId); return draft; } - return new ProcessInfoVO<>(); + ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId); + String assessmentId = processInfoVO.getBusinessId(); + ProcessDTO processDTO = processHandleService.getProcessDTO(taskId); + ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord(); + String originUserId = processApprovalRecord.getOriginUserId(); + Task task = processDTO.getTask(); + String name = task.getName(); + List processProjectAssessTermUserList = new ArrayList<>(); + List processProjectAssessTermList = new ArrayList<>(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, assessmentId); + switch (name) { + case ProcessProjectAssessCommon.GBMZGJLDXF: + processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId,originUserId); + break; + case ProcessProjectAssessCommon.GBMZGJLDSP: + wrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader,originUserId); + break; + case ProcessProjectAssessCommon.MKFZRFF: + break; + case ProcessProjectAssessCommon.SJGCSPG: + break; + default: + } + Map splitInfoIdMap = processProjectAssessTermService.getSplitInfoIdMap(assessmentId); + if (!processProjectAssessTermUserList.isEmpty()){ + + for (ProcessProjectAssessTerm term : processProjectAssessTermList) { + String termId = term.getId(); + + } + } + List AllProjectAssesTermList = new ArrayList<>(); + List usedSplitInfoId = new ArrayList<>(); + for (ProcessProjectAssessTerm term : processProjectAssessTermList) { + String splitInfoId = term.getSplitInfoId(); + if (!usedSplitInfoId.contains(splitInfoId) && splitInfoIdMap.containsKey(splitInfoId)){ + usedSplitInfoId.add(splitInfoId); + ProcessProjectAssessTerm titleTerm = splitInfoIdMap.get(splitInfoId); + ProcessProjectAssessTerm term1 = new ProcessProjectAssessTerm(); + term1.setTermName(titleTerm.getTermName()); + term1.setTermNumber(titleTerm.getTermNumber()); + term1.setTermText(titleTerm.getTermText()); + AllProjectAssesTermList.add(term1); + } + AllProjectAssesTermList.add(term); + } + + + return processInfoVO; } public void startProcess(ProcessInfoVO processInfoVO) { @@ -123,8 +174,8 @@ public class ProcessProjectAssessService extends ServiceImpl userInfoMap = new HashMap<>(); - userInfoMap.put(ProcessProjectAssessCommon.standardsEngineer, CurrentUserUtil.getId()); - userInfoMap.put(ProcessProjectAssessCommon.managerLeaderList, distinctAllResponsibleUnitLeaderListJoin); + userInfoMap.put(ProcessProjectAssessCommon.STANDARDS_ENGINEER, CurrentUserUtil.getId()); + userInfoMap.put(ProcessProjectAssessCommon.MANAGER_LEADER_LIST, distinctAllResponsibleUnitLeaderListJoin); processInfoVO.setUserInfoMap(userInfoMap); processHandleService.startProcess(processInfoVO); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessTermService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessTermService.java index 006fe344..47e1a48f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessTermService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessTermService.java @@ -1,8 +1,13 @@ package com.jero.modules.activiti.process.projectassess.service; +import cn.hutool.core.collection.CollStreamUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.constant.enums.YesOrNoEnum; import org.springframework.stereotype.Service; -import javax.annotation.Resource; + import java.util.List; +import java.util.Map; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.activiti.process.projectassess.mapper.ProcessProjectAssessTermMapper; import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm; @@ -35,4 +40,27 @@ public class ProcessProjectAssessTermService extends ServiceImpl getByResponsibleUnitLeader(String assessmentId, String originUserId) { + List list = baseMapper.getByResponsibleUnitLeader(assessmentId,originUserId); + return list; + } + + /** + * 获取分类用的标准编号,标准名称列表 + */ + public Map getSplitInfoIdMap(String assessmentId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessProjectAssessTerm::getAssessmentId,assessmentId); + wrapper.eq(ProcessProjectAssessTerm::getCanAssignFlag, YesOrNoEnum.NO.getInteger()); + List list = this.list(wrapper); + Map stringProcessProjectAssessTermMap = CollStreamUtil.toIdentityMap(list, ProcessProjectAssessTerm::getSplitInfoId); + return stringProcessProjectAssessTermMap; + } }