update 标准征求意见流程

This commit is contained in:
liao
2023-11-07 16:44:29 +08:00
parent b191f48de1
commit 1f29425e30
18 changed files with 493 additions and 157 deletions
+3 -3
View File
@@ -436,8 +436,8 @@ CREATE TABLE `process_fb_consultation_user_link`
alter table process_fb_consultation_user_link
comment '标准征求意见流程-用户关联表';
DROP TABLE IF EXISTS `process_fb_standard_consultation_list`;
CREATE TABLE `process_fb_standard_consultation_list`
DROP TABLE IF EXISTS `process_fb_consultation_list`;
CREATE TABLE `process_fb_consultation_list`
(
`id` varchar(36) NOT NULL PRIMARY KEY COMMENT '主键ID',
@@ -452,7 +452,7 @@ CREATE TABLE `process_fb_standard_consultation_list`
`basis_description` varchar(500) COMMENT '依据描述',
`basis_file` varchar(2000) COMMENT '依据材料'
) COMMENT = '标准征求意见流程-征求意见列表表';
alter table process_fb_standard_consultation_list
alter table process_fb_consultation_list
comment '标准征求意见流程-征求意见列表表';
@@ -1,6 +1,7 @@
package com.jero.modules.activiti.enums;
import com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl;
import com.sun.tools.doclets.formats.html.resources.standard;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -13,6 +14,8 @@ import lombok.Getter;
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"),
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"),
ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl"),
@@ -23,7 +26,6 @@ public enum ProcessTypeEnum {
ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"),
ES_ARCHIVE("企标封存流程",14, "com.jero.modules.activiti.process.esArchive.service.impl.ProcessEsArchiveServiceImpl"),
ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl"),
FB_ENTRY_CHANGE("标准法规入库/变更流程",16, "com.jero.modules.activiti.process.fb.service.impl.ProcessHandleServiceImpl"),
;
private String name;
@@ -1,25 +1,12 @@
package com.jero.modules.activiti.process.fb.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
/**
@@ -0,0 +1,43 @@
package com.jero.modules.activiti.process.fb.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @Author: liao
* @Date: 2023/11/7 13:51
* @Description: 基本流程信息
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="基本流程信息", description="基本流程信息")
public class BasicProcessInfoDTO {
/**流程定义id*/
@ApiModelProperty(value = "流程定义id")
private java.lang.String processDefinitionId;
/**流程类型*/
@ApiModelProperty(value="流程类型")
private Integer processType;
/**流程实例id*/
@ApiModelProperty(value = "流程实例id")
private java.lang.String processInstanceId;
/**流程信息-流程名称*/
@ApiModelProperty(value = "流程信息-流程名称")
private java.lang.String processName;
/**流程信息-截止日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "流程信息-截止日期")
private java.util.Date processDueDate;
/**流程信息-流程说明*/
@ApiModelProperty(value = "流程信息-流程说明")
private java.lang.String processDescription;
}
@@ -0,0 +1,42 @@
package com.jero.modules.activiti.process.fb.dto;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Author: liao
* @Date: 2023/11/7 13:52
* @Description: 基本任务信息
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="基本任务信息", description="基本任务信息")
public class BasicTaskInfoDTO {
/**任务id*/
@ApiModelProperty(value = "任务id")
private java.lang.String taskId;
/**流程审批信息-备注*/
@ApiModelProperty(value = "流程审批信息-备注")
private java.lang.String handleText;
/**流程审批信息-附件*/
@ApiModelProperty(value = "流程审批信息-附件")
private java.lang.String handleFile;
/**
* 审批意见(0同意,1不同意)
*/
@Dict(dicCode = "commit_flag")
@ApiModelProperty(value = "审批意见(1通过,2驳回)")
private Integer commitFlag;
/**
* 完成注记(0未完成,1完成)
*/
@Dict(dicCode = "prc_node_status")
@ApiModelProperty(value = "完成注记(1进行中,2已完成)")
private Integer finishFlag;
}
@@ -1,7 +1,6 @@
package com.jero.modules.activiti.process.fb.dto;
import lombok.Data;
import org.springframework.stereotype.Component;
/**
* @Author: liao
@@ -1,22 +1,16 @@
package com.jero.modules.activiti.process.fb.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
@@ -30,7 +24,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="process_fb_standard_consultation_list对象", description="标准征求意见流程-征求意见列表表")
public class ProcessFbStandardConsultationList implements Serializable {
public class ProcessFbConsultationList implements Serializable {
private static final long serialVersionUID = 1L;
/**主键ID*/
@@ -66,8 +60,8 @@ public class ProcessFbStandardConsultationList implements Serializable {
@ApiModelProperty(value = "修改理由")
private java.lang.String modificationReason;
/**模块负责人意见(0不采纳,1采纳)*/
@Excel(name = "模块负责人意见(0不采纳,1采纳)", width = 15)
@ApiModelProperty(value = "模块负责人意见(0不采纳,1采纳)")
@Excel(name = "模块负责人意见(1采纳,2部分采纳,3不采纳)", width = 15)
@ApiModelProperty(value = "模块负责人意见(1采纳,2部分采纳,3不采纳)")
private java.lang.String isAdopt;
/**依据描述*/
@Excel(name = "依据描述", width = 15)
@@ -0,0 +1,14 @@
package com.jero.modules.activiti.process.fb.mapper;
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 标准征求意见流程-征求意见列表表
* @Author: jero-boot
* @Date: 2023-11-07
* @Version: V1.0
*/
public interface ProcessFbConsultationListMapper extends BaseMapper<ProcessFbConsultationList> {
}
@@ -1,17 +0,0 @@
package com.jero.modules.activiti.process.fb.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultationList;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 标准征求意见流程-征求意见列表表
* @Author: jero-boot
* @Date: 2023-11-07
* @Version: V1.0
*/
public interface ProcessFbStandardConsultationListMapper extends BaseMapper<ProcessFbStandardConsultationList> {
}
@@ -1,7 +1,7 @@
<?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.fb.mapper.ProcessFbStandardConsultationListMapper">
<resultMap id="ProcessFbStandardConsultationListResultMap" type="com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultationList">
<mapper namespace="com.jero.modules.activiti.process.fb.mapper.ProcessFbConsultationListMapper">
<resultMap id="ProcessFbStandardConsultationListResultMap" type="com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList">
<id column="id" property="id" />
<result column="user_link_id" property="userLinkId" />
<result column="serial_number" property="serialNumber" />
@@ -0,0 +1,14 @@
package com.jero.modules.activiti.process.fb.service;
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: 标准征求意见流程-征求意见列表表
* @Author: jero-boot
* @Date: 2023-11-07
* @Version: V1.0
*/
public interface IProcessFbConsultationListService extends IService<ProcessFbConsultationList> {
}
@@ -1,17 +0,0 @@
package com.jero.modules.activiti.process.fb.service;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultationList;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
* @Description: 标准征求意见流程-征求意见列表表
* @Author: jero-boot
* @Date: 2023-11-07
* @Version: V1.0
*/
public interface IProcessFbStandardConsultationListService extends IService<ProcessFbStandardConsultationList> {
}
@@ -0,0 +1,22 @@
package com.jero.modules.activiti.process.fb.service.impl;
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationList;
import com.jero.modules.activiti.process.fb.mapper.ProcessFbConsultationListMapper;
import com.jero.modules.activiti.process.fb.service.IProcessFbConsultationListService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 标准征求意见流程-征求意见列表表
* @Author: jero-boot
* @Date: 2023-11-07
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class ProcessFbConsultationListServiceImpl extends ServiceImpl<ProcessFbConsultationListMapper, ProcessFbConsultationList> implements IProcessFbConsultationListService {
}
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.fb.service.impl;
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.entity.ProcessFbEntryChange;
import com.jero.modules.activiti.process.fb.mapper.ProcessFbEntryChangeMapper;
import com.jero.modules.activiti.process.fb.service.IProcessFbEntryChangeService;
@@ -98,9 +99,10 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
public void startProcess(ProcessInfoVO processInfoVO) {
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap(); // 用户变量map
userInfoMap.put("engineer", CurrentUserUtil.getId()); // 第一个任务节点设置成自己
processInfoVO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.FB_ENTRY_CHANGE)); // 流程定义id
processInfoVO.setProcessName(getProcessNameByBusinessId(processInfoVO.getBusinessId())); // 流程名称
processInfoVO.setProcessType(ProcessTypeEnum.FB_ENTRY_CHANGE.getValue()); // 流程类型
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.FB_ENTRY_CHANGE)); // 流程定义id
basicProcessInfoDTO.setProcessName(getProcessNameByBusinessId(processInfoVO.getBusinessId())); // 流程名称
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_ENTRY_CHANGE.getValue()); // 流程类型
processHandleService.startProcess(processInfoVO);
}
@@ -1,29 +0,0 @@
package com.jero.modules.activiti.process.fb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultationList;
import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardConsultationListMapper;
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardConsultationListService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.query.QueryGenerator;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* @Description: 标准征求意见流程-征求意见列表表
* @Author: jero-boot
* @Date: 2023-11-07
* @Version: V1.0
*/
@Service
@Transactional(rollbackFor = JeroBootException.class)
public class ProcessFbStandardConsultationListServiceImpl extends ServiceImpl<ProcessFbStandardConsultationListMapper, ProcessFbStandardConsultationList> implements IProcessFbStandardConsultationListService {
}
@@ -6,6 +6,8 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.CommitFlagEnum;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
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;
@@ -61,14 +63,17 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
**/
@Override
public void startProcess(ProcessInfoVO processInfoVO) {
String processDefinitionId = processInfoVO.getProcessDefinitionId(); // 流程定义id
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO(); // 流程信息
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap(); // 用户变量map
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO(); // 流程审批信息
String processDefinitionId = basicProcessInfoDTO.getProcessDefinitionId(); // 流程定义id
// 根据流程定义id和变量map启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, userInfoMap);
String processInstanceId = processInstance.getId(); // 流程实例id
// 根据流程实例id更新流程总表
processInfoVO.setProcessInstanceId(processInstanceId);
basicProcessInfoDTO.setProcessInstanceId(processInstanceId);
updateProcessAll(processInfoVO);
// 保存选人信息
@@ -82,8 +87,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
String taskId = task.getId();
// 更新审批记录
processInfoVO.setTaskId(taskId);
processInfoVO.setCommitFlag(CommitFlagEnum.PASS.getValue()); // 审批意见(1通过,2驳回)
basicTaskInfoDTO.setTaskId(taskId);
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.PASS.getValue()); // 审批意见(1通过,2驳回)
updateApprovalRecord(processInfoVO);
// 完成任务
@@ -98,7 +103,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
@Override
public void approveTask(ProcessInfoVO processInfoVO, boolean pass) {
// 判断是否是自己的任务
String taskId = processInfoVO.getTaskId();
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
String taskId = basicTaskInfoDTO.getTaskId();
isMyTask(taskId);
ProcessDTO processDTO = getProcessDTO(taskId);
String processInstanceId = processDTO.getProcessInstanceId();
@@ -111,10 +117,10 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
}
if (pass) { // 通过
runtimeService.setVariableLocal(processInstanceId, "pass", true);
processInfoVO.setCommitFlag(CommitFlagEnum.PASS.getValue());
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.PASS.getValue());
} else { // 驳回
runtimeService.setVariableLocal(processInstanceId, "pass", false);
processInfoVO.setCommitFlag(CommitFlagEnum.REJECT.getValue());
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.REJECT.getValue());
}
// 更新审批记录表
updateApprovalRecord(processInfoVO);
@@ -181,12 +187,13 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
**/
@Override
public void updateProcessAll(ProcessInfoVO processInfoVO) {
ProcessAll process = processAllService.getByProcessInstanceId(processInfoVO.getProcessInstanceId());
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
ProcessAll process = processAllService.getByProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId());
process.setCreateUserId(CurrentUserUtil.getId()); // 流程创建人
process.setPrcName(processInfoVO.getProcessName()); // 流程名称
process.setMes(processInfoVO.getProcessDescription()); // 流程说明
process.setDueTime(processInfoVO.getProcessDueDate()); // 流程截止时间
process.setPrcType(processInfoVO.getProcessType()); // 流程类型
process.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
process.setMes(basicProcessInfoDTO.getProcessDescription()); // 流程说明
process.setDueTime(basicProcessInfoDTO.getProcessDueDate()); // 流程截止时间
process.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
process.setProjectId(processInfoVO.getBusinessId()); // 业务id
processAllService.updateById(process);
}
@@ -198,10 +205,11 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
**/
@Override
public void updateApprovalRecord(ProcessInfoVO processInfoVO) {
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(processInfoVO.getTaskId());
approvalRecord.setCommitFlag(processInfoVO.getCommitFlag()); // 审批意见(1通过,2驳回)
approvalRecord.setCommitText(processInfoVO.getHandleText()); // 审批内容
approvalRecord.setCommitFile(processInfoVO.getHandleFile()); // 审批附件
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getToDoByTaskId(basicTaskInfoDTO.getTaskId());
approvalRecord.setCommitFlag(basicTaskInfoDTO.getCommitFlag()); // 审批意见(1通过,2驳回)
approvalRecord.setCommitText(basicTaskInfoDTO.getHandleText()); // 审批内容
approvalRecord.setCommitFile(basicTaskInfoDTO.getHandleFile()); // 审批附件
approvalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); // 完成注记(1进行中,2已完成)
approvalRecord.setEndTime(new Date()); // 完成时间
processApprovalRecordService.updateById(approvalRecord);
@@ -1,8 +1,9 @@
package com.jero.modules.activiti.process.fb.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -22,51 +23,13 @@ import java.util.Map;
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="流程信息通用类", description="流程信息通用类")
public class ProcessInfoVO {
/**流程信息*/
@ApiModelProperty(value = "流程信息")
private BasicProcessInfoDTO basicProcessInfoDTO;
/**流程定义id*/
@ApiModelProperty(value = "流程定义id")
private java.lang.String processDefinitionId;
/**流程实例id*/
@ApiModelProperty(value = "流程实例id")
private java.lang.String processInstanceId;
/**流程类型*/
@ApiModelProperty(value="流程类型")
private Integer processType;
/**任务id*/
@ApiModelProperty(value = "任务id")
private java.lang.String taskId;
/**
* 审批意见(0同意,1不同意)
*/
@Dict(dicCode = "commit_flag")
@ApiModelProperty(value = "审批意见(1通过,2驳回)")
private Integer commitFlag;
/**
* 完成注记(0未完成,1完成)
*/
@Dict(dicCode = "prc_node_status")
@ApiModelProperty(value = "完成注记(1进行中,2已完成)")
private Integer finishFlag;
/**流程信息-流程名称*/
@ApiModelProperty(value = "流程信息-流程名称")
private java.lang.String processName;
/**流程信息-截止日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "流程信息-截止日期")
private java.util.Date processDueDate;
/**流程信息-流程说明*/
@ApiModelProperty(value = "流程信息-流程说明")
private java.lang.String processDescription;
/**流程审批信息-备注*/
@ApiModelProperty(value = "流程审批信息-备注")
private java.lang.String handleText;
/**流程审批信息-附件*/
@ApiModelProperty(value = "流程审批信息-附件")
private java.lang.String handleFile;
/**流程审批信息*/
@ApiModelProperty(value = "流程审批信息")
private BasicTaskInfoDTO basicTaskInfoDTO;
/**业务id*/
@ApiModelProperty(value = "业务id")
@@ -0,0 +1,309 @@
<?xml version="1.0" encoding="UTF-8"?>
<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="fb-standard-consultation" name="标准征求意见流程" isExecutable="true">
<bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1d5objw</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Activity_15884zz" name="发起,选择一个法规(可选拆分单数据)" activiti:assignee="${engineer}">
<bpmn:incoming>Flow_1d5objw</bpmn:incoming>
<bpmn:outgoing>Flow_0azsibi</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1d5objw" sourceRef="StartEvent_1" targetRef="Activity_15884zz" />
<bpmn:subProcess id="Activity_0mj9ddw">
<bpmn:incoming>Flow_0azsibi</bpmn:incoming>
<bpmn:incoming>Flow_1aeqdsv</bpmn:incoming>
<bpmn:outgoing>Flow_19vxot3</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="departLeaderList" activiti:elementVariable="departLeader">
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
<bpmn:startEvent id="Event_1olxq4s">
<bpmn:outgoing>Flow_1gv6jmb</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Activity_0apj1oh" name="分发设计工程师,是否分发给模块负责人" activiti:assignee="${departLeader}">
<bpmn:incoming>Flow_1gv6jmb</bpmn:incoming>
<bpmn:outgoing>Flow_0hpm8eq</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_1gv6jmb" sourceRef="Event_1olxq4s" targetRef="Activity_0apj1oh" />
<bpmn:exclusiveGateway id="Gateway_0mogtm0">
<bpmn:incoming>Flow_0hpm8eq</bpmn:incoming>
<bpmn:outgoing>Flow_05oz1ja</bpmn:outgoing>
<bpmn:outgoing>Flow_1ezcutn</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_0hpm8eq" sourceRef="Activity_0apj1oh" targetRef="Gateway_0mogtm0" />
<bpmn:userTask id="Activity_10kxnw6" name="填写征求意见,到期不填视为无意见">
<bpmn:incoming>Flow_05oz1ja</bpmn:incoming>
<bpmn:outgoing>Flow_09jjte7</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_05oz1ja" name="否" sourceRef="Gateway_0mogtm0" targetRef="Activity_10kxnw6">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!passFirst}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="Activity_0gcol5c" name="汇总全部分发人审批意见-修改/通过" activiti:assignee="${departLeader}">
<bpmn:incoming>Flow_0oc8671</bpmn:incoming>
<bpmn:outgoing>Flow_18olfei</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_09jjte7" sourceRef="Activity_10kxnw6" targetRef="Activity_0be5cyd" />
<bpmn:subProcess id="Activity_1pip97n">
<bpmn:incoming>Flow_1ezcutn</bpmn:incoming>
<bpmn:incoming>Flow_0f48izh</bpmn:incoming>
<bpmn:outgoing>Flow_0oc8671</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="moduleOwnerList" activiti:elementVariable="moduleOwner">
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
<bpmn:startEvent id="Event_15afvr9">
<bpmn:outgoing>Flow_13krhma</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:userTask id="Activity_0iu180q" name="模块负责人" activiti:assignee="${moduleOwner}">
<bpmn:incoming>Flow_13krhma</bpmn:incoming>
<bpmn:outgoing>Flow_0e4x3wm</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_13krhma" sourceRef="Event_15afvr9" targetRef="Activity_0iu180q" />
<bpmn:userTask id="Activity_1s6pnvt" name="填写征求意见,到期不填视为无意见">
<bpmn:incoming>Flow_0e4x3wm</bpmn:incoming>
<bpmn:outgoing>Flow_0vnqotz</bpmn:outgoing>
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
</bpmn:multiInstanceLoopCharacteristics>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0e4x3wm" sourceRef="Activity_0iu180q" targetRef="Activity_1s6pnvt" />
<bpmn:userTask id="Activity_1ll5cul" name="汇总全部分发人审批意见-修改/通过" activiti:assignee="${moduleOwner}">
<bpmn:incoming>Flow_0vnqotz</bpmn:incoming>
<bpmn:outgoing>Flow_05e6l5d</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0vnqotz" sourceRef="Activity_1s6pnvt" targetRef="Activity_1ll5cul" />
<bpmn:endEvent id="Event_1vx05is">
<bpmn:incoming>Flow_05e6l5d</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_05e6l5d" sourceRef="Activity_1ll5cul" targetRef="Event_1vx05is" />
</bpmn:subProcess>
<bpmn:sequenceFlow id="Flow_1ezcutn" name="是" sourceRef="Gateway_0mogtm0" targetRef="Activity_1pip97n">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${passFirst}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0oc8671" sourceRef="Activity_1pip97n" targetRef="Activity_0gcol5c" />
<bpmn:exclusiveGateway id="Gateway_1xd2kp3">
<bpmn:incoming>Flow_18olfei</bpmn:incoming>
<bpmn:outgoing>Flow_1t037bu</bpmn:outgoing>
<bpmn:outgoing>Flow_0f48izh</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_18olfei" sourceRef="Activity_0gcol5c" targetRef="Gateway_1xd2kp3" />
<bpmn:endEvent id="Event_0r7jsfk">
<bpmn:incoming>Flow_1t037bu</bpmn:incoming>
<bpmn:incoming>Flow_0qai32h</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1t037bu" name="通过" sourceRef="Gateway_1xd2kp3" targetRef="Event_0r7jsfk">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${passSecond}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0f48izh" name="驳回" sourceRef="Gateway_1xd2kp3" targetRef="Activity_1pip97n">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!passSecond}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:userTask id="Activity_0be5cyd" name="汇总全部分发人审批意见-修改/通过" activiti:assignee="${departLeader}">
<bpmn:incoming>Flow_09jjte7</bpmn:incoming>
<bpmn:outgoing>Flow_0qai32h</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0qai32h" sourceRef="Activity_0be5cyd" targetRef="Event_0r7jsfk" />
</bpmn:subProcess>
<bpmn:sequenceFlow id="Flow_0azsibi" sourceRef="Activity_15884zz" targetRef="Activity_0mj9ddw" />
<bpmn:userTask id="Activity_1th4kyn" name="汇总结果&#10;可修改&#10;上传会议附件" activiti:assignee="${engineer}">
<bpmn:incoming>Flow_19vxot3</bpmn:incoming>
<bpmn:outgoing>Flow_1125yee</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_19vxot3" sourceRef="Activity_0mj9ddw" targetRef="Activity_1th4kyn" />
<bpmn:exclusiveGateway id="Gateway_0pd0196">
<bpmn:incoming>Flow_1125yee</bpmn:incoming>
<bpmn:outgoing>Flow_0sb0q1z</bpmn:outgoing>
<bpmn:outgoing>Flow_1aeqdsv</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="Flow_1125yee" sourceRef="Activity_1th4kyn" targetRef="Gateway_0pd0196" />
<bpmn:endEvent id="Event_07yr7ob">
<bpmn:incoming>Flow_0sb0q1z</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_0sb0q1z" name="通过" sourceRef="Gateway_0pd0196" targetRef="Event_07yr7ob">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${passThird}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_1aeqdsv" name="驳回" sourceRef="Gateway_0pd0196" targetRef="Activity_0mj9ddw">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!passThird}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="fb-standard-consultation">
<bpmndi:BPMNShape id="Activity_15884zz_di" bpmnElement="Activity_15884zz">
<dc:Bounds x="160" y="360" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="192" y="282" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1th4kyn_di" bpmnElement="Activity_1th4kyn">
<dc:Bounds x="1560" y="360" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0pd0196_di" bpmnElement="Gateway_0pd0196" isMarkerVisible="true">
<dc:Bounds x="1585" y="495" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_07yr7ob_di" bpmnElement="Event_07yr7ob">
<dc:Bounds x="1592" y="622" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0mj9ddw_di" bpmnElement="Activity_0mj9ddw" isExpanded="true">
<dc:Bounds x="320" y="40" width="1120" height="690" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0mogtm0_di" bpmnElement="Gateway_0mogtm0" isMarkerVisible="true">
<dc:Bounds x="585" y="375" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="775" y="130" width="78" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0apj1oh_di" bpmnElement="Activity_0apj1oh">
<dc:Bounds x="430" y="360" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1olxq4s_di" bpmnElement="Event_1olxq4s">
<dc:Bounds x="342" y="382" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0r7jsfk_di" bpmnElement="Event_0r7jsfk">
<dc:Bounds x="1232" y="522" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1qjvmbo" bpmnElement="Activity_0be5cyd">
<dc:Bounds x="950" y="600" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1xd2kp3_di" bpmnElement="Gateway_1xd2kp3" isMarkerVisible="true">
<dc:Bounds x="1115" y="415" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0gcol5c_di" bpmnElement="Activity_0gcol5c">
<dc:Bounds x="950" y="400" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_10kxnw6_di" bpmnElement="Activity_10kxnw6">
<dc:Bounds x="720" y="490" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1pip97n_di" bpmnElement="Activity_1pip97n" isExpanded="true">
<dc:Bounds x="680" y="100" width="660" height="210" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_15afvr9_di" bpmnElement="Event_15afvr9">
<dc:Bounds x="712" y="192" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0iu180q_di" bpmnElement="Activity_0iu180q">
<dc:Bounds x="800" y="170" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1s6pnvt_di" bpmnElement="Activity_1s6pnvt">
<dc:Bounds x="960" y="170" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1ll5cul_di" bpmnElement="Activity_1ll5cul">
<dc:Bounds x="1120" y="170" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1vx05is_di" bpmnElement="Event_1vx05is">
<dc:Bounds x="1282" y="192" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_13krhma_di" bpmnElement="Flow_13krhma">
<di:waypoint x="748" y="210" />
<di:waypoint x="800" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0e4x3wm_di" bpmnElement="Flow_0e4x3wm">
<di:waypoint x="900" y="210" />
<di:waypoint x="960" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0vnqotz_di" bpmnElement="Flow_0vnqotz">
<di:waypoint x="1060" y="210" />
<di:waypoint x="1120" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_05e6l5d_di" bpmnElement="Flow_05e6l5d">
<di:waypoint x="1220" y="210" />
<di:waypoint x="1282" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_05oz1ja_di" bpmnElement="Flow_05oz1ja">
<di:waypoint x="610" y="425" />
<di:waypoint x="610" y="530" />
<di:waypoint x="720" y="530" />
<bpmndi:BPMNLabel>
<dc:Bounds x="620" y="475" width="11" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_09jjte7_di" bpmnElement="Flow_09jjte7">
<di:waypoint x="820" y="530" />
<di:waypoint x="885" y="530" />
<di:waypoint x="885" y="640" />
<di:waypoint x="950" y="640" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0oc8671_di" bpmnElement="Flow_0oc8671">
<di:waypoint x="1000" y="310" />
<di:waypoint x="1000" y="400" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hpm8eq_di" bpmnElement="Flow_0hpm8eq">
<di:waypoint x="530" y="400" />
<di:waypoint x="585" y="400" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ezcutn_di" bpmnElement="Flow_1ezcutn">
<di:waypoint x="610" y="375" />
<di:waypoint x="610" y="210" />
<di:waypoint x="680" y="210" />
<bpmndi:BPMNLabel>
<dc:Bounds x="620" y="291" width="11" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gv6jmb_di" bpmnElement="Flow_1gv6jmb">
<di:waypoint x="378" y="400" />
<di:waypoint x="430" y="400" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18olfei_di" bpmnElement="Flow_18olfei">
<di:waypoint x="1050" y="440" />
<di:waypoint x="1115" y="440" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1t037bu_di" bpmnElement="Flow_1t037bu">
<di:waypoint x="1140" y="465" />
<di:waypoint x="1140" y="540" />
<di:waypoint x="1232" y="540" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1140" y="496" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0f48izh_di" bpmnElement="Flow_0f48izh">
<di:waypoint x="1140" y="415" />
<di:waypoint x="1140" y="310" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1146" y="357" width="21" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0qai32h_di" bpmnElement="Flow_0qai32h">
<di:waypoint x="1050" y="640" />
<di:waypoint x="1250" y="640" />
<di:waypoint x="1250" y="558" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1d5objw_di" bpmnElement="Flow_1d5objw">
<di:waypoint x="210" y="318" />
<di:waypoint x="210" y="360" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0azsibi_di" bpmnElement="Flow_0azsibi">
<di:waypoint x="260" y="400" />
<di:waypoint x="320" y="400" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_19vxot3_di" bpmnElement="Flow_19vxot3">
<di:waypoint x="1440" y="400" />
<di:waypoint x="1560" y="400" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1125yee_di" bpmnElement="Flow_1125yee">
<di:waypoint x="1610" y="440" />
<di:waypoint x="1610" y="495" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0sb0q1z_di" bpmnElement="Flow_0sb0q1z">
<di:waypoint x="1610" y="545" />
<di:waypoint x="1610" y="622" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1615" y="581" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1aeqdsv_di" bpmnElement="Flow_1aeqdsv">
<di:waypoint x="1585" y="520" />
<di:waypoint x="1440" y="520" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1503" y="502" width="21" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>