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

This commit is contained in:
yanglin 2025-02-27 17:54:36 +08:00
commit d021497652
5 changed files with 51 additions and 22 deletions

View File

@ -8,8 +8,6 @@ import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.collections4.CollectionUtils;
import javax.validation.constraints.NotNull;
/**
* @author xudawei@axzo.cn
* @version 1.0
@ -22,11 +20,16 @@ import javax.validation.constraints.NotNull;
public class CheckVisaWithVisaIdReq {
/**
* 变更单号Id
* 变更单号Id编辑和详情时传入{@code creatFormData}互斥使用
*/
@NotNull(message = "变更签证单据Id不能为空")
// @NotNull(message = "变更签证单据Id不能为空")
private Long visaId;
/**
* 创建单据状态下的表单数据创建时传入{@code visaId}互斥使用
*/
private VisaChangeTempCreateReq creatFormData;
/**
* 校验
*/
@ -44,7 +47,15 @@ public class CheckVisaWithVisaIdReq {
AssertUtil.notEmpty(item.getRelationPersonList(), "确认人不能为空");
});
}
}
public void check() {
AssertUtil.notNull(this.getCreatFormData().getRelationWorkspaceId(), "关联项目不能为空");
AssertUtil.notNull(this.getCreatFormData().getType(), "单据类型不能为空");
AssertUtil.notEmpty(this.getCreatFormData().getNo(), "单号不能为空");
AssertUtil.notEmpty(this.getCreatFormData().getTopic(), "主题不能为空");
AssertUtil.notNull(this.getCreatFormData().getRelationProject(), "关联工程不能为空");
AssertUtil.notNull(this.getCreatFormData().getHappenTime(), "提出时间不能为空");
AssertUtil.notEmpty(this.getCreatFormData().getReason(), "发生原因不能为空");
}
}

View File

@ -85,7 +85,7 @@ public class VisaChangeTempCreateReq {
/**
* 提出时间
*/
@NotNull(message = "请选择提交日期")
@NotNull(message = "请选择提出时间")
private Date happenTime;
/**

View File

@ -13,6 +13,7 @@ import cn.axzo.nanopart.ess.api.mq.EssContractStateChangeMessage;
import cn.axzo.nanopart.ess.api.request.SaveContractSnapshotRequest;
import cn.axzo.nanopart.visa.server.domain.ChangeRecord;
import cn.axzo.nanopart.visa.server.domain.ChangeRecordRelation;
import cn.axzo.nanopart.visa.server.dto.RelationEssContextDto;
import cn.axzo.nanopart.visa.server.dto.VisaRelationDto;
import cn.axzo.nanopart.visa.server.rpc.EssGateway;
import cn.axzo.nanopart.visa.server.rpc.WorkflowGateway;
@ -37,7 +38,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static cn.axzo.nanopart.ess.api.enums.EssContractApproveState.ACCEPT;
import static cn.axzo.nanopart.ess.api.enums.MQEvent.ESS_CONTRACT_DOWNLOAD_PDF;
import static cn.axzo.nanopart.ess.api.enums.MQEvent.ESS_CONTRACT_STATE_CHANGE;
import static cn.axzo.nanopart.visa.api.enums.VisaRelationFieldEnum.PROCESS_INSTANCE_OF_ESS;
/**
@ -71,7 +72,10 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
log.info("all ess event handle : {}", JSON.toJSONString(event));
EssContractStateChangeMessage essContractStateChangeMessage = event.normalizedData(EssContractStateChangeMessage.class);
EssContractInfo contract = essContractStateChangeMessage.getContract();
AssertUtil.isTrue(Objects.nonNull(essContractStateChangeMessage) && Objects.nonNull(contract), "腾讯电子签事件对象异常");
// contract.getApproveDetails().stream().filter(i->Objects.nonNull(i.getOuId())).findFirst().get().getSignPerson().setPersonId(9000404670L);
AssertUtil.isTrue(Objects.nonNull(contract), "腾讯电子签事件对象异常");
if (Objects.equals(EssContractState.ALL, contract.getState())) {
// 所有单位都完成签署
@ -106,9 +110,11 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
AssertUtil.isTrue(CollectionUtils.isNotEmpty(workspaces) && workspaces.size() == 1, "未获取到企业工作台信息");
GetWorkspaceDetailRes entWorkspace = workspaces.get(0);
RelationEssContextDto relationEssContextDto = JSON.parseObject(i.getContent(), RelationEssContextDto.class);
// 同意审批和待办
BpmnTaskAuditDTO auditDTO = new BpmnTaskAuditDTO();
auditDTO.setTaskId(findTaskId(i.getContentExt(), String.valueOf(approveDetail.getSignPerson().getPersonId())));
auditDTO.setTaskId(findTaskId(relationEssContextDto.getApprovalId(), String.valueOf(approveDetail.getSignPerson().getPersonId())));
auditDTO.setApprover(BpmnTaskDelegateAssigner.builder()
.tenantId(String.valueOf(entWorkspace.getId()))
.ouId(String.valueOf(approveDetail.getOuId()))
@ -131,6 +137,6 @@ public class EssAllEventHandler implements EventHandler, InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
eventConsumer.registerHandler(ESS_CONTRACT_DOWNLOAD_PDF.getEventCode(), this);
eventConsumer.registerHandler(ESS_CONTRACT_STATE_CHANGE.getEventCode(), this);
}
}

View File

@ -226,6 +226,12 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
AssertUtil.notNull(record, "未找到变洽签记录");
AssertUtil.isTrue(Objects.equals(record.getImGroupId(), req.getImGroupId()), "IM群信息不匹配");
List<ChangeRecordRelation> relations = findByCondition(VisaRelationDto.builder()
.visaId(req.getVisaId())
.varName(VisaRelationFieldEnum.IM_GROUP_PARTICIPATE.name())
.content(String.valueOf(req.getOperatorPersonId()))
.build());
AssertUtil.isEmpty(relations, "不允许重复操作");
ChangeRecordRelation relation = new ChangeRecordRelation();
relation.setVisaId(req.getVisaId());
relation.setVarName(VisaRelationFieldEnum.IM_GROUP_PARTICIPATE.name());
@ -248,6 +254,7 @@ public class ChangeRecordRelationServiceImpl extends ServiceImpl<ChangeRecordRel
.appType(AppTypeEnum.CMP)
.build());
msgRequest.setBizId(IM_GROUP_BIZ_INFO_VISA_ID + ":" + req.getVisaId());
msgRequest.setTrySyncSend(true);
msgCenterGateway.sendMsgToGroup(msgRequest);
return true;
}

View File

@ -584,6 +584,11 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
/*编辑*/
changeRecord = getById(req.getId());
AssertUtil.notNull(changeRecord, "记录不存在");
// 编辑态下校验单据状态
AssertUtil.isTrue(!StringUtils.hasText(changeRecord.getApprovalId())
|| (StringUtils.hasText(changeRecord.getApprovalId()) && !Objects.equals(VisaStatusEnum.APPROVING, changeRecord.getStatus())),
"当前单据审批中,不允许操作");
oldContext = new VisaAddLogContext();
oldContext.setStatus(changeRecord.getStatus());
@ -745,14 +750,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
@Transactional(rollbackFor = Exception.class)
public Long approveCreateVisaChangeRecord(VisaChangeApproveCreateReq req) {
/*校验*/
ChangeRecord changeRecord = this.getById(req.getId());
if (NumberUtil.isPositiveNumber(changeRecord.getId())) {
// 编辑态下校验单据状态
AssertUtil.isTrue(!StringUtils.hasText(changeRecord.getApprovalId())
|| (StringUtils.hasText(changeRecord.getApprovalId()) && !Objects.equals(VisaStatusEnum.APPROVING.name(), changeRecord.getApprovalStatus())),
"当前单据审批中,不允许操作");
}
validVisaChangeForm(req);
ChangeRecord changeRecord = this.getById(req.getId());
ChangeRecord oldChangeRecord = BeanUtil.copyProperties(changeRecord, ChangeRecord.class);
List<VisaDetailByIdResponse.VisaUploadFile> visaUploadFiles = this.buildAttachUploadFile(req.getId());
@ -1617,7 +1616,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
validOperationPermission(req.getVisaId(), req.getOperatorPersonId(), req.getOperatorOuId(), req.getOperatorWorkspaceId());
AssertUtil.isTrue(!StringUtils.hasText(visa.getApprovalId())
|| (StringUtils.hasText(visa.getApprovalId()) && !Objects.equals(VisaStatusEnum.APPROVING.name(), visa.getApprovalStatus())),
|| (StringUtils.hasText(visa.getApprovalId()) && !Objects.equals(VisaStatusEnum.APPROVING, visa.getStatus())),
"当前单据审批中,不允许操作");
// 组装 REQ 参数
@ -1752,9 +1751,15 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
*/
@Override
public void checkVisaWithVisaId(CheckVisaWithVisaIdReq req) {
VisaDetailByIdResponse response = this.detailById(req.getVisaId());
req.check(response);
this.validVisaChangeForm(Objects.requireNonNull(visaHelper.buildVisaChangeApproveCreateReqByVisaId(req.getVisaId())));
if (NumberUtil.isPositiveNumber(req.getVisaId())) {
VisaDetailByIdResponse response = this.detailById(req.getVisaId());
AssertUtil.notNull(response, "单据不存在");
req.check(response);
this.validVisaChangeForm(Objects.requireNonNull(visaHelper.buildVisaChangeApproveCreateReqByVisaId(req.getVisaId())));
} else {
req.check();
this.validVisaChangeForm(BeanUtil.copyProperties(req.getCreatFormData(), VisaChangeApproveCreateReq.class));
}
}
/**