From 8e3f51b02846b194ed3fc474a89d69ed2d56244c Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 9 Jul 2024 11:13:35 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=AD=A5=E9=AA=A4=E2=80=9C=E7=94=B1=E5=89=8D=E7=BD=AE=E6=AD=A5?= =?UTF-8?q?=E9=AA=A4=E5=A4=84=E7=90=86=E4=BA=BA=E6=8C=87=E5=AE=9A=E2=80=9D?= =?UTF-8?q?=E5=88=86=E6=B4=BE=E7=AD=96=E7=95=A5=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1196942787313664]工单步骤“由前置步骤处理人指定”分派策略不生效 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1196942787313664 --- .../PreStepAssignWorkerPolicyHandler.java | 51 ++++++++++++++----- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/src/main/java/neatlogic/module/process/workerpolicy/handler/PreStepAssignWorkerPolicyHandler.java b/src/main/java/neatlogic/module/process/workerpolicy/handler/PreStepAssignWorkerPolicyHandler.java index da462a693..c713d413e 100644 --- a/src/main/java/neatlogic/module/process/workerpolicy/handler/PreStepAssignWorkerPolicyHandler.java +++ b/src/main/java/neatlogic/module/process/workerpolicy/handler/PreStepAssignWorkerPolicyHandler.java @@ -1,15 +1,18 @@ package neatlogic.module.process.workerpolicy.handler; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.constvalue.WorkerPolicy; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; import neatlogic.framework.process.dto.ProcessTaskAssignWorkerVo; import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerPolicyVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; import neatlogic.framework.process.workerpolicy.core.IWorkerPolicyHandler; -import com.alibaba.fastjson.JSON; +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; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -48,16 +51,40 @@ public class PreStepAssignWorkerPolicyHandler implements IWorkerPolicyHandler { @Override public List execute(ProcessTaskStepWorkerPolicyVo workerPolicyVo, ProcessTaskStepVo currentProcessTaskStepVo) { List processTaskStepWorkerList = new ArrayList<>(); - List processStepUuidList = JSON.parseArray(workerPolicyVo.getConfigObj().getString("processStepUuidList"), String.class); - if(CollectionUtils.isNotEmpty(processStepUuidList)) { - for(String processStepUuid : processStepUuidList) { - ProcessTaskAssignWorkerVo processTaskAssignWorkerVo = new ProcessTaskAssignWorkerVo(); - processTaskAssignWorkerVo.setProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); - processTaskAssignWorkerVo.setProcessTaskStepId(currentProcessTaskStepVo.getId()); - processTaskAssignWorkerVo.setFromProcessStepUuid(processStepUuid); - List processTaskAssignWorkerList = processTaskMapper.getProcessTaskAssignWorker(processTaskAssignWorkerVo); - for(ProcessTaskAssignWorkerVo processTaskAssignWorker : processTaskAssignWorkerList) { - processTaskStepWorkerList.add(new ProcessTaskStepWorkerVo(processTaskAssignWorker.getProcessTaskId(), processTaskAssignWorker.getProcessTaskStepId(), processTaskAssignWorker.getType(), processTaskAssignWorker.getUuid(), ProcessUserType.MAJOR.getValue())); + JSONObject configObj = workerPolicyVo.getConfigObj(); + if (MapUtils.isNotEmpty(configObj)) { + JSONArray processStepList = configObj.getJSONArray("processStepList"); + if (CollectionUtils.isNotEmpty(processStepList)) { + for (int i = 0; i < processStepList.size(); i++) { + JSONObject processStepObj = processStepList.getJSONObject(i); + if (MapUtils.isNotEmpty(processStepObj)) { + String uuid = processStepObj.getString("uuid"); + if (StringUtils.isNotEmpty(uuid)) { + ProcessTaskAssignWorkerVo processTaskAssignWorkerVo = new ProcessTaskAssignWorkerVo(); + processTaskAssignWorkerVo.setProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); + processTaskAssignWorkerVo.setProcessTaskStepId(currentProcessTaskStepVo.getId()); + processTaskAssignWorkerVo.setFromProcessStepUuid(uuid); + List processTaskAssignWorkerList = processTaskMapper.getProcessTaskAssignWorker(processTaskAssignWorkerVo); + for (ProcessTaskAssignWorkerVo processTaskAssignWorker : processTaskAssignWorkerList) { + processTaskStepWorkerList.add(new ProcessTaskStepWorkerVo(processTaskAssignWorker.getProcessTaskId(), processTaskAssignWorker.getProcessTaskStepId(), processTaskAssignWorker.getType(), processTaskAssignWorker.getUuid(), ProcessUserType.MAJOR.getValue())); + } + } + } + } + } else { + JSONArray processStepUuidArray = configObj.getJSONArray("processStepUuidList"); + if(CollectionUtils.isNotEmpty(processStepUuidArray)) { + List processStepUuidList = processStepUuidArray.toJavaList(String.class); + for(String processStepUuid : processStepUuidList) { + ProcessTaskAssignWorkerVo processTaskAssignWorkerVo = new ProcessTaskAssignWorkerVo(); + processTaskAssignWorkerVo.setProcessTaskId(currentProcessTaskStepVo.getProcessTaskId()); + processTaskAssignWorkerVo.setProcessTaskStepId(currentProcessTaskStepVo.getId()); + processTaskAssignWorkerVo.setFromProcessStepUuid(processStepUuid); + List processTaskAssignWorkerList = processTaskMapper.getProcessTaskAssignWorker(processTaskAssignWorkerVo); + for(ProcessTaskAssignWorkerVo processTaskAssignWorker : processTaskAssignWorkerList) { + processTaskStepWorkerList.add(new ProcessTaskStepWorkerVo(processTaskAssignWorker.getProcessTaskId(), processTaskAssignWorker.getProcessTaskStepId(), processTaskAssignWorker.getType(), processTaskAssignWorker.getUuid(), ProcessUserType.MAJOR.getValue())); + } + } } } } -- Gitee