Commit a27fafefa1dbd2613a92e6d4aa12f1aa78f56e80

Authored by 陈威
1 parent 6a4a0a66
Exists in dev

1: 添加状态机

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 {
141 141  
142 142 if (
143 143 (StringUtils.isEmpty(mcVisit.getIsCharged()) && StringUtils.isEmpty(mcVisit.getIsVisited())) ||
144   - (mcVisit.getIsCharged().equals(YesNoEnums.NO.getCode()) && mcVisit.getIsVisited().equals(YesNoEnums.NO.getCode()))
  144 + (mcVisit.getIsCharged().equals(YesNoEnums.N) && mcVisit.getIsVisited().equals(YesNoEnums.N))
145 145 ) {
146 146 return AjaxResult.error("参数错误");
147 147 }
... ... @@ -215,6 +215,12 @@ public class McVisitController extends BaseController {
215 215 }
216 216  
217 217  
  218 + /**
  219 + * 发起异动
  220 + * @param mcVisit
  221 + * @return
  222 + * @throws CloneNotSupportedException
  223 + */
218 224 @RequirePermission("schsf:mcVisit:modification")
219 225 @Log(title = "拜访工单", businessType = BusinessType.UPDATE)
220 226 @PostMapping("/modification")
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/McVisitStatusNodeInfo.java 0 → 100644
... ... @@ -0,0 +1,74 @@
  1 +package com.chinagas.modules.schsf.domain;
  2 +
  3 +public class McVisitStatusNodeInfo {
  4 + /**
  5 + * 发布状态
  6 + */
  7 + private String publishStatus;
  8 + private String publishStatusName;
  9 + /**
  10 + * 修改状态
  11 + */
  12 + private String modificationStatus;
  13 + private String modificationStatusName;
  14 + /**
  15 + * 状态节点名称
  16 + */
  17 + private String statusNodeCode;
  18 + private String statusNodeName;
  19 + /**
  20 + * 状态名称
  21 + */
  22 + private String statusName;
  23 + /**
  24 + * 状态名称
  25 + */
  26 + private String statusCode;
  27 +
  28 + public McVisitStatusNodeInfo(String publishStatus, String publishStatusName,
  29 + String modificationStatus, String modificationStatusName,
  30 + String statusCode, String statusName,
  31 + String statusNodeCode, String statusNodeName) {
  32 + this.publishStatus = publishStatus;
  33 + this.publishStatusName = publishStatusName;
  34 + this.modificationStatus = modificationStatus;
  35 + this.modificationStatusName = modificationStatusName;
  36 + this.statusNodeCode = statusNodeCode;
  37 + this.statusNodeName = statusNodeName;
  38 + this.statusName = statusName;
  39 + this.statusCode = statusCode;
  40 + }
  41 +
  42 + public String getPublishStatus() {
  43 + return publishStatus;
  44 + }
  45 +
  46 + public String getPublishStatusName() {
  47 + return publishStatusName;
  48 + }
  49 +
  50 + public String getModificationStatus() {
  51 + return modificationStatus;
  52 + }
  53 +
  54 + public String getModificationStatusName() {
  55 + return modificationStatusName;
  56 + }
  57 +
  58 + public String getStatusNodeCode() {
  59 + return statusNodeCode;
  60 + }
  61 +
  62 + public String getStatusNodeName() {
  63 + return statusNodeName;
  64 + }
  65 +
  66 + public String getStatusName() {
  67 + return statusName;
  68 + }
  69 +
  70 + public String getStatusCode() {
  71 + return statusCode;
  72 + }
  73 +
  74 +}
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitIsChargedEnums.java 0 → 100644
... ... @@ -0,0 +1,13 @@
  1 +package com.chinagas.modules.schsf.enums;
  2 +
  3 +
  4 +/**
  5 + * 收费-动作
  6 + */
  7 +public enum VisitIsChargedEnums {
  8 + YES("Y"),
  9 + NO("N");
  10 + private String name;
  11 + VisitIsChargedEnums(String name) {this.name = name;}
  12 + public String getName() {return name;}
  13 +}
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsEventEnums.java 0 → 100644
... ... @@ -0,0 +1,23 @@
  1 +package com.chinagas.modules.schsf.enums;
  2 +
  3 +public enum VisitlsEventEnums {
  4 + PUBLISH("发起"),
  5 + PUBLISH_1_AUDIT_YES("发起-一级审核(通过)"),
  6 + PUBLISH_1_AUDIT_NO("发起-一级审核(驳回)"),
  7 + PUBLISH_2_AUDIT_YES("发起-二级审核(通过)"),
  8 + PUBLISH_2_AUDIT_NO("发起-二级审核(驳回)"),
  9 + MODIFICATION("异动"),
  10 + MODIFICATION_1_AUDIT_YES("异动-一级审核(通过)"),
  11 + MODIFICATION_1_AUDIT_NO("异动-一级审核(驳回)"),
  12 + MODIFICATION_2_AUDIT_YES("异动-二级审核(通过)"),
  13 + MODIFICATION_2_AUDIT_NO("异动-二级审核(驳回)");
  14 + private String name;
  15 +
  16 + VisitlsEventEnums(String name) {
  17 + this.name = name;
  18 + }
  19 +
  20 + public String getName() {
  21 + return name;
  22 + }
  23 +}
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/VisitlsStatusNodeEnums.java 0 → 100644
... ... @@ -0,0 +1,71 @@
  1 +package com.chinagas.modules.schsf.enums;
  2 +
  3 +
  4 +import com.chinagas.modules.schsf.domain.McVisitStatusNodeInfo;
  5 +
  6 +public enum VisitlsStatusNodeEnums {
  7 + //发布后状态
  8 + PUBLISH_1_AUDIT(new McVisitStatusNodeInfo(
  9 + "PENDING_LEVEL_1_AUDIT", "发布-待一级审核",
  10 + null, null,
  11 + "APPROVE", "待审批",
  12 + "PUBLISH_LEVEL_1_AUDIT", "发布-待一级审核"
  13 + )),
  14 + //发布-一级审核通过
  15 + PUBLISH_2_AUDIT(new McVisitStatusNodeInfo(
  16 + "PENDING_LEVEL_2_AUDIT", "发布-待二级审核",
  17 + null, null,
  18 + "APPROVE", "待审批",
  19 + "PUBLISH_LEVEL_2_AUDIT", "发布-待二级审核"
  20 + )),
  21 + //发布-二级审核通过
  22 + PUBLISH_APPROVED(new McVisitStatusNodeInfo(
  23 + "APPROVED", "发布-通过",
  24 + null, null,
  25 + "APPROVED", "已完成",
  26 + "PUBLISH_APPROVED", ""
  27 + )),
  28 + //发布- 一级or 二级被驳回
  29 + PUBLISH_REJECTED(new McVisitStatusNodeInfo(
  30 + "REJECTED", "发布-驳回",
  31 + null, null,
  32 + "EDITING", "待修改",
  33 + "PUBLISH_REJECTED", "发布-驳回"
  34 + )),
  35 + //异动-发起异动
  36 + MODIFICATION_1_AUDIT(new McVisitStatusNodeInfo(
  37 + "APPROVED", "发布-通过",
  38 + "PENDING_LEVEL_1_AUDIT", "异动-待一级审核",
  39 + "APPROVE", "待审批",
  40 + "MODIFICATION_1_AUDIT", "异动-待一级审核"
  41 + )),
  42 + //异动-一级审核通过
  43 + MODIFICATION_2_AUDIT(new McVisitStatusNodeInfo(
  44 + "APPROVED", "发布-通过",
  45 + "PENDING_LEVEL_2_AUDIT", "异动-待一级审核",
  46 + "APPROVE", "待审批",
  47 + "MODIFICATION_2_AUDIT", "异动-待二级审核"
  48 + )),
  49 + //异动-二级审核通过
  50 + MODIFICATION_APPROVED(new McVisitStatusNodeInfo(
  51 + "APPROVED", "发布-通过",
  52 + "APPROVED", "异动-通过",
  53 + "APPROVED", "已完成",
  54 + "MODIFICATION_APPROVED", ""
  55 + )),
  56 + //异动-一级or二级被驳回
  57 + MODIFICATION_REJECTED(new McVisitStatusNodeInfo(
  58 + "APPROVED", "发布-通过",
  59 + "REJECTED", "异动-驳回",
  60 + "EDITING", "待修改",
  61 + "MODIFICATION_REJECTED", "异动-驳回"
  62 + ));
  63 + private final McVisitStatusNodeInfo McVisitStatusNodeInfo;
  64 +
  65 + VisitlsStatusNodeEnums(McVisitStatusNodeInfo McVisitStatusNodeInfo) {
  66 + this.McVisitStatusNodeInfo = McVisitStatusNodeInfo;
  67 + }
  68 + public McVisitStatusNodeInfo getInfo() {
  69 + return McVisitStatusNodeInfo;
  70 + }
  71 + }
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/enums/YesNoEnums.java
1 1 package com.chinagas.modules.schsf.enums;
2 2  
3 3 public enum YesNoEnums {
4   -
5   - YES("Y", "是"),
6   - NO("N", "否");
7   -
8   - private final String code;
9   - private final String info;
10   -
11   -
12   - public String getCode() {
13   - return code;
14   - }
15   -
16   - public String getInfo() {
17   - return info;
18   - }
19   -
20   - YesNoEnums(String code, String info) {
21   - this.code = code;
22   - this.info = info;
23   - }
  4 + Y,
  5 + N
24 6 }
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McOperationLogMapper.java
1 1 package com.chinagas.modules.schsf.mapper;
2 2  
3 3 import com.chinagas.modules.schsf.domain.McOperationLog;
  4 +import org.apache.ibatis.annotations.Param;
4 5  
5 6 import java.util.List;
6 7  
... ... @@ -28,4 +29,7 @@ public interface McOperationLogMapper
28 29 * @return 结果
29 30 */
30 31 public int insertMcOperationLog(McOperationLog mcOperationLog);
  32 +
  33 + List<String> getUserMenuPermsByRoles(@Param("userId") String userId,@Param("menuPerms") String menuPerms,@Param("dataId") String dataId);
  34 +
31 35 }
... ...
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;
2 2  
3 3 import com.chinagas.modules.schsf.domain.McOperationLog;
4 4  
5   -import java.time.LocalDateTime;
6 5 import java.util.List;
7 6  
8 7 /**
... ... @@ -21,9 +20,5 @@ public interface IMcOperationLogService
21 20 */
22 21 public List<McOperationLog> selectMcOperationLogList(McOperationLog mcOperationLog);
23 22  
24   -
25   - public int insertMcOperationLog(String dataForm, Long dataId, String procRole, String procUser, String procAccount, String procId,LocalDateTime procTime,
26   - String opName, String opType,
27   - String opRemark, String beforeDataJson, String afterDataJson);
28   -
  23 + public int insertMcOperationLog(String dataForm, Long dataId,String menuCode, String opName, String opType, String opRemark, String beforeDataJson, String afterDataJson);
29 24 }
... ...
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 {
41 41 */
42 42 @Override
43 43 public int insertMcVisitByMcIgnition(McVisit mcVisit) {
44   - if (StringUtils.isEmpty(mcVisit.getIsCharged()) || mcVisit.getIsCharged().equals(YesNoEnums.NO.getCode())) {
  44 + if (StringUtils.isEmpty(mcVisit.getIsCharged()) || mcVisit.getIsCharged().equals(YesNoEnums.N)) {
45 45 return 0;
46 46 }
47 47  
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McOperationLogServiceImpl.java
1 1 package com.chinagas.modules.schsf.service.impl;
2 2  
  3 +import com.chinagas.common.core.utils.DateUtils;
  4 +import com.chinagas.common.security.utils.SecurityUtils;
3 5 import com.chinagas.modules.schsf.domain.McOperationLog;
4 6 import com.chinagas.modules.schsf.mapper.McOperationLogMapper;
5 7 import com.chinagas.modules.schsf.service.IMcOperationLogService;
... ... @@ -16,8 +18,7 @@ import java.util.List;
16 18 * @date 2024-05-30
17 19 */
18 20 @Service
19   -public class McOperationLogServiceImpl implements IMcOperationLogService
20   -{
  21 +public class McOperationLogServiceImpl implements IMcOperationLogService {
21 22 @Autowired
22 23 private McOperationLogMapper mcOperationLogMapper;
23 24  
... ... @@ -28,17 +29,24 @@ public class McOperationLogServiceImpl implements IMcOperationLogService
28 29 * @return 市场化收费相关记录
29 30 */
30 31 @Override
31   - public List<McOperationLog> selectMcOperationLogList(McOperationLog mcOperationLog)
32   - {
  32 + public List<McOperationLog> selectMcOperationLogList(McOperationLog mcOperationLog) {
33 33 return mcOperationLogMapper.selectMcOperationLogList(mcOperationLog);
34 34 }
35 35  
36   -
37 36 @Override
38   - public int insertMcOperationLog(
39   - String dataForm, Long dataId,
40   - String procRole, String procUser, String procAccount, String procId,LocalDateTime procTime, String opName, String opType, String opRemark, String beforeDataJson, String afterDataJson) {
41   - McOperationLog mcOperationLog = new McOperationLog(dataForm, dataId, procRole, procUser, procAccount,procId, procTime, opName, opType, opRemark, beforeDataJson, afterDataJson);
  37 + public int insertMcOperationLog(String dataForm, Long dataId, String menuCode, String opName, String opType, String opRemark, String beforeDataJson, String afterDataJson) {
  38 + LocalDateTime time = DateUtils.getNowLocal();
  39 + Long userId = SecurityUtils.getUserId();
  40 + String userAccount = SecurityUtils.getUsername();
  41 + String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
  42 + String procRole = "";
  43 + List<String> roles = mcOperationLogMapper.getUserMenuPermsByRoles(userId.toString(), menuCode, dataId.toString());
  44 + if (roles != null && roles.size() > 0) {
  45 + for (int i = 0; i < roles.size(); i++) {
  46 + procRole = i == 0 ? procRole + roles.get(i) : procRole + "," + roles.get(i);
  47 + }
  48 + }
  49 + McOperationLog mcOperationLog = new McOperationLog(dataForm, dataId, procRole, userName, userAccount, userId.toString(), time, opName, opType, opRemark, beforeDataJson, afterDataJson);
42 50 return mcOperationLogMapper.insertMcOperationLog(mcOperationLog);
43 51 }
44 52  
... ...
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;
8 8 import com.chinagas.common.datascope.annotation.DataScope;
9 9 import com.chinagas.common.security.utils.SecurityUtils;
10 10 import com.chinagas.modules.schsf.domain.McVisit;
  11 +import com.chinagas.modules.schsf.domain.McVisitStatusNodeInfo;
11 12 import com.chinagas.modules.schsf.domain.vo.McVisitAuditVo;
12 13 import com.chinagas.modules.schsf.domain.vo.McVisitVo;
13 14 import com.chinagas.modules.schsf.enums.*;
... ... @@ -15,6 +16,7 @@ import com.chinagas.modules.schsf.mapper.McVisitMapper;
15 16 import com.chinagas.modules.schsf.service.IMcIgnitionService;
16 17 import com.chinagas.modules.schsf.service.IMcOperationLogService;
17 18 import com.chinagas.modules.schsf.service.IMcVisitService;
  19 +import com.chinagas.modules.schsf.stateMachine.StateMachineNext;
18 20 import org.jetbrains.annotations.NotNull;
19 21 import org.springframework.beans.factory.annotation.Autowired;
20 22 import org.springframework.stereotype.Service;
... ... @@ -128,8 +130,8 @@ public class McVisitServiceImpl implements IMcVisitService {
128 130 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
129 131  
130 132  
131   - mcVisit.setIsCharged(StringUtils.nvl(mcVisit.getIsCharged(), YesNoEnums.NO.getCode()));
132   - mcVisit.setIsVisited(StringUtils.nvl(mcVisit.getIsVisited(), YesNoEnums.NO.getCode()));
  133 + mcVisit.setIsCharged(StringUtils.nvl(mcVisit.getIsCharged(), YesNoEnums.N.toString()));
  134 + mcVisit.setIsVisited(StringUtils.nvl(mcVisit.getIsVisited(), YesNoEnums.N.toString()));
133 135  
134 136 mcVisit.setBillingPersonAccount(userAccount);
135 137 mcVisit.setBillingPersonId(SecurityUtils.getUserId());
... ... @@ -142,122 +144,29 @@ public class McVisitServiceImpl implements IMcVisitService {
142 144 mcVisit.setTicketNumber(getTicketNumber());
143 145 //工单类型
144 146 mcVisit.setTicketType(getTicketType(mcVisit.getIsCharged(), mcVisit.getIsVisited()));
145   - getStatusNodeName(mcVisit.getIsCharged().equals(YesNoEnums.YES.getCode()) ? VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode() : VisitPublishStatusEnums.APPROVED.getCode(), null, null, mcVisit);
146   - int id = mcVisitMapper.insertMcVisit(mcVisit);
  147 + getStatusNodeInfo(mcVisit, VisitlsEventEnums.PUBLISH);
  148 + int i = mcVisitMapper.insertMcVisit(mcVisit);
147 149 //1:添加记录
148   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_收费员",
149   - userName, userAccount, userId, mcVisit.getCreateTime(),
  150 +// iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_收费员",
  151 +// userName, userAccount, userId, mcVisit.getCreateTime(),
  152 +// "发起", "1", null, null, JSON.toJSONString(mcVisit));
  153 + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(),"schsf:mcVisit:add",
150 154 "发起", "1", null, null, JSON.toJSONString(mcVisit));
151   -
152   - return id;
  155 + return i;
153 156  
154 157 }
155 158  
156   - private void getStatusNodeName(String publishStatus, String modificationStatus, String defFlag, McVisit mcVisit) {
157   - if (StringUtils.isNotEmpty(defFlag) && defFlag.equals("1")) {
158   -// mcVisit.setDefFlag("1");
159   - mcVisit.setStatusNodeName("");
160   - mcVisit.setStatusCode(VisitStatusEnums.CANCEL.getCode());
161   - mcVisit.setStatusName(VisitStatusEnums.CANCEL.getInfo());
162   - return;
163   - }
164   - //状态
165   - mcVisit.setPublishStatus(publishStatus);
166   - mcVisit.setModificationStatus(modificationStatus);
167   - String statusNodeName = null;
168   - String statusCode = null;
169   - String statusName = null;
170   - if (StringUtils.isEmpty(modificationStatus)) {
171   - if (publishStatus == VisitPublishStatusEnums.APPROVED.getCode()) {
172   - // 发布通过
173   - statusNodeName = "";
174   - statusCode = VisitStatusEnums.APPROVED.getCode();
175   - statusName = VisitStatusEnums.APPROVED.getInfo();
176   - } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) {
177   - // 发布-待一级审核
178   - statusNodeName = "发布-待一级审核";
179   - statusCode = VisitStatusEnums.APPROVE.getCode();
180   - statusName = VisitStatusEnums.APPROVE.getInfo();
181   - } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) {
182   - // 发布-待二级审核
183   - statusNodeName = "发布-待二级审核";
184   - statusCode = VisitStatusEnums.APPROVE.getCode();
185   - statusName = VisitStatusEnums.APPROVE.getInfo();
186   - } else if (publishStatus == VisitPublishStatusEnums.REJECTED.getCode()) {
187   - // 发布-发布-驳回
188   - statusNodeName = "发布-驳回";
189   - statusCode = VisitStatusEnums.EDITING.getCode();
190   - statusName = VisitStatusEnums.EDITING.getInfo();
191   - } else if (publishStatus == VisitPublishStatusEnums.EDITING.getCode()) {
192   - // 发布-编辑
193   - statusNodeName = "发布-待收费员编辑";
194   - statusCode = VisitStatusEnums.EDITING.getCode();
195   - statusName = VisitStatusEnums.EDITING.getInfo();
196   - } else {
197   - statusNodeName = "";
198   - }
199   - } else {
200   - if (modificationStatus == VisitModificationStatusEnums.APPROVED.getCode()) {
201   - // 异动-通过
202   - statusNodeName = "修改-通过";
203   - statusCode = VisitStatusEnums.APPROVED.getCode();
204   - statusName = VisitStatusEnums.APPROVED.getInfo();
205   - } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) {
206   - // 异动-待一级审核
207   - statusNodeName = "修改-待一级审核";
208   - statusCode = VisitStatusEnums.APPROVE.getCode();
209   - statusName = VisitStatusEnums.APPROVE.getInfo();
210   - } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) {
211   - // 异动-待二级审核
212   - statusNodeName = "修改-待二级审核";
213   - statusCode = VisitStatusEnums.APPROVE.getCode();
214   - statusName = VisitStatusEnums.APPROVE.getInfo();
215   - } else if (modificationStatus == VisitModificationStatusEnums.REJECTED.getCode()) {
216   - // 异动-驳回
217   - statusNodeName = "修改-驳回";
218   - statusCode = VisitStatusEnums.EDITING.getCode();
219   - statusName = VisitStatusEnums.EDITING.getInfo();
220   - } else {
221   - statusNodeName = "";
222   - }
223   - }
224   - mcVisit.setStatusNodeName(statusNodeName);
225   - mcVisit.setStatusCode(statusCode);
226   - mcVisit.setStatusName(statusName);
  159 + private McVisit getStatusNodeInfo(McVisit mcVisit, VisitlsEventEnums event) {
  160 + VisitlsStatusNodeEnums visitlsStatusNodeEnums = StateMachineNext.getNext(mcVisit.getIsCharged(), VisitlsEventEnums.PUBLISH);
  161 + McVisitStatusNodeInfo info = visitlsStatusNodeEnums.getInfo();
  162 + mcVisit.setPublishStatus(info.getPublishStatus());
  163 + mcVisit.setModificationStatus(info.getModificationStatus());
  164 + mcVisit.setStatusNodeName(info.getStatusNodeName());
  165 + mcVisit.setStatusCode(info.getStatusCode());
  166 + mcVisit.setStatusName(info.getStatusName());
  167 + return mcVisit;
227 168 }
228 169  
229   -// private String getStatusNodeName(String publishStatus, String modificationStatus) {
230   -// String statusNodeName = null;
231   -// if (StringUtils.isEmpty(modificationStatus)) {
232   -// if (publishStatus == VisitPublishStatusEnums.APPROVED.getCode()) {
233   -// statusNodeName = "发布-通过";
234   -// } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) {
235   -// statusNodeName = "发布-待一级审核";
236   -// } else if (publishStatus == VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) {
237   -// statusNodeName = "发布-待二级审核";
238   -// } else if (publishStatus == VisitPublishStatusEnums.REJECTED.getCode()) {
239   -// statusNodeName = "发布-驳回";
240   -// } else if (publishStatus == VisitPublishStatusEnums.EDITING.getCode()) {
241   -// statusNodeName = "发布-待收费员编辑";
242   -// } else {
243   -// statusNodeName = "";
244   -// }
245   -// } else {
246   -// if (modificationStatus == VisitModificationStatusEnums.APPROVED.getCode()) {
247   -// statusNodeName = "修改-通过";
248   -// } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode()) {
249   -// statusNodeName = "修改-待一级审核";
250   -// } else if (modificationStatus == VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode()) {
251   -// statusNodeName = "修改-待二级审核";
252   -// } else if (modificationStatus == VisitModificationStatusEnums.REJECTED.getCode()) {
253   -// statusNodeName = "修改-驳回";
254   -// } else {
255   -// statusNodeName = "";
256   -// }
257   -// }
258   -// return statusNodeName;
259   -// }
260   -
261 170 /**
262 171 * 获取工单号
263 172 *
... ... @@ -285,11 +194,11 @@ public class McVisitServiceImpl implements IMcVisitService {
285 194 * @return
286 195 */
287 196 public String getTicketType(String isCharged, String isVisited) {
288   - if (YesNoEnums.YES.getCode().equals(isCharged) && YesNoEnums.YES.getCode().equals(isVisited)) {
  197 + if (YesNoEnums.Y.equals(isCharged) && YesNoEnums.Y.equals(isVisited)) {
289 198 return VisitTypeEnums.VISITANDSFEES.getCode();
290   - } else if (YesNoEnums.YES.getCode().equals(isCharged) || YesNoEnums.NO.getCode().equals(isVisited)) {
  199 + } else if (YesNoEnums.Y.equals(isCharged) || YesNoEnums.N.equals(isVisited)) {
291 200 return VisitTypeEnums.CHARGE.getCode();
292   - } else if (YesNoEnums.NO.getCode().equals(isCharged) || YesNoEnums.YES.getCode().equals(isVisited)) {
  201 + } else if (YesNoEnums.N.equals(isCharged) || YesNoEnums.Y.equals(isVisited)) {
293 202 return VisitTypeEnums.VISIT.getCode();
294 203 } else {
295 204 return VisitTypeEnums.OTHER.getCode();
... ... @@ -315,15 +224,14 @@ public class McVisitServiceImpl implements IMcVisitService {
315 224 mcVisit_new.setUpdateTime(updateTime);
316 225 mcVisit_new.setUpdateBy(userId);
317 226  
318   - mcVisit_new.setIsCharged(StringUtils.nvl(mcVisit_new.getIsCharged(), YesNoEnums.NO.getCode()));
319   - mcVisit_new.setIsVisited(StringUtils.nvl(mcVisit_new.getIsVisited(), YesNoEnums.NO.getCode()));
  227 + mcVisit_new.setIsCharged(StringUtils.nvl(mcVisit_new.getIsCharged(), YesNoEnums.N.toString()));
  228 + mcVisit_new.setIsVisited(StringUtils.nvl(mcVisit_new.getIsVisited(), YesNoEnums.N.toString()));
320 229 //工单类型
321 230 mcVisit_new.setTicketType(getTicketType(mcVisit_new.getIsCharged(), mcVisit_new.getIsVisited()));
322   - getStatusNodeName(mcVisit_new.getIsCharged().equals(YesNoEnums.YES.getCode()) ? VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode() : VisitPublishStatusEnums.APPROVED.getCode(), null, null, mcVisit_new);
  231 + getStatusNodeInfo(mcVisit_new, VisitlsEventEnums.PUBLISH);
323 232 int i = mcVisitMapper.updateMcVisit(mcVisit_new);
324 233 //1:添加记录
325   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "项目公司_收费员",
326   - userName, userAccount, userId, updateTime,
  234 + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "schsf:mcVisit:edit",
327 235 "重新发起", "1", null, null, JSON.toJSONString(mcVisit_new));
328 236 return i;
329 237 }
... ... @@ -367,56 +275,47 @@ public class McVisitServiceImpl implements IMcVisitService {
367 275 McVisit mcVisit_new = mcVisit.clone();
368 276 mcVisit_new.setUpdateTime(updateTime);
369 277 mcVisit_new.setUpdateBy(userId);
370   -
  278 + VisitlsEventEnums visitlsEventEnums = null;
  279 + String menuCode=null;
371 280 switch (mcVisitAuditVo.getType()) {
372 281 case "1":
373 282 //发布-一级审核
374 283 if (!mcVisit.getPublishStatus().equals(VisitPublishStatusEnums.PENDING_LEVEL_1_AUDIT.getCode())) {
375 284 throw new RuntimeException("状态异常");
376 285 }
377   - getStatusNodeName(status.equals("Y") ? VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode() : VisitPublishStatusEnums.REJECTED.getCode(), null, null, mcVisit_new);
378   - mcVisitMapper.updateMcVisit(mcVisit_new);
379   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_市场负责人",
380   - userName, userAccount, userId, updateTime,
381   - status.equals("Y") ? "通过" : "驳回", "1", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new));
  286 + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.PUBLISH_1_AUDIT_YES : VisitlsEventEnums.PUBLISH_1_AUDIT_NO;
  287 + menuCode= "schsf:mcVisit:ticket_submitAuditOne";
382 288 break;
383 289 case "2":
384 290 if (!mcVisit.getPublishStatus().equals(VisitPublishStatusEnums.PENDING_LEVEL_2_AUDIT.getCode())) {
385 291 throw new RuntimeException("状态异常");
386 292 }
387   - getStatusNodeName(status.equals("Y") ? VisitPublishStatusEnums.APPROVED.getCode() : VisitPublishStatusEnums.REJECTED.getCode(), null, null, mcVisit_new);
388   - mcVisitMapper.updateMcVisit(mcVisit_new);
389   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_财务",
390   - userName, userAccount, userId, updateTime,
391   - status.equals("Y") ? "通过" : "驳回", "1", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new));
392   - //2:判断是否需要添加至点火记录
393   - iMcIgnitionService.insertMcVisitByMcIgnition(mcVisit);
  293 + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.PUBLISH_2_AUDIT_YES : VisitlsEventEnums.PUBLISH_2_AUDIT_NO;
  294 + menuCode= "schsf:mcVisit:ticket_submitAuditTwo";
394 295 break;
395 296 case "3":
396 297 //发布-一级审核
397 298 if (!mcVisit.getModificationStatus().equals(VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode())) {
398 299 throw new RuntimeException("状态异常");
399 300 }
400   - getStatusNodeName(mcVisit_new.getPublishStatus(), status.equals("Y") ? VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode() : VisitModificationStatusEnums.REJECTED.getCode(), null, mcVisit_new);
401   - mcVisitMapper.updateMcVisit(mcVisit_new);
402   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_市场负责人",
403   - userName, userAccount, userId, updateTime,
404   - status.equals("Y") ? "通过" : "驳回", "2", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new));
  301 + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.MODIFICATION_1_AUDIT_YES : VisitlsEventEnums.MODIFICATION_1_AUDIT_NO;
  302 + menuCode= "schsf:mcVisit:modification_submitAuditOne";
405 303 break;
406 304 case "4":
407 305 //发布-一级审核
408 306 if (!mcVisit.getModificationStatus().equals(VisitModificationStatusEnums.PENDING_LEVEL_2_AUDIT.getCode())) {
409 307 throw new RuntimeException("状态异常");
410 308 }
411   - getStatusNodeName(mcVisit_new.getPublishStatus(), status.equals("Y") ? VisitModificationStatusEnums.APPROVED.getCode() : VisitModificationStatusEnums.REJECTED.getCode(), null, mcVisit_new);
412   - mcVisitMapper.updateMcVisit(mcVisit_new);
413   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_财务",
414   - userName, userAccount, userId, updateTime,
415   - status.equals("Y") ? "通过" : "驳回", "2", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new));
  309 + visitlsEventEnums = status.equals(YesNoEnums.Y) ? VisitlsEventEnums.MODIFICATION_2_AUDIT_YES : VisitlsEventEnums.MODIFICATION_2_AUDIT_NO;
  310 + menuCode= "schsf:mcVisit:modification_submitAuditTwo";
