Merge remote-tracking branch 'origin/thirdStage' into thirdStage

This commit is contained in:
yjz
2024-01-17 16:26:06 +08:00
17 changed files with 1322 additions and 352 deletions
@@ -199,7 +199,8 @@ public class MyGlobalEventListener implements ActivitiEventListener {
if (variables.containsKey("pass") &&
!isFirstNodeTask(approvalRecord) &&
(approvalRecord.getTaskName().contains("审批") ||
approvalRecord.getTaskName().contains("会签"))) {
approvalRecord.getTaskName().contains("会签") ||
approvalRecord.getTaskName().equals("部所联络人校对"))) {
if ((Boolean) variables.get("pass")) {
approvalRecord.setCommitFlag(CommitFlagEnum.PASS.getValue());
} else {
@@ -11,17 +11,21 @@ import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish;
import com.jero.modules.activiti.process.esAbolish.entity.vo.ESAbolishDataVO;
import com.jero.modules.activiti.process.esAbolish.service.ProcessEsAbolishService;
import com.jero.modules.activiti.process.esAbolish.mapper.ProcessEsAbolishMapper;
import com.jero.modules.activiti.process.esEnable.entity.ProcessEsEnable;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssess;
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
@@ -60,6 +64,9 @@ public class ProcessEsAbolishServiceImpl extends ServiceImpl<ProcessEsAbolishMap
@Resource
private TaskService taskService;
@Resource
private ILawsEnterpriseStandardService esService;
@Override
public void startProcess(ESAbolishDataVO abolishData) {
// 执行流程发起前的操作
@@ -185,6 +192,18 @@ public class ProcessEsAbolishServiceImpl extends ServiceImpl<ProcessEsAbolishMap
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
}
// 如果是最后一个节点的审批则需要判断是否可以通过
String taskName = taskService.createTaskQuery().taskId(taskId).singleResult().getName();
if (pass && taskName.equals("标准化审批")) {
ProcessEsAbolish data = this.getOne(new LambdaQueryWrapper<ProcessEsAbolish>()
.eq(ProcessEsAbolish::getProcessInstanceId, processInstanceId));
String standardNumber = data.getStandardNumber();
LawsEnterpriseStandard es = esService.getOne(new LambdaQueryWrapper<LawsEnterpriseStandard>()
.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber));
if (StandardStateEnum.ABOLISH.getStateValue().equals(es.getStandardState())) {
throw new JeroBootException("该标准已废止,需要驳回重新选择");
}
}
ProcessEsAbolish data = abolishData.getData();
if (data != null) {
updateById(data);
@@ -13,6 +13,7 @@ import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish;
import com.jero.modules.activiti.process.esAbolish.entity.vo.ESAbolishDataVO;
@@ -25,6 +26,8 @@ import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
@@ -63,6 +66,9 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
@Resource
private IProcessHandleService processHandleService;
@Resource
private ILawsEnterpriseStandardService esService;
@Override
public void startProcess(ESArchiveDataVO archiveData) {
// 执行流程发起前的操作
@@ -188,6 +194,21 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
}
// 如果是最后一个节点的审批则需要判断是否可以通过
String taskName = taskService.createTaskQuery().taskId(taskId).singleResult().getName();
if (pass && taskName.equals("标准化审批")) {
ProcessEsArchive data = this.getOne(new LambdaQueryWrapper<ProcessEsArchive>()
.eq(ProcessEsArchive::getProcessInstanceId, processInstanceId));
String standardNumber = data.getStandardNumber();
LawsEnterpriseStandard es = esService.getOne(new LambdaQueryWrapper<LawsEnterpriseStandard>()
.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber));
if (StandardStateEnum.ARCHIVE.getStateValue().equals(es.getStandardState())) {
throw new JeroBootException("该标准已封存,需要驳回重新选择");
}
if (StandardStateEnum.ABOLISH.getStateValue().equals(es.getStandardState())) {
throw new JeroBootException("该标准已废止,需要驳回重新选择");
}
}
ProcessEsArchive data = archiveDataVO.getData();
if (data != null) {
updateById(data);
@@ -11,6 +11,7 @@ import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO;
@@ -22,6 +23,8 @@ import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.sys.utils.UserUtils;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
@@ -59,6 +62,9 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl<ProcessEsEnableMappe
@Resource
private TaskService taskService;
@Resource
private ILawsEnterpriseStandardService esService;
@Override
public void startProcess(ESEnableDataVO enableData) {
@@ -185,6 +191,21 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl<ProcessEsEnableMappe
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException(ResultCommon.TASK_NOT_EXISTS);
}
// 如果是最后一个节点的审批则需要判断是否可以通过
String taskName = taskService.createTaskQuery().taskId(taskId).singleResult().getName();
if (pass && taskName.equals("标准化审批")) {
ProcessEsEnable data = this.getOne(new LambdaQueryWrapper<ProcessEsEnable>()
.eq(ProcessEsEnable::getProcessInstanceId, processInstanceId));
String standardNumber = data.getStandardNumber();
LawsEnterpriseStandard es = esService.getOne(new LambdaQueryWrapper<LawsEnterpriseStandard>()
.eq(LawsEnterpriseStandard::getStandardNumber, standardNumber));
if (StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue().equals(es.getStandardState())) {
throw new JeroBootException("该标准已现行有效,需要驳回重新选择");
}
if (StandardStateEnum.ABOLISH.getStateValue().equals(es.getStandardState())) {
throw new JeroBootException("该标准已废止,需要驳回重新选择");
}
}
ProcessEsEnable data = enableData.getData();
if (data != null) {
updateById(data);
@@ -462,6 +462,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
Map<String, Object> variables = new HashMap<>();
variables.put(ProcessProjectAssessCommon.PASS, pass);
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
private void gbmzgjldspApprove(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
@@ -495,6 +496,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
variables.put(ProcessProjectAssessCommon.PASS, pass);
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerList);
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
private void mkfzrxgApprove(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
@@ -536,6 +538,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
variables.put(ProcessProjectAssessCommon.DESIGN_ENGINEER_LIST, designEngineerList);
variables.put(ProcessProjectAssessCommon.DESIGN_ENGINEER_LIST_SIZE, designEngineerList.size());
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
@@ -768,6 +771,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST_SIZE, moduleOwnerIds.size());
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
//模块负责人分发
@@ -846,6 +850,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
variables.put(ProcessProjectAssessCommon.DESIGN_ENGINEER_LIST, designEngineerIds);
variables.put(ProcessProjectAssessCommon.DESIGN_ENGINEER_LIST_SIZE, designEngineerIds.size());
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
//设计工程师评估
@@ -882,6 +887,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
// 完成任务
String taskId = processDTO.getTaskId();
taskService.complete(taskId);
ThreadLocalUtil.remove();
}
@@ -18,16 +18,19 @@ public class ProcessProjectStandardCommon {
public static final String FGGCSFQ = "fggcsfq";
//部所主管级领导下发
public static final String BSZGJLDXF = "bszgjldxf";
//模块责人分发
public static final String MKFZRFF_1 = "mkfzrff_1";
public static final String MKFZRFF_2 = "mkfzrff_2";
public static final String MKFZRFF_3 = "mkfzrff_3";
public static final String MKFZRFF_4 = "mkfzrff_4";
public static final String MKFZRFF_5 = "mkfzrff_5";
//模块责人分发
public static final String MKZRRFF_ = "mkzrrff_";
public static final String MKZRRFF_1 = "mkzrrff_1";
public static final String MKZRRFF_2 = "mkzrrff_2";
public static final String MKZRRFF_3 = "mkzrrff_3";
public static final String MKZRRFF_4 = "mkzrrff_4";
public static final String MKZRRFF_5 = "mkzrrff_5";
//设计工程师评估
public static final String SJGCSPG_ = "sjgcspg_";
//模块负责人审批
public static final String MKFZRSP_ = "mkfzrsp_";
public static final String SJGCSPG_1 = "sjgcspg_1";
//模块责任人审批
public static final String MKZRRSP_ = "mkzrrsp_";
public static final String MKZRRSP_1 = "mkzrrsp_1";
//部所主管级领导审批
public static final String BSZGJLDSP_ = "bszgjldsp_";
//法规工程师审批
@@ -127,7 +127,7 @@ public class ProcessProjectStandardTerm {
*/
@TableField(value = "project_approval_flag")
@ApiModelProperty(value="是否立项")
private Integer projectApprovalFlag;
private String projectApprovalFlag;
/**
* 设计工程师
@@ -143,6 +143,13 @@ public class ProcessProjectStandardTerm {
@ApiModelProperty(value="抄送人员")
private String carbonCopyPersonnels;
/**
* 不涉及原因
*/
@TableField(exist = false)
@ApiModelProperty(value = "不涉及原因")
private String notInvolved;
/**
* 车型系列
*/
@@ -187,5 +194,4 @@ public class ProcessProjectStandardTerm {
@ApiModelProperty(value="评估结果")
private String assessResults;
}
@@ -0,0 +1,107 @@
package com.jero.modules.activiti.process.projectstandard.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import lombok.Data;
/**
*
*@author liJiaRao
*@date 2024-01-17 15:00
*/
/**
* 法规合规评估流程关联条款主管立项表
*/
@ApiModel(description="法规合规评估流程关联条款主管立项表")
@Data
@TableName(value = "process_project_standard_term_approval")
public class ProcessProjectStandardTermApproval {
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键ID")
private String id;
/**
* 创建人
*/
@TableField(value = "create_by")
@ApiModelProperty(value="创建人")
private String createBy;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
* 更新人
*/
@TableField(value = "update_by")
@ApiModelProperty(value="更新人")
private String updateBy;
/**
* 更新时间
*/
@TableField(value = "update_time")
@ApiModelProperty(value="更新时间")
private Date updateTime;
/**
* 所属部门
*/
@TableField(value = "org_code")
@ApiModelProperty(value="所属部门")
private String orgCode;
/**
* 0表示未删除,1表示删除
*/
@TableField(value = "del_flag")
@ApiModelProperty(value="0表示未删除,1表示删除")
private Integer delFlag;
/**
* 评估流程id
*/
@TableField(value = "process_id")
@ApiModelProperty(value="评估流程id")
private String processId;
/**
* 责任单位负责人id
*/
@TableField(value = "responsible_unit_leader")
@ApiModelProperty(value="责任单位负责人id")
private String responsibleUnitLeader;
/**
* 关联条款表id
*/
@TableField(value = "term_id")
@ApiModelProperty(value="关联条款表id")
private String termId;
/**
* 评估结果(1-符合、2-不符合、3-不涉及)
*/
@TableField(value = "assess_results")
@ApiModelProperty(value="评估结果(1-符合、2-不符合、3-不涉及)")
private String assessResults;
/**
* 是否立项
*/
@TableField(value = "project_approval_flag")
@ApiModelProperty(value="是否立项")
private String projectApprovalFlag;
}
@@ -0,0 +1,12 @@
package com.jero.modules.activiti.process.projectstandard.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval;
/**
*
*@author liJiaRao
*@date 2024-01-17 15:00
*/
public interface ProcessProjectStandardTermApprovalMapper extends BaseMapper<ProcessProjectStandardTermApproval> {
}
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectStandardTermApprovalMapper">
<resultMap id="BaseResultMap" type="com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval">
<!--@mbg.generated-->
<!--@Table process_project_standard_term_approval-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="org_code" jdbcType="VARCHAR" property="orgCode" />
<result column="del_flag" jdbcType="INTEGER" property="delFlag" />
<result column="process_id" jdbcType="VARCHAR" property="processId" />
<result column="responsible_unit_leader" jdbcType="VARCHAR" property="responsibleUnitLeader" />
<result column="term_id" jdbcType="VARCHAR" property="termId" />
<result column="assess_results" jdbcType="BOOLEAN" property="assessResults" />
<result column="project_approval_flag" jdbcType="BOOLEAN" property="projectApprovalFlag" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, create_by, create_time, update_by, update_time, org_code, del_flag, process_id,
responsible_unit_leader, term_id, assess_results, project_approval_flag
</sql>
</mapper>
@@ -89,6 +89,7 @@
,
ppstu.id term_user_id,
ppstu.not_involved,
ppstu.module_owner,
ppstu.assess_results,
ppstu.description,
ppstu.file_id,
@@ -3,12 +3,12 @@ package com.jero.modules.activiti.process.projectstandard.service;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.api.vo.SendMessageAPI;
import com.jero.common.constant.CommonConstant;
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.DictModel;
@@ -19,21 +19,22 @@ import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
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.BasicTaskInfoDTO;
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.projectassess.common.ProcessProjectAssessCommon;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessLink;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTermUser;
import com.jero.modules.activiti.process.projectstandard.common.ProcessProjectStandardCommon;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTerm;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermUser;
import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectStandardTermMapper;
import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectStandardTermUserMapper;
import com.jero.modules.activiti.process.projectstandard.vo.ProcessProjectStandardVO;
import com.jero.modules.activiti.process.projectstandard.vo.StandardSelectionVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.util.ThreadLocalUtil;
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
@@ -41,6 +42,7 @@ import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
import com.jero.modules.laws.standard.entity.LawsOverseasStandard;
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
import com.jero.modules.projectLibrary.common.AssessCommon;
import com.jero.modules.projectLibrary.vo.DecompositionOrderSourceVO;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.service.ISarFileSplitInfoService;
@@ -48,6 +50,7 @@ import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -94,6 +97,8 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
private ProcessProjectStandardTermUserMapper termUserMapper;
@Resource
private ProcessProjectStandardTermUserService termUserService;
@Resource
private ProcessProjectStandardTermApprovalService termApprovalService;
@@ -115,7 +120,7 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
String executionParentId = task.getFormKey();
String taskDefinitionKey = task.getTaskDefinitionKey();
if (taskDefinitionKey.contains("_") && !taskDefinitionKey.contains("mkfzrff_")){
if (taskDefinitionKey.contains("_") && !taskDefinitionKey.contains(ProcessProjectStandardCommon.MKZRRFF_)){
taskDefinitionKey = taskDefinitionKey.substring(0,taskDefinitionKey.length()-1);
}
List<ProcessProjectStandardTermUser> processProjectStandardTermUserList = new ArrayList<>();
@@ -138,27 +143,14 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
case ProcessProjectStandardCommon.BSZGJLDXF:
processProjectStandardTermList = termMapper.getByResponsibleUnitLeader(processId, originUserId, false);
break;
//部所主管级领导审批
case ProcessProjectStandardCommon.BSZGJLDSP_:
processProjectStandardTermList = termMapper.getByResponsibleUnitLeader(processId, originUserId, true);
wrapper.eq(ProcessProjectStandardTermUser::getResponsibleUnitLeader, originUserId);
break;
//模块负责人分发
case ProcessProjectStandardCommon.MKFZRFF_1:
//模块责任人分发
case ProcessProjectStandardCommon.MKZRRFF_1:
processProjectStandardTermList = termMapper.getByModuleOwner(processId, originUserId, executionParentId, false);
break;
//驳回后模块责人分发
case ProcessProjectStandardCommon.MKFZRFF_4:
case ProcessProjectStandardCommon.MKFZRFF_5:
//驳回后模块责人分发
case ProcessProjectStandardCommon.MKZRRFF_4:
case ProcessProjectStandardCommon.MKZRRFF_5:
processProjectStandardTermList = termMapper.getByModuleOwner(processId, originUserId, executionParentId, true);
break;
//模块负责人审批
case ProcessProjectStandardCommon.MKFZRSP_:
processProjectStandardTermList = termMapper.getByModuleOwner(processId, originUserId, executionParentId, false);
wrapper.eq(ProcessProjectStandardTermUser::getModuleOwner, originUserId);
wrapper.eq(ProcessProjectStandardTermUser::getParentExecutionId, executionParentId);
list = termUserService.list(wrapper);
break;
//设计工程师评估
case ProcessProjectStandardCommon.SJGCSPG_:
@@ -167,6 +159,19 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
wrapper.eq(ProcessProjectStandardTermUser::getParentExecutionId, executionParentId);
list = termUserService.list(wrapper);
break;
//模块责任人审批
case ProcessProjectStandardCommon.MKZRRFF_:
processProjectStandardTermList = termMapper.getByModuleOwner(processId, originUserId, executionParentId, false);
wrapper.eq(ProcessProjectStandardTermUser::getModuleOwner, originUserId);
wrapper.eq(ProcessProjectStandardTermUser::getParentExecutionId, executionParentId);
list = termUserService.list(wrapper);
break;
//部所主管级领导审批
case ProcessProjectStandardCommon.BSZGJLDSP_:
processProjectStandardTermList = termMapper.getByResponsibleUnitLeader(processId, originUserId, true);
wrapper.eq(ProcessProjectStandardTermUser::getResponsibleUnitLeader, originUserId);
break;
//法规工程师审批
case ProcessProjectStandardCommon.FGGCSSP:
@@ -307,10 +312,275 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
processHandleService.startProcess(processInfoVO);
}
public void approveTask(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, boolean b) {
public void approveTask(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, boolean pass) {
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
String taskId = basicTaskInfoDTO.getTaskId();
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
String processInstanceId = processDTO.getProcessInstanceId();
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
processInfoVO.setBusinessId(processAll.getProjectId());
Task task = processDTO.getTask();
String taskDefinitionKey = task.getTaskDefinitionKey();
if (taskDefinitionKey.contains("_") && !taskDefinitionKey.contains(ProcessProjectStandardCommon.MKZRRFF_)){
taskDefinitionKey = taskDefinitionKey.substring(0,taskDefinitionKey.length()-1);
}
processHandleService.updateApprovalRecord(processInfoVO);
switch (taskDefinitionKey) {
//模块责任人审批
case ProcessProjectStandardCommon.MKZRRFF_:
mkzrrffApprove(processInfoVO, processDTO, pass);
break;
//部所主管级领导审批
case ProcessProjectStandardCommon.BSZGJLDSP_:
bszgjldspApprove(processInfoVO, processDTO, pass);
break;
//法规工程师审批
case ProcessProjectStandardCommon.FGGCSSP:
fggcsspApprove(processInfoVO, processDTO, pass);
break;
default:
}
}
//模块责任人审批
private void mkzrrffApprove(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
// 完成任务
String taskId = processDTO.getTaskId();
Map<String, Object> variables = new HashMap<>();
variables.put(ProcessProjectAssessCommon.PASS, pass);
taskService.complete(taskId, variables);
}
//部所主管级领导审批
private void bszgjldspApprove(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
String businessId = processInfoVO.getBusinessId();
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
String originUserId = processApprovalRecord.getOriginUserId();
Task task = processDTO.getTask();
String executionId = task.getExecutionId();
//查询表单
ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
List<ProcessProjectStandardTerm> termList = businessInfoDTO.getProcessProjectStandardTermList();
List<ProcessProjectStandardTermApproval> termApprovalList = new ArrayList<>();
//删除之前的立项结果
List<String> termIdList = termList.stream().map(ProcessProjectStandardTerm::getId).collect(Collectors.toList());
LambdaQueryWrapper<ProcessProjectStandardTermApproval> deleteWrapper = new LambdaQueryWrapper<>();
deleteWrapper.eq(ProcessProjectStandardTermApproval::getProcessId,businessId);
deleteWrapper.eq(ProcessProjectStandardTermApproval::getResponsibleUnitLeader,originUserId);
deleteWrapper.in(ProcessProjectStandardTermApproval::getTermId,termIdList);
termApprovalService.remove(deleteWrapper);
//保存立项结果
for (ProcessProjectStandardTerm term : termList) {
ProcessProjectStandardTermApproval termApproval = new ProcessProjectStandardTermApproval();
termApproval.setProcessId(businessId);
termApproval.setResponsibleUnitLeader(CurrentUserUtil.getId());
termApproval.setTermId(term.getId());
termApproval.setAssessResults(term.getAssessResults());
termApproval.setProjectApprovalFlag(term.getProjectApprovalFlag());
termApprovalList.add(termApproval);
}
termApprovalService.saveBatch(termApprovalList);
}
//法规工程师审批
private void fggcsspApprove(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
}
public void submit(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO) {
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
String taskId = basicTaskInfoDTO.getTaskId();
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
String processInstanceId = processDTO.getProcessInstanceId();
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
processInfoVO.setBusinessId(processAll.getProjectId());
Task task = processDTO.getTask();
String taskDefinitionKey = task.getTaskDefinitionKey();
if (taskDefinitionKey.contains("_") && !taskDefinitionKey.contains(ProcessProjectStandardCommon.MKZRRFF_)){
taskDefinitionKey = taskDefinitionKey.substring(0,taskDefinitionKey.length()-1);
}
processHandleService.updateApprovalRecord(processInfoVO);
switch (taskDefinitionKey){
//部所主管级领导下发
case ProcessProjectStandardCommon.BSZGJLDXF:
bszgjldxfSubmit(processInfoVO, processDTO);
break;
//模块责任人分发
//驳回后模块责任人分发
case ProcessProjectStandardCommon.MKZRRFF_1:
mkzrrffSubmit(processInfoVO, processDTO, false);
break;
case ProcessProjectStandardCommon.MKZRRFF_4:
case ProcessProjectStandardCommon.MKZRRFF_5:
mkzrrffSubmit(processInfoVO, processDTO, true);
break;
//设计工程师评估
case ProcessProjectStandardCommon.SJGCSPG_:
sjgcspgSubmit(processInfoVO, processDTO);
break;
//设计工程师补充工作令编号
case ProcessProjectStandardCommon.SJGCSBCGZLBH:
sjgcsbcgzlbhSubmit(processInfoVO, processDTO);
break;
default:
}
}
//部所主管级领导下发
private void bszgjldxfSubmit(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO) {
String businessId = processInfoVO.getBusinessId();
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
String originUserId = processApprovalRecord.getOriginUserId();
Task task = processDTO.getTask();
String executionId = task.getExecutionId();
// 查询原先存储的关联
LambdaQueryWrapper<ProcessProjectStandardTermUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessProjectStandardTermUser::getProcessId, businessId);
wrapper.eq(ProcessProjectStandardTermUser::getResponsibleUnitLeader, originUserId);
List<ProcessProjectStandardTermUser> termUserList = termUserService.list(wrapper);
ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
List<ProcessProjectStandardTerm> termList = businessInfoDTO.getProcessProjectStandardTermList();
Map<String, ProcessProjectStandardTerm> termUserIdMap = CollStreamUtil.toIdentityMap(termList, ProcessProjectStandardTerm::getTermUserId);
List<String> moduleOwnerIds = new ArrayList<>();
for (ProcessProjectStandardTermUser termUser : termUserList) {
String termUserId = termUser.getId();
ProcessProjectStandardTerm term = termUserIdMap.get(termUserId);
String notInvolved = term.getNotInvolved();
LambdaUpdateWrapper<ProcessProjectStandardTermUser> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessProjectStandardTermUser::getId,termUserId);
if (StringUtils.isNotBlank(notInvolved)){
updateWrapper.set(ProcessProjectStandardTermUser::getNotInvolved,notInvolved);
updateWrapper.set(ProcessProjectStandardTermUser::getAssessResults, AssessCommon.NOT_INVOLVED);
}else {
String moduleOwner = termUser.getModuleOwner();
if (StringUtils.isBlank(moduleOwner)){
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
}
updateWrapper.set(ProcessProjectStandardTermUser::getModuleOwner, moduleOwner);
moduleOwnerIds.add(moduleOwner);
}
termUserService.update(updateWrapper);
}
moduleOwnerIds = moduleOwnerIds.stream()
.filter(Objects::nonNull)
.distinct().collect(Collectors.toList());
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectStandardCommon.MKZRRFF_1, moduleOwnerIds);
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectStandardCommon.MKZRRSP_1, moduleOwnerIds);
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
// 完成任务
String taskId = processDTO.getTaskId();
Map<String, Object> variables = new HashMap<>();
variables.put(ProcessProjectStandardCommon.MODULE_OWNER_LIST, moduleOwnerIds);
variables.put(ProcessProjectStandardCommon.MODULE_OWNER_LIST_SIZE, moduleOwnerIds.size());
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
//模块责任人分发
//驳回后模块责任人分发
private void mkzrrffSubmit(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO, boolean isAfterReject) {
String businessId = processInfoVO.getBusinessId();
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
String originUserId = processApprovalRecord.getOriginUserId();
Task task = processDTO.getTask();
String executionId = task.getExecutionId();
String parentExecutionId = task.getFormKey();
// 查询原先存储的关联
LambdaQueryWrapper<ProcessProjectStandardTermUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessProjectStandardTermUser::getProcessId, businessId);
wrapper.eq(ProcessProjectStandardTermUser::getModuleOwner, originUserId);
wrapper.eq(ProcessProjectStandardTermUser::getParentExecutionId, parentExecutionId);
if (isAfterReject){
wrapper.isNull(ProcessProjectStandardTermUser::getDesignEngineer);
}
List<ProcessProjectStandardTermUser> termUserList = termUserService.list(wrapper);
//查询表单
ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
List<ProcessProjectStandardTerm> termList = businessInfoDTO.getProcessProjectStandardTermList();
Map<String, ProcessProjectStandardTerm> termUserIdMap = CollStreamUtil.toIdentityMap(termList, ProcessProjectStandardTerm::getTermUserId);
//保存所有新增的关联用户
List<ProcessProjectStandardTermUser> allInsertTermUserList = new ArrayList<>();
//保存所有设计工程师
List<String> designEngineerIds = new ArrayList<>();
for (ProcessProjectStandardTermUser termUser : termUserList) {
String termUserId = termUser.getId();
ProcessProjectStandardTerm term = termUserIdMap.get(termUserId);
String notInvolved = term.getNotInvolved();
LambdaUpdateWrapper<ProcessProjectStandardTermUser> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessProjectStandardTermUser::getId,termUserId);
//如果是不涉及就更新
if (StringUtils.isNotBlank(notInvolved)){
updateWrapper.set(ProcessProjectStandardTermUser::getNotInvolved,notInvolved);
updateWrapper.set(ProcessProjectStandardTermUser::getAssessResults, AssessCommon.NOT_INVOLVED);
termUserService.update(updateWrapper);
}else {
//如果设计工程师有一个就更新,有多个就新增剩下的
String designEngineers = termUser.getDesignEngineer();
if (StringUtils.isBlank(designEngineers)){
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
}
List<String> designEngineerList = Arrays.asList(designEngineers.split(","));
designEngineerIds.addAll(designEngineerList);
updateWrapper.set(ProcessProjectStandardTermUser::getModuleOwner, designEngineerList.get(0));
termUserService.update(updateWrapper);
if (designEngineerList.size() >= 2){
for (int i = 1; i < designEngineerList.size(); i++) {
ProcessProjectStandardTermUser termUser1 = new ProcessProjectStandardTermUser();
BeanUtils.copyProperties(termUser,termUser1);
termUser1.setId(null);
termUser1.setDesignEngineer(designEngineerList.get(i));
allInsertTermUserList.add(termUser1);
}
}
}
}
//新增的关联用户
termUserService.saveBatch(allInsertTermUserList);
designEngineerIds = designEngineerIds.stream()
.filter(Objects::nonNull)
.distinct().collect(Collectors.toList());
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectStandardCommon.SJGCSPG_1, designEngineerIds);
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId);
// 完成任务
String taskId = processDTO.getTaskId();
Map<String, Object> variables = new HashMap<>();
variables.put(ProcessProjectStandardCommon.DESIGN_ENGINEER_LIST, designEngineerIds);
variables.put(ProcessProjectStandardCommon.DESIGN_ENGINEER_LIST_SIZE, designEngineerIds.size());
taskService.complete(taskId, variables);
ThreadLocalUtil.remove();
}
//设计工程师评估
private void sjgcspgSubmit(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO) {
String businessId = processInfoVO.getBusinessId();
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
String originUserId = processApprovalRecord.getOriginUserId();
Task task = processDTO.getTask();
String formKey = task.getFormKey();
String executionId = task.getExecutionId();
ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
List<ProcessProjectStandardTerm> termList = businessInfoDTO.getProcessProjectStandardTermList();
List<ProcessProjectStandardTermUser> udpateTermUserList = new ArrayList<>();
for (ProcessProjectStandardTerm term : termList) {
ProcessProjectStandardTermUser termUser = new ProcessProjectStandardTermUser();
termUser.setId(term.getTermUserId());
termUser.setAssessResults(term.getAssessResults());
termUser.setModelSeries(term.getModelSeries());
termUser.setDescription(term.getDescription());
termUser.setFileId(term.getFileId());
udpateTermUserList.add(termUser);
}
termUserService.updateBatchById(udpateTermUserList);
ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,formKey);
// 完成任务
String taskId = processDTO.getTaskId();
taskService.complete(taskId);
ThreadLocalUtil.remove();
}
//设计工程师补充工作令编号
private void sjgcsbcgzlbhSubmit(ProcessInfoVO<ProcessProjectStandardVO> processInfoVO, ProcessDTO processDTO) {
}
public IPage<StandardSelectionVO> getManyStandardSelectionBox(ManyStandardSelectionBoxVO selectionBoxVO, Integer pageNo, Integer pageSize) {
@@ -0,0 +1,17 @@
package com.jero.modules.activiti.process.projectstandard.service;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval;
import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectStandardTermApprovalMapper;
/**
*
*@author liJiaRao
*@date 2024-01-17 15:00
*/
@Service
public class ProcessProjectStandardTermApprovalService extends ServiceImpl<ProcessProjectStandardTermApprovalMapper, ProcessProjectStandardTermApproval> {
}
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.projectstandard.vo;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandard;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTerm;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval;
import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermUser;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -23,4 +24,7 @@ public class ProcessProjectStandardVO {
/**关联标准分派列表*/
@ApiModelProperty(value = "关联标准分派列表")
private List<ProcessProjectStandardTermUser> processProjectStandardTermUserList;
/**立项结果列表*/
@ApiModelProperty(value = "立项结果列表")
private List<ProcessProjectStandardTermApproval> processProjectStandardTermApprovalList;
}
@@ -24,7 +24,7 @@ public class ThreadLocalUtil {
public static Object get(String key) {
Map<String, Object> map = RUNTIME_DATA.get();
RUNTIME_DATA.remove();
//RUNTIME_DATA.remove();
return map.get(key);
}
@@ -32,8 +32,8 @@ public class ThreadLocalUtil {
getRuntimeData().put(key, value);
}
public static void remove(String key) {
getRuntimeData().remove(key);
public static void remove() {
RUNTIME_DATA.remove();
}
public static void clear() {
File diff suppressed because it is too large Load Diff
@@ -24,7 +24,7 @@
<bpmn:incoming>Flow_1g6zc95</bpmn:incoming>
<bpmn:outgoing>Flow_06h9ihd</bpmn:outgoing>
</bpmn:userTask>
<bpmn:subProcess id="Activity_08c4m85" name="模块责人下发子流程">
<bpmn:subProcess id="Activity_08c4m85" name="模块责人下发子流程">
<bpmn:extensionElements />
<bpmn:incoming>Flow_1r3w91d</bpmn:incoming>
<bpmn:outgoing>Flow_0obo4r2</bpmn:outgoing>
@@ -34,7 +34,7 @@
<bpmn:startEvent id="Event_1ian0ub">
<bpmn:outgoing>Flow_0xb4gtd</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_0xb4gtd" sourceRef="Event_1ian0ub" targetRef="mkfzrff_1" />
<bpmn:sequenceFlow id="Flow_0xb4gtd" sourceRef="Event_1ian0ub" targetRef="mkzrrff_1" />
<bpmn:userTask id="sjgcspg_1" name="设计工程师评估" camunda:assignee="${designEngineer}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
@@ -46,7 +46,7 @@
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:userTask id="mkfzrsp_1" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrsp_1" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -58,7 +58,7 @@
<bpmn:outgoing>Flow_1m6dxws</bpmn:outgoing>
<bpmn:outgoing>Flow_07hxwn8</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_1w5wrt4" sourceRef="mkfzrsp_1" targetRef="Gateway_1vkxod2" />
<bpmn:sequenceFlow id="Flow_1w5wrt4" sourceRef="mkzrrsp_1" targetRef="Gateway_1vkxod2" />
<bpmn:endEvent id="Event_151o5cu">
<bpmn:incoming>Flow_1m6dxws</bpmn:incoming>
</bpmn:endEvent>
@@ -68,15 +68,15 @@
<bpmn:sequenceFlow id="Flow_07hxwn8" name="驳回" sourceRef="Gateway_1vkxod2" targetRef="sjgcspg_1">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="mkfzrff_1" name="模块责人分发" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrff_1" name="模块责人分发" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0xb4gtd</bpmn:incoming>
<bpmn:outgoing>Flow_0a6biwg</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0a6biwg" sourceRef="mkfzrff_1" targetRef="Gateway_0r2qm3p" />
<bpmn:sequenceFlow id="Flow_197effc" sourceRef="sjgcspg_1" targetRef="mkfzrsp_1" />
<bpmn:sequenceFlow id="Flow_0a6biwg" sourceRef="mkzrrff_1" targetRef="Gateway_0r2qm3p" />
<bpmn:sequenceFlow id="Flow_197effc" sourceRef="sjgcspg_1" targetRef="mkzrrsp_1" />
<bpmn:exclusiveGateway id="Gateway_0r2qm3p">
<bpmn:incoming>Flow_0a6biwg</bpmn:incoming>
<bpmn:outgoing>Flow_15xpnyd</bpmn:outgoing>
@@ -134,7 +134,7 @@
<bpmn:outgoing>Flow_1jjyqj0</bpmn:outgoing>
<bpmn:outgoing>Flow_1wdzyax</bpmn:outgoing>
</bpmn:inclusiveGateway>
<bpmn:subProcess id="Activity_0ak2ho3" name="模块责人下发子流程">
<bpmn:subProcess id="Activity_0ak2ho3" name="模块责人下发子流程">
<bpmn:incoming>Flow_1wdzyax</bpmn:incoming>
<bpmn:outgoing>Flow_0q2chl1</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="notInvolvedModuleOwnerList" camunda:elementVariable="moduleOwner">
@@ -143,7 +143,7 @@
<bpmn:startEvent id="Event_0haaibd">
<bpmn:outgoing>Flow_0n3x332</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="mkfzrff_4" name="模块责人分发" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrff_4" name="模块责人分发" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -166,7 +166,7 @@
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:userTask id="mkfzrsp_4" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrsp_4" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -184,8 +184,8 @@
<bpmn:endEvent id="Event_125tmf0">
<bpmn:incoming>Flow_1u1h3jz</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0n3x332" sourceRef="Event_0haaibd" targetRef="mkfzrff_4" />
<bpmn:sequenceFlow id="Flow_1mwm3jy" sourceRef="mkfzrff_4" targetRef="Gateway_151dwa8" />
<bpmn:sequenceFlow id="Flow_0n3x332" sourceRef="Event_0haaibd" targetRef="mkzrrff_4" />
<bpmn:sequenceFlow id="Flow_1mwm3jy" sourceRef="mkzrrff_4" targetRef="Gateway_151dwa8" />
<bpmn:sequenceFlow id="Flow_1u1h3jz" name="全部不涉及" sourceRef="Gateway_151dwa8" targetRef="Event_125tmf0">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${designEngineerListSize == 0}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
@@ -195,13 +195,13 @@
<bpmn:sequenceFlow id="Flow_1bzp3jv" name="驳回" sourceRef="Gateway_1bduqeh" targetRef="sjgcspg_4">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0xi7z4i" sourceRef="sjgcspg_4" targetRef="mkfzrsp_4" />
<bpmn:sequenceFlow id="Flow_044zvbm" sourceRef="mkfzrsp_4" targetRef="Gateway_1bduqeh" />
<bpmn:sequenceFlow id="Flow_0xi7z4i" sourceRef="sjgcspg_4" targetRef="mkzrrsp_4" />
<bpmn:sequenceFlow id="Flow_044zvbm" sourceRef="mkzrrsp_4" targetRef="Gateway_1bduqeh" />
<bpmn:sequenceFlow id="Flow_1gymwkm" name="通过" sourceRef="Gateway_1bduqeh" targetRef="Event_1jaa14d">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
</bpmn:subProcess>
<bpmn:subProcess id="Activity_072gbnv" name="模块责人驳回子流程">
<bpmn:subProcess id="Activity_072gbnv" name="模块责人驳回子流程">
<bpmn:incoming>Flow_1jjyqj0</bpmn:incoming>
<bpmn:outgoing>Flow_04bioxt</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="moduleOwnerList" camunda:elementVariable="moduleOwner">
@@ -210,7 +210,7 @@
<bpmn:startEvent id="Event_1awayw1">
<bpmn:outgoing>Flow_18i416j</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_18i416j" sourceRef="Event_1awayw1" targetRef="mkfzrff_2" />
<bpmn:sequenceFlow id="Flow_18i416j" sourceRef="Event_1awayw1" targetRef="mkzrrff_2" />
<bpmn:userTask id="sjgcspg_2" name="设计工程师评估" camunda:assignee="${designEngineer}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
@@ -222,7 +222,7 @@
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:userTask id="mkfzrsp_2" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrsp_2" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -240,12 +240,12 @@
<bpmn:sequenceFlow id="Flow_1al6zeq" name="驳回" sourceRef="Gateway_0e1m7wn" targetRef="sjgcspg_2">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_11c0pso" sourceRef="sjgcspg_2" targetRef="mkfzrsp_2" />
<bpmn:sequenceFlow id="Flow_0gzlhk1" sourceRef="mkfzrsp_2" targetRef="Gateway_0e1m7wn" />
<bpmn:sequenceFlow id="Flow_11c0pso" sourceRef="sjgcspg_2" targetRef="mkzrrsp_2" />
<bpmn:sequenceFlow id="Flow_0gzlhk1" sourceRef="mkzrrsp_2" targetRef="Gateway_0e1m7wn" />
<bpmn:sequenceFlow id="Flow_1tfvdpt" name="通过" sourceRef="Gateway_0e1m7wn" targetRef="Event_0662euh">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="mkfzrff_2" name="模块责人自动分发" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrff_2" name="模块责人自动分发" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
<camunda:taskListener class="com.jero.modules.activiti.process.projectstandard.listener.ProcessProjectStandardAutoListener" event="create" />
@@ -253,7 +253,7 @@
<bpmn:incoming>Flow_18i416j</bpmn:incoming>
<bpmn:outgoing>Flow_1m13a5m</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1m13a5m" sourceRef="mkfzrff_2" targetRef="sjgcspg_2" />
<bpmn:sequenceFlow id="Flow_1m13a5m" sourceRef="mkzrrff_2" targetRef="sjgcspg_2" />
</bpmn:subProcess>
<bpmn:endEvent id="Event_17bnh8x">
<bpmn:incoming>Flow_132fp4x</bpmn:incoming>
@@ -309,13 +309,13 @@
<bpmn:incoming>Flow_0uhjeie</bpmn:incoming>
<bpmn:outgoing>Flow_117rgu5</bpmn:outgoing>
</bpmn:userTask>
<bpmn:subProcess id="Activity_1xsrtpj" name="模块责人驳回子流程">
<bpmn:subProcess id="Activity_1xsrtpj" name="模块责人驳回子流程">
<bpmn:incoming>Flow_0ljfd7s</bpmn:incoming>
<bpmn:outgoing>Flow_0zsh74h</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="moduleOwnerList" camunda:elementVariable="moduleOwner">
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
<bpmn:userTask id="mkfzrsp_3" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrsp_3" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -344,16 +344,16 @@
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_19fpo83" sourceRef="mkfzrsp_3" targetRef="Gateway_0fkslca" />
<bpmn:sequenceFlow id="Flow_19fpo83" sourceRef="mkzrrsp_3" targetRef="Gateway_0fkslca" />
<bpmn:sequenceFlow id="Flow_0j9t3br" name="驳回" sourceRef="Gateway_0fkslca" targetRef="sjgcspg_3">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0920pid" name="通过" sourceRef="Gateway_0fkslca" targetRef="Event_0uendgp">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_1lw0nd8" sourceRef="Event_0en8fvn" targetRef="mkfzrff_3" />
<bpmn:sequenceFlow id="Flow_1wjzl0u" sourceRef="sjgcspg_3" targetRef="mkfzrsp_3" />
<bpmn:userTask id="mkfzrff_3" name="模块责人自动分发" camunda:assignee="${moduleOwner}">
<bpmn:sequenceFlow id="Flow_1lw0nd8" sourceRef="Event_0en8fvn" targetRef="mkzrrff_3" />
<bpmn:sequenceFlow id="Flow_1wjzl0u" sourceRef="sjgcspg_3" targetRef="mkzrrsp_3" />
<bpmn:userTask id="mkzrrff_3" name="模块责人自动分发" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
<camunda:taskListener class="com.jero.modules.activiti.process.projectstandard.listener.ProcessProjectStandardAutoListener" event="create" />
@@ -361,7 +361,7 @@
<bpmn:incoming>Flow_1lw0nd8</bpmn:incoming>
<bpmn:outgoing>Flow_1y4773i</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1y4773i" sourceRef="mkfzrff_3" targetRef="sjgcspg_3" />
<bpmn:sequenceFlow id="Flow_1y4773i" sourceRef="mkzrrff_3" targetRef="sjgcspg_3" />
</bpmn:subProcess>
<bpmn:sequenceFlow id="Flow_0x6qt62" sourceRef="Event_1d40kan" targetRef="bszgjldsp_2" />
<bpmn:exclusiveGateway id="Gateway_1uodwb8">
@@ -372,7 +372,7 @@
<bpmn:endEvent id="Event_1kdwhwn">
<bpmn:incoming>Flow_0ncu6j5</bpmn:incoming>
</bpmn:endEvent>
<bpmn:subProcess id="Activity_1n4w1w7" name="模块责人下发子流程">
<bpmn:subProcess id="Activity_1n4w1w7" name="模块责人下发子流程">
<bpmn:incoming>Flow_0gac88y</bpmn:incoming>
<bpmn:outgoing>Flow_0xkvov2</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics camunda:collection="notInvolvedModuleOwnerList" camunda:elementVariable="moduleOwner">
@@ -381,7 +381,7 @@
<bpmn:startEvent id="Event_0yz633y">
<bpmn:outgoing>Flow_0sdhvpq</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="mkfzrff_5" name="模块责人分发" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrff_5" name="模块责人分发" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -407,7 +407,7 @@
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:userTask id="mkfzrsp_5" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:userTask id="mkzrrsp_5" name="模块责人审批" camunda:assignee="${moduleOwner}">
<bpmn:extensionElements>
<camunda:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
</bpmn:extensionElements>
@@ -422,8 +422,8 @@
<bpmn:endEvent id="Event_1tjj7kf">
<bpmn:incoming>Flow_1sx8sgp</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0sdhvpq" sourceRef="Event_0yz633y" targetRef="mkfzrff_5" />
<bpmn:sequenceFlow id="Flow_09obdrn" sourceRef="mkfzrff_5" targetRef="Gateway_0o0lepl" />
<bpmn:sequenceFlow id="Flow_0sdhvpq" sourceRef="Event_0yz633y" targetRef="mkzrrff_5" />
<bpmn:sequenceFlow id="Flow_09obdrn" sourceRef="mkzrrff_5" targetRef="Gateway_0o0lepl" />
<bpmn:sequenceFlow id="Flow_0uq7eff" name="全部不涉及" sourceRef="Gateway_0o0lepl" targetRef="Event_0x5b2wc">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${designEngineerListSize == 0}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
@@ -433,8 +433,8 @@
<bpmn:sequenceFlow id="Flow_1nw6gbh" name="驳回" sourceRef="Gateway_0u0urpo" targetRef="sjgcspg_5">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_1ri7hvx" sourceRef="sjgcspg_5" targetRef="mkfzrsp_5" />
<bpmn:sequenceFlow id="Flow_0wr1983" sourceRef="mkfzrsp_5" targetRef="Gateway_0u0urpo" />
<bpmn:sequenceFlow id="Flow_1ri7hvx" sourceRef="sjgcspg_5" targetRef="mkzrrsp_5" />
<bpmn:sequenceFlow id="Flow_0wr1983" sourceRef="mkzrrsp_5" targetRef="Gateway_0u0urpo" />
<bpmn:sequenceFlow id="Flow_1sx8sgp" name="通过" sourceRef="Gateway_0u0urpo" targetRef="Event_1tjj7kf">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
@@ -531,7 +531,7 @@
<bpmndi:BPMNShape id="Event_1ian0ub_di" bpmnElement="Event_1ian0ub">
<dc:Bounds x="700" y="172" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_02udv1z_di" bpmnElement="mkfzrff_1">
<bpmndi:BPMNShape id="Activity_02udv1z_di" bpmnElement="mkzrrff_1">
<dc:Bounds x="790" y="150" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0coxith" bpmnElement="Gateway_0r2qm3p" isMarkerVisible="true">
@@ -540,7 +540,7 @@
<bpmndi:BPMNShape id="Activity_1vb9u4y_di" bpmnElement="sjgcspg_1">
<dc:Bounds x="940" y="233" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_19iwpt2" bpmnElement="mkfzrsp_1">
<bpmndi:BPMNShape id="BPMNShape_19iwpt2" bpmnElement="mkzrrsp_1">
<dc:Bounds x="1130" y="233" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
@@ -609,7 +609,7 @@
<bpmndi:BPMNShape id="BPMNShape_12g34bf" bpmnElement="sjgcspg_2">
<dc:Bounds x="1130" y="550" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1hap6ua" bpmnElement="mkfzrsp_2">
<bpmndi:BPMNShape id="BPMNShape_1hap6ua" bpmnElement="mkzrrsp_2">
<dc:Bounds x="1290" y="550" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
@@ -619,7 +619,7 @@
<bpmndi:BPMNShape id="BPMNShape_19mf899" bpmnElement="Event_0662euh">
<dc:Bounds x="1542" y="572" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1smc6im" bpmnElement="mkfzrff_2">
<bpmndi:BPMNShape id="BPMNShape_1smc6im" bpmnElement="mkzrrff_2">
<dc:Bounds x="980" y="550" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
@@ -662,7 +662,7 @@
<bpmndi:BPMNShape id="BPMNShape_1rn9z6v" bpmnElement="Event_0haaibd">
<dc:Bounds x="885" y="815" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1a8xmid" bpmnElement="mkfzrff_4">
<bpmndi:BPMNShape id="BPMNShape_1a8xmid" bpmnElement="mkzrrff_4">
<dc:Bounds x="975" y="793" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1xjq7zc" bpmnElement="Event_125tmf0">
@@ -674,7 +674,7 @@
<bpmndi:BPMNShape id="BPMNShape_0sgsn68" bpmnElement="sjgcspg_4">
<dc:Bounds x="1125" y="883" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0u4y8iq" bpmnElement="mkfzrsp_4">
<bpmndi:BPMNShape id="BPMNShape_0u4y8iq" bpmnElement="mkzrrsp_4">
<dc:Bounds x="1315" y="883" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
@@ -837,7 +837,7 @@
<bpmndi:BPMNShape id="BPMNShape_0zuvsvo" bpmnElement="Event_0yz633y">
<dc:Bounds x="2185" y="772" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0a6akwi" bpmnElement="mkfzrff_5">
<bpmndi:BPMNShape id="BPMNShape_0a6akwi" bpmnElement="mkzrrff_5">
<dc:Bounds x="2275" y="750" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_19yd79o" bpmnElement="Event_0x5b2wc">
@@ -849,7 +849,7 @@
<bpmndi:BPMNShape id="BPMNShape_14jfhxs" bpmnElement="sjgcspg_5">
<dc:Bounds x="2425" y="840" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1uddvin" bpmnElement="mkfzrsp_5">
<bpmndi:BPMNShape id="BPMNShape_1uddvin" bpmnElement="mkzrrsp_5">
<dc:Bounds x="2615" y="840" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
@@ -909,7 +909,7 @@
<dc:Bounds x="2155" y="440" width="750" height="245" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0c83r33" bpmnElement="mkfzrsp_3">
<bpmndi:BPMNShape id="BPMNShape_0c83r33" bpmnElement="mkzrrsp_3">
<dc:Bounds x="2575" y="520" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
@@ -925,7 +925,7 @@
<bpmndi:BPMNShape id="BPMNShape_1fv02ul" bpmnElement="sjgcspg_3">
<dc:Bounds x="2415" y="520" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0y70zxq" bpmnElement="mkfzrff_3">
<bpmndi:BPMNShape id="BPMNShape_0y70zxq" bpmnElement="mkzrrff_3">
<dc:Bounds x="2265" y="520" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>