统一待办集成

This commit is contained in:
梁琦涛
2024-02-02 14:50:16 +08:00
parent 75c220e2c9
commit 2bf17b67b5
9 changed files with 360 additions and 145 deletions
@@ -0,0 +1,21 @@
package com.jero.common.api;
import com.jero.common.api.dto.message.HiworkTodoAdd;
import java.util.List;
/**
* @Author: liao
* @Date: 2023/10/27 15:15
* @Description: 发送消息
*/
public interface PushWorkflowIntegrationAPI {
/**
* @Author: liao
* @Date: 2023/10/13 15:12
* @Description: 统一待办集成
**/
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
}
@@ -0,0 +1,24 @@
package com.jero.common.api.dto.message;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Author: liao
* @Date: 2023/10/13 14:22
* @Description: 待办
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="统一待办集成", description="统一待办集成")
public class HiworkTodoAdd {
@ApiModelProperty(value = "审批记录表id")
private String recordId;
@ApiModelProperty(value = "流程定义id")
private String processDefinitionId;
}
@@ -1,43 +0,0 @@
package com.jero.modules.docking.hiwork.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Author: liao
* @Date: 2023/10/16 17:23
* @Description: 统一待办集成-添加
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="统一待办集成-添加", description="统一待办集成-添加")
public class HiworkTodoAdd {
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty(value = "流程类型,字典")
private String processType;
@ApiModelProperty(value = "是否会签")
private Integer isCounterSignature;
@ApiModelProperty(value = "节点编号")
private String nodeNumber;
@ApiModelProperty(value = "跳转链接")
private String jumpLink;
@ApiModelProperty(value = "APP跳转链接")
private String appJumpLink;
@ApiModelProperty(value = "创建人id")
private String creatorId;
@ApiModelProperty(value = "接收人id")
private String recipientId;
@ApiModelProperty(value = "截止时间")
private Long endTime;
@ApiModelProperty(value = "业务主键")
private String businessId;
@ApiModelProperty(value = "待办、已办(1、待办 2已办 3结束 6 删除)")
private String isTodo;
}
@@ -1,6 +1,7 @@
package com.jero.modules.docking.hiwork.service; package com.jero.modules.docking.hiwork.service;
import com.jero.modules.docking.hiwork.entity.HiworkTodoAdd;
import com.jero.common.api.dto.message.HiworkTodoAdd;
import java.util.List; import java.util.List;
@@ -1,41 +1,68 @@
package com.jero.modules.docking.hiwork.service.impl; package com.jero.modules.docking.hiwork.service.impl;
import com.jero.common.exception.JeroBootException; import com.alibaba.fastjson.JSON;
import com.jero.modules.docking.hiwork.entity.HiworkTodoAdd; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.modules.docking.hiwork.service.IHiworkTodoService; import com.jero.common.api.PushWorkflowIntegrationAPI;
import com.jero.modules.docking.hiwork.util.HiworkPostUtil; import com.jero.common.api.dto.message.HiworkTodoAdd;
import com.jero.modules.docking.hiwork.entity.HiworkTodo;
import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.entity.ProcessNode;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.docking.hiwork.entity.HiworkTodo;
import com.jero.modules.docking.hiwork.util.HiworkPostUtil;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import org.activiti.engine.RuntimeService; import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* @Author: liao * @Author: liao
* @Date: 2023/10/13 14:23 * @Date: 2023/10/13 14:23
* @Description: 待办 * @Description: 待办
*/ */
@Slf4j
@Service @Service
public class HiworkTodoServiceImpl implements IHiworkTodoService { public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
@Autowired @Resource
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Autowired @Resource
private TaskService taskService; private ProcessApprovalRecordService processApprovalRecordService;
@Autowired @Resource
private RuntimeService runtimeService;
@Autowired
private HiworkPostUtil hiworkPostUtil; private HiworkPostUtil hiworkPostUtil;
@Resource
private ProcessNodeService processNodeService;
@Resource
private ProcessAllService processAllService;
@Value("${hiwork.isWorkflow}")
private boolean isWorkflow;
@Value("${hiwork.sysCode}")
private String hiworkSysCode;
@Value("${hiwork.fontUrl}")
private String hiworkFontUrl;
private static final String PROCESS_TYPE = "标准法规SRMS";
/** /**
* @Author: liao * @Author: liao
@@ -44,75 +71,91 @@ public class HiworkTodoServiceImpl implements IHiworkTodoService {
**/ **/
@Override @Override
public void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList) { public void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList) {
if(!isWorkflow){
return;
}
if (CollectionUtils.isEmpty(hiworkTodoAddList)) { if (CollectionUtils.isEmpty(hiworkTodoAddList)) {
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList"); throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList");
} }
try {
List<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList);
log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList));
// 远程调用
hiworkPostUtil.postTodo(hiworkTodoList);
}catch (Exception e){
log.error("统一待办推送异常",e);
}
}
@NotNull
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
List<HiworkTodo> hiworkTodoList = new ArrayList<>(); List<HiworkTodo> hiworkTodoList = new ArrayList<>();
hiworkTodoAddList.forEach(hiworkTodoAdd -> { for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
String recordId = hiworkTodoAdd.getRecordId();
String processDefinitionId = hiworkTodoAdd.getProcessDefinitionId();
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getById(recordId);
if(Objects.isNull(processApprovalRecord)){
continue;
}
HiworkTodo hiworkTodo = new HiworkTodo(); HiworkTodo hiworkTodo = new HiworkTodo();
// 异步系统标识 hiworkTodo.setSysCode(hiworkSysCode);
hiworkTodo.setSysCode(HiworkPostUtil.getSysCode()); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 标题 String date = new SimpleDateFormat("yyyy年MM月dd日").format(new Date());
hiworkTodo.setNoticeTitle(hiworkTodoAdd.getTitle()); String noticeTitle = processApprovalRecord.getTaskName() + "(" + loginUser.getUsername() + date + ")";
hiworkTodo.setNoticeTitle(noticeTitle);
hiworkTodo.setProcessId(processApprovalRecord.getProcessInstanceId());
hiworkTodo.setProcessName(processApprovalRecord.getTaskName());
hiworkTodo.setProcessType(PROCESS_TYPE);
hiworkTodo.setTaskId(processApprovalRecord.getTaskId());
hiworkTodo.setTaskName(processApprovalRecord.getTaskName());
if (StringUtils.isBlank(hiworkTodoAdd.getTaskId())) { LambdaQueryWrapper<ProcessNode> wrapper = new LambdaQueryWrapper<>();
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "taskId"); wrapper.eq(ProcessNode::getProcessDefinitionId,processDefinitionId);
wrapper.eq(ProcessNode::getNodeName,processApprovalRecord.getTaskName());
wrapper.eq(ProcessNode::getIsView, YesOrNoEnum.YES.getValue());
ProcessNode processNode = processNodeService.getOne(wrapper,false);
if(!Objects.isNull(processNode)){
if(processNode.getNodeName().contains("会签")){
hiworkTodo.setMultiInstance(1);
}
hiworkTodo.setNodeBusiCode(processNode.getXmlNodeId());
// 是否显示(0否,1是)
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
} }
Task task = taskService.createTaskQuery().taskId(hiworkTodoAdd.getTaskId()).singleResult();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(task.getProcessInstanceId()).singleResult();
// 流程实例id LambdaQueryWrapper<ProcessAll> queryProcessAll = new LambdaQueryWrapper<>();
hiworkTodo.setProcessId(processInstance.getId()); queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId());
// 流程实例名称 ProcessAll processAll = processAllService.getOne(queryProcessAll);
hiworkTodo.setProcessName(processInstance.getName()); if(!Objects.isNull(processAll)){
// 流程类型,字典 SysUser sysUser = sysUserService.getById(processAll.getCreateUserId());
hiworkTodo.setProcessType(hiworkTodoAdd.getProcessType()); if(!Objects.isNull(sysUser)){
// 任务id hiworkTodo.setCreateUserCode(sysUser.getUsername());
hiworkTodo.setTaskId(hiworkTodoAdd.getTaskId()); hiworkTodo.setCreateUserName(sysUser.getRealname());
// 节点名称 }
hiworkTodo.setTaskName(task.getName()); hiworkTodo.setDueTime(processAll.getDueTime().getTime());
// 是否会签 hiworkTodo.setBid(processAll.getProjectId());
hiworkTodo.setMultiInstance(hiworkTodoAdd.getIsCounterSignature()); String url = hiworkFontUrl.replace("{projectId}",processAll.getProjectId())
// 节点编号 .replace("{taskName}",processApprovalRecord.getTaskName())
hiworkTodo.setNodeBusiCode(hiworkTodoAdd.getNodeNumber()); .replace("{taskId}",processApprovalRecord.getTaskId())
// 跳转链接 .replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId())
hiworkTodo.setBusinessLink(hiworkTodoAdd.getJumpLink()); .replace("{nodeId}",processApprovalRecord.getNodeId());
// APP跳转链接 // 跳转链接
hiworkTodo.setAppBusinessLink(hiworkTodoAdd.getAppJumpLink()); hiworkTodo.setBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType()))));
// APP跳转链接
if (StringUtils.isBlank(hiworkTodoAdd.getCreatorId())) { hiworkTodo.setAppBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType()))));
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "creatorId");
} }
SysUser creatorUser = sysUserService.getById(hiworkTodoAdd.getCreatorId()); SysUser sysUser = sysUserService.getById(processApprovalRecord.getUserId());
// 创建人code if(!Objects.isNull(sysUser)){
hiworkTodo.setCreateUserCode(creatorUser.getUsername()); hiworkTodo.setUserId(processApprovalRecord.getUserId());
// 创建人姓名 hiworkTodo.setUserCode(sysUser.getUsername());
hiworkTodo.setCreateUserName(creatorUser.getRealname()); hiworkTodo.setUserName(sysUser.getRealname());
if (StringUtils.isBlank(hiworkTodoAdd.getRecipientId())) {
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "recipientId");
} }
SysUser recipientUser = sysUserService.getById(hiworkTodoAdd.getRecipientId()); hiworkTodo.setReceiveTime(Instant.now());
// 接收人id hiworkTodo.setIsTodo(String.valueOf(processApprovalRecord.getFinishFlag()));
hiworkTodo.setUserId(recipientUser.getId());
// 接收人code
hiworkTodo.setUserCode(recipientUser.getUsername());
// 接收人姓名
hiworkTodo.setUserName(recipientUser.getRealname());
// 截止时间
hiworkTodo.setDueTime(hiworkTodoAdd.getEndTime());
// 业务主键
hiworkTodo.setBid(hiworkTodoAdd.getBusinessId());
// 待办、已办
hiworkTodo.setIsTodo(hiworkTodoAdd.getIsTodo());
hiworkTodoList.add(hiworkTodo); hiworkTodoList.add(hiworkTodo);
}); }
return hiworkTodoList;
// 远程调用
hiworkPostUtil.postTodo(hiworkTodoList);
} }
} }
@@ -0,0 +1,123 @@
package com.jero.modules.activiti.entity;
import lombok.Data;
import java.io.Serializable;
import java.time.Instant;
/**
* @author lqt
* @version 1.0
* @date 2024/2/1 14:47
*/
@Data
public class PushWorkflowIntegration implements Serializable {
/**
* 异构系统标识 固定 SRMS
*/
private String sysCode;
/**
* 标题 流程名称(姓名+时间)
*/
private String noticeTitle;
/**
* 描述
*/
private String noticeDescription;
/**
* 流程编号
*/
private String busiDefCode;
/**
* 流程实例id
*/
private String processId;
/**
* 流程实例名称
*/
private String processName;
/**
* 流程类型,字典 标准法规SRMS
*/
private String processType;
/**
* 任务id
*/
private String taskId;
/**
* 节点名称
*/
private String taskName;
/**
* 是否会签
*/
private Integer multiInstance;
/**
* 节点编号
*/
private String nodeBusiCode;
/**
* 跳转链接
*/
private String businessLink;
/**
* APP跳转链接
*/
private String appBusinessLink;
/**
* 创建人code
*/
private String createUserCode;
/**
* 创建人姓名
*/
private String createUserName;
/**
* 接收人id
*/
private String userId;
/**
* 接收人code 多人待办LIST 方式传输
*/
private String userCode;
/**
* 接收人姓名
*/
private String userName;
/**
* 参与者id
*/
private String participantId;
/**
* 参与者编号
*/
private String participantCode;
/**
* 接收时间
*/
private Instant receiveTime;
/**
* 截止时间
*/
private Long dueTime;
/**
* 业务主键
*/
private String bid;
/**
* 待办、已办 1、待办 2已办 3结束 6 删除 暂停的时候传 3-结束
*/
private String isTodo;
/**
* 是否展示在列表中 钉钉时需要必传
*/
private String isShow;
/**
* 优先级 钉钉时需要必传 非必填 不做处理
*/
private String priority;
/**
* 是否通知消息
*/
private String notifyConfig;
}
@@ -12,33 +12,41 @@ import lombok.Getter;
public enum ProcessTypeEnum { public enum ProcessTypeEnum {
FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbEntryChangeServiceImpl"), FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbEntryChangeServiceImpl","/workCenter/StandardEntryOrChangeProcess","/workCenter/StandardEntryOrChangeProcess"),
FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl"), FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl","/workCenter/StandardConsultationProcess","/workCenter/StandardConsultationProcess"),
PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService"), PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService","/workCenter/ProjectComplianceEvaluationProcess","/workCenter/ProjectComplianceEvaluationProcess"),
PROJECT_NOT_MET("未符合项跟踪流程",4, "com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService"), PROJECT_NOT_MET("未符合项跟踪流程",4, "com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService","/workCenter/NoMatchTrackingProcess","/workCenter/NoMatchTrackingProcess"),
PROJECT_STANDARD("法规合规评估流程",5, "com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardService"), PROJECT_STANDARD("法规合规评估流程",5, "com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardService","/workCenter/StandardComplianceProcess","/workCenter/StandardComplianceProcess"),
FB_STANDARD_PURCHASE("法规采购流程",6, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardPurchaseServiceImpl"), FB_STANDARD_PURCHASE("法规采购流程",6, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardPurchaseServiceImpl","/workCenter/StandardProcurementProcess","/workCenter/StandardProcurementProcess"),
ES_INIT_CHANGE("企标立项/变更计划",7, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"), ES_INIT_CHANGE("企标立项/变更计划",7, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl","/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow","/workCenter/enterpriseStandardInitChange"),
ES_ANNUAL_REPORT("年度制修订计划审批流程(各部门主动上报)",8, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"), ES_ANNUAL_REPORT("年度制修订计划审批流程(各部门主动上报)",8, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl","/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow","/workCenter/annualRevisionPlanActivelyReport"),
ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl"), ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl","/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow","/workCenter/annualRevisionPlanStandardizationInit"),
ES_REVISION("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esRevision.service.impl.EsRevisionServiceImpl"), ES_REVISION("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esRevision.service.impl.EsRevisionServiceImpl","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
ES_CHANGE("企标更改流程",11, "com.jero.modules.activiti.process.esChange.service.impl.ProcessEsChangeServiceImpl"), ES_CHANGE("企标更改流程",11, "com.jero.modules.activiti.process.esChange.service.impl.ProcessEsChangeServiceImpl","/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow","/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow"),
ES_RECHECK("企标复审流程",12, "com.jero.modules.activiti.process.esRecheck.service.impl.ProcessEsRecheckServiceImpl"), ES_RECHECK("企标复审流程",12, "com.jero.modules.activiti.process.esRecheck.service.impl.ProcessEsRecheckServiceImpl","/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow","/workCenter/enterpriseStandardRecheck"),
ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"), ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl","/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow","/workCenter/enterpriseStandardAnnul"),
ES_ARCHIVE("企标封存流程",14, "com.jero.modules.activiti.process.esArchive.service.impl.ProcessEsArchiveServiceImpl"), ES_ARCHIVE("企标封存流程",14, "com.jero.modules.activiti.process.esArchive.service.impl.ProcessEsArchiveServiceImpl","/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow","/workCenter/enterpriseStandardSealSave"),
ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl"), ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl","/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow","/workCenter/enterpriseStandardStartUse"),
ES_INSPECT_PLAN("企标稽查计划", 16, "com.jero.modules.activiti.process.esinspectplan.service.impl.EsInspectPlanFlow"), ES_INSPECT_PLAN("企标稽查计划", 16, "com.jero.modules.activiti.process.esinspectplan.service.impl.EsInspectPlanFlow","/workCenter/EnterpriseStandardInspectionPlan","/workCenter/EnterpriseStandardInspectionPlan"),
ES_INSPECT("企标稽查流程", 17, "com.jero.modules.activiti.process.esinspect.service.impl.EsInspectFlow"), ES_INSPECT("企标稽查流程", 17, "com.jero.modules.activiti.process.esinspect.service.impl.EsInspectFlow","/workCenter/EnterpriseStandardInspectionProcess","/workCenter/EnterpriseStandardInspectionProcess"),
ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlow"), ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlow","/workCenter/InspectionExtensionRequestProcess","/workCenter/InspectionExtensionRequestProcess"),
ES_INSPECT_REPORT("企标稽查整改", 19, "com.jero.modules.activiti.process.esinspectrectify.service.impl.EsInspectRectifyFlow"), ES_INSPECT_REPORT("企标稽查整改", 19, "com.jero.modules.activiti.process.esinspectrectify.service.impl.EsInspectRectifyFlow","/workCenter/EnterpriseStandardInspectionRectification","/workCenter/EnterpriseStandardInspectionRectification"),
PERMISSION_APPLY_PROCESS("权限申请流程", 20, "com.jero.modules.activiti.process.espermissionapply.service.impl.EsPermissionApplyFlow"), PERMISSION_APPLY_PROCESS("权限申请流程", 20, "com.jero.modules.activiti.process.espermissionapply.service.impl.EsPermissionApplyFlow","/workCenter/PermissionApplicationProcess","/workCenter/PermissionApplicationProcess"),
STANDARD_DECLARE("标准宣贯流程", 21, "com.jero.modules.activiti.process.esdeclare.service.impl.EsDeclareFlow"), STANDARD_DECLARE("标准宣贯流程", 21, "com.jero.modules.activiti.process.esdeclare.service.impl.EsDeclareFlow","/workCenter/StandardPromotionProcess",""),
MEETING_MANAGE("会后管理流程", 22, "com.jero.modules.activiti.process.meetingmanage.service.impl.MeetingManageFlow") MEETING_MANAGE("会后管理流程", 22, "com.jero.modules.activiti.process.meetingmanage.service.impl.MeetingManageFlow","/workCenter/PostMeetingManageProcess","")
; ;
private String name; private String name;
private Integer value; private Integer value;
private String implClass; private String implClass;
/**
* PC端跳转链接 (统一待办集成使用)
*/
private String fontReturnUrlPc;
/**
* APP端跳转链接(统一待办集成使用)
*/
private String fontReturnUrlApp;
public static String getNameByValue(Integer value) { public static String getNameByValue(Integer value) {
for (ProcessTypeEnum enumObject : values()) { for (ProcessTypeEnum enumObject : values()) {
@@ -69,4 +77,21 @@ public enum ProcessTypeEnum {
} }
return null; return null;
} }
public static String getFontReturnUrlPc(Integer value) {
for (ProcessTypeEnum enumObject : values()) {
if (enumObject.getValue().equals(value)) {
return enumObject.getFontReturnUrlPc();
}
}
return null;
}
public static String getFontReturnUrlApp(Integer value) {
for (ProcessTypeEnum enumObject : values()) {
if (enumObject.getValue().equals(value)) {
return enumObject.getFontReturnUrlApp();
}
}
return null;
}
} }
@@ -6,6 +6,8 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.PushWorkflowIntegrationAPI;
import com.jero.common.api.dto.message.HiworkTodoAdd;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessAll;
@@ -20,7 +22,6 @@ import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeService; import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.activiti.util.SpringContextUtil;
import com.jero.modules.laws.common.util.CurrentUserUtil; import com.jero.modules.laws.common.util.CurrentUserUtil;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.event.ActivitiEvent; import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener; import org.activiti.engine.delegate.event.ActivitiEventListener;
@@ -30,6 +31,7 @@ import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl;
import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.activiti.engine.impl.persistence.entity.TaskEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -149,7 +151,15 @@ public class MyGlobalEventListener implements ActivitiEventListener {
approvalRecord.setCreateTime(createTime); approvalRecord.setCreateTime(createTime);
approvalRecord.setNodeId(taskDefinitionKey); approvalRecord.setNodeId(taskDefinitionKey);
recordService.save(approvalRecord); recordService.save(approvalRecord);
// todo 对接统一平台生成待办任务
// 对接统一平台生成待办任务
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<HiworkTodoAdd> list = new ArrayList<>();
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
hiworkTodoAdd.setRecordId(approvalRecord.getId());
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
list.add(hiworkTodoAdd);
pushWorkflowIntegrationAPI.sendTodoTask(list);
} }
private void taskAssigned(ActivitiEvent event) { private void taskAssigned(ActivitiEvent event) {
@@ -225,7 +235,14 @@ public class MyGlobalEventListener implements ActivitiEventListener {
} }
recordService.updateById(approvalRecord); recordService.updateById(approvalRecord);
// todo 对接统一平台生成完成任务 // 对接统一平台生成完成任务
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<HiworkTodoAdd> list = new ArrayList<>();
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
hiworkTodoAdd.setRecordId(approvalRecord.getId());
hiworkTodoAdd.setProcessDefinitionId(approvalRecord.getProcessInstanceId());
list.add(hiworkTodoAdd);
pushWorkflowIntegrationAPI.sendTodoTask(list);
} }
private void activityComplete(ActivitiEvent event) { private void activityComplete(ActivitiEvent event) {
@@ -405,6 +405,10 @@ hiwork:
messageUrl: taskapi/task.basedata/notice/noticeCalls/send messageUrl: taskapi/task.basedata/notice/noticeCalls/send
# 是否发送消息 # 是否发送消息
isSend: false isSend: false
# 是否推送统一待办
isWorkflow: false
# 前端调用地址
fontUrl: http://localhost:3334/{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId}
# 汽车标准数字化平台ASMS # 汽车标准数字化平台ASMS
asms: asms: