update 发送消息
This commit is contained in:
+4
@@ -3,6 +3,7 @@ package com.jero.modules.system.model;
|
|||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.jero.common.aspect.annotation.Dict;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
@@ -30,10 +31,12 @@ public class AnnouncementSendModel implements Serializable {
|
|||||||
/**内容*/
|
/**内容*/
|
||||||
private java.lang.String msgContent;
|
private java.lang.String msgContent;
|
||||||
/**发布人*/
|
/**发布人*/
|
||||||
|
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||||
private java.lang.String sender;
|
private java.lang.String sender;
|
||||||
/**优先级(L低,M中,H高)*/
|
/**优先级(L低,M中,H高)*/
|
||||||
private java.lang.String priority;
|
private java.lang.String priority;
|
||||||
/**阅读状态*/
|
/**阅读状态*/
|
||||||
|
@Dict(dicCode = "read_flag")
|
||||||
private java.lang.String readFlag;
|
private java.lang.String readFlag;
|
||||||
/**发布时间*/
|
/**发布时间*/
|
||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@@ -46,6 +49,7 @@ public class AnnouncementSendModel implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 消息类型1:通知公告2:系统消息
|
* 消息类型1:通知公告2:系统消息
|
||||||
*/
|
*/
|
||||||
|
@Dict(dicCode = "msg_category")
|
||||||
private java.lang.String msgCategory;
|
private java.lang.String msgCategory;
|
||||||
/**
|
/**
|
||||||
* 业务id
|
* 业务id
|
||||||
|
|||||||
+2
@@ -291,9 +291,11 @@ public class LawsAsmsOpenApiServiceImpl extends ServiceImpl<LawsAsmsOpenApiMappe
|
|||||||
// 如果是分标委
|
// 如果是分标委
|
||||||
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(lawsAsmsOpenApi.getApiUrl(), map);
|
||||||
List<LawsStandardization> lawsStandardizationList = new ArrayList();
|
List<LawsStandardization> lawsStandardizationList = new ArrayList();
|
||||||
|
LawsStandardization parent = lawsStandardizationService.getById("0");
|
||||||
mapList.forEach(eMap -> {
|
mapList.forEach(eMap -> {
|
||||||
LawsStandardization lawsStandardization = new LawsStandardization();
|
LawsStandardization lawsStandardization = new LawsStandardization();
|
||||||
lawsStandardization.setStandardizationType("分标委");
|
lawsStandardization.setStandardizationType("分标委");
|
||||||
|
lawsStandardization.setPid(parent.getId());
|
||||||
eMap.forEach((k,v) -> {
|
eMap.forEach((k,v) -> {
|
||||||
if ("code".equals(k)) {
|
if ("code".equals(k)) {
|
||||||
lawsStandardization.setNum(v);
|
lawsStandardization.setNum(v);
|
||||||
|
|||||||
+2
@@ -15,4 +15,6 @@ public class ProcessDefinitionKey {
|
|||||||
|
|
||||||
public static final String FB_STANDARD_PURCHASE = "fb-standard-purchase"; // 法规采购流程
|
public static final String FB_STANDARD_PURCHASE = "fb-standard-purchase"; // 法规采购流程
|
||||||
|
|
||||||
|
public static final String FB_STANDARD_COMPLIANCE_ASSESSMENT = "fb-standard-compliance-assessment"; // 法规合规评估流程
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+72
-11
@@ -13,12 +13,19 @@ import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
|||||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||||
|
import com.spire.ms.System.Collections.ArrayList;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.activiti.engine.HistoryService;
|
||||||
|
import org.activiti.engine.RuntimeService;
|
||||||
|
import org.activiti.engine.TaskService;
|
||||||
|
import org.activiti.engine.history.HistoricProcessInstance;
|
||||||
|
import org.activiti.engine.runtime.Execution;
|
||||||
import org.activiti.engine.runtime.ProcessInstance;
|
import org.activiti.engine.runtime.ProcessInstance;
|
||||||
|
import org.activiti.engine.task.Task;
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.apache.shiro.SecurityUtils;
|
import org.apache.shiro.SecurityUtils;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@@ -28,8 +35,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
@@ -48,6 +54,12 @@ public class ProcessFbInfoController {
|
|||||||
private IProcessHandleService processHandleService;
|
private IProcessHandleService processHandleService;
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessDraftService processDraftService;
|
private ProcessDraftService processDraftService;
|
||||||
|
@Resource
|
||||||
|
private RuntimeService runtimeService;
|
||||||
|
@Resource
|
||||||
|
private TaskService taskService;
|
||||||
|
@Resource
|
||||||
|
private HistoryService historyService;
|
||||||
|
|
||||||
@DictPoint
|
@DictPoint
|
||||||
@GetMapping("/getNodeList")
|
@GetMapping("/getNodeList")
|
||||||
@@ -79,16 +91,65 @@ public class ProcessFbInfoController {
|
|||||||
@ApiOperation(value = "测试")
|
@ApiOperation(value = "测试")
|
||||||
@GetMapping("/test")
|
@GetMapping("/test")
|
||||||
public Result<T> test() {
|
public Result<T> test() {
|
||||||
List<ProcessInstance> subProcessInstanceList = processHandleService
|
Map<String, Object> variables = new HashMap<>();
|
||||||
.subProcessList("20231114120041259", "Activity_0mj9ddw");
|
variables.put("creator", "tom");
|
||||||
System.out.println("================================测试开始=================================");
|
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("test_countersign", variables);
|
||||||
subProcessInstanceList.forEach(subProcessInstance -> {
|
String processInstanceId = processInstance.getId();
|
||||||
System.out.println("Sub Process Instance ID: " + subProcessInstance.getId());
|
System.out.println("流程实例Id: " + processInstanceId);
|
||||||
System.out.println("Sub Process Definition Key: " + subProcessInstance.getProcessDefinitionKey());
|
|
||||||
// 其他子流程实例信息
|
List<Task> taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||||
System.out.println(subProcessInstance.toString());
|
System.out.println("============== 提出申请 ============");
|
||||||
|
taskList.forEach(task -> {
|
||||||
|
System.out.println("任务Id: " + task.getId());
|
||||||
|
System.out.println("任务名称: " + task.getName());
|
||||||
|
System.out.println("执行实例Id: " + task.getExecutionId());
|
||||||
|
System.out.println("任务处理人: " + task.getAssignee());
|
||||||
});
|
});
|
||||||
System.out.println("=======================================================================");
|
System.out.println("==========================");
|
||||||
|
|
||||||
|
List<String> leaderList = Arrays.asList(new String[] {"aaa", "bbb", "ccc"});
|
||||||
|
variables.put("leaderList", leaderList);
|
||||||
|
runtimeService.setVariables(processInstanceId, variables);
|
||||||
|
|
||||||
|
Task tomTask = taskList.get(0);
|
||||||
|
taskService.complete(tomTask.getId());
|
||||||
|
System.out.println("完成任务: " + tomTask.getId());
|
||||||
|
System.out.println("任务名称: " + tomTask.getName());
|
||||||
|
System.out.println("完成人: " + tomTask.getAssignee());
|
||||||
|
|
||||||
|
taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||||
|
System.out.println("============== 多人会签 ============");
|
||||||
|
taskList.forEach(task -> {
|
||||||
|
System.out.println("任务Id: " + task.getId());
|
||||||
|
System.out.println("任务名称: " + task.getName());
|
||||||
|
System.out.println("执行实例Id: " + task.getExecutionId());
|
||||||
|
System.out.println("任务处理人: " + task.getAssignee());
|
||||||
|
});
|
||||||
|
System.out.println("==========================");
|
||||||
|
|
||||||
|
System.out.println("============= 多人会签 =============");
|
||||||
|
taskList.forEach(task -> {
|
||||||
|
taskService.claim(task.getId(), task.getAssignee());
|
||||||
|
taskService.complete(task.getId());
|
||||||
|
System.out.println("完成任务: " + task.getId());
|
||||||
|
});
|
||||||
|
System.out.println("==========================");
|
||||||
|
|
||||||
|
taskList = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
|
||||||
|
System.out.println("============== 汇总 ============");
|
||||||
|
taskList.forEach(task -> {
|
||||||
|
System.out.println("任务Id: " + task.getId());
|
||||||
|
System.out.println("任务名称: " + task.getName());
|
||||||
|
System.out.println("执行实例Id: " + task.getExecutionId());
|
||||||
|
System.out.println("任务处理人: " + task.getAssignee());
|
||||||
|
});
|
||||||
|
System.out.println("==========================");
|
||||||
|
tomTask = taskList.get(0);
|
||||||
|
taskService.complete(tomTask.getId());
|
||||||
|
System.out.println("完成任务: " + tomTask.getId());
|
||||||
|
System.out.println("任务名称: " + tomTask.getName());
|
||||||
|
System.out.println("完成人: " + tomTask.getAssignee());
|
||||||
|
|
||||||
return Result.OK();
|
return Result.OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Api(tags="法规采购流程表")
|
@Api(tags="法规采购流程表")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/activiti.process.fb/processFbStandardPurchase")
|
@RequestMapping("/process/fb/processFbStandardPurchase")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ProcessFbStandardPurchaseController extends JeroController<ProcessFbStandardPurchase, IProcessFbStandardPurchaseService> {
|
public class ProcessFbStandardPurchaseController extends JeroController<ProcessFbStandardPurchase, IProcessFbStandardPurchaseService> {
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@ public interface IProcessHandleService {
|
|||||||
* @Date: 2023/11/10 9:44
|
* @Date: 2023/11/10 9:44
|
||||||
* @Description: 设置流程变量
|
* @Description: 设置流程变量
|
||||||
**/
|
**/
|
||||||
void setProcessVariables(String processInstanceId, Map<String, Object> userInfoMap);
|
Map<String, Object> setProcessVariables(Map<String, Object> userInfoMap);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
|
|||||||
+32
-6
@@ -28,10 +28,7 @@ import com.jero.common.exception.JeroBootException;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -135,17 +132,22 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
|||||||
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
|
ProcessFbStandardConsultationVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); // 全部业务信息
|
||||||
ProcessFbConsultationUserLink userLink = businessInfoDTO.getProcessFbConsultationUserLink(); // 业务分派信息
|
ProcessFbConsultationUserLink userLink = businessInfoDTO.getProcessFbConsultationUserLink(); // 业务分派信息
|
||||||
|
|
||||||
|
String taskId = processInfoVO.getBasicTaskInfoDTO().getTaskId();
|
||||||
|
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||||
|
String taskProcessInstanceId = task.getProcessInstanceId();
|
||||||
|
|
||||||
LambdaQueryWrapper<ProcessFbConsultationUserLink> removeWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessFbConsultationUserLink> removeWrapper = new LambdaQueryWrapper<>();
|
||||||
removeWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processInfoVO.getBusinessId());
|
removeWrapper.eq(ProcessFbConsultationUserLink::getBusinessId, processInfoVO.getBusinessId());
|
||||||
removeWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, CurrentUserUtil.getId());
|
removeWrapper.eq(ProcessFbConsultationUserLink::getDepartLeaderId, CurrentUserUtil.getId());
|
||||||
processFbConsultationUserLinkService.remove(removeWrapper); // 删除原先存储的关联
|
processFbConsultationUserLinkService.remove(removeWrapper); // 删除原先存储的关联
|
||||||
|
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
|
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
|
||||||
if ("1".equals(userLink.getUserType())) { // 模块负责人
|
if ("1".equals(userLink.getUserType())) { // 模块负责人
|
||||||
if (StringUtils.isBlank(userLink.getModuleOwnerId())) {
|
if (StringUtils.isBlank(userLink.getModuleOwnerId())) {
|
||||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "moduleOwnerId");
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "moduleOwnerId");
|
||||||
}
|
}
|
||||||
List<String> moduleOwnerIds = Arrays.asList(userLink.getModuleOwnerId().split(","));
|
List<String> moduleOwnerIds = Arrays.asList(userLink.getModuleOwnerId().split(","));
|
||||||
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
|
|
||||||
moduleOwnerIds.forEach(moduleOwnerId -> {
|
moduleOwnerIds.forEach(moduleOwnerId -> {
|
||||||
ProcessFbConsultationUserLink link = new ProcessFbConsultationUserLink();
|
ProcessFbConsultationUserLink link = new ProcessFbConsultationUserLink();
|
||||||
link.setBusinessId(processInfoVO.getBusinessId());
|
link.setBusinessId(processInfoVO.getBusinessId());
|
||||||
@@ -154,8 +156,32 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
|||||||
linkList.add(link);
|
linkList.add(link);
|
||||||
});
|
});
|
||||||
processFbConsultationUserLinkService.saveBatch(linkList, linkList.size());
|
processFbConsultationUserLinkService.saveBatch(linkList, linkList.size());
|
||||||
|
variables.put("passFirst", true);
|
||||||
|
variables.put("moduleOwnerList", moduleOwnerIds);
|
||||||
} else { // 设计工程师
|
} else { // 设计工程师
|
||||||
|
if (StringUtils.isBlank(userLink.getDesignEngineerId())) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "designEngineerId");
|
||||||
|
}
|
||||||
|
List<String> designEngineerIds = Arrays.asList(userLink.getDesignEngineerId().split(","));
|
||||||
|
designEngineerIds.forEach(designEngineerId -> {
|
||||||
|
ProcessFbConsultationUserLink link = new ProcessFbConsultationUserLink();
|
||||||
|
link.setBusinessId(processInfoVO.getBusinessId());
|
||||||
|
link.setDepartLeaderId(CurrentUserUtil.getId());
|
||||||
|
link.setDesignEngineerId(designEngineerId);
|
||||||
|
linkList.add(link);
|
||||||
|
});
|
||||||
|
processFbConsultationUserLinkService.saveBatch(linkList, linkList.size());
|
||||||
|
variables.put("passFirst", false);
|
||||||
|
variables.put("designEngineerList", designEngineerIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 完成任务
|
||||||
|
taskService.complete(taskId, variables);
|
||||||
|
|
||||||
|
System.out.println("================================启动流程=================================");
|
||||||
|
System.out.println("processInstanceId: " + processInfoVO.getBasicProcessInfoDTO().getProcessInstanceId());
|
||||||
|
System.out.println("taskProcessInstanceId: " + taskProcessInstanceId);
|
||||||
|
System.out.println("taskId: " + taskId);
|
||||||
|
System.out.println("=======================================================================");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-12
@@ -80,7 +80,7 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
updateProcessAll(processInfoVO);
|
updateProcessAll(processInfoVO);
|
||||||
|
|
||||||
// 保存选人信息
|
// 保存选人信息
|
||||||
setProcessVariables(processInstanceId, userInfoMap);
|
Map<String, Object> variables = setProcessVariables(userInfoMap);
|
||||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
||||||
|
|
||||||
// 根据流程实例id和任务处理人查询任务
|
// 根据流程实例id和任务处理人查询任务
|
||||||
@@ -95,11 +95,11 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
updateApprovalRecord(processInfoVO);
|
updateApprovalRecord(processInfoVO);
|
||||||
|
|
||||||
// 完成任务
|
// 完成任务
|
||||||
taskService.complete(taskId);
|
taskService.complete(taskId, variables);
|
||||||
|
|
||||||
System.out.println("================================流程信息=================================");
|
System.out.println("================================启动流程=================================");
|
||||||
|
System.out.println("流程定义id: " + processDefinitionId);
|
||||||
System.out.println("流程实例id: " + processInstanceId);
|
System.out.println("流程实例id: " + processInstanceId);
|
||||||
System.out.println("流程实例name: " + processInstance.getName());
|
|
||||||
System.out.println("=======================================================================");
|
System.out.println("=======================================================================");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,22 +122,28 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
String processInstanceId = processDTO.getProcessInstanceId();
|
String processInstanceId = processDTO.getProcessInstanceId();
|
||||||
String processDefinitionId = processDTO.getProcessDefinitionId();
|
String processDefinitionId = processDTO.getProcessDefinitionId();
|
||||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||||
|
Map<String, Object> variables = setProcessVariables(userInfoMap);
|
||||||
if (!Objects.isNull(userInfoMap) && !userInfoMap.isEmpty()) {
|
if (!Objects.isNull(userInfoMap) && !userInfoMap.isEmpty()) {
|
||||||
// 保存选人信息
|
// 保存选人信息
|
||||||
setProcessVariables(processInstanceId, userInfoMap);
|
|
||||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
|
||||||
}
|
}
|
||||||
if (pass) { // 通过
|
if (pass) { // 通过
|
||||||
runtimeService.setVariableLocal(processInstanceId, "pass", true);
|
variables.put("pass", true);
|
||||||
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.PASS.getValue());
|
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.PASS.getValue());
|
||||||
} else { // 驳回
|
} else { // 驳回
|
||||||
runtimeService.setVariableLocal(processInstanceId, "pass", false);
|
variables.put("pass", false);
|
||||||
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.REJECT.getValue());
|
basicTaskInfoDTO.setCommitFlag(CommitFlagEnum.REJECT.getValue());
|
||||||
}
|
}
|
||||||
// 更新审批记录表
|
// 更新审批记录表
|
||||||
updateApprovalRecord(processInfoVO);
|
updateApprovalRecord(processInfoVO);
|
||||||
// 完成任务
|
// 完成任务
|
||||||
taskService.complete(taskId);
|
taskService.complete(taskId, variables);
|
||||||
|
|
||||||
|
System.out.println("================================启动流程=================================");
|
||||||
|
System.out.println("流程定义id: " + processDefinitionId);
|
||||||
|
System.out.println("流程实例id: " + processInstanceId);
|
||||||
|
System.out.println("任务id: " + taskId);
|
||||||
|
System.out.println("=======================================================================");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,16 +152,18 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
|
|||||||
* @Description: 设置流程变量
|
* @Description: 设置流程变量
|
||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public void setProcessVariables(String processInstanceId, Map<String, Object> userInfoMap) {
|
public Map<String, Object> setProcessVariables(Map<String, Object> userInfoMap) {
|
||||||
|
Map<String, Object> variables = new HashMap<>();
|
||||||
userInfoMap.forEach((k, v) -> {
|
userInfoMap.forEach((k, v) -> {
|
||||||
String value = (String) v;
|
String value = (String) v;
|
||||||
if (k.contains("List") && StringUtils.isNotBlank(value)) { // 会签节点
|
if (k.contains("List") && StringUtils.isNotBlank(value)) { // 会签节点
|
||||||
List<String> userList = Arrays.asList(value.split(","));
|
List<String> userList = Arrays.asList(value.split(","));
|
||||||
runtimeService.setVariable(processInstanceId, k, userList);
|
variables.put(k, userList);
|
||||||
} else { // 普通节点
|
} else if (StringUtils.isNotBlank(value)) { // 普通节点
|
||||||
runtimeService.setVariable(processInstanceId, k, v);
|
variables.put(k, v);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return variables;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+8
@@ -9,6 +9,7 @@ import com.jero.common.util.MessageUtils;
|
|||||||
import com.jero.common.util.MinioUtil;
|
import com.jero.common.util.MinioUtil;
|
||||||
import com.jero.common.api.vo.ResultCommon;
|
import com.jero.common.api.vo.ResultCommon;
|
||||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||||
|
import com.jero.modules.laws.common.vo.LawsDictModel;
|
||||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
||||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
||||||
import com.jero.modules.laws.enterprise.util.WaterMarkUtil;
|
import com.jero.modules.laws.enterprise.util.WaterMarkUtil;
|
||||||
@@ -26,6 +27,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liao
|
* @Author: liao
|
||||||
@@ -69,6 +71,12 @@ public class LawsCommonController {
|
|||||||
return Result.OK(lawsCommonService.getManyStandardSelectionBox(selectionBoxVO, pageNo, pageSize));
|
return Result.OK(lawsCommonService.getManyStandardSelectionBox(selectionBoxVO, pageNo, pageSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value="分标委下拉列表", notes="分标委下拉列表")
|
||||||
|
@GetMapping(value = "/getBiddingCommittee")
|
||||||
|
public Result<List<LawsDictModel>> getBiddingCommittee() {
|
||||||
|
return Result.OK(lawsCommonService.getBiddingCommittee());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下载带水印的PDF文件
|
* 下载带水印的PDF文件
|
||||||
|
|||||||
+8
@@ -1,6 +1,7 @@
|
|||||||
package com.jero.modules.laws.common.service;
|
package com.jero.modules.laws.common.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jero.modules.laws.common.vo.LawsDictModel;
|
||||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
||||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
||||||
import com.jero.modules.oss.entity.OSSFile;
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
@@ -183,4 +184,11 @@ public interface ILawsCommonService {
|
|||||||
* @Description: 将标准编号集合中的标准改成废止状态
|
* @Description: 将标准编号集合中的标准改成废止状态
|
||||||
**/
|
**/
|
||||||
void updateToAbolish(List<String> standardNumbers);
|
void updateToAbolish(List<String> standardNumbers);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/11/16 9:50
|
||||||
|
* @Description: 分标委下拉列表
|
||||||
|
**/
|
||||||
|
List<LawsDictModel> getBiddingCommittee();
|
||||||
}
|
}
|
||||||
|
|||||||
+26
@@ -18,6 +18,7 @@ import com.jero.common.api.vo.ResultCommon;
|
|||||||
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
|
||||||
import com.jero.modules.laws.common.service.ILawsCommonService;
|
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||||
import com.jero.modules.laws.common.util.ImportUtil;
|
import com.jero.modules.laws.common.util.ImportUtil;
|
||||||
|
import com.jero.modules.laws.common.vo.LawsDictModel;
|
||||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
import com.jero.modules.laws.common.vo.ManyStandardSelectionBox;
|
||||||
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardAuthDept;
|
||||||
@@ -29,6 +30,8 @@ import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
|||||||
import com.jero.modules.laws.enterprise.util.WaterMarkUtil;
|
import com.jero.modules.laws.enterprise.util.WaterMarkUtil;
|
||||||
import com.jero.modules.laws.standard.entity.*;
|
import com.jero.modules.laws.standard.entity.*;
|
||||||
import com.jero.modules.laws.standard.service.*;
|
import com.jero.modules.laws.standard.service.*;
|
||||||
|
import com.jero.modules.laws.standardization.entity.LawsStandardization;
|
||||||
|
import com.jero.modules.laws.standardization.service.ILawsStandardizationService;
|
||||||
import com.jero.modules.oss.entity.OSSFile;
|
import com.jero.modules.oss.entity.OSSFile;
|
||||||
import com.jero.modules.oss.service.IOSSFileService;
|
import com.jero.modules.oss.service.IOSSFileService;
|
||||||
import com.jero.modules.personal.entity.LawsBrowsingHistory;
|
import com.jero.modules.personal.entity.LawsBrowsingHistory;
|
||||||
@@ -117,6 +120,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
private ILawsTreeNodeService lawsTreeNodeService;
|
private ILawsTreeNodeService lawsTreeNodeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ILawsBrowsingHistoryService lawsBrowsingHistoryService;
|
private ILawsBrowsingHistoryService lawsBrowsingHistoryService;
|
||||||
|
@Resource
|
||||||
|
private ILawsStandardizationService lawsStandardizationService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private EnterpriseStandardInspectContentService esInspectContentService;
|
private EnterpriseStandardInspectContentService esInspectContentService;
|
||||||
@@ -2099,6 +2104,27 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
lawsEnterpriseStandardService.update(qbUpdateWrapper);
|
lawsEnterpriseStandardService.update(qbUpdateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/11/16 9:51
|
||||||
|
* @Description: 分标委下拉列表
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public List<LawsDictModel> getBiddingCommittee() {
|
||||||
|
LawsStandardization parent = lawsStandardizationService.getById("0");
|
||||||
|
LambdaQueryWrapper<LawsStandardization> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(LawsStandardization::getPid, parent.getId());
|
||||||
|
List<LawsStandardization> standardizationList = lawsStandardizationService.list(queryWrapper);
|
||||||
|
List<LawsDictModel> lawsDictModelList = new ArrayList<>();
|
||||||
|
standardizationList.forEach(standardization -> {
|
||||||
|
LawsDictModel lawsDictModel = new LawsDictModel();
|
||||||
|
lawsDictModel.setValue(standardization.getId());
|
||||||
|
lawsDictModel.setText(standardization.getName());
|
||||||
|
lawsDictModelList.add(lawsDictModel);
|
||||||
|
});
|
||||||
|
return lawsDictModelList;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建企标导入模板的Workbook
|
* 创建企标导入模板的Workbook
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.jero.modules.laws.common.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: liao
|
||||||
|
* @Date: 2023/11/16 9:46
|
||||||
|
* @Description: 字典模型
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class LawsDictModel {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典value
|
||||||
|
*/
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 字典文本
|
||||||
|
*/
|
||||||
|
private String text;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -29,11 +29,11 @@
|
|||||||
<bpmn:outgoing>Flow_1ezcutn</bpmn:outgoing>
|
<bpmn:outgoing>Flow_1ezcutn</bpmn:outgoing>
|
||||||
</bpmn:exclusiveGateway>
|
</bpmn:exclusiveGateway>
|
||||||
<bpmn:sequenceFlow id="Flow_0hpm8eq" sourceRef="depart_leader_start" targetRef="Gateway_0mogtm0" />
|
<bpmn:sequenceFlow id="Flow_0hpm8eq" sourceRef="depart_leader_start" targetRef="Gateway_0mogtm0" />
|
||||||
<bpmn:userTask id="design_engineer_2" name="填写征求意见,到期不填视为无意见">
|
<bpmn:userTask id="design_engineer_2" name="填写征求意见,到期不填视为无意见" activiti:assignee="${designEngineer}">
|
||||||
<bpmn:incoming>Flow_05oz1ja</bpmn:incoming>
|
<bpmn:incoming>Flow_05oz1ja</bpmn:incoming>
|
||||||
<bpmn:outgoing>Flow_09jjte7</bpmn:outgoing>
|
<bpmn:outgoing>Flow_09jjte7</bpmn:outgoing>
|
||||||
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
|
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
|
||||||
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
|
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
|
||||||
</bpmn:multiInstanceLoopCharacteristics>
|
</bpmn:multiInstanceLoopCharacteristics>
|
||||||
</bpmn:userTask>
|
</bpmn:userTask>
|
||||||
<bpmn:sequenceFlow id="Flow_05oz1ja" name="否" sourceRef="Gateway_0mogtm0" targetRef="design_engineer_2">
|
<bpmn:sequenceFlow id="Flow_05oz1ja" name="否" sourceRef="Gateway_0mogtm0" targetRef="design_engineer_2">
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
<bpmn:incoming>Flow_1ezcutn</bpmn:incoming>
|
<bpmn:incoming>Flow_1ezcutn</bpmn:incoming>
|
||||||
<bpmn:outgoing>Flow_0oc8671</bpmn:outgoing>
|
<bpmn:outgoing>Flow_0oc8671</bpmn:outgoing>
|
||||||
<bpmn:multiInstanceLoopCharacteristics activiti:collection="moduleOwnerList" activiti:elementVariable="moduleOwner">
|
<bpmn:multiInstanceLoopCharacteristics activiti:collection="moduleOwnerList" activiti:elementVariable="moduleOwner">
|
||||||
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
|
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
|
||||||
</bpmn:multiInstanceLoopCharacteristics>
|
</bpmn:multiInstanceLoopCharacteristics>
|
||||||
<bpmn:startEvent id="Event_15afvr9">
|
<bpmn:startEvent id="Event_15afvr9">
|
||||||
<bpmn:outgoing>Flow_13krhma</bpmn:outgoing>
|
<bpmn:outgoing>Flow_13krhma</bpmn:outgoing>
|
||||||
@@ -59,11 +59,11 @@
|
|||||||
<bpmn:outgoing>Flow_0e4x3wm</bpmn:outgoing>
|
<bpmn:outgoing>Flow_0e4x3wm</bpmn:outgoing>
|
||||||
</bpmn:userTask>
|
</bpmn:userTask>
|
||||||
<bpmn:sequenceFlow id="Flow_13krhma" sourceRef="Event_15afvr9" targetRef="module_owner_start" />
|
<bpmn:sequenceFlow id="Flow_13krhma" sourceRef="Event_15afvr9" targetRef="module_owner_start" />
|
||||||
<bpmn:userTask id="design_engineer_1" name="填写征求意见,到期不填视为无意见">
|
<bpmn:userTask id="design_engineer_1" name="填写征求意见,到期不填视为无意见" activiti:assignee="${designEngineer}">
|
||||||
<bpmn:incoming>Flow_0e4x3wm</bpmn:incoming>
|
<bpmn:incoming>Flow_0e4x3wm</bpmn:incoming>
|
||||||
<bpmn:outgoing>Flow_0vnqotz</bpmn:outgoing>
|
<bpmn:outgoing>Flow_0vnqotz</bpmn:outgoing>
|
||||||
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
|
<bpmn:multiInstanceLoopCharacteristics activiti:collection="designEngineerList" activiti:elementVariable="designEngineer">
|
||||||
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
|
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
|
||||||
</bpmn:multiInstanceLoopCharacteristics>
|
</bpmn:multiInstanceLoopCharacteristics>
|
||||||
</bpmn:userTask>
|
</bpmn:userTask>
|
||||||
<bpmn:sequenceFlow id="Flow_0e4x3wm" sourceRef="module_owner_start" targetRef="design_engineer_1" />
|
<bpmn:sequenceFlow id="Flow_0e4x3wm" sourceRef="module_owner_start" targetRef="design_engineer_1" />
|
||||||
@@ -102,11 +102,11 @@
|
|||||||
<bpmn:outgoing>Flow_0qai32h</bpmn:outgoing>
|
<bpmn:outgoing>Flow_0qai32h</bpmn:outgoing>
|
||||||
</bpmn:userTask>
|
</bpmn:userTask>
|
||||||
<bpmn:sequenceFlow id="Flow_0qai32h" sourceRef="depart_leader_end_2" targetRef="Event_0r7jsfk" />
|
<bpmn:sequenceFlow id="Flow_0qai32h" sourceRef="depart_leader_end_2" targetRef="Event_0r7jsfk" />
|
||||||
<bpmn:userTask id="module_owner_end_2" name="汇总全部分发人审批意见-修改/通过">
|
<bpmn:userTask id="module_owner_end_2" name="汇总全部分发人审批意见-修改/通过" activiti:assignee="${moduleOwner}">
|
||||||
<bpmn:incoming>Flow_0f48izh</bpmn:incoming>
|
<bpmn:incoming>Flow_0f48izh</bpmn:incoming>
|
||||||
<bpmn:outgoing>Flow_14aeapm</bpmn:outgoing>
|
<bpmn:outgoing>Flow_14aeapm</bpmn:outgoing>
|
||||||
<bpmn:multiInstanceLoopCharacteristics activiti:collection="moduleOwnerList" activiti:elementVariable="moduleOwner">
|
<bpmn:multiInstanceLoopCharacteristics activiti:collection="moduleOwnerList" activiti:elementVariable="moduleOwner">
|
||||||
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances== nrOfCompletedInstances}</bpmn:completionCondition>
|
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances == nrOfCompletedInstances}</bpmn:completionCondition>
|
||||||
</bpmn:multiInstanceLoopCharacteristics>
|
</bpmn:multiInstanceLoopCharacteristics>
|
||||||
</bpmn:userTask>
|
</bpmn:userTask>
|
||||||
<bpmn:sequenceFlow id="Flow_14aeapm" sourceRef="module_owner_end_2" targetRef="depart_leader_end_1" />
|
<bpmn:sequenceFlow id="Flow_14aeapm" sourceRef="module_owner_end_2" targetRef="depart_leader_end_1" />
|
||||||
@@ -196,13 +196,6 @@
|
|||||||
<dc:Bounds x="160" y="360" width="100" height="80" />
|
<dc:Bounds x="160" y="360" width="100" height="80" />
|
||||||
<bpmndi:BPMNLabel />
|
<bpmndi:BPMNLabel />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="BPMNShape_0k4hx5w" bpmnElement="depart_leader_end_3">
|
|
||||||
<dc:Bounds x="1780" y="430" width="100" height="80" />
|
|
||||||
<bpmndi:BPMNLabel />
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNShape id="Event_07yr7ob_di" bpmnElement="Event_07yr7ob">
|
|
||||||
<dc:Bounds x="1492" y="502" width="36" height="36" />
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNShape id="Activity_0mj9ddw_di" bpmnElement="Activity_0mj9ddw" isExpanded="true">
|
<bpmndi:BPMNShape id="Activity_0mj9ddw_di" bpmnElement="Activity_0mj9ddw" isExpanded="true">
|
||||||
<dc:Bounds x="320" y="40" width="1120" height="690" />
|
<dc:Bounds x="320" y="40" width="1120" height="690" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
@@ -223,16 +216,6 @@
|
|||||||
<dc:Bounds x="730" y="360" width="100" height="80" />
|
<dc:Bounds x="730" y="360" width="100" height="80" />
|
||||||
<bpmndi:BPMNLabel />
|
<bpmndi:BPMNLabel />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="Event_0r7jsfk_di" bpmnElement="Event_0r7jsfk">
|
|
||||||
<dc:Bounds x="1252" y="552" width="36" height="36" />
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNShape id="BPMNShape_18s4mik" bpmnElement="module_owner_end_2">
|
|
||||||
<dc:Bounds x="1090" y="340" width="100" height="80" />
|
|
||||||
<bpmndi:BPMNLabel />
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNShape id="Gateway_1xd2kp3_di" bpmnElement="Gateway_1xd2kp3" isMarkerVisible="true">
|
|
||||||
<dc:Bounds x="1245" y="435" width="50" height="50" />
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNShape id="Activity_0gcol5c_di" bpmnElement="depart_leader_end_1">
|
<bpmndi:BPMNShape id="Activity_0gcol5c_di" bpmnElement="depart_leader_end_1">
|
||||||
<dc:Bounds x="890" y="420" width="100" height="80" />
|
<dc:Bounds x="890" y="420" width="100" height="80" />
|
||||||
<bpmndi:BPMNLabel />
|
<bpmndi:BPMNLabel />
|
||||||
@@ -274,10 +257,20 @@
|
|||||||
<di:waypoint x="1220" y="210" />
|
<di:waypoint x="1220" y="210" />
|
||||||
<di:waypoint x="1282" y="210" />
|
<di:waypoint x="1282" y="210" />
|
||||||
</bpmndi:BPMNEdge>
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="Gateway_1xd2kp3_di" bpmnElement="Gateway_1xd2kp3" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="1245" y="435" width="50" height="50" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_0r7jsfk_di" bpmnElement="Event_0r7jsfk">
|
||||||
|
<dc:Bounds x="1252" y="552" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="BPMNShape_1qjvmbo" bpmnElement="depart_leader_end_2">
|
<bpmndi:BPMNShape id="BPMNShape_1qjvmbo" bpmnElement="depart_leader_end_2">
|
||||||
<dc:Bounds x="730" y="530" width="100" height="80" />
|
<dc:Bounds x="730" y="530" width="100" height="80" />
|
||||||
<bpmndi:BPMNLabel />
|
<bpmndi:BPMNLabel />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="BPMNShape_18s4mik" bpmnElement="module_owner_end_2">
|
||||||
|
<dc:Bounds x="1090" y="340" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNEdge id="Flow_1gv6jmb_di" bpmnElement="Flow_1gv6jmb">
|
<bpmndi:BPMNEdge id="Flow_1gv6jmb_di" bpmnElement="Flow_1gv6jmb">
|
||||||
<di:waypoint x="378" y="400" />
|
<di:waypoint x="378" y="400" />
|
||||||
<di:waypoint x="430" y="400" />
|
<di:waypoint x="430" y="400" />
|
||||||
@@ -344,6 +337,13 @@
|
|||||||
<bpmndi:BPMNShape id="Gateway_0pd0196_di" bpmnElement="Gateway_0pd0196" isMarkerVisible="true">
|
<bpmndi:BPMNShape id="Gateway_0pd0196_di" bpmnElement="Gateway_0pd0196" isMarkerVisible="true">
|
||||||
<dc:Bounds x="1585" y="495" width="50" height="50" />
|
<dc:Bounds x="1585" y="495" width="50" height="50" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_07yr7ob_di" bpmnElement="Event_07yr7ob">
|
||||||
|
<dc:Bounds x="1492" y="502" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="BPMNShape_0k4hx5w" bpmnElement="depart_leader_end_3">
|
||||||
|
<dc:Bounds x="1780" y="430" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="Activity_0qqp5sb_di" bpmnElement="Activity_0qqp5sb" isExpanded="true">
|
<bpmndi:BPMNShape id="Activity_0qqp5sb_di" bpmnElement="Activity_0qqp5sb" isExpanded="true">
|
||||||
<dc:Bounds x="1492" y="600" width="528" height="240" />
|
<dc:Bounds x="1492" y="600" width="528" height="240" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
@@ -354,16 +354,16 @@
|
|||||||
<dc:Bounds x="1590" y="680" width="100" height="80" />
|
<dc:Bounds x="1590" y="680" width="100" height="80" />
|
||||||
<bpmndi:BPMNLabel />
|
<bpmndi:BPMNLabel />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="BPMNShape_035drax" bpmnElement="depart_leader_end_4">
|
||||||
|
<dc:Bounds x="1730" y="680" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="Gateway_1pq4fen_di" bpmnElement="Gateway_1pq4fen" isMarkerVisible="true">
|
<bpmndi:BPMNShape id="Gateway_1pq4fen_di" bpmnElement="Gateway_1pq4fen" isMarkerVisible="true">
|
||||||
<dc:Bounds x="1865" y="695" width="50" height="50" />
|
<dc:Bounds x="1865" y="695" width="50" height="50" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="Event_07vxc54_di" bpmnElement="Event_07vxc54">
|
<bpmndi:BPMNShape id="Event_07vxc54_di" bpmnElement="Event_07vxc54">
|
||||||
<dc:Bounds x="1952" y="702" width="36" height="36" />
|
<dc:Bounds x="1952" y="702" width="36" height="36" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="BPMNShape_035drax" bpmnElement="depart_leader_end_4">
|
|
||||||
<dc:Bounds x="1730" y="680" width="100" height="80" />
|
|
||||||
<bpmndi:BPMNLabel />
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNEdge id="Flow_1bfoa9n_di" bpmnElement="Flow_1bfoa9n">
|
<bpmndi:BPMNEdge id="Flow_1bfoa9n_di" bpmnElement="Flow_1bfoa9n">
|
||||||
<di:waypoint x="1548" y="720" />
|
<di:waypoint x="1548" y="720" />
|
||||||
<di:waypoint x="1590" y="720" />
|
<di:waypoint x="1590" y="720" />
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
<?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="test_countersign" name="测试会签流程" isExecutable="true">
|
||||||
|
<bpmn:startEvent id="StartEvent_1">
|
||||||
|
<bpmn:outgoing>Flow_11ole3t</bpmn:outgoing>
|
||||||
|
</bpmn:startEvent>
|
||||||
|
<bpmn:userTask id="start_process" name="提出申请" activiti:assignee="${creator}">
|
||||||
|
<bpmn:incoming>Flow_11ole3t</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_14ls1wj</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
<bpmn:sequenceFlow id="Flow_11ole3t" sourceRef="StartEvent_1" targetRef="start_process" />
|
||||||
|
<bpmn:userTask id="countersign" name="多人会签" activiti:assignee="${leader}">
|
||||||
|
<bpmn:incoming>Flow_14ls1wj</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_1lnd67n</bpmn:outgoing>
|
||||||
|
<bpmn:multiInstanceLoopCharacteristics activiti:collection="leaderList" activiti:elementVariable="leader">
|
||||||
|
<bpmn:completionCondition xsi:type="bpmn:tFormalExpression">${nrOfInstances==nrOfCompletedInstances}</bpmn:completionCondition>
|
||||||
|
</bpmn:multiInstanceLoopCharacteristics>
|
||||||
|
</bpmn:userTask>
|
||||||
|
<bpmn:sequenceFlow id="Flow_14ls1wj" sourceRef="start_process" targetRef="countersign" />
|
||||||
|
<bpmn:userTask id="end_process" name="汇总" activiti:assignee="${creator}">
|
||||||
|
<bpmn:incoming>Flow_1lnd67n</bpmn:incoming>
|
||||||
|
<bpmn:outgoing>Flow_1sn8gxp</bpmn:outgoing>
|
||||||
|
</bpmn:userTask>
|
||||||
|
<bpmn:sequenceFlow id="Flow_1lnd67n" sourceRef="countersign" targetRef="end_process" />
|
||||||
|
<bpmn:endEvent id="Event_1tpa9t3">
|
||||||
|
<bpmn:incoming>Flow_1sn8gxp</bpmn:incoming>
|
||||||
|
</bpmn:endEvent>
|
||||||
|
<bpmn:sequenceFlow id="Flow_1sn8gxp" sourceRef="end_process" targetRef="Event_1tpa9t3" />
|
||||||
|
</bpmn:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test_countersign">
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||||
|
<dc:Bounds x="179" y="79" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_1mn9ou0_di" bpmnElement="start_process">
|
||||||
|
<dc:Bounds x="270" y="57" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_182083l_di" bpmnElement="countersign">
|
||||||
|
<dc:Bounds x="430" y="57" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Activity_0g2pw4w_di" bpmnElement="end_process">
|
||||||
|
<dc:Bounds x="590" y="57" width="100" height="80" />
|
||||||
|
<bpmndi:BPMNLabel />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_1tpa9t3_di" bpmnElement="Event_1tpa9t3">
|
||||||
|
<dc:Bounds x="752" y="79" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_11ole3t_di" bpmnElement="Flow_11ole3t">
|
||||||
|
<di:waypoint x="215" y="97" />
|
||||||
|
<di:waypoint x="270" y="97" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_14ls1wj_di" bpmnElement="Flow_14ls1wj">
|
||||||
|
<di:waypoint x="370" y="97" />
|
||||||
|
<di:waypoint x="430" y="97" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1lnd67n_di" bpmnElement="Flow_1lnd67n">
|
||||||
|
<di:waypoint x="530" y="97" />
|
||||||
|
<di:waypoint x="590" y="97" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1sn8gxp_di" bpmnElement="Flow_1sn8gxp">
|
||||||
|
<di:waypoint x="690" y="97" />
|
||||||
|
<di:waypoint x="752" y="97" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</definitions>
|
||||||
Reference in New Issue
Block a user