416 311 break;
417 312 default:
418 313 throw new RuntimeException("非法请求");
419 314 }
  315 + getStatusNodeInfo(mcVisit_new, visitlsEventEnums);
  316 + mcVisitMapper.updateMcVisit(mcVisit_new);
  317 + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), menuCode,
  318 + status.equals("Y") ? "通过" : "驳回", "2", remarks, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new));
420 319 }
421 320  
422 321 @DataScope(deptAlias = "d", userAlias = "u")
... ... @@ -438,12 +337,11 @@ public class McVisitServiceImpl implements IMcVisitService {
438 337 McVisit mcVisit_new = mcVisit_old.clone();
439 338 mcVisit_new.setUpdateTime(updateTime);
440 339 mcVisit_new.setUpdateBy(userId);
441   - getStatusNodeName(mcVisit_old.getPublishStatus(), mcVisit_old.getIsCharged().equals(YesNoEnums.YES.getCode()) ? VisitModificationStatusEnums.PENDING_LEVEL_1_AUDIT.getCode() : VisitModificationStatusEnums.APPROVED.getCode(), null, mcVisit_new);
  340 + getStatusNodeInfo(mcVisit_new, VisitlsEventEnums.MODIFICATION);
442 341 int i = mcVisitMapper.updateMcVisit(mcVisit_new);
443 342 //1:添加记录
444   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "项目公司",
445   - userName, userAccount, userId, updateTime,
446   - "发起异动", "2", Modification_mcVisit.getRemark(), JSON.toJSONString(mcVisit_old), JSON.toJSONString(mcVisit_new));
  343 + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit_new.getId(), "schsf:mcVisit:modification",
  344 + "发起异动", "2", Modification_mcVisit.getRemark(), JSON.toJSONString(mcVisit_old), JSON.toJSONString(mcVisit_new));
