diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/config/RefreshableConfiguration.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/config/RefreshableConfiguration.java index 14be872f..8b051a8a 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/config/RefreshableConfiguration.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/config/RefreshableConfiguration.java @@ -32,4 +32,16 @@ public class RefreshableConfiguration { */ @Value("${visa.im.event.addMember:visaNegotiation}") private String imGroupAddMemberNoticeEventCode; + + /** + * 相关单位确认人人数限制 + */ + @Value("${visa.verifyPersonLimit: 8}") + private Integer verifyPersonLimit; + + /** + * 关联变更单个数限制 + */ + @Value("${visa.verifyVisaLimit: 5}") + private Integer verifyVisaLimit; } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index 77913b25..df170b5c 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -18,7 +18,9 @@ import cn.axzo.im.center.api.vo.req.GroupDismissRequest; import cn.axzo.im.center.api.vo.resp.GroupCreateResponse; import cn.axzo.im.center.common.enums.AppTypeEnum; import cn.axzo.im.center.common.enums.GroupType; +import cn.axzo.maokai.api.vo.request.CooperateShipQueryReq; import cn.axzo.maokai.api.vo.request.OrgNodeUserBriefInfoListReq; +import cn.axzo.maokai.api.vo.response.CooperateShipResp; import cn.axzo.maokai.api.vo.response.OrgNodeUserBriefInfoResp; import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaBillTypeEnum; @@ -42,6 +44,7 @@ import cn.axzo.nanopart.visa.api.request.VisaInitiatorListReq; import cn.axzo.nanopart.visa.api.response.VisaChangeInitiatorResp; import cn.axzo.nanopart.visa.api.response.VisaChangePageSearchResp; import cn.axzo.nanopart.visa.api.response.VisaDetailByIdResponse; +import cn.axzo.nanopart.visa.server.config.RefreshableConfiguration; import cn.axzo.nanopart.visa.server.domain.ChangeRecord; import cn.axzo.nanopart.visa.server.domain.ChangeRecordBill; import cn.axzo.nanopart.visa.server.domain.ChangeRecordConfirm; @@ -56,6 +59,7 @@ import cn.axzo.nanopart.visa.server.rpc.ApolloConstructionAreaGateway; import cn.axzo.nanopart.visa.server.rpc.DrawingMajorGateway; import cn.axzo.nanopart.visa.server.rpc.MsgCenterGateway; import cn.axzo.nanopart.visa.server.rpc.OrganizationalUnitGateway; +import cn.axzo.nanopart.visa.server.rpc.VisaCooperateShipGateway; import cn.axzo.nanopart.visa.server.rpc.VisaOrganizationalNodeUserGateway; import cn.axzo.nanopart.visa.server.rpc.VisaProfileGateway; import cn.axzo.nanopart.visa.server.rpc.VisaProjectApiGateway; @@ -94,8 +98,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.groovy.util.Maps; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -139,7 +141,6 @@ import static cn.axzo.nanopart.visa.api.constant.VisaConstant.WORKFLOW_VAR_VISA_ */ @Slf4j @Service -@RefreshScope public class ChangeRecordServiceImpl extends ServiceImpl implements ChangeRecordService { @Resource @@ -171,17 +172,6 @@ public class ChangeRecordServiceImpl extends ServiceImpl shipRespList = visaCooperateShipGateway.genericQuery(shipQueryReq); + AssertUtil.notEmpty(shipRespList, "操作人所在单位信息不能为空"); + req.setOperatorOuType(shipRespList.get(0).getCooperateType()); + } ChangeRecord changeRecord; List confirmPerson = Lists.newArrayList(); VisaAddLogContext oldContext = null; @@ -509,9 +517,9 @@ public class ChangeRecordServiceImpl extends ServiceImpl buildConfirmVisaConfirmDto(p, changeRecord, req.getOperatorPersonId())) - .collect(Collectors.toList()); + .collect(Collectors.toList())); } changeRecordConfirmService.addConfirm(confirmPerson); // 保存发生内容及说明 @@ -810,7 +818,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl getFilter(VisaChangePageSearchReq filter,Set permissionVisaIdSet) { + private LambdaQueryChainWrapper getFilter(VisaChangePageSearchReq filter, Set permissionVisaIdSet) { LambdaQueryChainWrapper queryChainWrapper = lambdaQuery() // .in(ChangeRecord::getId, permissionVisaIdSet) @@ -1053,7 +1061,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl nodeUserBriefInfoResps = nodeUserGateway.listOrgNodeUsers(infoListReq); AssertUtil.notEmpty(nodeUserBriefInfoResps, "所有单位确认人均已退场"); cooperateTypeMap.forEach((k, v) -> { - AssertUtil.isTrue(v.size() <= verifyPersonLimit, String.format(k.getDesc() + "确认人,最多支持%d个", verifyPersonLimit)); + AssertUtil.isTrue(v.size() <= refreshableConfiguration.getVerifyPersonLimit(), String.format(k.getDesc() + "确认人,最多支持%d个", refreshableConfiguration.getVerifyPersonLimit())); boolean noExit = v.stream().map(VisaChangeTempCreateReq.RelationUnitAndPerson::getPersonId) .anyMatch(p -> nodeUserBriefInfoResps.stream().anyMatch(u -> Objects.equals(u.getPersonId(), p))); AssertUtil.isTrue(noExit, String.format(k.getDesc() + "确认人,存在已退场人员,请重新选择")); @@ -1067,18 +1075,21 @@ public class ChangeRecordServiceImpl extends ServiceImpl relationVisa = listByIds(value); AssertUtil.notEmpty(relationVisa, "关联的单据不存在");