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.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.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.VisaChangeTempCreateReq;
@ -216,6 +217,16 @@ public class VisaDetailByIdResponse {
*/
private Long currentPersonId;
/**
* 合同 ID
*/
private String contractId;
/**
* 用印状态
*/
private VisaStampStatusEnum stampStatus;
@Data
@Builder
@NoArgsConstructor

View File

@ -98,7 +98,7 @@ public class ChangeRecordController implements ChangeRecordApi {
if (req.isNeedBtnList()) {
// 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);
}

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.VisaConfirmBizTypeEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStampStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaStatusEnum;
import cn.axzo.nanopart.visa.api.enums.VisaTypeEnum;
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.VisaConfirmBizTypeEnum;
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.VisaTypeEnum;
import cn.axzo.nanopart.visa.api.request.VisaChangeApproveCreateReq;
@ -128,7 +129,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
* 确认人与发起人的不同的单据状态按钮列表不相同
*/
@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);
//添加审批人添加到集合bizTypes中
this.addBizTypeApprove(bizTypes, visaId, personId, ouId, workspaceId);
@ -152,6 +153,23 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
if (!changeRecordLogService.hasLogType(visaId, VisaLogTypeEnum.CHAT_GROUP)) {
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)) {
return Lists.newArrayList();
}
@ -230,7 +248,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
*/
private List<OrgNodeUserDTO> fetchOrgNodeUserDTOList(List<Long> personIds, Long ouId, Long workspaceId) {
PageResp<OrgNodeUserDTO> pageResp = visaOrganizationalNodeUserGateway.list(ListOrgNodeUserReq.builder()
.personIds(personIds)
.personIds(personIds)
.organizationalUnitId(ouId)
.workspaceId(workspaceId)
.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 -> {
List<OrgNodeUserDTO> orgNodeUserDTOS = personNodeUserMap.get(item.getPersonId());
//有班组时优先取班组岗位
OrgNodeUserDTO nodeUserDTO = Constants.nodeUserDTOByList(orgNodeUserDTOS);
List<OrgNodeUserDTO> orgNodeUserDTOS = personNodeUserMap.get(item.getPersonId());
//有班组时优先取班组岗位
OrgNodeUserDTO nodeUserDTO = Constants.nodeUserDTOByList(orgNodeUserDTOS);
VisaDetailByIdResponse.RelationPerson relationPerson = VisaDetailByIdResponse.RelationPerson.builder()
.ouId(item.getOuId())
.workspaceId(item.getWorkspaceId())
.nodeId(item.getNodeId())
.personId(item.getPersonId())
.projectId(item.getProjectId())
.type(item.getType())
.build();
if (Objects.nonNull(nodeUserDTO)) {
relationPerson.setRealName(nodeUserDTO.getRealName());
VisaDetailByIdResponse.RelationPerson relationPerson = VisaDetailByIdResponse.RelationPerson.builder()
.ouId(item.getOuId())
.workspaceId(item.getWorkspaceId())
.nodeId(item.getNodeId())
.personId(item.getPersonId())
.projectId(item.getProjectId())
.type(item.getType())
.build();
if (Objects.nonNull(nodeUserDTO)) {
relationPerson.setRealName(nodeUserDTO.getRealName());
if (Objects.nonNull(nodeUserDTO.getPersonProfile())) {
relationPerson.setAvatarUrl(nodeUserDTO.getPersonProfile().getAvatarUrl());
if (Objects.nonNull(nodeUserDTO.getPersonProfile())) {
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());
}
/**
* 构建人员的集合key:personId,value:realName
*/

View File

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