add 法规采购流程
This commit is contained in:
@@ -416,4 +416,24 @@ CREATE TABLE `process_fb_consultation_list`
|
||||
alter table process_fb_consultation_list
|
||||
comment '标准征求意见流程-征求意见列表表';
|
||||
|
||||
DROP TABLE IF EXISTS `process_fb_standard_purchase`;
|
||||
CREATE TABLE `process_fb_standard_purchase`
|
||||
(
|
||||
`id` varchar(36) NOT NULL PRIMARY KEY COMMENT '主键ID',
|
||||
`create_by` varchar(36) COMMENT '创建人',
|
||||
`create_time` datetime(0) COMMENT '创建时间',
|
||||
`update_by` varchar(36) COMMENT '更新人',
|
||||
`update_time` datetime(0) COMMENT '更新时间',
|
||||
`org_code` varchar(64) COMMENT '所属部门',
|
||||
`del_flag` int(1) DEFAULT 0 COMMENT '0表示未删除,1表示删除',
|
||||
|
||||
`business_id` varchar(50) COMMENT '业务id',
|
||||
`sort` int(8) COMMENT '排序',
|
||||
`standard_number` varchar(50) COMMENT '标准编号',
|
||||
`standard_name` varchar(50) COMMENT '标准名称',
|
||||
`purchase_reason` varchar(500) COMMENT '采购理由'
|
||||
) COMMENT = '法规采购流程表';
|
||||
alter table process_fb_standard_purchase
|
||||
comment '法规采购流程表';
|
||||
|
||||
|
||||
|
||||
@@ -14,6 +14,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"),
|
||||
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"),
|
||||
ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl"),
|
||||
|
||||
+2
-2
@@ -5,9 +5,9 @@ package com.jero.modules.activiti.process.fb.common;
|
||||
* @Date: 2023/11/13 10:55
|
||||
* @Description: 标准征求意见流程taskId
|
||||
*/
|
||||
public class ConsultationTaskId {
|
||||
public class ConsultationTaskKey {
|
||||
|
||||
private ConsultationTaskId() {}
|
||||
private ConsultationTaskKey() {}
|
||||
|
||||
public static final String ENGINEER_START = "engineer_start"; // 法规工程师发起
|
||||
|
||||
+2
@@ -13,4 +13,6 @@ public class ProcessDefinitionKey {
|
||||
|
||||
public static final String FB_STANDARD_CONSULTATION = "fb-standard-consultation"; // 标准征求意见流程
|
||||
|
||||
public static final String FB_STANDARD_PURCHASE = "fb-standard-purchase"; // 法规采购流程
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -78,8 +78,8 @@ public class ProcessFbEntryChangeController extends JeroController<ProcessFbEntr
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "流程处理-保存为草稿")
|
||||
@ApiOperation(value = "流程处理-保存为草稿", notes = "流程处理-保存为草稿")
|
||||
@AutoLog(value = "标准法规入库_变更流程-保存为草稿")
|
||||
@ApiOperation(value = "标准法规入库_变更流程-保存为草稿", notes = "标准法规入库_变更流程-保存为草稿")
|
||||
@PostMapping(value = "/saveToDraft")
|
||||
public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO<ProcessFbEntryChange> processInfoVO) {
|
||||
processFbEntryChangeService.saveToDraft(processInfoVO);
|
||||
|
||||
+18
@@ -18,6 +18,8 @@ import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
@@ -74,4 +76,20 @@ public class ProcessFbInfoController {
|
||||
return Result.OK(sentList);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "测试")
|
||||
@GetMapping("/test")
|
||||
public Result<T> test() {
|
||||
List<ProcessInstance> subProcessInstanceList = processHandleService
|
||||
.subProcessList("20231114120041259", "Activity_0mj9ddw");
|
||||
System.out.println("================================测试开始=================================");
|
||||
subProcessInstanceList.forEach(subProcessInstance -> {
|
||||
System.out.println("Sub Process Instance ID: " + subProcessInstance.getId());
|
||||
System.out.println("Sub Process Definition Key: " + subProcessInstance.getProcessDefinitionKey());
|
||||
// 其他子流程实例信息
|
||||
System.out.println(subProcessInstance.toString());
|
||||
});
|
||||
System.out.println("=======================================================================");
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+8
@@ -54,4 +54,12 @@ public class ProcessFbStandardConsultationController extends JeroController<Proc
|
||||
processFbStandardConsultationService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "标准征求意见流程-提交")
|
||||
@ApiOperation(value="标准征求意见流程-提交", notes="标准征求意见流程-提交")
|
||||
@PostMapping("/submit")
|
||||
public Result<T> submit(@Validated @RequestBody ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO) {
|
||||
processFbStandardConsultationService.submit(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
package com.jero.modules.activiti.process.fb.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.modules.activiti.process.common.entity.TransferVO;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardPurchaseService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Api(tags="法规采购流程表")
|
||||
@RestController
|
||||
@RequestMapping("/activiti.process.fb/processFbStandardPurchase")
|
||||
@Slf4j
|
||||
public class ProcessFbStandardPurchaseController extends JeroController<ProcessFbStandardPurchase, IProcessFbStandardPurchaseService> {
|
||||
@Autowired
|
||||
private IProcessFbStandardPurchaseService processFbStandardPurchaseService;
|
||||
|
||||
@GetMapping("/queryProcessInfoVO")
|
||||
@AutoLog(value = "法规采购流程表-查询流程信息")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "draftId", value = "草稿id"),
|
||||
@ApiImplicitParam(name = "processInstanceId", value = "流程实例id")
|
||||
})
|
||||
@ApiOperation("法规采购流程表-查询流程信息")
|
||||
public Result<ProcessInfoVO<List<ProcessFbStandardPurchase>>> queryProcessInfoVO(String draftId, String processInstanceId){
|
||||
ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO = processFbStandardPurchaseService.queryProcessInfoVO(draftId, processInstanceId);
|
||||
return Result.OK(processInfoVO);
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-发起流程")
|
||||
@ApiOperation(value = "法规采购流程表-发起流程", notes = "流程处理-发起流程")
|
||||
@PostMapping(value = "/startProcess")
|
||||
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.startProcess(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-同意")
|
||||
@ApiOperation(value="法规采购流程表-同意", notes="法规采购流程表-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.approveTask(processInfoVO, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-驳回")
|
||||
@ApiOperation(value="法规采购流程表-驳回", notes="法规采购流程表-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-转办")
|
||||
@ApiOperation(value="法规采购流程表-转办", notes="法规采购流程表-转办")
|
||||
@PostMapping(value = "/transfer")
|
||||
public Result<T> transfer(@RequestBody TransferVO transferVO) {
|
||||
processFbStandardPurchaseService.transfer(transferVO.getTaskId(), transferVO.getUserId());
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-保存为草稿")
|
||||
@ApiOperation(value = "法规采购流程表-保存为草稿", notes = "法规采购流程表-保存为草稿")
|
||||
@PostMapping(value = "/saveToDraft")
|
||||
public Result<T> saveToDraft(@Validated @RequestBody ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
processFbStandardPurchaseService.saveToDraft(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-导出")
|
||||
@ApiOperation(value = "法规采购流程表-导出", notes = "法规采购流程表-导出")
|
||||
@GetMapping(value = "/exportXls")
|
||||
public ModelAndView exportXls(@RequestParam(name = "businessId") String businessId) {
|
||||
return processFbStandardPurchaseService.exportXls(businessId);
|
||||
}
|
||||
|
||||
@AutoLog(value = "法规采购流程表-抄送")
|
||||
@ApiOperation(value = "法规采购流程表-抄送", notes = "法规采购流程表-抄送")
|
||||
@GetMapping(value = "/carbonCopy")
|
||||
public Result<T> carbonCopy(@RequestParam(name = "processInstanceId") String processInstanceId,
|
||||
@RequestParam(name = "userIds") String userIds) {
|
||||
processFbStandardPurchaseService.carbonCopy(processInstanceId, userIds);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.jero.modules.activiti.process.fb.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
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 io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("process_fb_standard_purchase")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="process_fb_standard_purchase对象", description="法规采购流程表")
|
||||
public class ProcessFbStandardPurchase implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**主键ID*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private java.lang.String id;
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private java.lang.String createBy;
|
||||
/**创建时间*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createTime;
|
||||
/**更新人*/
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private java.lang.String updateBy;
|
||||
/**更新时间*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateTime;
|
||||
/**所属部门*/
|
||||
@ApiModelProperty(value = "所属部门")
|
||||
private java.lang.String orgCode;
|
||||
/**0表示未删除,1表示删除*/
|
||||
@ApiModelProperty(value = "0表示未删除,1表示删除")
|
||||
private java.lang.Integer delFlag;
|
||||
/**业务id*/
|
||||
@ApiModelProperty(value = "业务id")
|
||||
private java.lang.String businessId;
|
||||
/**排序*/
|
||||
@ApiModelProperty(value = "排序")
|
||||
private java.lang.Integer sort;
|
||||
/**标准编号*/
|
||||
@Excel(name = "标准号", width = 15)
|
||||
@ApiModelProperty(value = "标准编号")
|
||||
private java.lang.String standardNumber;
|
||||
/**标准名称*/
|
||||
@Excel(name = "标准名称", width = 15)
|
||||
@ApiModelProperty(value = "标准名称")
|
||||
private java.lang.String standardName;
|
||||
/**采购理由*/
|
||||
@ApiModelProperty(value = "采购理由")
|
||||
private java.lang.String purchaseReason;
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.jero.modules.activiti.process.fb.listener;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/13 17:01
|
||||
* @Description: 设置子流程变量名
|
||||
*/
|
||||
public class SetVariableListener {
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
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.ProcessFbStandardPurchase;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface ProcessFbStandardPurchaseMapper extends BaseMapper<ProcessFbStandardPurchase> {
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
<?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.ProcessFbStandardPurchaseMapper">
|
||||
<resultMap id="ProcessFbStandardPurchaseResultMap" type="com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase">
|
||||
<id column="id" property="id" />
|
||||
<result column="create_by" property="createBy" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_by" property="updateBy" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="org_code" property="orgCode" />
|
||||
<result column="del_flag" property="delFlag" />
|
||||
<result column="business_id" property="businessId" />
|
||||
<result column="sort" property="sort" />
|
||||
<result column="standard_number" property="standardNumber" />
|
||||
<result column="standard_name" property="standardName" />
|
||||
<result column="purchase_reason" property="purchaseReason" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
+7
@@ -26,4 +26,11 @@ public interface IProcessFbStandardConsultationService extends IService<ProcessF
|
||||
* @Description: 审批
|
||||
**/
|
||||
void approveTask(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO, boolean pass);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/13 16:00
|
||||
* @Description: 提交
|
||||
**/
|
||||
void submit(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO);
|
||||
}
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.jero.modules.activiti.process.fb.service;
|
||||
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IProcessFbStandardPurchaseService extends IService<ProcessFbStandardPurchase> {
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:07
|
||||
* @Description: 查询流程信息
|
||||
**/
|
||||
ProcessInfoVO<List<ProcessFbStandardPurchase>> queryProcessInfoVO(String draftId, String processInstanceId);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:07
|
||||
* @Description: 发起流程
|
||||
**/
|
||||
void startProcess(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:07
|
||||
* @Description: 审批
|
||||
**/
|
||||
void approveTask(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO, boolean pass);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:08
|
||||
* @Description: 转办
|
||||
**/
|
||||
void transfer(String taskId, String toUserId);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:08
|
||||
* @Description: 保存为草稿
|
||||
**/
|
||||
void saveToDraft(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:55
|
||||
* @Description: 导出
|
||||
**/
|
||||
ModelAndView exportXls(String businessId);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 15:07
|
||||
* @Description: 抄送
|
||||
**/
|
||||
void carbonCopy(String processInstanceId, String userIds);
|
||||
}
|
||||
+9
@@ -2,7 +2,9 @@ package com.jero.modules.activiti.process.fb.service;
|
||||
|
||||
import com.jero.modules.activiti.process.fb.dto.ProcessDTO;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -94,4 +96,11 @@ public interface IProcessHandleService {
|
||||
* @Description: 判断流程是否结束
|
||||
**/
|
||||
Boolean isProcessFinish(String processInstanceId);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 11:37
|
||||
* @Description: 获取全部子流程实例
|
||||
**/
|
||||
List<ProcessInstance> subProcessList(String superProcessInstanceId, String subProcessDefinitionKey);
|
||||
}
|
||||
|
||||
+70
@@ -1,10 +1,14 @@
|
||||
package com.jero.modules.activiti.process.fb.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey;
|
||||
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.entity.ProcessFbConsultationList;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbConsultationUserLink;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardConsultation;
|
||||
import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardConsultationMapper;
|
||||
@@ -14,6 +18,9 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessFbStandardConsultationVO;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
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;
|
||||
@@ -41,6 +48,10 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
private IProcessHandleService processHandleService;
|
||||
@Resource
|
||||
private IProcessFbConsultationUserLinkService processFbConsultationUserLinkService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
@@ -88,4 +99,63 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
public void approveTask(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO, boolean pass) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/13 16:00
|
||||
* @Description: 提交
|
||||
**/
|
||||
@Override
|
||||
public void submit(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO) {
|
||||
BasicTaskInfoDTO taskInfo = processInfoVO.getBasicTaskInfoDTO(); // 任务信息
|
||||
|
||||
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
|
||||
ProcessFbStandardConsultation businessBasicInfo = businessInfoDTO.getProcessFbStandardConsultation(); // 业务基本信息
|
||||
processInfoVO.setBusinessId(businessBasicInfo.getId());
|
||||
|
||||
updateById(businessBasicInfo); // 更新业务基本信息
|
||||
|
||||
String taskId = taskInfo.getTaskId();
|
||||
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey(); // 任务定义id
|
||||
processHandleService.isMyTask(taskId); // 判断是否拥有任务处理权
|
||||
|
||||
if (ConsultationTaskKey.DEPART_LEADER_START.equals(taskDefinitionKey)) { // 各部所主管级领导分发
|
||||
processDepartLeaderStart(processInfoVO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 9:35
|
||||
* @Description: 各部所主管级领导分发
|
||||
**/
|
||||
private void processDepartLeaderStart(ProcessInfoVO<ProcessFbStandardConsultationVO> processInfoVO) {
|
||||
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
|
||||
ProcessFbConsultationUserLink userLink = businessInfoDTO.getProcessFbConsultationUserLink(); // 业务分派信息
|
||||
|
||||
LambdaQueryWrapper<ProcessFbConsultationUserLink> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processInfoVO.getBusinessId());
|
||||
removeWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, CurrentUserUtil.getId());
|
||||
processFbConsultationUserLinkService.remove(removeWrapper); // 删除原先存储的关联
|
||||
|
||||
if ("1".equals(userLink.getUserType())) { // 模块负责人
|
||||
if (StringUtils.isBlank(userLink.getModuleOwnerId())) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "moduleOwnerId");
|
||||
}
|
||||
List<String> moduleOwnerIds = Arrays.asList(userLink.getModuleOwnerId().split(","));
|
||||
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
|
||||
moduleOwnerIds.forEach(moduleOwnerId -> {
|
||||
ProcessFbConsultationUserLink link = new ProcessFbConsultationUserLink();
|
||||
link.setBusinessId(processInfoVO.getBusinessId());
|
||||
link.setDepartLeaderId(CurrentUserUtil.getId());
|
||||
link.setModuleOwnerId(moduleOwnerId);
|
||||
linkList.add(link);
|
||||
});
|
||||
processFbConsultationUserLinkService.saveBatch(linkList, linkList.size());
|
||||
} else { // 设计工程师
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+198
@@ -0,0 +1,198 @@
|
||||
package com.jero.modules.activiti.process.fb.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
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.entity.ProcessFbStandardPurchase;
|
||||
import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardPurchaseMapper;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardPurchaseService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
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;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 法规采购流程表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2023-11-14
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbStandardPurchaseMapper, ProcessFbStandardPurchase> implements IProcessFbStandardPurchaseService {
|
||||
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
@Value("${jero.path.upload}")
|
||||
private String upLoadPath;
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:08
|
||||
* @Description: 查询流程信息
|
||||
**/
|
||||
@Override
|
||||
public ProcessInfoVO<List<ProcessFbStandardPurchase>> queryProcessInfoVO(String draftId, String processInstanceId) {
|
||||
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId);
|
||||
|
||||
LambdaQueryWrapper<ProcessFbStandardPurchase> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessFbStandardPurchase::getBusinessId, processInfoVO.getBusinessId());
|
||||
queryWrapper.orderByAsc(ProcessFbStandardPurchase::getSort);
|
||||
List<ProcessFbStandardPurchase> purchaseList = list(queryWrapper);
|
||||
processInfoVO.setBusinessInfoDTO(purchaseList);
|
||||
|
||||
return processInfoVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:09
|
||||
* @Description: 发起流程
|
||||
**/
|
||||
@Override
|
||||
public void startProcess(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
String processName = addBusinessInfo(processInfoVO);// 保存业务信息
|
||||
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap(); // 用户变量map
|
||||
userInfoMap.put("engineer", CurrentUserUtil.getId()); // 第一个任务节点设置成自己
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.FB_STANDARD_PURCHASE)); // 流程定义id
|
||||
basicProcessInfoDTO.setProcessName(processName); // 流程名称
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_STANDARD_PURCHASE.getValue()); // 流程类型
|
||||
processHandleService.startProcess(processInfoVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:18
|
||||
* @Description: 添加业务信息
|
||||
**/
|
||||
private String addBusinessInfo(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
List<ProcessFbStandardPurchase> businessInfoList = processInfoVO.getBusinessInfoDTO();
|
||||
if (CollectionUtils.isEmpty(businessInfoList)) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "businessInfo");
|
||||
}
|
||||
String businessId = businessInfoList.get(0).getBusinessId();
|
||||
if (StringUtils.isBlank(businessId)) {
|
||||
businessId = UUIDUtils.randomUUID20();
|
||||
}
|
||||
processInfoVO.setBusinessId(businessId);
|
||||
for (int i = 0; i < businessInfoList.size(); i++) {
|
||||
if (StringUtils.isBlank(businessInfoList.get(i).getStandardNumber())) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "standardNumber");
|
||||
}
|
||||
if (StringUtils.isBlank(businessInfoList.get(i).getStandardName())) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "standardName");
|
||||
}
|
||||
businessInfoList.get(i).setBusinessId(businessId);
|
||||
businessInfoList.get(i).setSort(i + 1);
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<ProcessFbStandardPurchase> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(ProcessFbStandardPurchase::getBusinessId, businessId);
|
||||
remove(removeWrapper); // 先删除历史数据
|
||||
|
||||
saveBatch(businessInfoList, businessInfoList.size()); // 保存到数据库
|
||||
|
||||
return businessInfoList.get(0).getStandardNumber() + "-" + businessInfoList.get(0).getStandardName() + "-" + "采购";
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:09
|
||||
* @Description: 审批
|
||||
**/
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO, boolean pass) {
|
||||
List<ProcessFbStandardPurchase> businessInfoList = processInfoVO.getBusinessInfoDTO();
|
||||
processInfoVO.setBusinessId(businessInfoList.get(0).getBusinessId());
|
||||
processHandleService.approveTask(processInfoVO, pass);
|
||||
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
String processInstanceId = basicProcessInfoDTO.getProcessInstanceId();
|
||||
// 如果流程结束
|
||||
if (pass && processHandleService.isProcessFinish(processInstanceId)) {
|
||||
log.info("《法规采购流程》结束,流程名称:{}", basicProcessInfoDTO.getProcessName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:09
|
||||
* @Description: 转办
|
||||
**/
|
||||
@Override
|
||||
public void transfer(String taskId, String toUserId) {
|
||||
processHandleService.transfer(taskId, toUserId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:09
|
||||
* @Description: 保存为草稿
|
||||
**/
|
||||
@Override
|
||||
public void saveToDraft(ProcessInfoVO<List<ProcessFbStandardPurchase>> processInfoVO) {
|
||||
addBusinessInfo(processInfoVO); // 保存业务信息
|
||||
// 流程信息
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_STANDARD_PURCHASE.getValue()); // 流程类型
|
||||
|
||||
processHandleService.saveToDraft(processInfoVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 14:55
|
||||
* @Description: 导出
|
||||
**/
|
||||
@Override
|
||||
public ModelAndView exportXls(String businessId) {
|
||||
LambdaQueryWrapper<ProcessFbStandardPurchase> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessFbStandardPurchase::getBusinessId, businessId);
|
||||
queryWrapper.orderByAsc(ProcessFbStandardPurchase::getSort);
|
||||
List<ProcessFbStandardPurchase> exportList = list(queryWrapper); // 准备数据
|
||||
|
||||
String title = "法规采购流程";
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
mv.addObject(JeroController.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
mv.addObject(JeroController.CLASS, ProcessFbStandardPurchase.class);
|
||||
ExportParams exportParams=new ExportParams(title + "报表", "导出人:" + CurrentUserUtil.getRealName(), title);
|
||||
exportParams.setImageBasePath(upLoadPath);
|
||||
mv.addObject(JeroController.PARAMS,exportParams);
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
|
||||
return mv;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 15:07
|
||||
* @Description: 抄送
|
||||
**/
|
||||
@Override
|
||||
public void carbonCopy(String processInstanceId, String userIds) {
|
||||
log.info("已发送抄送消息...");
|
||||
}
|
||||
}
|
||||
+18
@@ -96,6 +96,11 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
|
||||
// 完成任务
|
||||
taskService.complete(taskId);
|
||||
|
||||
System.out.println("================================流程信息=================================");
|
||||
System.out.println("流程实例id: " + processInstanceId);
|
||||
System.out.println("流程实例name: " + processInstance.getName());
|
||||
System.out.println("=======================================================================");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -356,4 +361,17 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/14 11:38
|
||||
* @Description: 获取全部子流程实例
|
||||
**/
|
||||
@Override
|
||||
public List<ProcessInstance> subProcessList(String superProcessInstanceId, String subProcessDefinitionKey) {
|
||||
return runtimeService.createProcessInstanceQuery()
|
||||
.superProcessInstanceId(superProcessInstanceId)
|
||||
.processDefinitionKey(subProcessDefinitionKey)
|
||||
.list();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
<?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-purchase" name="法规采购流程" isExecutable="true">
|
||||
<bpmn:startEvent id="StartEvent_1">
|
||||
<bpmn:outgoing>Flow_1w8ixsw</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
<bpmn:userTask id="Activity_0fmr3id" name="申请采购标准法规" activiti:assignee="${engineer}">
|
||||
<bpmn:incoming>Flow_1w8ixsw</bpmn:incoming>
|
||||
<bpmn:incoming>Flow_0o2iuu5</bpmn:incoming>
|
||||
<bpmn:incoming>Flow_0s4y3m3</bpmn:incoming>
|
||||
<bpmn:incoming>Flow_0fdb834</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0r9olk3</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_1w8ixsw" sourceRef="StartEvent_1" targetRef="Activity_0fmr3id" />
|
||||
<bpmn:userTask id="Activity_1fr1x5i" name="发起人主管级领导审批" activiti:assignee="${leader1}">
|
||||
<bpmn:incoming>Flow_0r9olk3</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0fzcm0e</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_0r9olk3" sourceRef="Activity_0fmr3id" targetRef="Activity_1fr1x5i" />
|
||||
<bpmn:exclusiveGateway id="Gateway_0nz2dud">
|
||||
<bpmn:incoming>Flow_0fzcm0e</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1scfly1</bpmn:outgoing>
|
||||
<bpmn:outgoing>Flow_0o2iuu5</bpmn:outgoing>
|
||||
</bpmn:exclusiveGateway>
|
||||
<bpmn:sequenceFlow id="Flow_0fzcm0e" sourceRef="Activity_1fr1x5i" targetRef="Gateway_0nz2dud" />
|
||||
<bpmn:userTask id="Activity_06jy4oo" name="标准化主管级领导" activiti:assignee="${leader2}">
|
||||
<bpmn:incoming>Flow_1scfly1</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_074022s</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_1scfly1" name="通过" sourceRef="Gateway_0nz2dud" targetRef="Activity_06jy4oo">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:exclusiveGateway id="Gateway_0yz0e0x">
|
||||
<bpmn:incoming>Flow_074022s</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1vgiww1</bpmn:outgoing>
|
||||
<bpmn:outgoing>Flow_0s4y3m3</bpmn:outgoing>
|
||||
</bpmn:exclusiveGateway>
|
||||
<bpmn:sequenceFlow id="Flow_074022s" sourceRef="Activity_06jy4oo" targetRef="Gateway_0yz0e0x" />
|
||||
<bpmn:userTask id="Activity_1u5337a" name="标准化主管级上一级领导审批" activiti:assignee="${leader3}">
|
||||
<bpmn:incoming>Flow_1vgiww1</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1d7vhzl</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_1vgiww1" name="通过" sourceRef="Gateway_0yz0e0x" targetRef="Activity_1u5337a">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:exclusiveGateway id="Gateway_158gpae">
|
||||
<bpmn:incoming>Flow_1d7vhzl</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0u0oqjz</bpmn:outgoing>
|
||||
<bpmn:outgoing>Flow_0fdb834</bpmn:outgoing>
|
||||
</bpmn:exclusiveGateway>
|
||||
<bpmn:sequenceFlow id="Flow_1d7vhzl" sourceRef="Activity_1u5337a" targetRef="Gateway_158gpae" />
|
||||
<bpmn:userTask id="Activity_1q01zfq" name="法规工程师确认" activiti:assignee="${engineer}">
|
||||
<bpmn:incoming>Flow_0u0oqjz</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0j7mfpf</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
<bpmn:sequenceFlow id="Flow_0u0oqjz" name="通过" sourceRef="Gateway_158gpae" targetRef="Activity_1q01zfq">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:endEvent id="Event_1n779t0">
|
||||
<bpmn:incoming>Flow_0j7mfpf</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:sequenceFlow id="Flow_0j7mfpf" sourceRef="Activity_1q01zfq" targetRef="Event_1n779t0" />
|
||||
<bpmn:sequenceFlow id="Flow_0o2iuu5" name="驳回" sourceRef="Gateway_0nz2dud" targetRef="Activity_0fmr3id">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:sequenceFlow id="Flow_0s4y3m3" name="驳回" sourceRef="Gateway_0yz0e0x" targetRef="Activity_0fmr3id">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
<bpmn:sequenceFlow id="Flow_0fdb834" name="驳回" sourceRef="Gateway_158gpae" targetRef="Activity_0fmr3id">
|
||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${!pass}</bpmn:conditionExpression>
|
||||
</bpmn:sequenceFlow>
|
||||
</bpmn:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="fb-standard-purchase">
|
||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||
<dc:Bounds x="179" y="239" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_0fmr3id_di" bpmnElement="Activity_0fmr3id">
|
||||
<dc:Bounds x="270" y="217" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1fr1x5i_di" bpmnElement="Activity_1fr1x5i">
|
||||
<dc:Bounds x="430" y="217" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Gateway_0nz2dud_di" bpmnElement="Gateway_0nz2dud" isMarkerVisible="true">
|
||||
<dc:Bounds x="595" y="232" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_06jy4oo_di" bpmnElement="Activity_06jy4oo">
|
||||
<dc:Bounds x="710" y="217" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Gateway_0yz0e0x_di" bpmnElement="Gateway_0yz0e0x" isMarkerVisible="true">
|
||||
<dc:Bounds x="875" y="232" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1u5337a_di" bpmnElement="Activity_1u5337a">
|
||||
<dc:Bounds x="990" y="217" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Gateway_158gpae_di" bpmnElement="Gateway_158gpae" isMarkerVisible="true">
|
||||
<dc:Bounds x="1155" y="232" width="50" height="50" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1q01zfq_di" bpmnElement="Activity_1q01zfq">
|
||||
<dc:Bounds x="1270" y="217" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Event_1n779t0_di" bpmnElement="Event_1n779t0">
|
||||
<dc:Bounds x="1442" y="239" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="Flow_1w8ixsw_di" bpmnElement="Flow_1w8ixsw">
|
||||
<di:waypoint x="215" y="257" />
|
||||
<di:waypoint x="270" y="257" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0r9olk3_di" bpmnElement="Flow_0r9olk3">
|
||||
<di:waypoint x="370" y="257" />
|
||||
<di:waypoint x="430" y="257" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0fzcm0e_di" bpmnElement="Flow_0fzcm0e">
|
||||
<di:waypoint x="530" y="257" />
|
||||
<di:waypoint x="595" y="257" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1scfly1_di" bpmnElement="Flow_1scfly1">
|
||||
<di:waypoint x="645" y="257" />
|
||||
<di:waypoint x="710" y="257" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="667" y="239" width="22" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_074022s_di" bpmnElement="Flow_074022s">
|
||||
<di:waypoint x="810" y="257" />
|
||||
<di:waypoint x="875" y="257" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1vgiww1_di" bpmnElement="Flow_1vgiww1">
|
||||
<di:waypoint x="925" y="257" />
|
||||
<di:waypoint x="990" y="257" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="947" y="239" width="22" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1d7vhzl_di" bpmnElement="Flow_1d7vhzl">
|
||||
<di:waypoint x="1090" y="257" />
|
||||
<di:waypoint x="1155" y="257" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0u0oqjz_di" bpmnElement="Flow_0u0oqjz">
|
||||
<di:waypoint x="1205" y="257" />
|
||||
<di:waypoint x="1270" y="257" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="1227" y="239" width="22" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0j7mfpf_di" bpmnElement="Flow_0j7mfpf">
|
||||
<di:waypoint x="1370" y="257" />
|
||||
<di:waypoint x="1442" y="257" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0o2iuu5_di" bpmnElement="Flow_0o2iuu5">
|
||||
<di:waypoint x="620" y="232" />
|
||||
<di:waypoint x="620" y="190" />
|
||||
<di:waypoint x="350" y="190" />
|
||||
<di:waypoint x="350" y="217" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="476" y="172" width="21" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0s4y3m3_di" bpmnElement="Flow_0s4y3m3">
|
||||
<di:waypoint x="900" y="232" />
|
||||
<di:waypoint x="900" y="150" />
|
||||
<di:waypoint x="330" y="150" />
|
||||
<di:waypoint x="330" y="217" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="606" y="132" width="21" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0fdb834_di" bpmnElement="Flow_0fdb834">
|
||||
<di:waypoint x="1180" y="232" />
|
||||
<di:waypoint x="1180" y="100" />
|
||||
<di:waypoint x="310" y="100" />
|
||||
<di:waypoint x="310" y="217" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="736" y="82" width="21" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</definitions>
|
||||
Reference in New Issue
Block a user