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 b5ec98db7a64d604a3ce6f3b4a277b85379f9162..181c5db680088ffe05da1ef91cdb18cb43b9ef30 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 0a59b3e58ff781e491ffa0c62b97746aed84f5dc..e997175c81df77efbdd66396d0eb487b300d17f5 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 d956c0ed61f7e87e7cf336b4032efe72aee0caf8..33d77f81e7a87bf72b559f7647115489d8c4ef6e 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; + } }