diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java index d92c3ac6b121958a046eac24732688be5c5378c6..024a4603cf720fdd9b91d2fd921e779f3db7f833 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java @@ -1,16 +1,20 @@ package neatlogic.module.process.api.processtask; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.asynchronization.thread.NeatLogicThread; import neatlogic.framework.asynchronization.threadpool.CachedThreadPool; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.config.ConfigManager; import neatlogic.framework.exception.type.PermissionDeniedException; +import neatlogic.framework.form.attribute.core.FormAttributeDataConversionHandlerFactory; +import neatlogic.framework.form.attribute.core.IFormAttributeDataConversionHandler; +import neatlogic.framework.form.dto.FormAttributeVo; +import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.process.auth.PROCESS_BASE; import neatlogic.framework.process.constvalue.ItsmTenantConfig; import neatlogic.framework.process.constvalue.ProcessTaskOperationType; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; -import neatlogic.module.process.dao.mapper.score.ScoreTemplateMapper; +import neatlogic.framework.process.dto.ProcessTaskFormAttributeDataVo; import neatlogic.framework.process.dto.ProcessTaskScoreTemplateVo; import neatlogic.framework.process.dto.ProcessTaskStepVo; import neatlogic.framework.process.dto.ProcessTaskVo; @@ -20,12 +24,15 @@ import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; import neatlogic.module.process.common.config.ProcessConfig; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; +import neatlogic.module.process.dao.mapper.score.ScoreTemplateMapper; import neatlogic.module.process.service.ProcessTaskService; -import com.alibaba.fastjson.JSONObject; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -111,6 +118,30 @@ public class ProcessTaskStepGetApi extends PrivateApiComponentBase { protected void execute() { try { processTaskService.setProcessTaskDetail(processTaskVo); + JSONObject formConfig = processTaskVo.getFormConfig(); + if (MapUtils.isNotEmpty(formConfig)) { + FormVersionVo formVersionVo = new FormVersionVo(); + String mainSceneUuid = formConfig.getString("uuid"); + formVersionVo.setSceneUuid(mainSceneUuid); + formVersionVo.setFormConfig(formConfig); + Map formAttributeVoMap = new HashMap<>(); + List formAttributeList = formVersionVo.getFormAttributeList(); + for (FormAttributeVo formAttributeVo : formAttributeList) { + formAttributeVoMap.put(formAttributeVo.getUuid(), formAttributeVo); + } + List processTaskFormAttributeDataList = processTaskVo.getProcessTaskFormAttributeDataList(); + for (ProcessTaskFormAttributeDataVo processTaskFormAttributeDataVo : processTaskFormAttributeDataList) { + FormAttributeVo formAttributeVo = formAttributeVoMap.get(processTaskFormAttributeDataVo.getAttributeUuid()); + if (formAttributeVo != null) { + IFormAttributeDataConversionHandler formAttributeDataConversionHandler = FormAttributeDataConversionHandlerFactory.getHandler(formAttributeVo.getHandler()); + if (formAttributeDataConversionHandler != null) { + Object dataObj = formAttributeDataConversionHandler.passwordMask(processTaskFormAttributeDataVo.getDataObj(), formAttributeVo.getConfig()); + processTaskFormAttributeDataVo.setDataObj(dataObj); + } + } + processTaskVo.getFormAttributeDataMap().put(processTaskFormAttributeDataVo.getAttributeUuid(), processTaskFormAttributeDataVo.getDataObj()); + } + } } finally { phaser.arrive(); } diff --git a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java index a8c1aab0d6960170fae708a4ff09042ae280d204..9ee1d95f94ecd50faf064afe6a5046234beaa0e6 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java @@ -1056,14 +1056,18 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess for (FormAttributeVo formAttributeVo : mainSceneFormAttributeList) { String attributeUuid = formAttributeVo.getUuid(); if (formAttributeDataMap.containsKey(attributeUuid)) { + ProcessTaskFormAttributeDataVo oldProcessTaskFormAttributeData = oldProcessTaskFormAttributeDataMap.get(attributeUuid); Object data = formAttributeDataMap.get(attributeUuid); IFormAttributeDataConversionHandler formAttributeDataConversionHandler = FormAttributeDataConversionHandlerFactory.getHandler(formAttributeVo.getHandler()); if (formAttributeDataConversionHandler != null) { - data = formAttributeDataConversionHandler.passwordEncryption(data, formAttributeVo.getConfig()); + Object oldData = null; + if (oldProcessTaskFormAttributeData != null) { + oldData = oldProcessTaskFormAttributeData.getDataObj(); + } + data = formAttributeDataConversionHandler.passwordEncryption(data, formAttributeVo.getConfig(), oldData); } ProcessTaskFormAttributeDataVo formAttributeDataVo = new ProcessTaskFormAttributeDataVo(); - ProcessTaskFormAttributeDataVo oldProcessTaskFormAttributeData = oldProcessTaskFormAttributeDataMap.get(attributeUuid); if (oldProcessTaskFormAttributeData != null) { formAttributeDataVo.setId(oldProcessTaskFormAttributeData.getId()); } @@ -1136,14 +1140,18 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess if (formAttributeVo == null) { continue; } + AttributeDataVo oldAttributeDataVo = oldExtendAttributeDataMap.get(formAttributeVo.getUuid()); Object data = formExtendAttributeDataObj.get("dataList"); IFormAttributeDataConversionHandler formAttributeDataConversionHandler = FormAttributeDataConversionHandlerFactory.getHandler(formAttributeVo.getHandler()); if (formAttributeDataConversionHandler != null) { - data = formAttributeDataConversionHandler.passwordEncryption(data, formAttributeVo.getConfig()); + Object oldData = null; + if (oldAttributeDataVo != null) { + oldData = oldAttributeDataVo.getDataObj(); + } + data = formAttributeDataConversionHandler.passwordEncryption(data, formAttributeVo.getConfig(), oldData); } ProcessTaskFormAttributeDataVo processTaskExtendFormAttributeDataVo = new ProcessTaskFormAttributeDataVo(); - AttributeDataVo oldAttributeDataVo = oldExtendAttributeDataMap.get(formAttributeVo.getUuid()); if (oldAttributeDataVo != null) { processTaskExtendFormAttributeDataVo.setId(oldAttributeDataVo.getId()); }