From bd64802cdb6af139414dd4d9284b4c7f12368cbd Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 28 Aug 2024 16:25:30 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=8A=A8=E4=BD=9C=E6=8F=90=E7=A4=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1233334296870912]后端-工单动作提示优化 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1233334296870912 --- .../processtask/ProcessTaskStepListApi.java | 2 +- .../handler/RestfulActionAuditHandler.java | 4 +- .../processtask/ProcessTaskActionMapper.java | 29 +++++++ .../processtask/ProcessTaskActionMapper.xml | 62 +++++++++++++++ .../process/service/ProcessTaskService.java | 7 ++ .../service/ProcessTaskServiceImpl.java | 39 +++++++++- .../thread/ProcessTaskActionThread.java | 78 +++++++++++-------- 7 files changed, 183 insertions(+), 38 deletions(-) create mode 100644 src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.java create mode 100644 src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.xml diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepListApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepListApi.java index d73f97927..0377d4b34 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepListApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepListApi.java @@ -177,7 +177,7 @@ public class ProcessTaskStepListApi extends PrivateApiComponentBase { typeList.add(ProcessTaskOperationType.STEP_TRANSFER.getValue()); processTaskStepVo.setCommentList( processTaskService.getProcessTaskStepReplyListByProcessTaskStepId(processTaskStepVo.getId(), typeList)); - + processTaskStepVo.setActionList(processTaskService.getProcessTaskActionListByProcessTaskStepId(processTaskStepVo.getId())); //任务列表 processTaskStepTaskService.getProcessTaskStepTask(processTaskStepVo); List taskConfigList = processTaskStepTaskService.getTaskConfigList(processTaskStepVo); diff --git a/src/main/java/neatlogic/module/process/audithandler/handler/RestfulActionAuditHandler.java b/src/main/java/neatlogic/module/process/audithandler/handler/RestfulActionAuditHandler.java index d5b0105f4..6d080e06e 100755 --- a/src/main/java/neatlogic/module/process/audithandler/handler/RestfulActionAuditHandler.java +++ b/src/main/java/neatlogic/module/process/audithandler/handler/RestfulActionAuditHandler.java @@ -10,7 +10,7 @@ import com.alibaba.fastjson.JSON; import neatlogic.framework.integration.dao.mapper.IntegrationMapper; import neatlogic.framework.integration.dto.IntegrationVo; import neatlogic.framework.process.constvalue.ProcessTaskAuditDetailType; -import neatlogic.framework.process.dto.ActionVo; +import neatlogic.framework.process.dto.ProcessTaskActionVo; import neatlogic.framework.process.dto.ProcessTaskStepAuditDetailVo; import neatlogic.framework.process.notify.constvalue.ProcessTaskStepNotifyTriggerType; @@ -28,7 +28,7 @@ public class RestfulActionAuditHandler implements IProcessTaskStepAuditDetailHan @Override public int handle(ProcessTaskStepAuditDetailVo processTaskStepAuditDetailVo) { if(StringUtils.isNotBlank(processTaskStepAuditDetailVo.getNewContent())) { - ActionVo actionVo = JSON.parseObject(processTaskStepAuditDetailVo.getNewContent(), ActionVo.class); + ProcessTaskActionVo actionVo = JSON.parseObject(processTaskStepAuditDetailVo.getNewContent(), ProcessTaskActionVo.class); IntegrationVo integrationVo = integrationMapper.getIntegrationByUuid(actionVo.getIntegrationUuid()); if(integrationVo != null) { actionVo.setIntegrationName(integrationVo.getName()); diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.java new file mode 100644 index 000000000..fce452434 --- /dev/null +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2024 深圳极向量科技有限公司 All Rights Reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package neatlogic.module.process.dao.mapper.processtask; + +import neatlogic.framework.process.dto.ProcessTaskActionVo; + +import java.util.List; + +public interface ProcessTaskActionMapper { + + List getProcessTaskActionListByProcessTaskStepId(Long processTaskStepId); + + int insertProcessTaskAction(ProcessTaskActionVo processTaskActionVo); +} diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.xml new file mode 100644 index 000000000..2a3be982b --- /dev/null +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskActionMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + INSERT INTO `processtask_action` ( + `id`, + `processtask_id`, + `processtask_step_id`, + `trigger`, + `integration_uuid`, + `status`, + `error`, + `config`, + `trigger_time` + ) + VALUES + ( + #{id}, + #{processTaskId}, + #{processTaskStepId}, + #{trigger}, + #{integrationUuid}, + #{status}, + #{error}, + #{configStr}, + NOW(3) + ) + + \ No newline at end of file diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java index 5d314e8e0..0a59b3e58 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java @@ -504,4 +504,11 @@ public interface ProcessTaskService { ProcessTaskFormAttributeDataVo getProcessTaskFormAttributeDataByProcessTaskIdAndAttributeUuid(Long processTaskId, String attributeUuid); void deleteProcessTaskFormAttributeDataByProcessTaskId(Long processTaskId); + + /** + * 根据步骤ID获取动作列表 + * @param processTaskStepId + * @return + */ + List getProcessTaskActionListByProcessTaskStepId(Long processTaskStepId); } diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index f6d23c419..1158791f2 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -45,6 +45,8 @@ import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.form.exception.FormActiveVersionNotFoundExcepiton; import neatlogic.framework.fulltextindex.core.FullTextIndexHandlerFactory; import neatlogic.framework.fulltextindex.core.IFullTextIndexHandler; +import neatlogic.framework.integration.dao.mapper.IntegrationMapper; +import neatlogic.framework.integration.dto.IntegrationVo; import neatlogic.framework.notify.core.INotifyTriggerType; import neatlogic.framework.notify.dto.NotifyReceiverVo; import neatlogic.framework.process.column.core.IProcessTaskColumn; @@ -61,6 +63,7 @@ import neatlogic.framework.process.exception.process.ProcessStepUtilHandlerNotFo import neatlogic.framework.process.exception.processtask.*; import neatlogic.framework.process.exception.processtask.task.ProcessTaskStepTaskNotCompleteException; import neatlogic.framework.process.fulltextindex.ProcessFullTextIndexType; +import neatlogic.framework.process.notify.constvalue.ProcessTaskStepNotifyTriggerType; import neatlogic.framework.process.notify.constvalue.ProcessTaskStepTaskNotifyTriggerType; import neatlogic.framework.process.operationauth.core.ProcessAuthManager; import neatlogic.framework.process.stephandler.core.IProcessStepHandler; @@ -85,10 +88,7 @@ import neatlogic.module.process.dao.mapper.process.ProcessCommentTemplateMapper; import neatlogic.module.process.dao.mapper.process.ProcessMapper; import neatlogic.module.process.dao.mapper.process.ProcessStepHandlerMapper; import neatlogic.module.process.dao.mapper.process.ProcessTagMapper; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskSlaMapper; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskStepDataMapper; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskStepTaskMapper; +import neatlogic.module.process.dao.mapper.processtask.*; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -179,6 +179,11 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC @Resource private RegionMapper regionMapper; + + @Resource + private ProcessTaskActionMapper processTaskActionMapper; + @Resource + private IntegrationMapper integrationMapper; // @Override // public void setProcessTaskFormAttributeAction(ProcessTaskVo processTaskVo, // Map formAttributeActionMap, int mode) { @@ -2349,6 +2354,32 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } } + @Override + public List getProcessTaskActionListByProcessTaskStepId(Long processTaskStepId) { + List processTaskActionList = processTaskActionMapper.getProcessTaskActionListByProcessTaskStepId(processTaskStepId); + if (CollectionUtils.isNotEmpty(processTaskActionList)) { + List integrationUuidList = processTaskActionList.stream().map(ProcessTaskActionVo::getIntegrationUuid).collect(Collectors.toList()); + List integrationList = integrationMapper.getIntegrationListByUuidList(integrationUuidList); + Map uuid2NameMap = integrationList.stream().collect(Collectors.toMap(IntegrationVo::getUuid, IntegrationVo::getName)); + for (ProcessTaskActionVo processTaskActionVo : processTaskActionList) { + String integrationName = uuid2NameMap.get(processTaskActionVo.getIntegrationUuid()); + if (StringUtils.isNotBlank(integrationName)) { + processTaskActionVo.setIntegrationName(integrationName); + } + if (Objects.equals(processTaskActionVo.getStatus(), "succeed")) { + processTaskActionVo.setStatusText("已成功"); + } else { + processTaskActionVo.setStatusText("已失败"); + } + String triggerText = ProcessTaskStepNotifyTriggerType.getText(processTaskActionVo.getTrigger()); + if(StringUtils.isNotBlank(triggerText)) { + processTaskActionVo.setTriggerText(triggerText); + } + } + } + return processTaskActionList; + } + /** * 根据fileId 和 processTaskIdList 获取对应用户是否有该工单附件的下载权限 * diff --git a/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java b/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java index 655392a9b..389d761fe 100644 --- a/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java +++ b/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java @@ -20,6 +20,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONPath; import neatlogic.framework.asynchronization.thread.NeatLogicThread; +import neatlogic.framework.common.constvalue.Expression; import neatlogic.framework.exception.integration.IntegrationHandlerNotFoundException; import neatlogic.framework.exception.integration.IntegrationNotFoundException; import neatlogic.framework.integration.core.IIntegrationHandler; @@ -34,14 +35,15 @@ import neatlogic.framework.process.constvalue.ProcessFieldType; import neatlogic.framework.process.constvalue.ProcessTaskAuditDetailType; import neatlogic.framework.process.constvalue.ProcessTaskAuditType; import neatlogic.framework.process.constvalue.ProcessTaskParams; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; -import neatlogic.module.process.dao.mapper.SelectContentByHashMapper; -import neatlogic.framework.process.dto.ActionVo; +import neatlogic.framework.process.dto.ProcessTaskActionVo; import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.ProcessTaskVo; import neatlogic.framework.process.handler.ProcessRequestFrom; import neatlogic.framework.process.notify.constvalue.ProcessTaskNotifyTriggerType; import neatlogic.framework.util.ConditionUtil; +import neatlogic.module.process.dao.mapper.SelectContentByHashMapper; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskActionMapper; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -59,6 +61,7 @@ import java.util.stream.Collectors; public class ProcessTaskActionThread extends NeatLogicThread { private static Logger logger = LoggerFactory.getLogger(ProcessTaskActionThread.class); private static ProcessTaskMapper processTaskMapper; + private static ProcessTaskActionMapper processTaskActionMapper; private static SelectContentByHashMapper selectContentByHashMapper; private static IntegrationMapper integrationMapper; @@ -67,6 +70,11 @@ public class ProcessTaskActionThread extends NeatLogicThread { processTaskMapper = _processTaskMapper; } + @Autowired + public void setProcessTaskActionMapper(ProcessTaskActionMapper _processTaskActionMapper) { + processTaskActionMapper = _processTaskActionMapper; + } + @Autowired public void setSelectContentByHashMapper(SelectContentByHashMapper _selectContentByHashMapper) { selectContentByHashMapper = _selectContentByHashMapper; @@ -105,7 +113,6 @@ public class ProcessTaskActionThread extends NeatLogicThread { String stepConfig = selectContentByHashMapper.getProcessTaskStepConfigByHash(stepVo.getConfigHash()); actionList = (JSONArray) JSONPath.read(stepConfig, "actionConfig.actionList"); } - /* 从步骤配置信息中获取动作列表 **/ if (CollectionUtils.isNotEmpty(actionList)) { List processTaskParams = Arrays.stream(ProcessTaskParams.values()).map(ProcessTaskParams::getValue).collect(Collectors.toList()); @@ -117,44 +124,38 @@ public class ProcessTaskActionThread extends NeatLogicThread { if (integrationVo == null) { throw new IntegrationNotFoundException(integrationUuid); } - IIntegrationHandler iIntegrationHandler = - IntegrationHandlerFactory.getHandler(integrationVo.getHandler()); + IIntegrationHandler iIntegrationHandler = IntegrationHandlerFactory.getHandler(integrationVo.getHandler()); if (iIntegrationHandler == null) { throw new IntegrationHandlerNotFoundException(integrationVo.getHandler()); } + String failedReason = null; + JSONObject config = new JSONObject(); /** 参数映射 **/ - List paramMappingList = JSON.parseArray( - actionObj.getJSONArray("paramMappingList").toJSONString(), ParamMappingVo.class); - if (CollectionUtils.isNotEmpty(paramMappingList)) { + JSONObject integrationParam = new JSONObject(); + JSONArray paramMappingArray = actionObj.getJSONArray("paramMappingList"); + if (CollectionUtils.isNotEmpty(paramMappingArray)) { JSONObject processFieldData = ProcessTaskConditionFactory.getConditionParamData(processTaskParams, currentProcessTaskStepVo); -// ProcessTaskVo processTaskVo = -// processTaskService.getProcessTaskDetailById(currentProcessTaskStepVo.getProcessTaskId()); -// processTaskVo.setStartProcessTaskStep( -// processTaskService.getStartProcessTaskStepByProcessTaskId(processTaskVo.getId())); -// processTaskVo.setCurrentProcessTaskStep(currentProcessTaskStepVo); -// JSONObject processFieldData = ProcessTaskUtil.getProcessFieldData(processTaskVo, true); + List paramMappingList = paramMappingArray.toJavaList(ParamMappingVo.class); for (ParamMappingVo paramMappingVo : paramMappingList) { if (ProcessFieldType.CONSTANT.getValue().equals(paramMappingVo.getType())) { - integrationVo.getParamObj().put(paramMappingVo.getName(), - paramMappingVo.getValue()); + integrationParam.put(paramMappingVo.getName(), paramMappingVo.getValue()); } else if (StringUtils.isNotBlank(paramMappingVo.getType())) { Object processFieldValue = processFieldData.get(paramMappingVo.getValue()); if (processFieldValue != null) { - integrationVo.getParamObj().put(paramMappingVo.getName(), - processFieldValue); + integrationParam.put(paramMappingVo.getName(), processFieldValue); } else { logger.error("没有找到参数'" + paramMappingVo.getValue() + "'信息"); } } } } - integrationVo.getParamObj().put("triggerType", triggerType.getTrigger()); + integrationParam.put("triggerType", triggerType.getTrigger()); + integrationVo.getParamObj().putAll(integrationParam); + config.put("param", integrationParam); boolean isSucceed = false; - IntegrationResultVo integrationResultVo = - iIntegrationHandler.sendRequest(integrationVo, ProcessRequestFrom.PROCESS); + IntegrationResultVo integrationResultVo = iIntegrationHandler.sendRequest(integrationVo, ProcessRequestFrom.PROCESS); if (StringUtils.isNotBlank(integrationResultVo.getError())) { logger.error(integrationResultVo.getError()); -// throw new IntegrationSendRequestException(integrationVo.getUuid()); } else { JSONObject successConditionObj = actionObj.getJSONObject("successCondition"); if (MapUtils.isNotEmpty(successConditionObj)) { @@ -163,6 +164,7 @@ public class ProcessTaskActionThread extends NeatLogicThread { String resultValue = null; String transformedResult = integrationResultVo.getTransformedResult(); if (StringUtils.isNotBlank(transformedResult)) { + config.put("result", transformedResult); JSONObject transformedResultObj = JSON.parseObject(transformedResult); if (MapUtils.isNotEmpty(transformedResultObj)) { resultValue = transformedResultObj.getString(name); @@ -171,6 +173,7 @@ public class ProcessTaskActionThread extends NeatLogicThread { if (resultValue == null) { String rawResult = integrationResultVo.getRawResult(); if (StringUtils.isNotEmpty(rawResult)) { + config.put("result", rawResult); JSONObject rawResultObj = JSON.parseObject(rawResult); if (MapUtils.isNotEmpty(rawResultObj)) { resultValue = rawResultObj.getString(name); @@ -184,8 +187,11 @@ public class ProcessTaskActionThread extends NeatLogicThread { List targetValueList = new ArrayList<>(); targetValueList.add(value); String expression = successConditionObj.getString("expression"); - isSucceed = - ConditionUtil.predicate(curentValueList, expression, targetValueList); + isSucceed = ConditionUtil.predicate(curentValueList, expression, targetValueList); + if (!isSucceed) { + String expressionName = Expression.getExpressionName(expression); + failedReason = String.format("不满足成功条件:%s%s%s", name, expressionName, value); + } } } } else { @@ -196,7 +202,8 @@ public class ProcessTaskActionThread extends NeatLogicThread { } } - ActionVo actionVo = new ActionVo(); + ProcessTaskActionVo actionVo = new ProcessTaskActionVo(); + actionVo.setProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); actionVo.setProcessTaskStepId(currentProcessTaskStepVo.getId()); actionVo.setProcessTaskStepName(currentProcessTaskStepVo.getName()); actionVo.setIntegrationUuid(integrationUuid); @@ -204,13 +211,22 @@ public class ProcessTaskActionThread extends NeatLogicThread { actionVo.setTrigger(triggerType.getTrigger()); actionVo.setTriggerText(triggerType.getText()); actionVo.setSucceed(isSucceed); - if (StringUtils.isNotBlank(integrationResultVo.getError())) { - String error = integrationResultVo.getError(); - if (error.startsWith("failed\n")) { - error = error.substring("failed\n".length()); + actionVo.setConfig(config); + if (isSucceed) { + actionVo.setStatus("succeed"); + } else { + actionVo.setStatus("failed"); + if (StringUtils.isNotBlank(integrationResultVo.getError())) { + String error = integrationResultVo.getError(); + if (error.startsWith("failed\n")) { + error = error.substring("failed\n".length()); + } + actionVo.setError(error); + } else if (StringUtils.isNotBlank(failedReason)) { + actionVo.setError(failedReason); } - actionVo.setError(error); } + processTaskActionMapper.insertProcessTaskAction(actionVo); currentProcessTaskStepVo.getParamObj().put(ProcessTaskAuditDetailType.RESTFULACTION.getParamName(), JSON.toJSONString(actionVo)); ProcessTaskAuditThread.audit(currentProcessTaskStepVo, ProcessTaskAuditType.RESTFULACTION); } -- Gitee From cca2af63d16b46374f35c97766e7a8c17df7df15 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Wed, 28 Aug 2024 16:51:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E5=8A=A8=E4=BD=9C=E6=8F=90=E7=A4=BA=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1233334296870912]后端-工单动作提示优化 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1233334296870912 --- .../process/service/ProcessTaskServiceImpl.java | 8 ++++++++ .../process/thread/ProcessTaskActionThread.java | 2 ++ .../changelog/2024-08-28/neatlogic_tenant.sql | 13 +++++++++++++ .../process/changelog/2024-08-28/version.json | 10 ++++++++++ .../resources/process/sqlscript/ddl.sql | 17 +++++++++++++++++ 5 files changed, 50 insertions(+) create mode 100644 src/main/resources/neatlogic/resources/process/changelog/2024-08-28/neatlogic_tenant.sql create mode 100644 src/main/resources/neatlogic/resources/process/changelog/2024-08-28/version.json diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index 1158791f2..d956c0ed6 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -2365,6 +2365,14 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC String integrationName = uuid2NameMap.get(processTaskActionVo.getIntegrationUuid()); if (StringUtils.isNotBlank(integrationName)) { processTaskActionVo.setIntegrationName(integrationName); + } else { + JSONObject config = processTaskActionVo.getConfig(); + if (MapUtils.isNotEmpty(config)) { + integrationName = config.getString("integrationName"); + if (StringUtils.isNotBlank(integrationName)) { + processTaskActionVo.setIntegrationName(integrationName); + } + } } if (Objects.equals(processTaskActionVo.getStatus(), "succeed")) { processTaskActionVo.setStatusText("已成功"); diff --git a/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java b/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java index 389d761fe..33d019fd3 100644 --- a/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java +++ b/src/main/java/neatlogic/module/process/thread/ProcessTaskActionThread.java @@ -130,6 +130,8 @@ public class ProcessTaskActionThread extends NeatLogicThread { } String failedReason = null; JSONObject config = new JSONObject(); + config.put("integrationName", integrationVo.getName()); + config.put("actionConfig", actionObj); /** 参数映射 **/ JSONObject integrationParam = new JSONObject(); JSONArray paramMappingArray = actionObj.getJSONArray("paramMappingList"); diff --git a/src/main/resources/neatlogic/resources/process/changelog/2024-08-28/neatlogic_tenant.sql b/src/main/resources/neatlogic/resources/process/changelog/2024-08-28/neatlogic_tenant.sql new file mode 100644 index 000000000..d54535a88 --- /dev/null +++ b/src/main/resources/neatlogic/resources/process/changelog/2024-08-28/neatlogic_tenant.sql @@ -0,0 +1,13 @@ +CREATE TABLE IF NOT EXISTS `processtask_action` ( + `id` bigint NOT NULL COMMENT '主键ID', + `processtask_id` bigint NOT NULL COMMENT '工单ID', + `processtask_step_id` bigint DEFAULT NULL COMMENT '步骤ID', + `trigger` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '触发点', + `trigger_time` timestamp(3) NOT NULL COMMENT '触发时间', + `integration_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '集成UUID', + `status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态', + `error` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '失败信息', + `config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '配置信息', + PRIMARY KEY (`id`), + KEY `idx_processtask_step_id` (`processtask_step_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT = '工单动作表'; \ No newline at end of file diff --git a/src/main/resources/neatlogic/resources/process/changelog/2024-08-28/version.json b/src/main/resources/neatlogic/resources/process/changelog/2024-08-28/version.json new file mode 100644 index 000000000..41a23ec79 --- /dev/null +++ b/src/main/resources/neatlogic/resources/process/changelog/2024-08-28/version.json @@ -0,0 +1,10 @@ +{ + "content":[ + { + "type":"新增功能", + "detail":[ + {"msg":"1.工单动作提示优化"} + ] + } + ] +} diff --git a/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql b/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql index a5ca21798..19d734f5a 100644 --- a/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql +++ b/src/main/resources/neatlogic/resources/process/sqlscript/ddl.sql @@ -602,6 +602,23 @@ CREATE TABLE IF NOT EXISTS `processtask` ( INDEX `idx_worktime`(`worktime_uuid`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '工单信息表'; +-- ---------------------------- +-- Table structure for processtask_action +-- ---------------------------- +CREATE TABLE IF NOT EXISTS `processtask_action` ( + `id` bigint NOT NULL COMMENT '主键ID', + `processtask_id` bigint NOT NULL COMMENT '工单ID', + `processtask_step_id` bigint DEFAULT NULL COMMENT '步骤ID', + `trigger` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '触发点', + `trigger_time` timestamp(3) NOT NULL COMMENT '触发时间', + `integration_uuid` char(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '集成UUID', + `status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '状态', + `error` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '失败信息', + `config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '配置信息', + PRIMARY KEY (`id`), + KEY `idx_processtask_step_id` (`processtask_step_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT = '工单动作表'; + -- ---------------------------- -- Table structure for processtask_agent -- ---------------------------- -- Gitee