Merge remote-tracking branch 'origin/feature/REQ-3581' into feature/REQ-3581

This commit is contained in:
yanglin 2025-02-26 15:48:44 +08:00
commit c7bf09589d
5 changed files with 59 additions and 29 deletions

View File

@ -2,6 +2,7 @@ package cn.axzo.nanopart.visa.api.response;
import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum; import cn.axzo.maokai.common.enums.SaasCooperateShipCooperateTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.VisaChangeTempCreateReq; import cn.axzo.nanopart.visa.api.request.VisaChangeTempCreateReq;
@ -216,6 +217,16 @@ public class VisaDetailByIdResponse {
*/ */
private Long currentPersonId; private Long currentPersonId;
/**
* 合同 ID
*/
private String contractId;
/**
* 用印状态
*/
private VisaStampStatusEnum stampStatus;
@Data @Data
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor

View File

@ -98,7 +98,7 @@ public class ChangeRecordController implements ChangeRecordApi {
if (req.isNeedBtnList()) { if (req.isNeedBtnList()) {
// resp.setBtnList(VisaButtonTypeEnum.sort(VisaButtonTypeEnum.all())); // resp.setBtnList(VisaButtonTypeEnum.sort(VisaButtonTypeEnum.all()));
resp.setBtnList(changeRecordConfirmService.fetchBtnsByCondition(req.getVisaId(), req.getPersonId(), req.getOuId(), req.getWorkspaceId(), resp.getStatus(), resp.getApprovalId())); resp.setBtnList(changeRecordConfirmService.fetchBtnsByCondition(req.getVisaId(), req.getPersonId(), req.getOuId(), req.getWorkspaceId(), resp.getStatus(), resp.getApprovalId(), resp.getStampStatus()));
} }
return ApiResult.ok(resp); return ApiResult.ok(resp);
} }

View File

