Commit d58a0f8d3c6994f7d195fb453844fd17c711deb8

Authored by 王彪总
1 parent c3c48b97

feat(garden): 引入养护周期枚举并优化计划创建逻辑

- 新增 MaintenanceCycleEnum 枚举类,定义养护周期类型及其键值映射
- 在 InspectionPlanServiceImpl 和 MaintainPlanServiceImpl 中引入该枚举
- 替换硬编码的周期 ID 判断逻辑,使用枚举提升可读性和维护性
- 统一字典类型常量引用,移除重复定义
- 增强对周期ID的数据校验,确保输入合法性
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/enums/MaintenanceCycleEnum.java 0 → 100644
  1 +package com.zteits.urbanops.module.garden.enums;
  2 +
  3 +import java.util.HashMap;
  4 +import java.util.Map;
  5 +
  6 +public enum MaintenanceCycleEnum {
  7 +
  8 + /**
  9 + * 字典标签与字典键值对应关系:
  10 + * 次 → 0
  11 + * 次/日 → 1
  12 + * 次/周 → 2
  13 + * 次/月 → 3
  14 + * 次/季 → 4
  15 + * 次/半年 → 5
  16 + * 次/年 → 6
  17 + */
  18 + TIME(0, "次"),
  19 + DAY(1, "次/日"),
  20 + WEEK(2, "次/周"),
  21 + MONTH(3, "次/月"),
  22 + QUARTER(4, "次/季"),
  23 + SEMIANNUAL(5, "次/半年"),
  24 + YEAR(6, "次/年");
  25 +
  26 + private final Integer key;
  27 + private final String value;
  28 +
  29 + // 用于根据key快速查找枚举
  30 + private static final Map<Integer, MaintenanceCycleEnum> KEY_MAP = new HashMap<>();
  31 +
  32 + static {
  33 + // 初始化key映射
  34 + for (MaintenanceCycleEnum cycleEnum : values()) {
  35 + KEY_MAP.put(cycleEnum.key, cycleEnum);
  36 + }
  37 + }
  38 +
  39 + /**
  40 + * 构造函数
  41 + * @param key 字典键值
  42 + * @param value 字典标签
  43 + */
  44 + MaintenanceCycleEnum(Integer key, String value) {
  45 + this.key = key;
  46 + this.value = value;
  47 + }
  48 +
  49 + /**
  50 + * 根据key获取对应的枚举
  51 + * @param key 字典键值
  52 + * @return 对应的枚举,如果不存在返回null
  53 + */
  54 + public static MaintenanceCycleEnum getByKey(Integer key) {
  55 + return KEY_MAP.get(key);
  56 + }
  57 +
  58 + /**
  59 + * 根据key获取对应的字典标签
  60 + * @param key 字典键值
  61 + * @return 对应的字典标签,如果不存在返回null
  62 + */
  63 + public static String getValueByKey(Integer key) {
  64 + MaintenanceCycleEnum cycleEnum = getByKey(key);
  65 + return cycleEnum != null ? cycleEnum.value : null;
  66 + }
  67 +
  68 + public Integer getKey() {
  69 + return key;
  70 + }
  71 +
  72 + public String getValue() {
  73 + return value;
  74 + }
  75 +}
0 \ No newline at end of file 76 \ No newline at end of file
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanServiceImpl.java
@@ -24,11 +24,13 @@ import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlan @@ -24,11 +24,13 @@ import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlan
24 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper; 24 import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanRoleMapper;
25 import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper; 25 import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper;
26 import com.zteits.urbanops.module.garden.enums.FinishStateEnum; 26 import com.zteits.urbanops.module.garden.enums.FinishStateEnum;
  27 +import com.zteits.urbanops.module.garden.enums.MaintenanceCycleEnum;
27 import com.zteits.urbanops.module.garden.enums.PlanConstants; 28 import com.zteits.urbanops.module.garden.enums.PlanConstants;
28 import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult; 29 import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult;
29 import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil; 30 import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil;
30 import com.zteits.urbanops.module.system.api.dept.DeptApi; 31 import com.zteits.urbanops.module.system.api.dept.DeptApi;
31 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; 32 import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO;
  33 +import com.zteits.urbanops.module.system.api.dict.DictDataApi;
32 import com.zteits.urbanops.module.system.api.permission.RoleApi; 34 import com.zteits.urbanops.module.system.api.permission.RoleApi;
33 import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO; 35 import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO;
34 import jakarta.annotation.Resource; 36 import jakarta.annotation.Resource;
@@ -48,6 +50,7 @@ import java.util.stream.Collectors; @@ -48,6 +50,7 @@ import java.util.stream.Collectors;
48 50
49 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; 51 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
50 import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; 52 import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
  53 +import static com.zteits.urbanops.module.garden.enums.PlanConstants.CYCLE_ID_TYPE;
