diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaStatusEnum.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaStatusEnum.java index 74ce8cf1..fefa3774 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaStatusEnum.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaStatusEnum.java @@ -33,7 +33,7 @@ public enum VisaStatusEnum { /** * 可以编辑变更签证单的状态 */ - private static Set editFormStatus = Sets.newHashSet(DECIDING, EXECUTING); + private static Set editFormStatus = Sets.newHashSet(DECIDING, EXECUTING, DECIDING_FROM_APPROVE); private final String code; private final String desc; diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordLogServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordLogServiceImpl.java index cfa01526..172765f4 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordLogServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordLogServiceImpl.java @@ -85,163 +85,142 @@ public class ChangeRecordLogServiceImpl extends ServiceImpl 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("变签日志类型不匹配"); diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index ad4b405b..beedf3c1 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -277,6 +277,11 @@ public class ChangeRecordServiceImpl extends ServiceImpl buildPreStatus(VisaStatusEnum updateStatus) { List preStatusList; switch (updateStatus) { + case TO_REPORT: + // 动作:暂存 + // 状态流转:[待提报|审批的待提报]-->[待提报|审批到待提报] + preStatusList = Lists.newArrayList(VisaStatusEnum.TO_REPORT, VisaStatusEnum.REPORT_FROM_APPROVE); + break; case DECIDING: // 动作:洽商 // 状态流转:[待提报|审核不通过的待提报]-->[决策中]