update 项目合规评估流程-查询流程信息

This commit is contained in:
lijiarao
2023-12-14 15:46:06 +08:00
parent a24fca8635
commit 0cbf57eef6
8 changed files with 146 additions and 11 deletions
@@ -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;
}
@@ -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());
@@ -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";
}
@@ -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<ProcessProjectAssessTermUser> processProjectAssessTermUserListList;
}
@@ -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<ProcessProjectAssessTerm> {
List<ProcessProjectAssessTerm> getByResponsibleUnitLeader(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId);
}
@@ -15,10 +15,24 @@
<result column="term_number" jdbcType="VARCHAR" property="termNumber" />
<result column="term_name" jdbcType="VARCHAR" property="termName" />
<result column="term_text" jdbcType="VARCHAR" property="termText" />
<result column="split_info_id" property="splitInfoId"/>
<result column="can_assign_flag" property="canAssignFlag"/>
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
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
</sql>
<select id="getByResponsibleUnitLeader" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from process_project_assess_term ppat
left join process_project_assess_term_user ppatu on ppat.id = ppatu.trem_id
where
ppat.assessment_id = #{assessmentId}
and ppatu.responsible_unit_leader = #{originUserId}
and ppatu.id is not null
</select>
</mapper>
@@ -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<ProcessProjectAsses
}
public ProcessInfoVO<ProcessProjectAssessVO> 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<ProcessProjectAssessTermUser> processProjectAssessTermUserList = new ArrayList<>();
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
LambdaQueryWrapper<ProcessProjectAssessTermUser> 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<String, ProcessProjectAssessTerm> splitInfoIdMap = processProjectAssessTermService.getSplitInfoIdMap(assessmentId);
if (!processProjectAssessTermUserList.isEmpty()){
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
String termId = term.getId();
}
}
List<ProcessProjectAssessTerm> AllProjectAssesTermList = new ArrayList<>();
List<String> 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<ProcessProjectAssessVO> processInfoVO) {
@@ -123,8 +174,8 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.PROJECT_ASSESS)); // 流程定义id
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.PROJECT_ASSESS.getValue()); // 流程类型
Map<String, Object> 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);
@@ -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<ProcessProjectA
ProcessProjectAssessTerm processProjectAssessTerm = this.getById(id);
return processProjectAssessTerm;
}
/**
* 获取部门主管领导的条款
* @param assessmentId
* @param originUserId
* @return
*/
public List<ProcessProjectAssessTerm> getByResponsibleUnitLeader(String assessmentId, String originUserId) {
List<ProcessProjectAssessTerm> list = baseMapper.getByResponsibleUnitLeader(assessmentId,originUserId);
return list;
}
/**
* 获取分类用的标准编号,标准名称列表
*/
public Map<String, ProcessProjectAssessTerm> getSplitInfoIdMap(String assessmentId) {
LambdaQueryWrapper<ProcessProjectAssessTerm> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessProjectAssessTerm::getAssessmentId,assessmentId);
wrapper.eq(ProcessProjectAssessTerm::getCanAssignFlag, YesOrNoEnum.NO.getInteger());
List<ProcessProjectAssessTerm> list = this.list(wrapper);
Map<String, ProcessProjectAssessTerm> stringProcessProjectAssessTermMap = CollStreamUtil.toIdentityMap(list, ProcessProjectAssessTerm::getSplitInfoId);
return stringProcessProjectAssessTermMap;
}
}