feat: (REQ-3300) VisaHelper保存操作日志checkstyle优化

This commit is contained in:
xudawei 2025-02-07 17:33:00 +08:00
parent 38fb0ba163
commit 81a000e4d0
3 changed files with 76 additions and 92 deletions

View File

@ -33,7 +33,7 @@ public enum VisaStatusEnum {
/**
* 可以编辑变更签证单的状态
*/
private static Set<VisaStatusEnum> editFormStatus = Sets.newHashSet(DECIDING, EXECUTING);
private static Set<VisaStatusEnum> editFormStatus = Sets.newHashSet(DECIDING, EXECUTING, DECIDING_FROM_APPROVE);
private final String code;
private final String desc;

View File

@ -85,163 +85,142 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl<ChangeRecordLogDao,
List<ChangeRecordLog> logList = Lists.newArrayList();
switch (type) {
case CHAT_GROUP:
ChangeRecordLog.ChangeRecordLogBuilder builder = ChangeRecordLog.builder();
// 动作: 创建群聊洽商
// 状态流转:[待提报审核不通过的待提报] --> [决策中]
String userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.action(type.name())
.title(type.getTitle())
.content(String.format(type.getContent(), userName))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY)
.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.CHAT_GROUP.name())
.title(VisaLogTypeEnum.CHAT_GROUP.getTitle())
.content(String.format(VisaLogTypeEnum.CHAT_GROUP.getContent(), userName))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case EDIT_FORM:
builder = ChangeRecordLog.builder();
builder.visaId(visaId)
.action(type.name());
// 编辑表单
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(String.format(type.getTitle(), userName))
.content(String.format(type.getContent(), userName))
.orderBy(Constants.EDIT_FORM_ORDER_BY)
.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.EDIT_FORM.name())
.title(String.format(VisaLogTypeEnum.EDIT_FORM.getTitle(), userName))
.content(String.format(VisaLogTypeEnum.EDIT_FORM.getContent(), userName))
.orderBy(Constants.EDIT_FORM_ORDER_BY).build());
case EDIT_AMOUNT:
if (Objects.nonNull(param)
&& Objects.nonNull(param.getOldAmountChange()) && Objects.nonNull(param.getNewAmountChange())
&& !Objects.equals(param.getOldAmountChange().compareTo(param.getNewAmountChange()), 0)) {
builder = ChangeRecordLog.builder();
builder.visaId(visaId)
.action(type.name());
// 编辑金额变化
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(String.format(type.getTitle(),userName ))
.content(String.format(type.getContent(), param.getOldAmountChange().toPlainString(), param.getNewAmountChange().toPlainString()))
.orderBy(Constants.AMOUNT_CHANGE_ORDER_BY)
.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.EDIT_AMOUNT.name())
.title(String.format(VisaLogTypeEnum.EDIT_AMOUNT.getTitle(),userName ))
.content(String.format(VisaLogTypeEnum.EDIT_AMOUNT.getContent(), param.getOldAmountChange().toPlainString(), param.getNewAmountChange().toPlainString()))
.orderBy(Constants.AMOUNT_CHANGE_ORDER_BY).build());
}
case UPLOAD_FILE:
if (CollectionUtils.isNotEmpty(param.getUploadAttach())) {
builder = ChangeRecordLog.builder();
// 上传附件
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(String.format(type.getTitle(), userName))
.content(String.format(type.getContent(), userName, param.getUploadAttach().size(), this.buildAttach(param.getUploadAttach())))
.orderBy(Constants.ADD_UPLOAD_FILE_ORDER_BY)
.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.UPLOAD_FILE.name())
.title(String.format(VisaLogTypeEnum.UPLOAD_FILE.getTitle(), userName))
.content(String.format(VisaLogTypeEnum.UPLOAD_FILE.getContent(), userName, param.getUploadAttach().size(), this.buildAttach(param.getUploadAttach())))
.orderBy(Constants.ADD_UPLOAD_FILE_ORDER_BY)
.build());
}
case DELETE_UPLOAD_FILE:
if (CollectionUtils.isNotEmpty(param.getDeleteAttach())) {
builder = ChangeRecordLog.builder();
// 删除附件
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(String.format(type.getTitle(),userName))
.content(String.format(type.getContent(),userName, param.getDeleteAttach().size(), this.buildAttach(param.getDeleteAttach())))
.orderBy(Constants.DELETE_UPLOAD_FILE_ORDER_BY)
.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.DELETE_UPLOAD_FILE.name())
.title(String.format(VisaLogTypeEnum.DELETE_UPLOAD_FILE.getTitle(),userName))
.content(String.format(VisaLogTypeEnum.DELETE_UPLOAD_FILE.getContent(),userName, param.getDeleteAttach().size(), this.buildAttach(param.getDeleteAttach())))
.orderBy(Constants.DELETE_UPLOAD_FILE_ORDER_BY)
.build());
}
break;
case TO_EXECUTE:
builder = ChangeRecordLog.builder();
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
// 动作:执行
// 状态流转:[决策中审核不通过的待提报]-->[执行中]
builder.action(type.name());
builder.title(type.getTitle());
builder.content(String.format(type.getContent(), userName));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.TO_EXECUTE.name())
.title(VisaLogTypeEnum.TO_EXECUTE.getTitle())
.content(String.format(VisaLogTypeEnum.TO_EXECUTE.getContent(), userName))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case TO_APPRROVE:
ChangeRecord changeRecord = this.changeRecordService.getById(visaId);
builder = ChangeRecordLog.builder();
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
// 动作:发起审批
// 状态流转:[待提报审批不通过的待提报决策中审批不通过的决策中执行中]-->[审批中]
builder.action(type.name());
builder.title(String.format(type.getTitle(), changeRecord.getType().getDesc()));
builder.content(String.format(type.getContent(), userName, changeRecord.getType().getDesc()));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.TO_APPRROVE.name())
.title(String.format(VisaLogTypeEnum.TO_APPRROVE.getTitle(), changeRecord.getType().getDesc()))
.content(String.format(VisaLogTypeEnum.TO_APPRROVE.getContent(), userName, changeRecord.getType().getDesc()))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case APPROVED_AGRESS:
builder = ChangeRecordLog.builder();
// 动作:审批流某审批人审批通过
// 状态流转:仍然是审批中 [审批中] -> [审批中]
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(String.format(type.getTitle(), userName));
builder.content(String.format(type.getContent(), userName));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.APPROVED_AGRESS.name())
.title(String.format(VisaLogTypeEnum.APPROVED_AGRESS.getTitle(), userName))
.content(String.format(VisaLogTypeEnum.APPROVED_AGRESS.getContent(), userName))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case REVERT_APPROVE:
builder = ChangeRecordLog.builder();
// 动作:审批流撤回审批
// 状态流转:[审批中] -> [审批到待提报|审批到决策中]
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(type.getTitle());
builder.content(String.format(type.getContent(), userName));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.REVERT_APPROVE.name())
.title(VisaLogTypeEnum.REVERT_APPROVE.getTitle())
.content(String.format(VisaLogTypeEnum.REVERT_APPROVE.getContent(), userName))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case REJECT_APPROVE:
builder = ChangeRecordLog.builder();
// 动作:审批流撤回审批
// 状态流转:[审批中] -> [审批到待提报|审批到决策中]
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(String.format(type.getTitle(), userName));
builder.content(String.format(type.getContent(), userName, param.getReason()));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.REJECT_APPROVE.name())
.title(String.format(VisaLogTypeEnum.REJECT_APPROVE.getTitle(), userName))
.content(String.format(VisaLogTypeEnum.REJECT_APPROVE.getContent(), userName, param.getReason()))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case TRANSMIT_APPROVE:
builder = ChangeRecordLog.builder();
// 动作:审批流撤回审批
// 状态流转:[审批中] -> [审批到待提报|审批到决策中]
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
builder.title(type.getTitle());
builder.content(String.format(type.getContent(), userName, param.getTransmitTo(),param.getReason()));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.TRANSMIT_APPROVE.name())
.title(VisaLogTypeEnum.TRANSMIT_APPROVE.getTitle())
.content(String.format(VisaLogTypeEnum.TRANSMIT_APPROVE.getContent(), userName, param.getTransmitTo(),param.getReason()))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case FORBIDED:
builder = ChangeRecordLog.builder();
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
// 动作:作废
// 状态流转:[待提报审核不通过的待提报决策中审核不通过的决策中执行中审批中]-->[审核不通过的决策中]
builder.action(type.name());
builder.title(type.getTitle());
builder.content(String.format(type.getContent(), userName));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
userName = this.buildUserName(param.getPersonId(), param.getOuId(), param.getWorkspaceId());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.FORBIDED.name())
.title(VisaLogTypeEnum.FORBIDED.getTitle())
.content(String.format(VisaLogTypeEnum.FORBIDED.getContent(), userName))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
case APPROVE_COMPLETED:
builder = ChangeRecordLog.builder();
changeRecord = this.changeRecordService.getById(visaId);
// 动作:整个审批通过
// 状态流转:[审批中]-->[已完成]
builder.action(type.name());
builder.title(String.format(type.getTitle(), changeRecord.getType().getDesc()));
builder.content(String.format(type.getContent(), changeRecord.getType().getDesc()));
builder.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY);
builder.visaId(visaId);
logList.add(builder.build());
logList.add(ChangeRecordLog.builder().visaId(visaId)
.action(VisaLogTypeEnum.APPROVE_COMPLETED.name())
.title(String.format(VisaLogTypeEnum.APPROVE_COMPLETED.getTitle(), changeRecord.getType().getDesc()))
.content(String.format(VisaLogTypeEnum.APPROVE_COMPLETED.getContent(), changeRecord.getType().getDesc()))
.orderBy(Constants.CHANGE_STATUS_FILE_ORDER_BY).build());
break;
default:
throw new ServiceException("变签日志类型不匹配");

View File

@ -277,6 +277,11 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
private List<VisaStatusEnum> buildPreStatus(VisaStatusEnum updateStatus) {
List<VisaStatusEnum> preStatusList;
switch (updateStatus) {
case TO_REPORT:
// 动作:暂存
// 状态流转:[待提报审批的待提报]-->[待提报审批到待提报]
preStatusList = Lists.newArrayList(VisaStatusEnum.TO_REPORT, VisaStatusEnum.REPORT_FROM_APPROVE);
break;
case DECIDING:
// 动作:洽商
// 状态流转:[待提报审核不通过的待提报]-->[决策中]