From a27fafefa1dbd2613a92e6d4aa12f1aa78f56e80 Mon Sep 17 00:00:00 2001 From: chenweiwei Date: Wed, 5 Jun 2024 00:44:43 +0800 Subject: [PATCH] 1: 添加状态机 --- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/controller/McVisitController.java | 8 +++++++- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/McVisitStatusNodeInfo.java | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitIsChargedEnums.java | 13 +++++++++++++ zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsEventEnums.java | 23 +++++++++++++++++++++++ zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsStatusNodeEnums.java | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/YesNoEnums.java | 22 ++-------------------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McOperationLogMapper.java | 4 ++++ zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcOperationLogService.java | 7 +------ zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java | 2 +- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McOperationLogServiceImpl.java | 26 +++++++++++++++++--------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------------------- zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/stateMachine/StateMachineNext.java | 30 ++++++++++++++++++++++++++++++ zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McOperationLogMapper.xml | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 13 files changed, 342 insertions(+), 192 deletions(-) create mode 100644 zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/McVisitStatusNodeInfo.java create mode 100644 zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitIsChargedEnums.java create mode 100644 zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsEventEnums.java create mode 100644 zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsStatusNodeEnums.java create mode 100644 zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/stateMachine/StateMachineNext.java diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/controller/McVisitController.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/controller/McVisitController.java index 95b618d..8706c32 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/controller/McVisitController.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/controller/McVisitController.java @@ -141,7 +141,7 @@ public class McVisitController extends BaseController { if ( (StringUtils.isEmpty(mcVisit.getIsCharged()) && StringUtils.isEmpty(mcVisit.getIsVisited())) || - (mcVisit.getIsCharged().equals(YesNoEnums.NO.getCode()) && mcVisit.getIsVisited().equals(YesNoEnums.NO.getCode())) + (mcVisit.getIsCharged().equals(YesNoEnums.N) && mcVisit.getIsVisited().equals(YesNoEnums.N)) ) { return AjaxResult.error("参数错误"); } @@ -215,6 +215,12 @@ public class McVisitController extends BaseController { } + /** + * 发起异动 + * @param mcVisit + * @return + * @throws CloneNotSupportedException + */ @RequirePermission("schsf:mcVisit:modification") @Log(title = "拜访工单", businessType = BusinessType.UPDATE) @PostMapping("/modification") diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/McVisitStatusNodeInfo.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/McVisitStatusNodeInfo.java new file mode 100644 index 0000000..81b4d8b --- /dev/null +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/McVisitStatusNodeInfo.java @@ -0,0 +1,74 @@ +package com.chinagas.modules.schsf.domain; + +public class McVisitStatusNodeInfo { + /** + * 发布状态 + */ + private String publishStatus; + private String publishStatusName; + /** + * 修改状态 + */ + private String modificationStatus; + private String modificationStatusName; + /** + * 状态节点名称 + */ + private String statusNodeCode; + private String statusNodeName; + /** + * 状态名称 + */ + private String statusName; + /** + * 状态名称 + */ + private String statusCode; + + public McVisitStatusNodeInfo(String publishStatus, String publishStatusName, + String modificationStatus, String modificationStatusName, + String statusCode, String statusName, + String statusNodeCode, String statusNodeName) { + this.publishStatus = publishStatus; + this.publishStatusName = publishStatusName; + this.modificationStatus = modificationStatus; + this.modificationStatusName = modificationStatusName; + this.statusNodeCode = statusNodeCode; + this.statusNodeName = statusNodeName; + this.statusName = statusName; + this.statusCode = statusCode; + } + + public String getPublishStatus() { + return publishStatus; + } + + public String getPublishStatusName() { + return publishStatusName; + } + + public String getModificationStatus() { + return modificationStatus; + } + + public String getModificationStatusName() { + return modificationStatusName; + } + + public String getStatusNodeCode() { + return statusNodeCode; + } + + public String getStatusNodeName() { + return statusNodeName; + } + + public String getStatusName() { + return statusName; + } + + public String getStatusCode() { + return statusCode; + } + +} diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitIsChargedEnums.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitIsChargedEnums.java new file mode 100644 index 0000000..34ec5c6 --- /dev/null +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitIsChargedEnums.java @@ -0,0 +1,13 @@ +package com.chinagas.modules.schsf.enums; + + +/** + * 收费-动作 + */ +public enum VisitIsChargedEnums { + YES("Y"), + NO("N"); + private String name; + VisitIsChargedEnums(String name) {this.name = name;} + public String getName() {return name;} +} diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsEventEnums.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsEventEnums.java new file mode 100644 index 0000000..1384042 --- /dev/null +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsEventEnums.java @@ -0,0 +1,23 @@ +package com.chinagas.modules.schsf.enums; + +public enum VisitlsEventEnums { + PUBLISH("发起"), + PUBLISH_1_AUDIT_YES("发起-一级审核(通过)"), + PUBLISH_1_AUDIT_NO("发起-一级审核(驳回)"), + PUBLISH_2_AUDIT_YES("发起-二级审核(通过)"), + PUBLISH_2_AUDIT_NO("发起-二级审核(驳回)"), + MODIFICATION("异动"), + MODIFICATION_1_AUDIT_YES("异动-一级审核(通过)"), + MODIFICATION_1_AUDIT_NO("异动-一级审核(驳回)"), + MODIFICATION_2_AUDIT_YES("异动-二级审核(通过)"), + MODIFICATION_2_AUDIT_NO("异动-二级审核(驳回)"); + private String name; + + VisitlsEventEnums(String name) { + this.name = name; + } + + public String getName() { + return name; + } +} diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsStatusNodeEnums.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsStatusNodeEnums.java new file mode 100644 index 0000000..2ededdd --- /dev/null +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsStatusNodeEnums.java @@ -0,0 +1,71 @@ +package com.chinagas.modules.schsf.enums; + + +import com.chinagas.modules.schsf.domain.McVisitStatusNodeInfo; + +public enum VisitlsStatusNodeEnums { + //发布后状态 + PUBLISH_1_AUDIT(new McVisitStatusNodeInfo( + "PENDING_LEVEL_1_AUDIT", "发布-待一级审核", + null, null, + "APPROVE", "待审批", + "PUBLISH_LEVEL_1_AUDIT", "发布-待一级审核" + )), + //发布-一级审核通过 + PUBLISH_2_AUDIT(new McVisitStatusNodeInfo( + "PENDING_LEVEL_2_AUDIT", "发布-待二级审核", + null, null, + "APPROVE", "待审批", + "PUBLISH_LEVEL_2_AUDIT", "发布-待二级审核" + )), + //发布-二级审核通过 + PUBLISH_APPROVED(new McVisitStatusNodeInfo( + "APPROVED", "发布-通过", + null, null, + "APPROVED", "已完成", + "PUBLISH_APPROVED", "" + )), + //发布- 一级or 二级被驳回 + PUBLISH_REJECTED(new McVisitStatusNodeInfo( + "REJECTED", "发布-驳回", + null, null, + "EDITING", "待修改", + "PUBLISH_REJECTED", "发布-驳回" + )), + //异动-发起异动 + MODIFICATION_1_AUDIT(new McVisitStatusNodeInfo( + "APPROVED", "发布-通过", + "PENDING_LEVEL_1_AUDIT", "异动-待一级审核", + "APPROVE", "待审批", + "MODIFICATION_1_AUDIT", "异动-待一级审核" + )), + //异动-一级审核通过 + MODIFICATION_2_AUDIT(new McVisitStatusNodeInfo( + "APPROVED", "发布-通过", + "PENDING_LEVEL_2_AUDIT", "异动-待一级审核", + "APPROVE", "待审批", + "MODIFICATION_2_AUDIT", "异动-待二级审核" + )), + //异动-二级审核通过 + MODIFICATION_APPROVED(new McVisitStatusNodeInfo( + "APPROVED", "发布-通过", + "APPROVED", "异动-通过", + "APPROVED", "已完成", + "MODIFICATION_APPROVED", "" + )), + //异动-一级or二级被驳回 + MODIFICATION_REJECTED(new McVisitStatusNodeInfo( + "APPROVED", "发布-通过", + "REJECTED", "异动-驳回", + "EDITING", "待修改", + "MODIFICATION_REJECTED", "异动-驳回" + )); + private final McVisitStatusNodeInfo McVisitStatusNodeInfo; + + VisitlsStatusNodeEnums(McVisitStatusNodeInfo McVisitStatusNodeInfo) { + this.McVisitStatusNodeInfo = McVisitStatusNodeInfo; + } + public McVisitStatusNodeInfo getInfo() { + return McVisitStatusNodeInfo; + } + } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/YesNoEnums.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/YesNoEnums.java index 76b77ab..862d1fc 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/YesNoEnums.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/YesNoEnums.java @@ -1,24 +1,6 @@ package com.chinagas.modules.schsf.enums; public enum YesNoEnums { - - YES("Y", "是"), - NO("N", "否"); - - private final String code; - private final String info; - - - public String getCode() { - return code; - } - - public String getInfo() { - return info; - } - - YesNoEnums(String code, String info) { - this.code = code; - this.info = info; - } + Y, + N } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McOperationLogMapper.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McOperationLogMapper.java index 3ca175b..8684241 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McOperationLogMapper.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McOperationLogMapper.java @@ -1,6 +1,7 @@ package com.chinagas.modules.schsf.mapper; import com.chinagas.modules.schsf.domain.McOperationLog; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -28,4 +29,7 @@ public interface McOperationLogMapper * @return 结果 */ public int insertMcOperationLog(McOperationLog mcOperationLog); + + List getUserMenuPermsByRoles(@Param("userId") String userId,@Param("menuPerms") String menuPerms,@Param("dataId") String dataId); + } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcOperationLogService.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcOperationLogService.java index 21af3c8..ef56b77 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcOperationLogService.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcOperationLogService.java @@ -2,7 +2,6 @@ package com.chinagas.modules.schsf.service; import com.chinagas.modules.schsf.domain.McOperationLog; -import java.time.LocalDateTime; import java.util.List; /** @@ -21,9 +20,5 @@ public interface IMcOperationLogService */ public List selectMcOperationLogList(McOperationLog mcOperationLog); - - public int insertMcOperationLog(String dataForm, Long dataId, String procRole, String procUser, String procAccount, String procId,LocalDateTime procTime, - String opName, String opType, - String opRemark, String beforeDataJson, String afterDataJson); - + public int insertMcOperationLog(String dataForm, Long dataId,String menuCode, String opName, String opType, String opRemark, String beforeDataJson, String afterDataJson); } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java index 8a1cfad..f4a56f9 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java @@ -41,7 +41,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { */ @Override public int insertMcVisitByMcIgnition(McVisit mcVisit) { - if (StringUtils.isEmpty(mcVisit.getIsCharged()) || mcVisit.getIsCharged().equals(YesNoEnums.NO.getCode())) { + if (StringUtils.isEmpty(mcVisit.getIsCharged()) || mcVisit.getIsCharged().equals(YesNoEnums.N)) { return 0; } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McOperationLogServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McOperationLogServiceImpl.java index d679845..e298c26 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McOperationLogServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McOperationLogServiceImpl.java @@ -1,5 +1,7 @@ package com.chinagas.modules.schsf.service.impl; +import com.chinagas.common.core.utils.DateUtils; +import com.chinagas.common.security.utils.SecurityUtils; import com.chinagas.modules.schsf.domain.McOperationLog; import com.chinagas.modules.schsf.mapper.McOperationLogMapper; import com.chinagas.modules.schsf.service.IMcOperationLogService; @@ -16,8 +18,7 @@ import java.util.List; * @date 2024-05-30 */ @Service -public class McOperationLogServiceImpl implements IMcOperationLogService -{ +public class McOperationLogServiceImpl implements IMcOperationLogService { @Autowired private McOperationLogMapper mcOperationLogMapper; @@ -28,17 +29,24 @@ public class McOperationLogServiceImpl implements IMcOperationLogService * @return 市场化收费相关记录 */ @Override - public List selectMcOperationLogList(McOperationLog mcOperationLog) - { + public List selectMcOperationLogList(McOperationLog mcOperationLog) { return mcOperationLogMapper.selectMcOperationLogList(mcOperationLog); } - @Override - public int insertMcOperationLog( - String dataForm, Long dataId, - String procRole, String procUser, String procAccount, String procId,LocalDateTime procTime, String opName, String opType, String opRemark, String beforeDataJson, String afterDataJson) { - McOperationLog mcOperationLog = new McOperationLog(dataForm, dataId, procRole, procUser, procAccount,procId, procTime, opName, opType, opRemark, beforeDataJson, afterDataJson); + public int insertMcOperationLog(String dataForm, Long dataId, String menuCode, String opName, String opType, String opRemark, String beforeDataJson, String afterDataJson) { + LocalDateTime time = DateUtils.getNowLocal(); + Long userId = SecurityUtils.getUserId(); + String userAccount = SecurityUtils.getUsername(); + String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); + String procRole = ""; + List roles = mcOperationLogMapper.getUserMenuPermsByRoles(userId.toString(), menuCode, dataId.toString()); + if (roles != null && roles.size() > 0) { + for (int i = 0; i < roles.size(); i++) { + procRole = i == 0 ? procRole + roles.get(i) : procRole + "," + roles.get(i); + } + } + McOperationLog mcOperationLog = new McOperationLog(dataForm, dataId, procRole, userName, userAccount, userId.toString(), time, opName, opType, opRemark, beforeDataJson, afterDataJson); return mcOperationLogMapper.insertMcOperationLog(mcOperationLog); } diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java index b472797..0eeb35c 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McVisitServiceImpl.java @@ -8,6 +8,7 @@ import com.chinagas.common.core.utils.StringUtils; import com.chinagas.common.datascope.annotation.DataScope; import com.chinagas.common.security.utils.SecurityUtils; import com.chinagas.modules.schsf.domain.McVisit; +import com.chinagas.modules.schsf.domain.McVisitStatusNodeInfo; import com.chinagas.modules.schsf.domain.vo.McVisitAuditVo; import com.chinagas.modules.schsf.domain.vo.McVisitVo; import com.chinagas.modules.schsf.enums.*; @@ -15,6 +16,7 @@ import com.chinagas.modules.schsf.mapper.McVisitMapper; import com.chinagas.modules.schsf.service.IMcIgnitionService; import com.chinagas.modules.schsf.service.IMcOperationLogService; import com.chinagas.modules.schsf.service.IMcVisitService; +import com.chinagas.modules.schsf.stateMachine.StateMachineNext; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -128,8 +130,8 @@ public class McVisitServiceImpl implements IMcVisitService { String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); - mcVisit.setIsCharged(StringUtils.nvl(mcVisit.getIsCharged(), YesNoEnums.NO.getCode())); - mcVisit.setIsVisited(StringUtils.nvl(mcVisit.getIsVisited(), YesNoEnums.NO.getCode())); + mcVisit.setIsCharged(StringUtils.nvl(mcVisit.getIsCharged(), YesNoEnums.N.toString())); + mcVisit.setIsVisited(StringUtils.nvl(mcVisit.getIsVisited(), YesNoEnums.N.toString())); mcVisit.setBillingPersonAccount(userAccount); mcVisit.setBillingPersonId(SecurityUtils.getUserId()); @@ -142,122 +144,29 @@ public class McVisitServiceImpl implements IMcVisitService { mcVisit.setTicketNumber(getTicketNumber()); //工单类型 mcVisit.setTicketType(getTicketType(mcVisit.getIsCharged(), mcVisit.getIsVisited())); - getStatusNodeName(mcVisit.getIsCharged().equals(YesNoEnums.YES.getCode()) ? VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode() : VisitPublishStatusEnums.APPROVED.getCode(), null, null, mcVisit); - int id = mcVisitMapper.insertMcVisit(mcVisit); + getStatusNodeInfo(mcVisit, VisitlsEventEnums.PUBLISH); + int i = mcVisitMapper.insertMcVisit(mcVisit); //1:添加记录 - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_收费员", - userName, userAccount, userId, mcVisit.getCreateTime(), +// iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_收费员", +// userName, userAccount, userId, mcVisit.getCreateTime(), +// "发起", "1", null, null, JSON.toJSONString(mcVisit)); + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(),"schsf:mcVisit:add", "发起", "1", null, null, JSON.toJSONString(mcVisit)); - - return id; + return i; } - private void getStatusNodeName(String publishStatus, String modificationStatus, String defFlag, McVisit mcVisit) { - if (StringUtils.isNotEmpty(defFlag) && defFlag.equals("1")) { -// mcVisit.setDefFlag("1"); - mcVisit.setStatusNodeName(""); - mcVisit.setStatusCode(VisitStatusEnums.CANCEL.getCode()); - mcVisit.setStatusName(VisitStatusEnums.CANCEL.getInfo()); - return; - } - //状态 - mcVisit.setPublishStatus(publishStatus); - mcVisit.setModificationStatus(modificationStatus); - String statusNodeName = null; - String statusCode = null; - String statusName = null; - if (StringUtils.isEmpty(modificationStatus)) { - if (publishStatus == VisitPublishStatusEnums.APPROVED.getCode()) { - // 发布通过 - statusNodeName = ""; - statusCode = VisitStatusEnums.APPROVED.getCode(); - statusName = VisitStatusEnums.APPROVED.getInfo(); - } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) { - // 发布-待一级审核 - statusNodeName = "发布-待一级审核"; - statusCode = VisitStatusEnums.APPROVE.getCode(); - statusName = VisitStatusEnums.APPROVE.getInfo(); - } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) { - // 发布-待二级审核 - statusNodeName = "发布-待二级审核"; - statusCode = VisitStatusEnums.APPROVE.getCode(); - statusName = VisitStatusEnums.APPROVE.getInfo(); - } else if (publishStatus == VisitPublishStatusEnums.REJECTED.getCode()) { - // 发布-发布-驳回 - statusNodeName = "发布-驳回"; - statusCode = VisitStatusEnums.EDITING.getCode(); - statusName = VisitStatusEnums.EDITING.getInfo(); - } else if (publishStatus == VisitPublishStatusEnums.EDITING.getCode()) { - // 发布-编辑 - statusNodeName = "发布-待收费员编辑"; - statusCode = VisitStatusEnums.EDITING.getCode(); - statusName = VisitStatusEnums.EDITING.getInfo(); - } else { - statusNodeName = ""; - } - } else { - if (modificationStatus == VisitModificationStatusEnums.APPROVED.getCode()) { - // 异动-通过 - statusNodeName = "修改-通过"; - statusCode = VisitStatusEnums.APPROVED.getCode(); - statusName = VisitStatusEnums.APPROVED.getInfo(); - } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) { - // 异动-待一级审核 - statusNodeName = "修改-待一级审核"; - statusCode = VisitStatusEnums.APPROVE.getCode(); - statusName = VisitStatusEnums.APPROVE.getInfo(); - } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) { - // 异动-待二级审核 - statusNodeName = "修改-待二级审核"; - statusCode = VisitStatusEnums.APPROVE.getCode(); - statusName = VisitStatusEnums.APPROVE.getInfo(); - } else if (modificationStatus == VisitModificationStatusEnums.REJECTED.getCode()) { - // 异动-驳回 - statusNodeName = "修改-驳回"; - statusCode = VisitStatusEnums.EDITING.getCode(); - statusName = VisitStatusEnums.EDITING.getInfo(); - } else { - statusNodeName = ""; - } - } - mcVisit.setStatusNodeName(statusNodeName); - mcVisit.setStatusCode(statusCode); - mcVisit.setStatusName(statusName); + private McVisit getStatusNodeInfo(McVisit mcVisit, VisitlsEventEnums event) { + VisitlsStatusNodeEnums visitlsStatusNodeEnums = StateMachineNext.getNext(mcVisit.getIsCharged(), VisitlsEventEnums.PUBLISH); + McVisitStatusNodeInfo info = visitlsStatusNodeEnums.getInfo(); + mcVisit.setPublishStatus(info.getPublishStatus()); + mcVisit.setModificationStatus(info.getModificationStatus()); + mcVisit.setStatusNodeName(info.getStatusNodeName()); + mcVisit.setStatusCode(info.getStatusCode()); + mcVisit.setStatusName(info.getStatusName()); + return mcVisit; } -// private String getStatusNodeName(String publishStatus, String modificationStatus) { -// String statusNodeName = null; -// if (StringUtils.isEmpty(modificationStatus)) { -// if (publishStatus == VisitPublishStatusEnums.APPROVED.getCode()) { -// statusNodeName = "发布-通过"; -// } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) { -// statusNodeName = "发布-待一级审核"; -// } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) { -// statusNodeName = "发布-待二级审核"; -// } else if (publishStatus == VisitPublishStatusEnums.REJECTED.getCode()) { -// statusNodeName = "发布-驳回"; -// } else if (publishStatus == VisitPublishStatusEnums.EDITING.getCode()) { -// statusNodeName = "发布-待收费员编辑"; -// } else { -// statusNodeName = ""; -// } -// } else { -// if (modificationStatus == VisitModificationStatusEnums.APPROVED.getCode()) { -// statusNodeName = "修改-通过"; -// } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) { -// statusNodeName = "修改-待一级审核"; -// } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) { -// statusNodeName = "修改-待二级审核"; -// } else if (modificationStatus == VisitModificationStatusEnums.REJECTED.getCode()) { -// statusNodeName = "修改-驳回"; -// } else { -// statusNodeName = ""; -// } -// } -// return statusNodeName; -// } - /** * 获取工单号 * @@ -285,11 +194,11 @@ public class McVisitServiceImpl implements IMcVisitService { * @return */ public String getTicketType(String isCharged, String isVisited) { - if (YesNoEnums.YES.getCode().equals(isCharged) && YesNoEnums.YES.getCode().equals(isVisited)) { + if (YesNoEnums.Y.equals(isCharged) && YesNoEnums.Y.equals(isVisited)) { return VisitTypeEnums.VISITANDSFEES.getCode(); - } else if (YesNoEnums.YES.getCode().equals(isCharged) || YesNoEnums.NO.getCode().equals(isVisited)) { + } else if (YesNoEnums.Y.equals(isCharged) || YesNoEnums.N.equals(isVisited)) { return VisitTypeEnums.CHARGE.getCode(); - } else if (YesNoEnums.NO.getCode().equals(isCharged) || YesNoEnums.YES.getCode().equals(isVisited)) { + } else if (YesNoEnums.N.equals(isCharged) || YesNoEnums.Y.equals(isVisited)) { return VisitTypeEnums.VISIT.getCode(); } else { return VisitTypeEnums.OTHER.getCode(); @@ -315,15 +224,14 @@ public class McVisitServiceImpl implements IMcVisitService { mcVisit_new.setUpdateTime(updateTime); mcVisit_new.setUpdateBy(userId); - mcVisit_new.setIsCharged(StringUtils.nvl(mcVisit_new.getIsCharged(), YesNoEnums.NO.getCode())); - mcVisit_new.setIsVisited(StringUtils.nvl(mcVisit_new.getIsVisited(), YesNoEnums.NO.getCode())); + mcVisit_new.setIsCharged(StringUtils.nvl(mcVisit_new.getIsCharged(), YesNoEnums.N.toString())); + mcVisit_new.setIsVisited(StringUtils.nvl(mcVisit_new.getIsVisited(), YesNoEnums.N.toString())); //工单类型 mcVisit_new.setTicketType(getTicketType(mcVisit_new.getIsCharged(), mcVisit_new.getIsVisited())); - getStatusNodeName(mcVisit_new.getIsCharged().equals(YesNoEnums.YES.getCode()) ? VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode() : VisitPublishStatusEnums.APPROVED.getCode(), null, null, mcVisit_new); + getStatusNodeInfo(mcVisit_new, VisitlsEventEnums.PUBLISH); int i = mcVisitMapper.updateMcVisit(mcVisit_new); //1:添加记录 - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "项目公司_收费员", - userName, userAccount, userId, updateTime, + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "schsf:mcVisit:edit", "重新发起", "1", null, null, JSON.toJSONString(mcVisit_new)); return i; } @@ -367,56 +275,47 @@ public class McVisitServiceImpl implements IMcVisitService { McVisit mcVisit_new = mcVisit.clone(); mcVisit_new.setUpdateTime(updateTime); mcVisit_new.setUpdateBy(userId); - + VisitlsEventEnums visitlsEventEnums = null; + String menuCode=null; switch (mcVisitAuditVo.getType()) { case "1": //发布-一级审核 if (!mcVisit.getPublishStatus().equals(VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode())) { throw new RuntimeException("状态异常"); } - getStatusNodeName(status.equals("Y") ? VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode() : VisitPublishStatusEnums.REJECTED.getCode(), null, null, mcVisit_new); - mcVisitMapper.updateMcVisit(mcVisit_new); - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_市场负责人", - userName, userAccount, userId, updateTime, - status.equals("Y") ? "通过" : "驳回", "1", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new)); + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.PUBLISH_1_AUDIT_YES : VisitlsEventEnums.PUBLISH_1_AUDIT_NO; + menuCode= "schsf:mcVisit:ticket_submitAuditOne"; break; case "2": if (!mcVisit.getPublishStatus().equals(VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode())) { throw new RuntimeException("状态异常"); } - getStatusNodeName(status.equals("Y") ? VisitPublishStatusEnums.APPROVED.getCode() : VisitPublishStatusEnums.REJECTED.getCode(), null, null, mcVisit_new); - mcVisitMapper.updateMcVisit(mcVisit_new); - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_财务", - userName, userAccount, userId, updateTime, - status.equals("Y") ? "通过" : "驳回", "1", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new)); - //2:判断是否需要添加至点火记录 - iMcIgnitionService.insertMcVisitByMcIgnition(mcVisit); + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.PUBLISH_2_AUDIT_YES : VisitlsEventEnums.PUBLISH_2_AUDIT_NO; + menuCode= "schsf:mcVisit:ticket_submitAuditTwo"; break; case "3": //发布-一级审核 if (!mcVisit.getModificationStatus().equals(VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode())) { throw new RuntimeException("状态异常"); } - getStatusNodeName(mcVisit_new.getPublishStatus(), status.equals("Y") ? VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode() : VisitModificationStatusEnums.REJECTED.getCode(), null, mcVisit_new); - mcVisitMapper.updateMcVisit(mcVisit_new); - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_市场负责人", - userName, userAccount, userId, updateTime, - status.equals("Y") ? "通过" : "驳回", "2", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new)); + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.MODIFICATION_1_AUDIT_YES : VisitlsEventEnums.MODIFICATION_1_AUDIT_NO; + menuCode= "schsf:mcVisit:modification_submitAuditOne"; break; case "4": //发布-一级审核 if (!mcVisit.getModificationStatus().equals(VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode())) { throw new RuntimeException("状态异常"); } - getStatusNodeName(mcVisit_new.getPublishStatus(), status.equals("Y") ? VisitModificationStatusEnums.APPROVED.getCode() : VisitModificationStatusEnums.REJECTED.getCode(), null, mcVisit_new); - mcVisitMapper.updateMcVisit(mcVisit_new); - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_财务", - userName, userAccount, userId, updateTime, - status.equals("Y") ? "通过" : "驳回", "2", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new)); + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.MODIFICATION_2_AUDIT_YES : VisitlsEventEnums.MODIFICATION_2_AUDIT_NO; + menuCode= "schsf:mcVisit:modification_submitAuditTwo"; break; default: throw new RuntimeException("非法请求"); } + getStatusNodeInfo(mcVisit_new, visitlsEventEnums); + mcVisitMapper.updateMcVisit(mcVisit_new); + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), menuCode, + status.equals("Y") ? "通过" : "驳回", "2", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new)); } @DataScope(deptAlias = "d", userAlias = "u") @@ -438,12 +337,11 @@ public class McVisitServiceImpl implements IMcVisitService { McVisit mcVisit_new = mcVisit_old.clone(); mcVisit_new.setUpdateTime(updateTime); mcVisit_new.setUpdateBy(userId); - getStatusNodeName(mcVisit_old.getPublishStatus(), mcVisit_old.getIsCharged().equals(YesNoEnums.YES.getCode()) ? VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode() : VisitModificationStatusEnums.APPROVED.getCode(), null, mcVisit_new); + getStatusNodeInfo(mcVisit_new, VisitlsEventEnums.MODIFICATION); int i = mcVisitMapper.updateMcVisit(mcVisit_new); //1:添加记录 - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "项目公司", - userName, userAccount, userId, updateTime, - "发起异动", "2", Modification_mcVisit.getRemark(), JSON.toJSONString(mcVisit_old), JSON.toJSONString(mcVisit_new)); + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "schsf:mcVisit:modification", + "发起异动", "2", Modification_mcVisit.getRemark(), JSON.toJSONString(mcVisit_old), JSON.toJSONString(mcVisit_new)); return i; } @@ -457,15 +355,14 @@ public class McVisitServiceImpl implements IMcVisitService { String userId = SecurityUtils.getUserId().toString(); String userAccount = SecurityUtils.getUsername(); String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); - McVisit mcVisit_new = mcVisit.clone(); mcVisit_new.setUpdateTime(updateTime); mcVisit_new.setUpdateBy(userId); - getStatusNodeName(mcVisit_new.getPublishStatus(), mcVisit_new.getIsVisited(), "1", mcVisit_new); - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_市场负责人", - userName, userAccount, userId, updateTime, + mcVisit.setStatusNodeName(""); + mcVisit.setStatusCode(VisitStatusEnums.CANCEL.getCode()); + mcVisit.setStatusName(VisitStatusEnums.CANCEL.getInfo()); + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "schsf:mcVisit:cancel", "作废", "1", null, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new)); - //2:作废至点火记录 iMcIgnitionService.updateMcIgnitionCancel(id); return mcVisitMapper.updateMcVisit(mcVisit_new); @@ -493,9 +390,9 @@ public class McVisitServiceImpl implements IMcVisitService { public List selectStatusNodeUserList(Long id) { McVisit mcVisit = mcVisitMapper.selectMcVisitById(id); if (BeanUtil.isEmpty(mcVisit) || - StringUtils.isEmpty(mcVisit.getStatusCode()) || - mcVisit.getStatusCode().equals(VisitStatusEnums.APPROVED) || - mcVisit.getStatusCode().equals(VisitStatusEnums.CANCEL)) { + StringUtils.isEmpty(mcVisit.getStatusCode()) || + mcVisit.getStatusCode().equals(VisitStatusEnums.APPROVED) || + mcVisit.getStatusCode().equals(VisitStatusEnums.CANCEL)) { return null; } List statusNodeUserList = new ArrayList<>(); diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/stateMachine/StateMachineNext.java b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/stateMachine/StateMachineNext.java new file mode 100644 index 0000000..9f5d786 --- /dev/null +++ b/zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/stateMachine/StateMachineNext.java @@ -0,0 +1,30 @@ +package com.chinagas.modules.schsf.stateMachine; + +import com.chinagas.modules.schsf.enums.VisitlsEventEnums; +import com.chinagas.modules.schsf.enums.VisitlsStatusNodeEnums; +import com.chinagas.modules.schsf.enums.YesNoEnums; +import com.google.common.collect.HashBasedTable; + +public class StateMachineNext { + public static VisitlsStatusNodeEnums getNext(String state, VisitlsEventEnums event) { + HashBasedTable hashBasedTable = HashBasedTable.create(); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH, VisitlsStatusNodeEnums.PUBLISH_1_AUDIT); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_1_AUDIT_YES, VisitlsStatusNodeEnums.PUBLISH_2_AUDIT); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_1_AUDIT_NO, VisitlsStatusNodeEnums.PUBLISH_REJECTED); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_2_AUDIT_YES, VisitlsStatusNodeEnums.PUBLISH_APPROVED); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_2_AUDIT_NO, VisitlsStatusNodeEnums.PUBLISH_REJECTED); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION, VisitlsStatusNodeEnums.MODIFICATION_1_AUDIT); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_1_AUDIT_YES, VisitlsStatusNodeEnums.MODIFICATION_2_AUDIT); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_1_AUDIT_NO, VisitlsStatusNodeEnums.MODIFICATION_REJECTED); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_2_AUDIT_YES, VisitlsStatusNodeEnums.MODIFICATION_APPROVED); + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_2_AUDIT_NO, VisitlsStatusNodeEnums.MODIFICATION_REJECTED); + hashBasedTable.put(YesNoEnums.N.toString(), VisitlsEventEnums.PUBLISH, VisitlsStatusNodeEnums.PUBLISH_APPROVED); + hashBasedTable.put(YesNoEnums.N.toString(), VisitlsEventEnums.MODIFICATION, VisitlsStatusNodeEnums.MODIFICATION_APPROVED); + VisitlsStatusNodeEnums statusEnum = hashBasedTable.get(state, event); + if (statusEnum == null) { + throw new IllegalArgumentException("未找到状态"); + } + return statusEnum; + } + +} diff --git a/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McOperationLogMapper.xml b/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McOperationLogMapper.xml index 2005272..a78ce2b 100644 --- a/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McOperationLogMapper.xml +++ b/zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McOperationLogMapper.xml @@ -89,5 +89,52 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + -- libgit2 0.21.2