@ -2,6 +2,7 @@ package cn.axzo.nanopart.visa.server.service;
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq; import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
@ -58,7 +59,7 @@ public interface ChangeRecordConfirmService {
* 获取按钮集合 * 获取按钮集合
* 确认人与发起人的不同的单据状态按钮列表不相同 * 确认人与发起人的不同的单据状态按钮列表不相同
*/ */
List<VisaButtonTypeEnum> fetchBtnsByCondition(Long visaId, Long personId, Long ouId, Long workspaceId, VisaStatusEnum status, String approvalId); List<VisaButtonTypeEnum> fetchBtnsByCondition(Long visaId, Long personId, Long ouId, Long workspaceId, VisaStatusEnum status, String approvalId, VisaStampStatusEnum stampStatus);
/** /**
* 权限过滤 * 权限过滤

View File

@ -11,6 +11,7 @@ import cn.axzo.maokai.api.vo.response.OrganizationalUnitVO;
import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaButtonTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaConfirmBizTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaLogTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum; import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum; import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq; import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
@ -128,7 +129,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
* 确认人与发起人的不同的单据状态按钮列表不相同 * 确认人与发起人的不同的单据状态按钮列表不相同
*/ */
@Override @Override
public List<VisaButtonTypeEnum> fetchBtnsByCondition(Long visaId, Long personId, Long ouId, Long workspaceId, VisaStatusEnum status, String approvalId) { public List<VisaButtonTypeEnum> fetchBtnsByCondition(Long visaId, Long personId, Long ouId, Long workspaceId, VisaStatusEnum status, String approvalId, VisaStampStatusEnum stampStatus) {
Set<VisaConfirmBizTypeEnum> bizTypes = fetchBizTypesByCondition(visaId, personId, ouId, workspaceId); Set<VisaConfirmBizTypeEnum> bizTypes = fetchBizTypesByCondition(visaId, personId, ouId, workspaceId);
//添加审批人添加到集合bizTypes中 //添加审批人添加到集合bizTypes中
this.addBizTypeApprove(bizTypes, visaId, personId, ouId, workspaceId); this.addBizTypeApprove(bizTypes, visaId, personId, ouId, workspaceId);
@ -152,6 +153,23 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
if (!changeRecordLogService.hasLogType(visaId, VisaLogTypeEnum.CHAT_GROUP)) { if (!changeRecordLogService.hasLogType(visaId, VisaLogTypeEnum.CHAT_GROUP)) {
visaButtonTypeEnums.remove(VisaButtonTypeEnum.CHAT_GROUP_RECORD); visaButtonTypeEnums.remove(VisaButtonTypeEnum.CHAT_GROUP_RECORD);
} }
if (Objects.nonNull(stampStatus)) {
switch (stampStatus) {
case UNPRINTED:
visaButtonTypeEnums.add(VisaButtonTypeEnum.REQUEST_STAMP);
break;
case WITH_PRINT:
visaButtonTypeEnums.add(VisaButtonTypeEnum.STAMP_PROGRESS);
break;
case USED_PRINTS:
visaButtonTypeEnums.add(VisaButtonTypeEnum.STAMP_FILE);
break;
default:
break;
}
}
if (CollectionUtils.isEmpty(visaButtonTypeEnums)) { if (CollectionUtils.isEmpty(visaButtonTypeEnums)) {
return Lists.newArrayList(); return Lists.newArrayList();
} }
@ -230,7 +248,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
*/ */
private List<OrgNodeUserDTO> fetchOrgNodeUserDTOList(List<Long> personIds, Long ouId, Long workspaceId) { private List<OrgNodeUserDTO> fetchOrgNodeUserDTOList(List<Long> personIds, Long ouId, Long workspaceId) {
PageResp<OrgNodeUserDTO> pageResp = visaOrganizationalNodeUserGateway.list(ListOrgNodeUserReq.builder() PageResp<OrgNodeUserDTO> pageResp = visaOrganizationalNodeUserGateway.list(ListOrgNodeUserReq.builder()
.personIds(personIds) .personIds(personIds)
.organizationalUnitId(ouId) .organizationalUnitId(ouId)
.workspaceId(workspaceId) .workspaceId(workspaceId)
.needs(ListNodeUserReq.Needs.builder().job(true).unit(true).personProfile(true).build()).build()); .needs(ListNodeUserReq.Needs.builder().job(true).unit(true).personProfile(true).build()).build());
@ -307,40 +325,39 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
/** /**
* 构建确认人 * 构建确认人
*/ */
private List<VisaDetailByIdResponse.RelationPerson> buildRelationPersonList(List<ChangeRecordConfirm> confirmList,Map<Long, List<OrgNodeUserDTO>> personNodeUserMap) { private List<VisaDetailByIdResponse.RelationPerson> buildRelationPersonList(List<ChangeRecordConfirm> confirmList, Map<Long, List<OrgNodeUserDTO>> personNodeUserMap) {
return confirmList.stream().map(item -> { return confirmList.stream().map(item -> {
List<OrgNodeUserDTO> orgNodeUserDTOS = personNodeUserMap.get(item.getPersonId()); List<OrgNodeUserDTO> orgNodeUserDTOS = personNodeUserMap.get(item.getPersonId());
//有班组时优先取班组岗位 //有班组时优先取班组岗位
OrgNodeUserDTO nodeUserDTO = Constants.nodeUserDTOByList(orgNodeUserDTOS); OrgNodeUserDTO nodeUserDTO = Constants.nodeUserDTOByList(orgNodeUserDTOS);
VisaDetailByIdResponse.RelationPerson relationPerson = VisaDetailByIdResponse.RelationPerson.builder() VisaDetailByIdResponse.RelationPerson relationPerson = VisaDetailByIdResponse.RelationPerson.builder()
.ouId(item.getOuId()) .ouId(item.getOuId())
.workspaceId(item.getWorkspaceId()) .workspaceId(item.getWorkspaceId())
.nodeId(item.getNodeId()) .nodeId(item.getNodeId())
.personId(item.getPersonId()) .personId(item.getPersonId())
.projectId(item.getProjectId()) .projectId(item.getProjectId())
.type(item.getType()) .type(item.getType())
.build(); .build();
if (Objects.nonNull(nodeUserDTO)) { if (Objects.nonNull(nodeUserDTO)) {
relationPerson.setRealName(nodeUserDTO.getRealName()); relationPerson.setRealName(nodeUserDTO.getRealName());
if (Objects.nonNull(nodeUserDTO.getPersonProfile())) { if (Objects.nonNull(nodeUserDTO.getPersonProfile())) {
relationPerson.setAvatarUrl(nodeUserDTO.getPersonProfile().getAvatarUrl()); relationPerson.setAvatarUrl(nodeUserDTO.getPersonProfile().getAvatarUrl());
}
if (Objects.nonNull(nodeUserDTO.getJob())) {
relationPerson.setJobId(nodeUserDTO.getJob().getId());
relationPerson.setJobName(nodeUserDTO.getJob().getName());
}
}
return relationPerson;
} }
if (Objects.nonNull(nodeUserDTO.getJob())) {
relationPerson.setJobId(nodeUserDTO.getJob().getId());
relationPerson.setJobName(nodeUserDTO.getJob().getName());
}
}
return relationPerson;
}
).collect(Collectors.toList()); ).collect(Collectors.toList());
} }
/** /**
* 构建人员的集合key:personId,value:realName * 构建人员的集合key:personId,value:realName
*/ */

View File

@ -425,6 +425,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.approvalId(visa.getApprovalId()) //最终审批ID .approvalId(visa.getApprovalId()) //最终审批ID
.approvalStatus(visa.getApprovalStatus()) //最终审批状态 .approvalStatus(visa.getApprovalStatus()) //最终审批状态
.topic(visa.getTopic()) // 主题 .topic(visa.getTopic()) // 主题
.contractId(visa.getContractId())
.build(); .build();
} }