feat(REQ-3300) - 调整退场人员校验问题

This commit is contained in:
wangli 2025-02-27 22:14:48 +08:00
parent 014db66761
commit 65d8967cb8

View File

@ -1494,17 +1494,16 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
// 获取项目下所有为退场人员
OrgNodeUserBriefInfoListReq infoListReq = OrgNodeUserBriefInfoListReq.builder()
.workspaceId(req.getRelationWorkspaceId())
.orgNodeIds(req.getRelationUnitAndPersonList().stream().map(VisaChangeTempCreateReq.RelationUnitAndPerson::getNodeId).collect(Collectors.toList()))
.orgNodeIds(req.getRelationUnitAndPersonList().stream().map(VisaChangeTempCreateReq.RelationUnitAndPerson::getNodeId).distinct().collect(Collectors.toList()))
.personIds(req.getRelationUnitAndPersonList().stream().map(VisaChangeTempCreateReq.RelationUnitAndPerson::getPersonId).distinct().collect(Collectors.toList()))
.build();
List<OrgNodeUserBriefInfoResp> nodeUserBriefInfoResps = nodeUserGateway.listOrgNodeUsers(infoListReq);
AssertUtil.notEmpty(nodeUserBriefInfoResps, "所有单位确认人均已退场");
cooperateTypeMap.forEach((k, v) -> {
AssertUtil.isTrue(v.size() <= refreshableConfiguration.getVerifyPersonLimit(), String.format(k.getDesc() + "确认人,最多支持%d个", refreshableConfiguration.getVerifyPersonLimit()));
v.stream().map(VisaChangeTempCreateReq.RelationUnitAndPerson::getPersonId)
.forEach(p -> {
boolean noExit = nodeUserBriefInfoResps.stream().anyMatch(u -> Objects.equals(u.getPersonId(), p));
AssertUtil.isTrue(noExit, String.format(k.getDesc() + "确认人,存在已退场人员,请重新选择"));
});
boolean noExit = v.stream().map(VisaChangeTempCreateReq.RelationUnitAndPerson::getPersonId)
.allMatch(p -> nodeUserBriefInfoResps.stream().map(OrgNodeUserBriefInfoResp::getPersonId).anyMatch(u -> Objects.equals(u, p)));
AssertUtil.isTrue(noExit, String.format(k.getDesc() + "确认人,存在已退场人员,请重新选择"));
});
}
// 金额变化合法性