51 54
52 /** 55 /**
53 * 巡检计划汇总 Service 实现类 56 * 巡检计划汇总 Service 实现类
@@ -73,13 +76,13 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @@ -73,13 +76,13 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
73 76
74 @Resource 77 @Resource
75 private RoadMapper roadMapper; 78 private RoadMapper roadMapper;
76 -  
77 -  
78 @Resource 79 @Resource
79 private DeptApi deptApi; 80 private DeptApi deptApi;
80 81
81 @Resource 82 @Resource
82 private RoleApi roleApi; 83 private RoleApi roleApi;
  84 + @Resource
  85 + private DictDataApi dictDataApi;
83 86
84 @Transactional(rollbackFor = Exception.class) 87 @Transactional(rollbackFor = Exception.class)
85 @Override 88 @Override
@@ -100,7 +103,8 @@ public class InspectionPlanServiceImpl implements InspectionPlanService { @@ -100,7 +103,8 @@ public class InspectionPlanServiceImpl implements InspectionPlanService {
100 //计算计划次数 103 //计算计划次数
101 int planNum; 104 int planNum;
102 //临时计划 105 //临时计划
103 - if (createReqVO.getCycleId().equals(5)) { 106 + dictDataApi.validateDictDataList(CYCLE_ID_TYPE, Collections.singleton(createReqVO.getCycleId().toString().trim()));
  107 + if (createReqVO.getCycleId().equals(MaintenanceCycleEnum.TIME.getKey())) {
104 calculate = new ArrayList<>(); 108 calculate = new ArrayList<>();
105 PeriodResult periodResult = new PeriodResult(createReqVO.getBeginTime(), createReqVO.getEndTime(), Integer.parseInt(createReqVO.getRateValue())); 109 PeriodResult periodResult = new PeriodResult(createReqVO.getBeginTime(), createReqVO.getEndTime(), Integer.parseInt(createReqVO.getRateValue()));
106 calculate.add(periodResult); 110 calculate.add(periodResult);
urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/maintainplan/MaintainPlanServiceImpl.java
@@ -25,6 +25,7 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanInte @@ -25,6 +25,7 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanInte
25 import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanRoleMapper; 25 import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanRoleMapper;
26 import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper; 26 import com.zteits.urbanops.module.garden.dal.mysql.road.RoadMapper;
27 import com.zteits.urbanops.module.garden.enums.FinishStateEnum; 27 import com.zteits.urbanops.module.garden.enums.FinishStateEnum;
  28 +import com.zteits.urbanops.module.garden.enums.MaintenanceCycleEnum;
28 import com.zteits.urbanops.module.garden.enums.PlanConstants; 29 import com.zteits.urbanops.module.garden.enums.PlanConstants;
29 import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult; 30 import com.zteits.urbanops.module.garden.util.timeinterval.PeriodResult;
30 import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil; 31 import com.zteits.urbanops.module.garden.util.timeinterval.TimeIntervalFrequencyUtil;
@@ -57,6 +58,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanMapp @@ -57,6 +58,8 @@ import com.zteits.urbanops.module.garden.dal.mysql.maintainplan.MaintainPlanMapp
57 58
58 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; 59 import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception;
59 import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*; 60 import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.*;
  61 +import static com.zteits.urbanops.module.garden.enums.PlanConstants.CYCLE_ID_TYPE;
  62 +
60 63
61 /** 64 /**
62 * 养护计划汇总 Service 实现类 65 * 养护计划汇总 Service 实现类
@@ -95,7 +98,6 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { @@ -95,7 +98,6 @@ public class MaintainPlanServiceImpl implements MaintainPlanService {
95 /** 98 /**
96 * 字典类型:养护周期类型 99 * 字典类型:养护周期类型
97 */ 100 */
98 - private static final String DICT_TYPE_CYCLE_ID = "cycle_id_type";  
99 101
100 @Override 102 @Override
101 public CommonResult<Integer> createMaintainPlan(MaintainPlanSaveReqVO createReqVO) { 103 public CommonResult<Integer> createMaintainPlan(MaintainPlanSaveReqVO createReqVO) {
@@ -115,8 +117,8 @@ public class MaintainPlanServiceImpl implements MaintainPlanService { @@ -115,8 +117,8 @@ public class MaintainPlanServiceImpl implements MaintainPlanService {
115 //计算计划次数 117 //计算计划次数
116 int planNum; 118 int planNum;
117 //按次计划 119 //按次计划
118 - dictDataApi.validateDictDataList(DICT_TYPE_CYCLE_ID, Collections.singleton(createReqVO.getCycleId().toString().trim()));  
119 - if (createReqVO.getCycleId().equals(5)) { 120 + dictDataApi.validateDictDataList(CYCLE_ID_TYPE, Collections.singleton(createReqVO.getCycleId().toString().trim()));
  121 + if (createReqVO.getCycleId().equals(MaintenanceCycleEnum.TIME.getKey())) {
120 calculate = new ArrayList<>(); 122 calculate = new ArrayList<>();
121 PeriodResult periodResult = new PeriodResult(createReqVO.getBeginTime(), createReqVO.getEndTime(), Integer.parseInt(createReqVO.getRateValue())); 123 PeriodResult periodResult = new PeriodResult(createReqVO.getBeginTime(), createReqVO.getEndTime(), Integer.parseInt(createReqVO.getRateValue()));
122 calculate.add(periodResult); 124 calculate.add(periodResult);