diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java new file mode 100644 index 00000000..0322b60f --- /dev/null +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java @@ -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 hiworkTodoAddList); +} diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java new file mode 100644 index 00000000..618edf15 --- /dev/null +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java @@ -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; +} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkTodoAdd.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkTodoAdd.java deleted file mode 100644 index 0c1c4a5e..00000000 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/entity/HiworkTodoAdd.java +++ /dev/null @@ -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; -} diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java index 3907db32..f1d144a7 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/IHiworkTodoService.java @@ -1,6 +1,7 @@ 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; diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java index 85c3f790..b3d6d886 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java @@ -1,41 +1,68 @@ package com.jero.modules.docking.hiwork.service.impl; -import com.jero.common.exception.JeroBootException; -import com.jero.modules.docking.hiwork.entity.HiworkTodoAdd; -import com.jero.modules.docking.hiwork.service.IHiworkTodoService; -import com.jero.modules.docking.hiwork.util.HiworkPostUtil; -import com.jero.modules.docking.hiwork.entity.HiworkTodo; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.api.PushWorkflowIntegrationAPI; +import com.jero.common.api.dto.message.HiworkTodoAdd; 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.service.ISysUserService; -import org.activiti.engine.RuntimeService; -import org.activiti.engine.TaskService; -import org.activiti.engine.runtime.ProcessInstance; -import org.activiti.engine.task.Task; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; +import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.time.Instant; import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Objects; /** * @Author: liao * @Date: 2023/10/13 14:23 * @Description: 待办 */ +@Slf4j @Service -public class HiworkTodoServiceImpl implements IHiworkTodoService { +public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { - @Autowired + @Resource private ISysUserService sysUserService; - @Autowired - private TaskService taskService; - @Autowired - private RuntimeService runtimeService; - @Autowired + @Resource + private ProcessApprovalRecordService processApprovalRecordService; + @Resource 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 @@ -44,75 +71,91 @@ public class HiworkTodoServiceImpl implements IHiworkTodoService { **/ @Override public void sendTodoTask(List hiworkTodoAddList) { + if(!isWorkflow){ + return; + } + if (CollectionUtils.isEmpty(hiworkTodoAddList)) { throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList"); } + try { + List hiworkTodoList = getHiworkTodos(hiworkTodoAddList); + log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList)); + // 远程调用 + hiworkPostUtil.postTodo(hiworkTodoList); + }catch (Exception e){ + log.error("统一待办推送异常",e); + } + } + @NotNull + private List getHiworkTodos(List hiworkTodoAddList) { List 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.setSysCode(HiworkPostUtil.getSysCode()); - // 标题 - hiworkTodo.setNoticeTitle(hiworkTodoAdd.getTitle()); + hiworkTodo.setSysCode(hiworkSysCode); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String date = new SimpleDateFormat("yyyy年MM月dd日").format(new Date()); + 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())) { - throw new JeroBootException(ResultCommon.EMPTY_COMMON, "taskId"); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + 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 - hiworkTodo.setProcessId(processInstance.getId()); - // 流程实例名称 - hiworkTodo.setProcessName(processInstance.getName()); - // 流程类型,字典 - hiworkTodo.setProcessType(hiworkTodoAdd.getProcessType()); - // 任务id - hiworkTodo.setTaskId(hiworkTodoAdd.getTaskId()); - // 节点名称 - hiworkTodo.setTaskName(task.getName()); - // 是否会签 - hiworkTodo.setMultiInstance(hiworkTodoAdd.getIsCounterSignature()); - // 节点编号 - hiworkTodo.setNodeBusiCode(hiworkTodoAdd.getNodeNumber()); - // 跳转链接 - hiworkTodo.setBusinessLink(hiworkTodoAdd.getJumpLink()); - // APP跳转链接 - hiworkTodo.setAppBusinessLink(hiworkTodoAdd.getAppJumpLink()); - - if (StringUtils.isBlank(hiworkTodoAdd.getCreatorId())) { - throw new JeroBootException(ResultCommon.EMPTY_COMMON, "creatorId"); + LambdaQueryWrapper queryProcessAll = new LambdaQueryWrapper<>(); + queryProcessAll.eq(ProcessAll::getProcessInstanceId,processApprovalRecord.getProcessInstanceId()); + ProcessAll processAll = processAllService.getOne(queryProcessAll); + if(!Objects.isNull(processAll)){ + SysUser sysUser = sysUserService.getById(processAll.getCreateUserId()); + if(!Objects.isNull(sysUser)){ + hiworkTodo.setCreateUserCode(sysUser.getUsername()); + hiworkTodo.setCreateUserName(sysUser.getRealname()); + } + hiworkTodo.setDueTime(processAll.getDueTime().getTime()); + hiworkTodo.setBid(processAll.getProjectId()); + String url = hiworkFontUrl.replace("{projectId}",processAll.getProjectId()) + .replace("{taskName}",processApprovalRecord.getTaskName()) + .replace("{taskId}",processApprovalRecord.getTaskId()) + .replace("{processInstanceId}",processApprovalRecord.getProcessInstanceId()) + .replace("{nodeId}",processApprovalRecord.getNodeId()); + // 跳转链接 + hiworkTodo.setBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())))); + // APP跳转链接 + hiworkTodo.setAppBusinessLink(url.replace("{url}", Objects.requireNonNull(ProcessTypeEnum.getFontReturnUrlPc(processAll.getPrcType())))); } - SysUser creatorUser = sysUserService.getById(hiworkTodoAdd.getCreatorId()); - // 创建人code - hiworkTodo.setCreateUserCode(creatorUser.getUsername()); - // 创建人姓名 - hiworkTodo.setCreateUserName(creatorUser.getRealname()); - - if (StringUtils.isBlank(hiworkTodoAdd.getRecipientId())) { - throw new JeroBootException(ResultCommon.EMPTY_COMMON, "recipientId"); + SysUser sysUser = sysUserService.getById(processApprovalRecord.getUserId()); + if(!Objects.isNull(sysUser)){ + hiworkTodo.setUserId(processApprovalRecord.getUserId()); + hiworkTodo.setUserCode(sysUser.getUsername()); + hiworkTodo.setUserName(sysUser.getRealname()); } - SysUser recipientUser = sysUserService.getById(hiworkTodoAdd.getRecipientId()); - // 接收人id - 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()); - + hiworkTodo.setReceiveTime(Instant.now()); + hiworkTodo.setIsTodo(String.valueOf(processApprovalRecord.getFinishFlag())); hiworkTodoList.add(hiworkTodo); - }); - - // 远程调用 - hiworkPostUtil.postTodo(hiworkTodoList); + } + return hiworkTodoList; } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/PushWorkflowIntegration.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/PushWorkflowIntegration.java new file mode 100644 index 00000000..526b2c1a --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/PushWorkflowIntegration.java @@ -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; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java index 588aba67..f3cbd663 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java @@ -12,33 +12,41 @@ import lombok.Getter; public enum ProcessTypeEnum { - FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbEntryChangeServiceImpl"), - FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl"), - PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService"), - PROJECT_NOT_MET("未符合项跟踪流程",4, "com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService"), - PROJECT_STANDARD("法规合规评估流程",5, "com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardService"), - 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"), - ES_REVISION("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esRevision.service.impl.EsRevisionServiceImpl"), - ES_CHANGE("企标更改流程",11, "com.jero.modules.activiti.process.esChange.service.impl.ProcessEsChangeServiceImpl"), - ES_RECHECK("企标复审流程",12, "com.jero.modules.activiti.process.esRecheck.service.impl.ProcessEsRecheckServiceImpl"), - ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl"), - ES_ARCHIVE("企标封存流程",14, "com.jero.modules.activiti.process.esArchive.service.impl.ProcessEsArchiveServiceImpl"), - ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl"), - ES_INSPECT_PLAN("企标稽查计划", 16, "com.jero.modules.activiti.process.esinspectplan.service.impl.EsInspectPlanFlow"), - ES_INSPECT("企标稽查流程", 17, "com.jero.modules.activiti.process.esinspect.service.impl.EsInspectFlow"), - ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlow"), - ES_INSPECT_REPORT("企标稽查整改", 19, "com.jero.modules.activiti.process.esinspectrectify.service.impl.EsInspectRectifyFlow"), - PERMISSION_APPLY_PROCESS("权限申请流程", 20, "com.jero.modules.activiti.process.espermissionapply.service.impl.EsPermissionApplyFlow"), - STANDARD_DECLARE("标准宣贯流程", 21, "com.jero.modules.activiti.process.esdeclare.service.impl.EsDeclareFlow"), - MEETING_MANAGE("会后管理流程", 22, "com.jero.modules.activiti.process.meetingmanage.service.impl.MeetingManageFlow") + 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","/workCenter/StandardConsultationProcess","/workCenter/StandardConsultationProcess"), + 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","/workCenter/NoMatchTrackingProcess","/workCenter/NoMatchTrackingProcess"), + 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","/workCenter/StandardProcurementProcess","/workCenter/StandardProcurementProcess"), + 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","/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow","/workCenter/annualRevisionPlanActivelyReport"), + 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","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), + 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","/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow","/workCenter/enterpriseStandardRecheck"), + 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","/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow","/workCenter/enterpriseStandardSealSave"), + 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","/workCenter/EnterpriseStandardInspectionPlan","/workCenter/EnterpriseStandardInspectionPlan"), + 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","/workCenter/InspectionExtensionRequestProcess","/workCenter/InspectionExtensionRequestProcess"), + 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","/workCenter/PermissionApplicationProcess","/workCenter/PermissionApplicationProcess"), + 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","/workCenter/PostMeetingManageProcess","") ; private String name; private Integer value; private String implClass; + /** + * PC端跳转链接 (统一待办集成使用) + */ + private String fontReturnUrlPc; + /** + * APP端跳转链接(统一待办集成使用) + */ + private String fontReturnUrlApp; public static String getNameByValue(Integer value) { for (ProcessTypeEnum enumObject : values()) { @@ -69,4 +77,21 @@ public enum ProcessTypeEnum { } 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; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index e77f7a11..5689de3d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -6,6 +6,8 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.system.vo.LoginUser; 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.util.SpringContextUtil; import com.jero.modules.laws.common.util.CurrentUserUtil; -import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.delegate.event.ActivitiEvent; 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.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -149,7 +151,15 @@ public class MyGlobalEventListener implements ActivitiEventListener { approvalRecord.setCreateTime(createTime); approvalRecord.setNodeId(taskDefinitionKey); recordService.save(approvalRecord); - // todo 对接统一平台生成待办任务 + + // 对接统一平台生成待办任务 + PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class); + List 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) { @@ -225,7 +235,14 @@ public class MyGlobalEventListener implements ActivitiEventListener { } recordService.updateById(approvalRecord); - // todo 对接统一平台生成完成任务 + // 对接统一平台生成完成任务 + PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class); + List 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) { diff --git a/laws-single-startup/src/main/resources/application-dev.yml b/laws-single-startup/src/main/resources/application-dev.yml index e7d452a5..c88aed33 100644 --- a/laws-single-startup/src/main/resources/application-dev.yml +++ b/laws-single-startup/src/main/resources/application-dev.yml @@ -405,6 +405,10 @@ hiwork: messageUrl: taskapi/task.basedata/notice/noticeCalls/send # 是否发送消息 isSend: false + # 是否推送统一待办 + isWorkflow: false + # 前端调用地址 + fontUrl: http://localhost:3334/{url}?projectId={projectId}&taskName={taskName}&taskId={taskId}&processInstanceId={processInstanceId}&nodeId={nodeId} # 汽车标准数字化平台ASMS asms: