Merge branch 'feature/REQ-3300' into feature/REQ-3581

# Conflicts:
#	visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java
This commit is contained in:
wangli 2025-02-27 17:28:04 +08:00
commit e80a52ab13
4 changed files with 41 additions and 18 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

@ -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(this.buildVisaChangeApproveCreateReqByVisaId(req.getVisaId())));
} else {
req.check();
this.validVisaChangeForm(BeanUtil.copyProperties(req.getCreatFormData(), VisaChangeApproveCreateReq.class));
}
}
/**