diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskAuditListApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskAuditListApi.java index ffbc7ebd3633f46c894397f268ef206822d11e95..e99b4f02f2c763955a4fe5f3cbbf628b2ddc696a 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskAuditListApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskAuditListApi.java @@ -1,5 +1,6 @@ package neatlogic.module.process.api.processtask; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.common.constvalue.ApiParamType; @@ -64,7 +65,7 @@ public class ProcessTaskAuditListApi extends PrivateApiComponentBase { @Input({ @Param(name = "processTaskId", type = ApiParamType.LONG, isRequired = true, desc = "工单id"), - @Param(name = "processTaskStepId", type = ApiParamType.LONG, desc = "工单步骤id") + @Param(name = "processTaskStepIdList", type = ApiParamType.JSONARRAY, desc = "工单步骤id列表") }) @Output({ @Param(name = "Return", explode = ProcessTaskStepAuditVo[].class, desc = "工单活动列表"), @@ -73,28 +74,32 @@ public class ProcessTaskAuditListApi extends PrivateApiComponentBase { @Description(desc = "工单活动列表接口") @Override public Object myDoService(JSONObject jsonObj) throws Exception { - Long processTaskId = jsonObj.getLong("processTaskId"); - Long processTaskStepId = jsonObj.getLong("processTaskStepId"); - processTaskService.checkProcessTaskParamsIsLegal(processTaskId, processTaskStepId); - new ProcessAuthManager.TaskOperationChecker(processTaskId, ProcessTaskOperationType.PROCESSTASK_VIEW) - .build() - .checkAndNoPermissionThrowException(); - List resultList = new ArrayList<>(); - ProcessTaskStepAuditVo processTaskStepAuditVo = new ProcessTaskStepAuditVo(); - processTaskStepAuditVo.setProcessTaskId(processTaskId); - processTaskStepAuditVo.setProcessTaskStepId(processTaskStepId); - List processTaskStepAuditList = processTaskMapper.getProcessTaskStepAuditList(processTaskStepAuditVo); - Map> operateMap = new HashMap<>(); + Long processTaskId = jsonObj.getLong("processTaskId"); + processTaskService.checkProcessTaskParamsIsLegal(processTaskId); + ProcessAuthManager.Builder builder = new ProcessAuthManager.Builder().addProcessTaskId(processTaskId).addOperationType(ProcessTaskOperationType.PROCESSTASK_VIEW); + List processTaskStepIdList = new ArrayList<>(); Map processTaskStepMap = new HashMap<>(); - List processtaskStepIdList = processTaskStepAuditList.stream().filter(e -> e.getProcessTaskStepId() != null).map(ProcessTaskStepAuditVo::getProcessTaskStepId).collect(Collectors.toList()); - if(CollectionUtils.isNotEmpty(processtaskStepIdList)){ - Long[] processTaskStepIds = new Long[processtaskStepIdList.size()]; - processtaskStepIdList.toArray(processTaskStepIds); - operateMap = new ProcessAuthManager.Builder().addProcessTaskStepId(processTaskStepIds).addOperationType(ProcessTaskOperationType.STEP_VIEW).build().getOperateMap(); - List processTaskStepList = processTaskMapper.getProcessTaskStepListByIdList(processtaskStepIdList); - processTaskStepMap = processTaskStepList.stream().collect(Collectors.toMap(e -> e.getId(), e -> e)); + JSONArray processTaskStepIdArray = jsonObj.getJSONArray("processTaskStepIdList"); + if (CollectionUtils.isNotEmpty(processTaskStepIdArray)) { + processTaskStepIdList = processTaskStepIdArray.toJavaList(Long.class); } + List processTaskStepAuditList = processTaskMapper.getProcessTaskStepAuditList(processTaskId, processTaskStepIdList); + if (CollectionUtils.isEmpty(processTaskStepAuditList)) { + return resultList; + } + processTaskStepIdList = processTaskStepAuditList.stream().map(ProcessTaskStepAuditVo::getProcessTaskStepId).collect(Collectors.toList()); + Long[] processTaskStepIds = new Long[processTaskStepIdList.size()]; + processTaskStepIdList.toArray(processTaskStepIds); + builder.addProcessTaskStepId(processTaskStepIds) + .addOperationType(ProcessTaskOperationType.STEP_VIEW); + List processTaskStepList = processTaskMapper.getProcessTaskStepListByIdList(processTaskStepIdList); + processTaskStepMap = processTaskStepList.stream().collect(Collectors.toMap(ProcessTaskStepVo::getId, e -> e)); + Map> operateMap = builder.build().getOperateMap(); + if (!operateMap.computeIfAbsent(processTaskId, k -> new HashSet<>()).contains(ProcessTaskOperationType.PROCESSTASK_VIEW)) { + return resultList; + } + for (ProcessTaskStepAuditVo processTaskStepAudit : processTaskStepAuditList) { if (processTaskStepAudit.getProcessTaskStepId() != null) { // 判断当前用户是否有权限查看该节点信息 diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java index fe0864eaa76c93414ff29a4ea39ca78314b956b6..19281494c764104e168cc60ba1b25401f951b001 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java @@ -161,7 +161,7 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { List getProcessTaskBySerialNumberList(List serialNumberList); - List getProcessTaskStepAuditList(ProcessTaskStepAuditVo processTaskStepAuditVo); + List getProcessTaskStepAuditList(@Param("processTaskId") Long processTaskId, @Param("processTaskStepIdList") List processTaskStepIdList); List getProcessTaskStepListByProcessTaskId(Long processTaskId); diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml index a3720d206fd5bdc938eceb4e9cae1341727fe9f2..0029e908d8a60d1da54bee3cebfd8cc7c215bd60 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml @@ -971,7 +971,7 @@ -