447 345 return i;
448 346 }
449 347  
... ... @@ -457,15 +355,14 @@ public class McVisitServiceImpl implements IMcVisitService {
457 355 String userId = SecurityUtils.getUserId().toString();
458 356 String userAccount = SecurityUtils.getUsername();
459 357 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
460   -
461 358 McVisit mcVisit_new = mcVisit.clone();
462 359 mcVisit_new.setUpdateTime(updateTime);
463 360 mcVisit_new.setUpdateBy(userId);
464   - getStatusNodeName(mcVisit_new.getPublishStatus(), mcVisit_new.getIsVisited(), "1", mcVisit_new);
465   - iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "项目公司_市场负责人",
466   - userName, userAccount, userId, updateTime,
  361 + mcVisit.setStatusNodeName("");
  362 + mcVisit.setStatusCode(VisitStatusEnums.CANCEL.getCode());
  363 + mcVisit.setStatusName(VisitStatusEnums.CANCEL.getInfo());
  364 + iMcOperationLogService.insertMcOperationLog("mc_visit", mcVisit.getId(), "schsf:mcVisit:cancel",
467 365 "作废", "1", null, JSON.toJSONString(mcVisit), JSON.toJSONString(mcVisit_new));
468   -
469 366 //2:作废至点火记录
470 367 iMcIgnitionService.updateMcIgnitionCancel(id);
471 368 return mcVisitMapper.updateMcVisit(mcVisit_new);
... ... @@ -493,9 +390,9 @@ public class McVisitServiceImpl implements IMcVisitService {
493 390 public List<SysUser> selectStatusNodeUserList(Long id) {
494 391 McVisit mcVisit = mcVisitMapper.selectMcVisitById(id);
495 392 if (BeanUtil.isEmpty(mcVisit) ||
496   - StringUtils.isEmpty(mcVisit.getStatusCode()) ||
497   - mcVisit.getStatusCode().equals(VisitStatusEnums.APPROVED) ||
498   - mcVisit.getStatusCode().equals(VisitStatusEnums.CANCEL)) {
  393 + StringUtils.isEmpty(mcVisit.getStatusCode()) ||
  394 + mcVisit.getStatusCode().equals(VisitStatusEnums.APPROVED) ||
  395 + mcVisit.getStatusCode().equals(VisitStatusEnums.CANCEL)) {
499 396 return null;
500 397 }
501 398 List<SysUser> statusNodeUserList = new ArrayList<>();
... ...
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/stateMachine/StateMachineNext.java 0 → 100644
... ... @@ -0,0 +1,30 @@
  1 +package com.chinagas.modules.schsf.stateMachine;
  2 +
  3 +import com.chinagas.modules.schsf.enums.VisitlsEventEnums;
  4 +import com.chinagas.modules.schsf.enums.VisitlsStatusNodeEnums;
  5 +import com.chinagas.modules.schsf.enums.YesNoEnums;
  6 +import com.google.common.collect.HashBasedTable;
  7 +
  8 +public class StateMachineNext {
  9 + public static VisitlsStatusNodeEnums getNext(String state, VisitlsEventEnums event) {
  10 + HashBasedTable<String, VisitlsEventEnums, VisitlsStatusNodeEnums> hashBasedTable = HashBasedTable.create();
  11 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH, VisitlsStatusNodeEnums.PUBLISH_1_AUDIT);
  12 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_1_AUDIT_YES, VisitlsStatusNodeEnums.PUBLISH_2_AUDIT);
  13 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_1_AUDIT_NO, VisitlsStatusNodeEnums.PUBLISH_REJECTED);
  14 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_2_AUDIT_YES, VisitlsStatusNodeEnums.PUBLISH_APPROVED);
  15 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.PUBLISH_2_AUDIT_NO, VisitlsStatusNodeEnums.PUBLISH_REJECTED);
  16 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION, VisitlsStatusNodeEnums.MODIFICATION_1_AUDIT);
  17 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_1_AUDIT_YES, VisitlsStatusNodeEnums.MODIFICATION_2_AUDIT);
  18 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_1_AUDIT_NO, VisitlsStatusNodeEnums.MODIFICATION_REJECTED);
  19 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_2_AUDIT_YES, VisitlsStatusNodeEnums.MODIFICATION_APPROVED);
  20 + hashBasedTable.put(YesNoEnums.Y.toString(), VisitlsEventEnums.MODIFICATION_2_AUDIT_NO, VisitlsStatusNodeEnums.MODIFICATION_REJECTED);
  21 + hashBasedTable.put(YesNoEnums.N.toString(), VisitlsEventEnums.PUBLISH, VisitlsStatusNodeEnums.PUBLISH_APPROVED);
  22 + hashBasedTable.put(YesNoEnums.N.toString(), VisitlsEventEnums.MODIFICATION, VisitlsStatusNodeEnums.MODIFICATION_APPROVED);
  23 + VisitlsStatusNodeEnums statusEnum = hashBasedTable.get(state, event);
  24 + if (statusEnum == null) {
  25 + throw new IllegalArgumentException("未找到状态");
  26 + }
  27 + return statusEnum;
  28 + }
  29 +
  30 +}
