From c30e0074e39e998964000f292d2f53a78a637092 Mon Sep 17 00:00:00 2001
From: "1437892690@qq.com" <1437892690@qq.com>
Date: Sun, 26 May 2024 15:38:55 +0800
Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1-?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=90=8C=E6=97=B6=E6=BF=80=E6=B4=BB=E5=A4=9A?=
=?UTF-8?q?=E4=B8=AA=E6=AD=A5=E9=AA=A4=E6=97=B6=EF=BC=8C=E6=AD=A5=E9=AA=A4?=
=?UTF-8?q?=E4=B9=8B=E9=97=B4=E6=8C=89=E6=AD=A3=E5=90=91=E8=BF=9E=E7=BA=BF?=
=?UTF-8?q?=E5=85=88=E5=90=8E=E9=A1=BA=E5=BA=8F=E6=89=A7=E8=A1=8C=E6=BF=80?=
=?UTF-8?q?=E6=B4=BB=E6=93=8D=E4=BD=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
关联 #[1165179927101440]IT服务-流程同时激活多个步骤时,步骤之间按正向连线先后顺序执行激活操作 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1165179927101440
---
...sTaskStepExecuteSortComparatorTestApi.java | 95 +++++++++++++++++++
1 file changed, 95 insertions(+)
create mode 100644 src/main/java/neatlogic/module/process/api/processtask/test/ProcessTaskStepExecuteSortComparatorTestApi.java
diff --git a/src/main/java/neatlogic/module/process/api/processtask/test/ProcessTaskStepExecuteSortComparatorTestApi.java b/src/main/java/neatlogic/module/process/api/processtask/test/ProcessTaskStepExecuteSortComparatorTestApi.java
new file mode 100644
index 000000000..d265c0f89
--- /dev/null
+++ b/src/main/java/neatlogic/module/process/api/processtask/test/ProcessTaskStepExecuteSortComparatorTestApi.java
@@ -0,0 +1,95 @@
+/*
+ * 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.api.processtask.test;
+
+import com.alibaba.fastjson.JSONObject;
+import neatlogic.framework.auth.core.AuthAction;
+import neatlogic.framework.common.constvalue.ApiParamType;
+import neatlogic.framework.process.auth.PROCESS_BASE;
+import neatlogic.framework.process.constvalue.ProcessStepMode;
+import neatlogic.framework.process.constvalue.ProcessTaskOperationType;
+import neatlogic.framework.process.dto.ProcessTaskStepRelVo;
+import neatlogic.framework.process.dto.ProcessTaskStepVo;
+import neatlogic.framework.process.stephandler.core.ProcessTaskStepThread;
+import neatlogic.framework.process.stephandler.core.ProcessTaskStepThreadComparator;
+import neatlogic.framework.restful.annotation.*;
+import neatlogic.framework.restful.constvalue.OperationTypeEnum;
+import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase;
+import neatlogic.framework.util.TableResultUtil;
+import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Component
+@OperationType(type = OperationTypeEnum.SEARCH)
+@AuthAction(action = PROCESS_BASE.class)
+public class ProcessTaskStepExecuteSortComparatorTestApi extends PrivateApiComponentBase {
+
+ @Autowired
+ ProcessTaskMapper processtaskMapper;
+
+ @Override
+ public String getName() {
+ return "测试工单步骤执行排序比较器";
+ }
+
+ @Input({
+ @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskid")
+ })
+ @Output({
+ @Param(name = "tbodyList", explode = ProcessTaskStepVo.class, desc = "common.tbodylist")
+ })
+ @Description(desc = "测试工单步骤执行排序比较器")
+ @Override
+ public Object myDoService(JSONObject paramObj) throws Exception {
+ Long processTaskId = paramObj.getLong("processTaskId");
+ List processTaskStepList = processtaskMapper.getProcessTaskStepListByProcessTaskId(processTaskId);
+ ProcessTaskStepVo endProcessTaskStepVo = null;
+ for (ProcessTaskStepVo processTaskStepVo : processTaskStepList) {
+ if (Objects.equals(processTaskStepVo.getHandler(), "end")) {
+ endProcessTaskStepVo = processTaskStepVo;
+ }
+ }
+ List processTaskStepRelList = processtaskMapper.getProcessTaskStepRelByProcessTaskId(processTaskId);
+ ProcessTaskStepThreadComparator comparator = new ProcessTaskStepThreadComparator(processTaskStepRelList, endProcessTaskStepVo.getId());
+
+ List processTaskStepThreadList = new ArrayList<>();
+ for (ProcessTaskStepVo processTaskStepVo : processTaskStepList) {
+ ProcessTaskStepThread thread = new ProcessTaskStepThread(ProcessTaskOperationType.STEP_ACTIVE, processTaskStepVo, ProcessStepMode.MT) {
+ @Override
+ protected void myExecute(ProcessTaskStepVo processTaskStepVo) {
+
+ }
+ };
+ processTaskStepThreadList.add(thread);
+ }
+ processTaskStepThreadList.sort(comparator);
+ List tbodyList = processTaskStepThreadList.stream().map(ProcessTaskStepThread::getProcessTaskStepVo).collect(Collectors.toList());
+ return TableResultUtil.getResult(tbodyList);
+ }
+
+ @Override
+ public String getToken() {
+ return "processtask/step/executesortcomparator/test";
+ }
+}
--
Gitee