From 260552b14f6a35a190abc81d26e1549ab3e906a3 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Sat, 15 Jun 2024 14:27:26 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E7=95=8C=E9=9D=A2=20=EF=BC=8C=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=BA=BF=E6=96=B0=E5=A2=9E=E6=AD=A5=E9=AA=A4=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #[1179542541008896]工单详情界面 ,时间线新增步骤过滤 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1179542541008896 --- .../processtask/ProcessTaskAuditListApi.java | 45 ++++++++++--------- .../mapper/processtask/ProcessTaskMapper.java | 2 +- .../mapper/processtask/ProcessTaskMapper.xml | 9 ++-- 3 files changed, 32 insertions(+), 24 deletions(-) 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 ffbc7ebd3..e99b4f02f 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 fe0864eaa..19281494c 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 a3720d206..0029e908d 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 @@ - -- Gitee