... ...
zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McOperationLogMapper.xml
... ... @@ -89,5 +89,52 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
89 89 </trim>
90 90 </insert>
91 91  
92   -
  92 + <select id="getUserMenuPermsByRoles" resultType="String" parameterType="String">
  93 + SELECT DISTINCT r.role_name as roleName FROM (
  94 + SELECT role.role_name
  95 + FROM sys_menu menu
  96 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  97 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  98 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id
  99 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  100 + WHERE role.data_scope='1'
  101 + and menu.perms= #{menuPerms}
  102 + AND us.user_id= #{userId}
  103 + UNION
  104 + SELECT role.role_name
  105 + FROM sys_menu menu
  106 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  107 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  108 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id
  109 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  110 + INNER JOIN sys_user_dept userDept on userDept.user_id=us.user_id and userDept.dept_id = (SELECT company_code FROM mc_visit WHERE id= #{dataId} )
  111 + INNER JOIN mc_visit visit on visit.company_code =userDept.dept_id
  112 + WHERE role.data_scope='3'
  113 + and menu.perms= #{menuPerms}
  114 + AND us.user_id= #{userId}
  115 + UNION
  116 + SELECT role.role_name
  117 + FROM sys_menu menu
  118 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  119 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  120 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id
  121 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  122 + INNER JOIN sys_user_dept userDept on userDept.user_id=us.user_id
  123 + INNER JOIN sys_dept dept on dept.dept_id =userDept.dept_id
  124 + INNER JOIN sys_dept dept2 on dept2.dept_id in (SELECT a.dept_id FROM sys_dept a WHERE a.dept_id = dept.dept_id or find_in_set(dept.parent_id , ancestors ) )
  125 + and dept2.dept_id =(SELECT company_code FROM mc_visit WHERE id= #{dataId} )
  126 + WHERE role.data_scope='4'
  127 + and menu.perms= #{menuPerms}
  128 + AND us.user_id=#{userId}
  129 + UNION
  130 + SELECT role.role_name
  131 + FROM sys_menu menu
  132 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  133 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  134 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id and userRole.user_id = (SELECT create_by FROM mc_visit WHERE id= #{dataId} )
  135 + WHERE role.data_scope='5'
  136 + and menu.perms= #{menuPerms}
  137 + AND userRole.user_id= #{userId}
  138 + ) r
  139 + </select>
93 140 </mapper>
... ...