add 未符合项跟踪流程 发起流程,查询详情,提交,审批,保存
This commit is contained in:
@@ -15,6 +15,7 @@ public enum ProcessTypeEnum {
|
||||
FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessHandleServiceImpl"),
|
||||
FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl"),
|
||||
PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService"),
|
||||
PROJECT_NOT_MET("未符合项跟踪流程",4, "com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService"),
|
||||
FB_STANDARD_PURCHASE("法规采购流程",6, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardPurchaseServiceImpl"),
|
||||
ES_INIT_CHANGE("企标立项/变更计划",7, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"),
|
||||
ES_ANNUAL_REPORT("年度制修订计划审批流程(各部门主动上报)",8, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"),
|
||||
|
||||
+2
@@ -18,5 +18,7 @@ public class ProcessDefinitionKey {
|
||||
public static final String FB_STANDARD_COMPLIANCE_ASSESSMENT = "fb-standard-compliance-assessment"; // 法规合规评估流程
|
||||
//项目合规评估流程
|
||||
public static final String PROJECT_ASSESS = "project-assessment";
|
||||
//项目合规评估流程
|
||||
public static final String PROJECT_NOT_MET = "project-not-met";
|
||||
|
||||
}
|
||||
|
||||
+19
@@ -5,5 +5,24 @@ package com.jero.modules.activiti.process.projectnotmet.common;
|
||||
* @date 2023-12-23 20:11
|
||||
*/
|
||||
public class ProcessProjectNotMetCommon {
|
||||
public static final String STANDARDS_ENGINEER = "standardsEngineer";
|
||||
public static final String MANAGER_LEADER = "managerLeader";
|
||||
public static final String DESIGN_ENGINEER_LIST = "designEngineerList";
|
||||
/**
|
||||
*法规工程师发起整改
|
||||
*/
|
||||
public static final String FGGCSFQZG = "fggcsfqzg";
|
||||
/**
|
||||
*设计工程师上传整改材料
|
||||
*/
|
||||
public static final String SJGCSSCZGCL = "sjgcssczgcl";
|
||||
/**
|
||||
*主管级领导审批
|
||||
*/
|
||||
public static final String ZGJLDSP = "zgjldsp";
|
||||
/**
|
||||
*法规工程师审批
|
||||
*/
|
||||
public static final String FGGCSSP = "fggcssp";
|
||||
|
||||
}
|
||||
|
||||
+35
-7
@@ -120,13 +120,6 @@ public class ProcessProjectNotMetLink {
|
||||
@ApiModelProperty(value = "预计整改完成日期")
|
||||
private Date expectedTime;
|
||||
|
||||
/**
|
||||
* 实际整改完成日期
|
||||
*/
|
||||
@TableField(value = "reality_time")
|
||||
@ApiModelProperty(value = "实际整改完成日期")
|
||||
private Date realityTime;
|
||||
|
||||
/**
|
||||
* 整改状态(1-待整改、2-整改中、3-审批中、4-已完成)
|
||||
*/
|
||||
@@ -175,4 +168,39 @@ public class ProcessProjectNotMetLink {
|
||||
@TableField(value = "del_flag")
|
||||
@ApiModelProperty(value = "删除标识")
|
||||
private Boolean delFlag;
|
||||
|
||||
/**
|
||||
* 设计工程师ID
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "设计工程师ID")
|
||||
private String nowEngineerId;
|
||||
|
||||
/**
|
||||
* 设计工程师名字
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "设计工程师名字")
|
||||
private String nowEngineerName;
|
||||
|
||||
/**
|
||||
* 依据描述
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "依据描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 佐证材料
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "佐证材料")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 实际整改完成日期
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "实际整改完成日期")
|
||||
private Date realityTime;
|
||||
}
|
||||
+6
@@ -2,10 +2,16 @@ package com.jero.modules.activiti.process.projectnotmet.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.activiti.process.projectnotmet.entity.ProcessProjectNotMetLink;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-12-23 19:58
|
||||
*/
|
||||
public interface ProcessProjectNotMetLinkMapper extends BaseMapper<ProcessProjectNotMetLink> {
|
||||
List<ProcessProjectNotMetLink> getByDesignEngineer(@Param("originUserId") String originUserId, @Param("processId") String processId);
|
||||
|
||||
List<ProcessProjectNotMetLink> getByLeader(@Param("processId") String processId);
|
||||
}
|
||||
+41
-5
@@ -19,7 +19,6 @@
|
||||
<result column="engineer_id" jdbcType="VARCHAR" property="engineerId"/>
|
||||
<result column="engineer_name" jdbcType="VARCHAR" property="engineerName"/>
|
||||
<result column="expected_time" jdbcType="TIMESTAMP" property="expectedTime"/>
|
||||
<result column="reality_time" jdbcType="TIMESTAMP" property="realityTime"/>
|
||||
<result column="state" jdbcType="VARCHAR" property="state"/>
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy"/>
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
|
||||
@@ -27,12 +26,49 @@
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
|
||||
<result column="org_code" jdbcType="VARCHAR" property="orgCode"/>
|
||||
<result column="del_flag" jdbcType="BOOLEAN" property="delFlag"/>
|
||||
<result column="now_engineer_id" jdbcType="VARCHAR" property="nowEngineerId"/>
|
||||
<result column="description" jdbcType="VARCHAR" property="description"/>
|
||||
<result column="file_id" jdbcType="VARCHAR" property="fileId"/>
|
||||
<result column="reality_time" jdbcType="TIMESTAMP" property="realityTime"/>
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, process_id, standard_id, `source`, standard_number, standard_name, project_id,
|
||||
project_name, term_id, term_num, term_name, engineer_id, engineer_name, expected_time,
|
||||
reality_time, `state`, create_by, create_time, update_by, update_time, org_code,
|
||||
del_flag
|
||||
${alias}.id, ${alias}.process_id, ${alias}.standard_id, ${alias}.`source`, ${alias}.standard_number, ${alias}.standard_name, ${alias}.project_id,
|
||||
${alias}.project_name, ${alias}.term_id, ${alias}.term_num, ${alias}.term_name, ${alias}.engineer_id, ${alias}.engineer_name, ${alias}.expected_time,
|
||||
${alias}.`state`, ${alias}.create_by, ${alias}.create_time, ${alias}.update_by, ${alias}.update_time, ${alias}.org_code,
|
||||
${alias}.del_flag
|
||||
</sql>
|
||||
|
||||
<select id="getByDesignEngineer" resultMap="BaseResultMap">
|
||||
select
|
||||
<include refid="Base_Column_List">
|
||||
<property name="alias" value="ppnml"/>
|
||||
</include>
|
||||
,
|
||||
ppnmu.engineer_id as now_engineer_id,
|
||||
ppnmu.description,
|
||||
ppnmu.file_id,
|
||||
ppnmu.reality_time
|
||||
|
||||
from process_project_not_met_link ppnml
|
||||
left join process_project_not_met_user ppnmu on ppnml.id = ppnmu.link_id
|
||||
where ppnmu.engineer_id = #{originUserId}
|
||||
and ppnml.process_id = #{processId}
|
||||
</select>
|
||||
|
||||
<select id="getByLeader" resultMap="BaseResultMap">
|
||||
select
|
||||
<include refid="Base_Column_List">
|
||||
<property name="alias" value="ppnml"/>
|
||||
</include>
|
||||
,
|
||||
ppnmu.engineer_id as now_engineer_id,
|
||||
ppnmu.description,
|
||||
ppnmu.file_id,
|
||||
ppnmu.reality_time
|
||||
|
||||
from process_project_not_met_link ppnml
|
||||
left join process_project_not_met_user ppnmu on ppnml.id = ppnmu.link_id
|
||||
where ppnml.process_id = #{processId}
|
||||
</select>
|
||||
</mapper>
|
||||
+12
@@ -5,11 +5,23 @@ import com.jero.modules.activiti.process.projectnotmet.entity.ProcessProjectNotM
|
||||
import com.jero.modules.activiti.process.projectnotmet.mapper.ProcessProjectNotMetLinkMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-12-23 19:58
|
||||
*/
|
||||
@Service
|
||||
public class ProcessProjectNotMetLinkService extends ServiceImpl<ProcessProjectNotMetLinkMapper, ProcessProjectNotMetLink> {
|
||||
@Resource
|
||||
private ProcessProjectNotMetLinkMapper processProjectNotMetLinkMapper;
|
||||
|
||||
public List<ProcessProjectNotMetLink> getByDesignEngineer(String originUserId, String processId) {
|
||||
return processProjectNotMetLinkMapper.getByDesignEngineer(originUserId,processId);
|
||||
}
|
||||
|
||||
public List<ProcessProjectNotMetLink> getByLeader(String processId) {
|
||||
return processProjectNotMetLinkMapper.getByLeader(processId);
|
||||
}
|
||||
}
|
||||
|
||||
+180
-2
@@ -1,25 +1,48 @@
|
||||
package com.jero.modules.activiti.process.projectnotmet.service;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
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.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.ProcessProjectAssess;
|
||||
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm;
|
||||
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTermUser;
|
||||
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
|
||||
import com.jero.modules.activiti.process.projectnotmet.common.ProcessProjectNotMetCommon;
|
||||
import com.jero.modules.activiti.process.projectnotmet.entity.ProcessProjectNotMet;
|
||||
import com.jero.modules.activiti.process.projectnotmet.entity.ProcessProjectNotMetLink;
|
||||
import com.jero.modules.activiti.process.projectnotmet.entity.ProcessProjectNotMetUser;
|
||||
import com.jero.modules.activiti.process.projectnotmet.mapper.ProcessProjectNotMetMapper;
|
||||
import com.jero.modules.activiti.process.projectnotmet.vo.ProcessProjectNotMetVO;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2023-12-23 19:58
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMetMapper, ProcessProjectNotMet> {
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@@ -31,25 +54,180 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private ProcessProjectNotMetLinkService processProjectNotMetLinkService;
|
||||
@Resource
|
||||
private ProcessProjectNotMetUserService processProjectNotMetUserService;
|
||||
|
||||
public ProcessInfoVO<ProcessProjectNotMetVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
|
||||
if (StringUtils.isNotBlank(draftId) && StringUtils.isBlank(taskId)) {
|
||||
ProcessInfoVO draft = processHandleService.getDraft(draftId);
|
||||
return draft;
|
||||
}
|
||||
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
|
||||
return null;
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
List<ProcessProjectNotMetLink> processProjectNotMetLinks = new ArrayList<>();
|
||||
switch (taskDefinitionKey) {
|
||||
case ProcessProjectNotMetCommon.SJGCSSCZGCL:
|
||||
processProjectNotMetLinks = processProjectNotMetLinkService.getByDesignEngineer(originUserId,businessId);
|
||||
break;
|
||||
case ProcessProjectNotMetCommon.ZGJLDSP:
|
||||
case ProcessProjectNotMetCommon.FGGCSSP:
|
||||
processProjectNotMetLinks = processProjectNotMetLinkService.getByLeader(businessId);
|
||||
break;
|
||||
|
||||
}
|
||||
//获取所有用户信息
|
||||
List<LoginUser> userList = sysBaseAPI.getAllUser();
|
||||
Map<String, String> userNameMap = new HashMap<>();
|
||||
for (LoginUser loginUser : userList) {
|
||||
userNameMap.put(loginUser.getId(), loginUser.calcNameWorkNo());
|
||||
}
|
||||
for (ProcessProjectNotMetLink processProjectNotMetLink : processProjectNotMetLinks) {
|
||||
String engineerId = processProjectNotMetLink.getEngineerId();
|
||||
processProjectNotMetLink.setEngineerName(userNameMap.get(engineerId));
|
||||
String nowEngineerId = processProjectNotMetLink.getNowEngineerId();
|
||||
processProjectNotMetLink.setNowEngineerName(userNameMap.get(nowEngineerId));
|
||||
}
|
||||
ProcessProjectNotMet processProjectNotMet = this.getById(businessId);
|
||||
ProcessProjectNotMetVO processProjectNotMetVO = new ProcessProjectNotMetVO();
|
||||
processProjectNotMetVO.setProcessProjectNotMet(processProjectNotMet);
|
||||
processProjectNotMetVO.setProcessProjectNotMetLinks(processProjectNotMetLinks);
|
||||
|
||||
processInfoVO.setBusinessInfoDTO(processProjectNotMetVO);
|
||||
return processInfoVO;
|
||||
}
|
||||
|
||||
public void startProcess(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO) {
|
||||
|
||||
ProcessProjectNotMetVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
ProcessProjectNotMet processProjectNotMet = businessInfoDTO.getProcessProjectNotMet();
|
||||
this.save(processProjectNotMet);
|
||||
String processProjectNotMetId = processProjectNotMet.getId();
|
||||
processInfoVO.setBusinessId(processProjectNotMetId);
|
||||
//保存关联标准表
|
||||
List<ProcessProjectNotMetLink> processProjectNotMetLinks = businessInfoDTO.getProcessProjectNotMetLinks();
|
||||
processProjectNotMetLinks.forEach(item -> item.setProcessId(processProjectNotMetId));
|
||||
processProjectNotMetLinkService.saveBatch(processProjectNotMetLinks);
|
||||
//保存标准分发的设计工程师
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
String designEngineers = (String) userInfoMap.get(ProcessProjectNotMetCommon.DESIGN_ENGINEER_LIST);
|
||||
String[] designEngineersSplit = designEngineers.split(",");
|
||||
List<ProcessProjectNotMetUser> processProjectNotMetUsers = new ArrayList<>();
|
||||
for (ProcessProjectNotMetLink processProjectNotMetLink : processProjectNotMetLinks) {
|
||||
String notMetLinkId = processProjectNotMetLink.getId();
|
||||
for (String designEngineerId : designEngineersSplit) {
|
||||
ProcessProjectNotMetUser processProjectNotMetUser = new ProcessProjectNotMetUser();
|
||||
|
||||
processProjectNotMetUser.setProcessId(processProjectNotMetId);
|
||||
processProjectNotMetUser.setLinkId(notMetLinkId);
|
||||
processProjectNotMetUser.setEngineerId(designEngineerId);
|
||||
processProjectNotMetUsers.add(processProjectNotMetUser);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
processProjectNotMetUserService.saveBatch(processProjectNotMetUsers);
|
||||
//启动流程
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.PROJECT_NOT_MET)); // 流程定义id
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.PROJECT_NOT_MET.getValue()); // 流程类型
|
||||
userInfoMap.put(ProcessProjectNotMetCommon.STANDARDS_ENGINEER, CurrentUserUtil.getId());
|
||||
//userInfoMap.put(ProcessProjectNotMetCommon.MANAGER_LEADER, distinctAllResponsibleUnitLeaderListJoin);
|
||||
//processInfoVO.setUserInfoMap(userInfoMap);
|
||||
processHandleService.startProcess(processInfoVO);
|
||||
}
|
||||
|
||||
public void approveTask(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO, boolean b) {
|
||||
public void approveTask(ProcessInfoVO<ProcessProjectNotMetVO> 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();
|
||||
processHandleService.updateApprovalRecord(processInfoVO);
|
||||
switch (taskDefinitionKey) {
|
||||
//主管级领导审批
|
||||
case ProcessProjectNotMetCommon.ZGJLDSP:
|
||||
zgjldspApprove(processInfoVO, processDTO, pass);
|
||||
break;
|
||||
//法规工程师审批
|
||||
case ProcessProjectNotMetCommon.FGGCSSP:
|
||||
fggcsspApprove(processInfoVO, processDTO, pass);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
// 完成任务
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ProcessProjectAssessCommon.PASS, pass);
|
||||
taskService.complete(taskId, variables);
|
||||
|
||||
}
|
||||
|
||||
private void zgjldspApprove(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
|
||||
|
||||
}
|
||||
|
||||
private void fggcsspApprove(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
|
||||
|
||||
}
|
||||
|
||||
public void submit(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO) {
|
||||
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = basicTaskInfoDTO.getTaskId();
|
||||
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||
String processInstanceId = processDTO.getProcessInstanceId();
|
||||
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
String projectId = processAll.getProjectId();
|
||||
processInfoVO.setBusinessId(projectId);
|
||||
Task task = processDTO.getTask();
|
||||
processHandleService.updateApprovalRecord(processInfoVO);
|
||||
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
//先查询分配的条款,更新
|
||||
ProcessProjectNotMetVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
List<ProcessProjectNotMetLink> processProjectNotMetLinks = businessInfoDTO.getProcessProjectNotMetLinks();
|
||||
Map<String, ProcessProjectNotMetLink> stringProcessProjectNotMetLinkMap = CollStreamUtil.toIdentityMap(processProjectNotMetLinks, ProcessProjectNotMetLink::getId);
|
||||
LambdaQueryWrapper<ProcessProjectNotMetUser> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessProjectNotMetUser::getProcessId,projectId);
|
||||
wrapper.eq(ProcessProjectNotMetUser::getEngineerId,originUserId);
|
||||
List<ProcessProjectNotMetUser> notMetUserList = processProjectNotMetUserService.list(wrapper);
|
||||
String userId = CurrentUserUtil.getId();
|
||||
Date now = new Date();
|
||||
for (ProcessProjectNotMetUser processProjectNotMetUser : notMetUserList) {
|
||||
String linkId = processProjectNotMetUser.getLinkId();
|
||||
ProcessProjectNotMetLink processProjectNotMetLink = stringProcessProjectNotMetLinkMap.get(linkId);
|
||||
processProjectNotMetUser.setFileId(processProjectNotMetLink.getFileId());
|
||||
processProjectNotMetUser.setDescription(processProjectNotMetLink.getDescription());
|
||||
processProjectNotMetUser.setEngineerId(userId);
|
||||
processProjectNotMetUser.setRealityTime(now);
|
||||
}
|
||||
processProjectNotMetUserService.updateBatchById(notMetUserList);
|
||||
taskService.complete(taskId);
|
||||
}
|
||||
|
||||
public void saveToDraft(ProcessInfoVO<ProcessProjectNotMetVO> processInfoVO) {
|
||||
ProcessProjectNotMetVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
if (businessInfoDTO != null) {
|
||||
ProcessProjectNotMet processProjectNotMet = businessInfoDTO.getProcessProjectNotMet();
|
||||
if (processProjectNotMet != null) {
|
||||
processInfoVO.setBusinessId(processProjectNotMet.getId());
|
||||
}
|
||||
}
|
||||
|
||||
// 流程信息
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.PROJECT_NOT_MET.getValue()); // 流程类型
|
||||
|
||||
processHandleService.saveToDraft(processInfoVO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
|
||||
<bpmn:process id="project-not-met" name="项目合规评估流程" isExecutable="true">
|
||||
<bpmn:startEvent id="StartEvent_1">
|
||||
<bpmn:outgoing>Flow_12b9yhd</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
<bpmn:sequenceFlow id="Flow_12b9yhd" sourceRef="StartEvent_1" targetRef="fggcsfqzg" />
|
||||
<bpmn:userTask id="fggcsfqzg" name="法规工程师发起整改" activiti:assignee="${standardsEngineer}">
|
||||
<bpmn:incoming>Flow_12b9yhd</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0ndqyc9</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:userTask id="fggcssp" name="法规工程师审批" activiti:assignee="${standardsEngineer}">
|
||||
<bpmn:incoming>Flow_0eu6g3b</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1uaygks</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:endEvent id="Event_0nxyypv">
|
||||
<bpmn:incoming>Flow_0ame206</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:userTask id="sjgcssczgcl" name="设计工程师上传整改材料" activiti:assignee="${designEngineer}">
|
||||
<bpmn:extensionElements>
|
||||
<activiti:taskListener class="com.jero.modules.activiti.process.projectassess.listener.ProcessProjectAssessCreateListener" event="create" />
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_0ndqyc9</bpmn:incoming>
|
||||
<bpmn:incoming>Flow_1torqxs</bpmn:incoming>
|
||||
<bpmn:incoming>Flow_1e2ecjo</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1ko64jc</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_0ndqyc9" sourceRef="fggcsfqzg" targetRef="sjgcssczgcl" />
|
||||
<bpmn:userTask id="zgjldsp" name="主管级领导审批" activiti:assignee="${managerLeader}">
|
||||
<bpmn:incoming>Flow_1ko64jc</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0rn2xkx</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_1ko64jc" sourceRef="sjgcssczgcl" targetRef="zgjldsp" />
|
||||
<bpmn:exclusiveGateway id="Gateway_02v5162">
|
||||
<bpmn:incoming>Flow_0rn2xkx</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0eu6g3b</bpmn:outgoing>
|
||||
<bpmn:outgoing>Flow_1torqxs</bpmn:outgoing>
|
||||
</bpmn:exclusiveGateway>
|
||||
<bpmn:sequenceFlow id="Flow_0rn2xkx" sourceRef="zgjldsp" targetRef="Gateway_02v5162" />
|
||||
<bpmn:exclusiveGateway id="Gateway_1mqjvoq">
|
||||
<bpmn:incoming>Flow_1uaygks</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0ame206</bpmn:outgoing>
|
||||
<bpmn:outgoing>Flow_1e2ecjo</bpmn:outgoing>
|
||||
</bpmn:exclusiveGateway>
|
||||
<bpmn:sequenceFlow id="Flow_1uaygks" sourceRef="fggcssp" targetRef="Gateway_1mqjvoq" />
|
||||
<bpmn:sequenceFlow id="Flow_0ame206" name="通过" sourceRef="Gateway_1mqjvoq" targetRef="Event_0nxyypv">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:sequenceFlow id="Flow_0eu6g3b" name="通过" sourceRef="Gateway_02v5162" targetRef="fggcssp">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:sequenceFlow id="Flow_1torqxs" name="驳回" sourceRef="Gateway_02v5162" targetRef="sjgcssczgcl">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:sequenceFlow id="Flow_1e2ecjo" name="驳回" sourceRef="Gateway_1mqjvoq" targetRef="sjgcssczgcl">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
</bpmn:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="project-not-met">
|
||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||
<dc:Bounds x="159" y="172" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_03wwtxl_di" bpmnElement="fggcsfqzg">
|
||||
<dc:Bounds x="250" y="150" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_1uw77uz" bpmnElement="fggcssp">
|
||||
<dc:Bounds x="900" y="150" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Event_0nxyypv_di" bpmnElement="Event_0nxyypv">
|
||||
<dc:Bounds x="1162" y="172" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_0hjb91v" bpmnElement="sjgcssczgcl">
|
||||
<dc:Bounds x="460" y="150" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_03jj2f8" bpmnElement="zgjldsp">
|
||||
<dc:Bounds x="640" y="150" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Gateway_02v5162_di" bpmnElement="Gateway_02v5162" isMarkerVisible="true">
|
||||
<dc:Bounds x="795" y="165" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Gateway_1mqjvoq_di" bpmnElement="Gateway_1mqjvoq" isMarkerVisible="true">
|
||||
<dc:Bounds x="1055" y="165" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="Flow_12b9yhd_di" bpmnElement="Flow_12b9yhd">
|
||||
<di:waypoint x="195" y="190" />
|
||||
<di:waypoint x="250" y="190" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0ndqyc9_di" bpmnElement="Flow_0ndqyc9">
|
||||
<di:waypoint x="350" y="190" />
|
||||
<di:waypoint x="460" y="190" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1ko64jc_di" bpmnElement="Flow_1ko64jc">
|
||||
<di:waypoint x="560" y="190" />
|
||||
<di:waypoint x="640" y="190" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0rn2xkx_di" bpmnElement="Flow_0rn2xkx">
|
||||
<di:waypoint x="740" y="190" />
|
||||
<di:waypoint x="795" y="190" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1uaygks_di" bpmnElement="Flow_1uaygks">
|
||||
<di:waypoint x="1000" y="190" />
|
||||
<di:waypoint x="1055" y="190" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0ame206_di" bpmnElement="Flow_0ame206">
|
||||
<di:waypoint x="1105" y="190" />
|
||||
<di:waypoint x="1162" y="190" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="1123" y="172" width="22" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0eu6g3b_di" bpmnElement="Flow_0eu6g3b">
|
||||
<di:waypoint x="845" y="190" />
|
||||
<di:waypoint x="900" y="190" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="862" y="172" width="22" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1torqxs_di" bpmnElement="Flow_1torqxs">
|
||||
<di:waypoint x="820" y="165" />
|
||||
<di:waypoint x="820" y="100" />
|
||||
<di:waypoint x="510" y="100" />
|
||||
<di:waypoint x="510" y="150" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="655" y="82" width="21" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1e2ecjo_di" bpmnElement="Flow_1e2ecjo">
|
||||
<di:waypoint x="1080" y="165" />
|
||||
<di:waypoint x="1080" y="100" />
|
||||
<di:waypoint x="510" y="100" />
|
||||
<di:waypoint x="510" y="150" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="889" y="82" width="21" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</bpmn:definitions>
|
||||
Reference in New Issue
Block a user