From 2e7f0ebd683efcde3b6da6c10720ffca7b3a20f1 Mon Sep 17 00:00:00 2001 From: xudawei Date: Tue, 11 Feb 2025 16:16:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20(REQ-3300)=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5-personId/ouId/workspaceId=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visa/server/service/VisaHelper.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java index 42906bff..2ec8da54 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/VisaHelper.java @@ -1,21 +1,26 @@ package cn.axzo.nanopart.visa.server.service; +import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; import cn.axzo.nanopart.visa.api.request.ChangeStatusRequest; import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse; +import cn.axzo.nanopart.visa.server.domain.ChangeRecordConfirm; import cn.axzo.nanopart.visa.server.dto.VisaAddLogContext; +import cn.axzo.nanopart.visa.server.dto.VisaConfirmDto; import cn.axzo.nanopart.visa.server.dto.VisaLogParam; import cn.axzo.nanopart.visa.server.rpc.ApolloConstructionAreaGateway; import cn.axzo.nanopart.visa.server.rpc.DrawingMajorGateway; import cn.axzo.nanopart.visa.server.utils.Constants; import cn.axzo.thor.client.model.DrawingMajorResp; import com.alibaba.fastjson.JSONArray; +import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import javax.annotation.Resource; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -45,6 +50,9 @@ public class VisaHelper { @Resource private ApolloConstructionAreaGateway apolloConstructionAreaGateway; + @Resource + private ChangeRecordConfirmService changeRecordConfirmService; + /** * 状态更新与添加日志,此时新增记录时状态没有维护 */ @@ -144,4 +152,24 @@ public class VisaHelper { } } + /** + * 查询单据与当前人的角色:[发起人|确认人|其他用户] + */ + public Map> fetchConfirmBizTypes(Collection visaIds, Long personId, Long ouId, Long workspaceId) { + List confirmList = changeRecordConfirmService.findByCondition(VisaConfirmDto.builder() + .visaIds(visaIds) + .personId(personId) + .ouId(ouId) + .workspaceId(workspaceId).build()); + if (CollectionUtils.isEmpty(confirmList)) { + return visaIds.stream().collect(Collectors.toMap(visaId -> visaId, visaId -> Sets.newHashSet(VisaConfirmBizTypeEnum.OTHER))); + } + Map> visaBizTypeMap = confirmList.stream().collect(Collectors.groupingBy(ChangeRecordConfirm::getVisaId + , Collectors.mapping(ChangeRecordConfirm::getBizType, Collectors.toSet()))); + visaIds.stream().forEach(item -> { + visaBizTypeMap.put(item, visaBizTypeMap.getOrDefault(item, Sets.newHashSet(VisaConfirmBizTypeEnum.OTHER))); + }); + return visaBizTypeMap; + } + }