From 54773d7e879b1e8e52547417d5276bf16ba1f3f5 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 30 Aug 2024 16:49:39 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E8=BD=AC=E4=BA=A4=E7=9A=84=E6=97=B6=E5=80=99=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E8=A1=A8=E5=8D=95=E5=92=8C=E5=A1=AB=E5=86=99?= =?UTF-8?q?=E7=9A=84=E5=9B=9E=E5=A4=8D=E6=A1=86=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1234627132358656]后端-转交的时候保存当前表单和填写的回复框内容 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1234627132358656 --- .../processtask/ProcessTaskTransferApi.java | 47 +++++++--- .../process/service/ProcessTaskService.java | 8 ++ .../service/ProcessTaskServiceImpl.java | 91 +++++++++++-------- 3 files changed, 93 insertions(+), 53 deletions(-) diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskTransferApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskTransferApi.java index b5ec98db7..181c5db68 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskTransferApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskTransferApi.java @@ -1,11 +1,16 @@ package neatlogic.module.process.api.processtask; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.asynchronization.threadlocal.UserContext; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.common.constvalue.GroupSearch; import neatlogic.framework.process.auth.PROCESS_BASE; +import neatlogic.framework.process.constvalue.ProcessTaskStepDataType; import neatlogic.framework.process.constvalue.ProcessUserType; -import neatlogic.framework.process.crossover.IProcessTaskTransferApiCrossoverService; +import neatlogic.framework.process.dto.ProcessTaskStepDataVo; import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.ProcessTaskStepWorkerVo; import neatlogic.framework.process.dto.ProcessTaskVo; @@ -15,23 +20,25 @@ import neatlogic.framework.process.stephandler.core.ProcessStepHandlerFactory; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskStepDataMapper; import neatlogic.module.process.service.ProcessTaskService; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Objects; @Service @OperationType(type = OperationTypeEnum.UPDATE) @AuthAction(action = PROCESS_BASE.class) -public class ProcessTaskTransferApi extends PrivateApiComponentBase implements IProcessTaskTransferApiCrossoverService { +public class ProcessTaskTransferApi extends PrivateApiComponentBase { @Autowired private ProcessTaskService processTaskService; + + @Autowired + private ProcessTaskStepDataMapper processTaskStepDataMapper; @Override public String getToken() { @@ -40,7 +47,7 @@ public class ProcessTaskTransferApi extends PrivateApiComponentBase implements I @Override public String getName() { - return "工单转交接口"; + return "nmpap.processtasktransferapi.getname"; } @Override @@ -50,14 +57,15 @@ public class ProcessTaskTransferApi extends PrivateApiComponentBase implements I @Override @Input({ - @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "工单Id"), - @Param(name = "processTaskStepId", type = ApiParamType.LONG, isRequired = true, desc = "工单步骤Id"), - @Param(name = "workerList", type = ApiParamType.NOAUTH, isRequired = true, desc = "新可处理对象列表,[\"user#userUuid\",\"team#teamUuid\",\"role#roleUuid\"]"), - @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "来源"), - @Param(name = "content", type = ApiParamType.STRING, isRequired = true, desc = "原因") + @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskid"), + @Param(name = "processTaskStepId", type = ApiParamType.LONG, isRequired = true, desc = "term.itsm.processtaskstepid"), + @Param(name = "workerList", type = ApiParamType.NOAUTH, isRequired = true, desc = "nmpap.processtasktransferapi.input.param.desc.workerlist", help = "[\"user#userUuid\",\"team#teamUuid\",\"role#roleUuid\"]"), + @Param(name = "isSaveData", type = ApiParamType.ENUM, rule = "0,1", desc = "nmpap.processtasktransferapi.input.param.desc.issavedata"), + @Param(name = "source", type = ApiParamType.STRING, defaultValue = "pc", desc = "common.source"), + @Param(name = "content", type = ApiParamType.STRING, isRequired = true, desc = "common.content") }) @Output({}) - @Description(desc = "工单转交接口") + @Description(desc = "nmpap.processtasktransferapi.getname") public Object myDoService(JSONObject jsonObj) throws Exception { Long processTaskId = jsonObj.getLong("processTaskId"); Long processTaskStepId = jsonObj.getLong("processTaskStepId"); @@ -81,8 +89,21 @@ public class ProcessTaskTransferApi extends PrivateApiComponentBase implements I processTaskStepWorkerList.add(new ProcessTaskStepWorkerVo(processTaskId, processTaskStepId, split[0], split[1], ProcessUserType.MAJOR.getValue())); } } - processTaskStepVo.getParamObj().putAll(jsonObj); + Integer isSaveData = jsonObj.getInteger("isSaveData"); + if (Objects.equals(isSaveData, 1)) { + JSONObject data = processTaskService.getProcessTaskStepStagingData(processTaskId, processTaskStepId); + processTaskStepVo.getParamObj().putAll(data); + } + processTaskStepVo.getParamObj().putAll(jsonObj); handler.transfer(processTaskStepVo,processTaskStepWorkerList); + if (Objects.equals(isSaveData, 1)) { + ProcessTaskStepDataVo processTaskStepDataVo = new ProcessTaskStepDataVo(); + processTaskStepDataVo.setProcessTaskId(processTaskId); + processTaskStepDataVo.setProcessTaskStepId(processTaskStepId); + processTaskStepDataVo.setFcu(UserContext.get().getUserUuid(true)); + processTaskStepDataVo.setType(ProcessTaskStepDataType.STEPDRAFTSAVE.getValue()); + processTaskStepDataMapper.deleteProcessTaskStepData(processTaskStepDataVo); + } return null; } diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java index 0a59b3e58..e997175c8 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java @@ -511,4 +511,12 @@ public interface ProcessTaskService { * @return */ List getProcessTaskActionListByProcessTaskStepId(Long processTaskStepId); + + /** + * 获取步骤暂存数据 + * @param processTaskId 工单id + * @param processTaskStepId 步骤id + * @return + */ + JSONObject getProcessTaskStepStagingData(Long processTaskId, 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 d956c0ed6..33d77f81e 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -2817,46 +2817,8 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC processTaskStepDataVo.setProcessTaskStepId(processTaskStepId); processTaskStepDataVo.setFcu(UserContext.get().getUserUuid(true)); processTaskStepDataVo.setType(ProcessTaskStepDataType.STEPDRAFTSAVE.getValue()); - ProcessTaskStepDataVo stepDraftSaveData = processTaskStepDataMapper.getProcessTaskStepData(processTaskStepDataVo); - if (stepDraftSaveData != null) { - JSONObject dataObj = stepDraftSaveData.getData(); - if (MapUtils.isNotEmpty(dataObj)) { - JSONArray formAttributeDataList = dataObj.getJSONArray("formAttributeDataList"); - if (CollectionUtils.isNotEmpty(formAttributeDataList)) { - paramObj.put("formAttributeDataList", formAttributeDataList); - } - JSONArray formExtendAttributeDataList = dataObj.getJSONArray("formExtendAttributeDataList"); - if (CollectionUtils.isNotEmpty(formExtendAttributeDataList)) { - paramObj.put("formExtendAttributeDataList", formExtendAttributeDataList); - } - JSONArray hidecomponentList = dataObj.getJSONArray("hidecomponentList"); - if (CollectionUtils.isNotEmpty(hidecomponentList)) { - paramObj.put("hidecomponentList", hidecomponentList); - } - JSONArray readcomponentList = dataObj.getJSONArray("readcomponentList"); - if (CollectionUtils.isNotEmpty(readcomponentList)) { - paramObj.put("readcomponentList", readcomponentList); - } - JSONObject handlerStepInfo = dataObj.getJSONObject("handlerStepInfo"); - if (MapUtils.isNotEmpty(handlerStepInfo)) { - paramObj.put("handlerStepInfo", handlerStepInfo); - } - String priorityUuid = dataObj.getString("priorityUuid"); - if (StringUtils.isNotBlank(priorityUuid)) { - paramObj.put("priorityUuid", priorityUuid); - } - JSONArray fileIdList = dataObj.getJSONArray("fileIdList"); - if (CollectionUtils.isNotEmpty(fileIdList)) { - paramObj.put("fileIdList", fileIdList); - } - if (!paramObj.containsKey("content")) { - String content = dataObj.getString("content"); - if (StringUtils.isNotBlank(content)) { - paramObj.put("content", content); - } - } - } - } + JSONObject data = getProcessTaskStepStagingData(processTaskId, processTaskStepId); + processTaskStepVo.getParamObj().putAll(data); processTaskStepVo.getParamObj().putAll(paramObj); handler.complete(processTaskStepVo); processTaskStepDataMapper.deleteProcessTaskStepData(processTaskStepDataVo); @@ -3244,4 +3206,53 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC // } // return false; // } + + @Override + public JSONObject getProcessTaskStepStagingData(Long processTaskId, Long processTaskStepId) { + JSONObject data = new JSONObject(); + ProcessTaskStepDataVo processTaskStepDataVo = new ProcessTaskStepDataVo(); + processTaskStepDataVo.setProcessTaskId(processTaskId); + processTaskStepDataVo.setProcessTaskStepId(processTaskStepId); + processTaskStepDataVo.setFcu(UserContext.get().getUserUuid(true)); + processTaskStepDataVo.setType(ProcessTaskStepDataType.STEPDRAFTSAVE.getValue()); + ProcessTaskStepDataVo stepDraftSaveData = processTaskStepDataMapper.getProcessTaskStepData(processTaskStepDataVo); + if (stepDraftSaveData != null) { + JSONObject dataObj = stepDraftSaveData.getData(); + if (MapUtils.isNotEmpty(dataObj)) { + JSONArray formAttributeDataList = dataObj.getJSONArray("formAttributeDataList"); + if (CollectionUtils.isNotEmpty(formAttributeDataList)) { + data.put("formAttributeDataList", formAttributeDataList); + } + JSONArray formExtendAttributeDataList = dataObj.getJSONArray("formExtendAttributeDataList"); + if (CollectionUtils.isNotEmpty(formExtendAttributeDataList)) { + data.put("formExtendAttributeDataList", formExtendAttributeDataList); + } + JSONArray hidecomponentList = dataObj.getJSONArray("hidecomponentList"); + if (CollectionUtils.isNotEmpty(hidecomponentList)) { + data.put("hidecomponentList", hidecomponentList); + } + JSONArray readcomponentList = dataObj.getJSONArray("readcomponentList"); + if (CollectionUtils.isNotEmpty(readcomponentList)) { + data.put("readcomponentList", readcomponentList); + } + JSONObject handlerStepInfo = dataObj.getJSONObject("handlerStepInfo"); + if (MapUtils.isNotEmpty(handlerStepInfo)) { + data.put("handlerStepInfo", handlerStepInfo); + } + String priorityUuid = dataObj.getString("priorityUuid"); + if (StringUtils.isNotBlank(priorityUuid)) { + data.put("priorityUuid", priorityUuid); + } + JSONArray fileIdList = dataObj.getJSONArray("fileIdList"); + if (CollectionUtils.isNotEmpty(fileIdList)) { + data.put("fileIdList", fileIdList); + } + String content = dataObj.getString("content"); + if (StringUtils.isNotBlank(content)) { + data.put("content", content); + } + } + } + return data; + } } -- Gitee