Commit 203c639326c4c8b18f9e2691a1a07149abdbbc5e

Authored by YunaiV
1 parent 588845ab

refactor(mes-tm): 工具管理模块代码优化

1. 新增独立枚举类 MesTmMaintenTypeEnum、MesTmToolStatusEnum(enums/tm 包)
2. DO Javadoc 从字典引用改为枚举引用
3. ServiceImpl 使用枚举常量替代魔法值
4. Controller 抽取 buildToolRespVOList() 私有方法,复用 page/export 拼接逻辑
5. ServiceImpl 校验方法使用 ObjUtil.notEqual() 替代 Objects.equals + null 判断
Showing 17 changed files with 268 additions and 46 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/tm/tool/MesTmToolController.java
... ... @@ -23,7 +23,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
23 23 import org.springframework.validation.annotation.Validated;
24 24 import org.springframework.web.bind.annotation.*;
25 25  
  26 +import cn.hutool.core.collection.CollUtil;
  27 +import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  28 +
26 29 import java.io.IOException;
  30 +import java.util.Collections;
27 31 import java.util.List;
28 32 import java.util.Map;
29 33  
... ... @@ -89,17 +93,7 @@ public class MesTmToolController {
89 93 @PreAuthorize("@ss.hasPermission('mes:tm-tool:query')")
90 94 public CommonResult<PageResult<MesTmToolRespVO>> getToolPage(@Valid MesTmToolPageReqVO pageReqVO) {
91 95 PageResult<MesTmToolDO> pageResult = toolService.getToolPage(pageReqVO);
92   - PageResult<MesTmToolRespVO> voPageResult = BeanUtils.toBean(pageResult, MesTmToolRespVO.class);
93   - // 拼接工具类型名称
94   - Map<Long, MesTmToolTypeDO> toolTypeMap = toolTypeService.getToolTypeMap(
95   - convertSet(voPageResult.getList(), MesTmToolRespVO::getToolTypeId));
96   - voPageResult.getList().forEach(vo -> {
97   - MesTmToolTypeDO toolType = toolTypeMap.get(vo.getToolTypeId());
98   - if (toolType != null) {
99   - vo.setToolTypeName(toolType.getName());
100   - }
101   - });
102   - return success(voPageResult);
  96 + return success(new PageResult<>(buildToolRespVOList(pageResult.getList()), pageResult.getTotal()));
103 97 }
104 98  
105 99 @GetMapping("/export-excel")
... ... @@ -110,20 +104,26 @@ public class MesTmToolController {
110 104 HttpServletResponse response) throws IOException {
111 105 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
112 106 List<MesTmToolDO> list = toolService.getToolPage(pageReqVO).getList();
113   - List<MesTmToolRespVO> voList = BeanUtils.toBean(list, MesTmToolRespVO.class);
114   - // 拼接工具类型名称
115   - Map<Long, MesTmToolTypeDO> toolTypeMap = toolTypeService.getToolTypeMap(
116   - convertSet(voList, MesTmToolRespVO::getToolTypeId));
117   - voList.forEach(vo -> {
118   - MesTmToolTypeDO toolType = toolTypeMap.get(vo.getToolTypeId());
119   - if (toolType != null) {
120   - vo.setToolTypeName(toolType.getName());
121   - }
122   - });
  107 + List<MesTmToolRespVO> voList = buildToolRespVOList(list);
123 108 // 导出 Excel
124 109 ExcelUtils.write(response, "工具台账.xls", "数据", MesTmToolRespVO.class, voList);
125 110 }
126 111  
127   - // TODO @AI:page、export 都有拼接;可以参考别的模块的出列方式, 抽 build 公用方法;
  112 + // ==================== 拼接 VO ====================
  113 +
  114 + @SuppressWarnings("CodeBlock2Expr")
  115 + private List<MesTmToolRespVO> buildToolRespVOList(List<MesTmToolDO> list) {
  116 + if (CollUtil.isEmpty(list)) {
  117 + return Collections.emptyList();
  118 + }
  119 + // 1. 批量获取工具类型信息
  120 + Map<Long, MesTmToolTypeDO> toolTypeMap = toolTypeService.getToolTypeMap(
  121 + convertSet(list, MesTmToolDO::getToolTypeId));
  122 + // 2. 拼接 VO
  123 + return BeanUtils.toBean(list, MesTmToolRespVO.class, vo -> {
  124 + MapUtils.findAndThen(toolTypeMap, vo.getToolTypeId(),
  125 + toolType -> vo.setToolTypeName(toolType.getName()));
  126 + });
  127 + }
128 128  
129 129 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/tm/tool/MesTmToolDO.java
1 1 package cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.mes.enums.tm.MesTmToolStatusEnum;
  5 +import cn.iocoder.yudao.module.mes.enums.tm.MesTmMaintenTypeEnum;
4 6 import com.baomidou.mybatisplus.annotation.KeySequence;
5 7 import com.baomidou.mybatisplus.annotation.TableId;
6 8 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -58,11 +60,10 @@ public class MesTmToolDO extends BaseDO {
58 60 * 可用数量
59 61 */
60 62 private Integer quantityAvailable;
61   - // TODO @AI:枚举类
62 63 /**
63 64 * 保养维护类型
64 65 *
65   - * 字典 {@link cn.iocoder.yudao.module.mes.enums.DictTypeConstants#MES_TM_MAINTEN_TYPE}
  66 + * 枚举 {@link MesTmMaintenTypeEnum}
66 67 */
67 68 private Integer maintenType;
68 69 /**
... ... @@ -76,7 +77,7 @@ public class MesTmToolDO extends BaseDO {
76 77 /**
77 78 * 状态
78 79 *
79   - * 字典 {@link cn.iocoder.yudao.module.mes.enums.DictTypeConstants#MES_TM_TOOL_STATUS}
  80 + * 枚举 {@link MesTmToolStatusEnum}
80 81 */
81 82 private Integer status;
82 83 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/tm/tool/MesTmToolTypeDO.java
1 1 package cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool;
2 2  
3 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  4 +import cn.iocoder.yudao.module.mes.enums.tm.MesTmMaintenTypeEnum;
4 5 import com.baomidou.mybatisplus.annotation.KeySequence;
5 6 import com.baomidou.mybatisplus.annotation.TableId;
6 7 import com.baomidou.mybatisplus.annotation.TableName;
... ... @@ -38,11 +39,10 @@ public class MesTmToolTypeDO extends BaseDO {
38 39 * 是否编码管理
39 40 */
40 41 private Boolean codeFlag;
41   - // TODO @AI:枚举类;
42 42 /**
43 43 * 保养维护类型
44 44 *
45   - * 字典 {@link cn.iocoder.yudao.module.mes.enums.DictTypeConstants#MES_TM_MAINTEN_TYPE}
  45 + * 枚举 {@link MesTmMaintenTypeEnum}
46 46 */
47 47 private Integer maintenType;
48 48 /**
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/DictTypeConstants.java
... ... @@ -12,5 +12,9 @@ public interface DictTypeConstants {
12 12 String MES_CAL_HOLIDAY_TYPE = "mes_cal_holiday_type"; // MES 假期类型
13 13 String MES_TM_TOOL_STATUS = "mes_tm_tool_status"; // MES 工具状态
14 14 String MES_TM_MAINTEN_TYPE = "mes_tm_mainten_type"; // MES 保养维护类型
  15 + String MES_CAL_SHIFT_TYPE = "mes_cal_shift_type"; // MES 轮班方式
  16 + String MES_CAL_SHIFT_METHOD = "mes_cal_shift_method"; // MES 倒班方式
  17 + String MES_CAL_CALENDAR_TYPE = "mes_cal_calendar_type"; // MES 班组类型
  18 + String MES_CAL_PLAN_STATUS = "mes_cal_plan_status"; // MES 排班计划状态
15 19  
16 20 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
... ... @@ -83,12 +83,21 @@ public interface ErrorCodeConstants {
83 83  
84 84 // ========== MES 日历排班-班次(1-040-200-000) ==========
85 85 ErrorCode CAL_SHIFT_NOT_EXISTS = new ErrorCode(1_040_200_000, "班次不存在");
  86 + ErrorCode CAL_SHIFT_COUNT_EXCEED_SINGLE = new ErrorCode(1_040_200_001, "轮班方式为白班时只能有一个班次");
  87 + ErrorCode CAL_SHIFT_COUNT_EXCEED_TWO = new ErrorCode(1_040_200_002, "轮班方式为两班倒时只能有两个班次");
  88 + ErrorCode CAL_SHIFT_COUNT_EXCEED_THREE = new ErrorCode(1_040_200_003, "轮班方式为三班倒时只能有三个班次");
86 89  
87 90 // ========== MES 日历排班-班组(1-040-201-000) ==========
88 91 ErrorCode CAL_TEAM_NOT_EXISTS = new ErrorCode(1_040_201_000, "班组不存在");
89 92  
90 93 // ========== MES 日历排班-排班计划(1-040-202-000) ==========
91 94 ErrorCode CAL_PLAN_NOT_EXISTS = new ErrorCode(1_040_202_000, "排班计划不存在");
  95 + ErrorCode CAL_PLAN_CODE_DUPLICATE = new ErrorCode(1_040_202_001, "排班计划编码已存在");
  96 + ErrorCode CAL_PLAN_NOT_PREPARE = new ErrorCode(1_040_202_002, "只能删除草稿状态的排班计划");
  97 + ErrorCode CAL_PLAN_TEAM_COUNT_NOT_MATCH = new ErrorCode(1_040_202_003, "确认排班计划时,分配的班组数量与轮班方式不匹配");
  98 + // ========== MES 日历排班-计划班组关联(1-040-202-100) ==========
  99 + ErrorCode CAL_PLAN_TEAM_NOT_EXISTS = new ErrorCode(1_040_202_100, "计划班组关联不存在");
  100 + ErrorCode CAL_PLAN_TEAM_DUPLICATE = new ErrorCode(1_040_202_101, "该班组已分配到此计划");
92 101  
93 102 // ========== MES 日历排班-假期设置(1-040-203-000) ==========
94 103 ErrorCode CAL_HOLIDAY_NOT_EXISTS = new ErrorCode(1_040_203_000, "假期设置不存在");
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/cal/MesCalPlanStatusEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums.cal;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * MES 排班计划状态枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum MesCalPlanStatusEnum implements ArrayValuable<Integer> {
  17 +
  18 + PREPARE(0, "草稿"),
  19 + CONFIRMED(1, "已确认");
  20 +
  21 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesCalPlanStatusEnum::getStatus).toArray(Integer[]::new);
  22 +
  23 + /**
  24 + * 状态值
  25 + */
  26 + private final Integer status;
  27 + /**
  28 + * 状态名
  29 + */
  30 + private final String name;
  31 +
  32 + @Override
  33 + public Integer[] array() {
  34 + return ARRAYS;
  35 + }
  36 +
  37 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/cal/MesCalShiftMethodEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums.cal;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * MES 倒班方式枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum MesCalShiftMethodEnum implements ArrayValuable<Integer> {
  17 +
  18 + QUARTER(1, "按季度"),
  19 + MONTH(2, "按月"),
  20 + WEEK(3, "按周"),
  21 + DAY(4, "按天");
  22 +
  23 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesCalShiftMethodEnum::getMethod).toArray(Integer[]::new);
  24 +
  25 + /**
  26 + * 方式值
  27 + */
  28 + private final Integer method;
  29 + /**
  30 + * 方式名
  31 + */
  32 + private final String name;
  33 +
  34 + @Override
  35 + public Integer[] array() {
  36 + return ARRAYS;
  37 + }
  38 +
  39 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/cal/MesCalShiftTypeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums.cal;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * MES 轮班方式枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum MesCalShiftTypeEnum implements ArrayValuable<Integer> {
  17 +
  18 + SINGLE(1, "单白班"),
  19 + TWO(2, "两班倒"),
  20 + THREE(3, "三班倒");
  21 +
  22 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesCalShiftTypeEnum::getType).toArray(Integer[]::new);
  23 +
  24 + /**
  25 + * 类型值
  26 + */
  27 + private final Integer type;
  28 + /**
  29 + * 类型名
  30 + */
  31 + private final String name;
  32 +
  33 + @Override
  34 + public Integer[] array() {
  35 + return ARRAYS;
  36 + }
  37 +
  38 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/tm/MesTmMaintenTypeEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums.tm;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * MES 保养维护类型枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum MesTmMaintenTypeEnum implements ArrayValuable<Integer> {
  17 +
  18 + REGULAR(1, "定期维护"),
  19 + USAGE(2, "按使用次数维护");
  20 +
  21 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesTmMaintenTypeEnum::getType).toArray(Integer[]::new);
  22 +
  23 + /**
  24 + * 类型值
  25 + */
  26 + private final Integer type;
  27 + /**
  28 + * 类型名
  29 + */
  30 + private final String name;
  31 +
  32 + @Override
  33 + public Integer[] array() {
  34 + return ARRAYS;
  35 + }
  36 +
  37 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/tm/MesTmToolStatusEnum.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mes.enums.tm;
  2 +
  3 +import cn.iocoder.yudao.framework.common.core.ArrayValuable;
  4 +import lombok.AllArgsConstructor;
  5 +import lombok.Getter;
  6 +
  7 +import java.util.Arrays;
  8 +
  9 +/**
  10 + * MES 工具状态枚举
  11 + *
  12 + * @author 芋道源码
  13 + */
  14 +@Getter
  15 +@AllArgsConstructor
  16 +public enum MesTmToolStatusEnum implements ArrayValuable<Integer> {
  17 +
  18 + STORE(1, "在库"),
  19 + ISSUE(2, "领用中"),
  20 + REPAIR(3, "维修中"),
  21 + SCRAP(4, "报废");
  22 +
  23 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(MesTmToolStatusEnum::getStatus).toArray(Integer[]::new);
  24 +
  25 + /**
  26 + * 状态值
  27 + */
  28 + private final Integer status;
  29 + /**
  30 + * 状态名
  31 + */
  32 + private final String name;
  33 +
  34 + @Override
  35 + public Integer[] array() {
  36 + return ARRAYS;
  37 + }
  38 +
  39 +}
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/MesMdClientServiceImpl.java
... ... @@ -19,6 +19,7 @@ import org.springframework.validation.annotation.Validated;
19 19  
20 20 import java.util.ArrayList;
21 21 import java.util.Collection;
  22 +import java.util.Collections;
22 23 import java.util.LinkedHashMap;
23 24 import java.util.List;
24 25 import java.util.concurrent.atomic.AtomicInteger;
... ... @@ -134,6 +135,9 @@ public class MesMdClientServiceImpl implements MesMdClientService {
134 135  
135 136 @Override
136 137 public List<MesMdClientDO> getClientList(Collection<Long> ids) {
  138 + if (CollUtil.isEmpty(ids)) {
  139 + return Collections.emptyList();
  140 + }
137 141 return clientMapper.selectByIds(ids);
138 142 }
139 143  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemTypeServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.md.item;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.hutool.core.util.ObjUtil;
4 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 6 import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.type.MesMdItemTypeListReqVO;
... ... @@ -152,6 +153,9 @@ public class MesMdItemTypeServiceImpl implements MesMdItemTypeService {
152 153  
153 154 @Override
154 155 public List<MesMdItemTypeDO> getItemTypeList(Collection<Long> ids) {
  156 + if (CollUtil.isEmpty(ids)) {
  157 + return Collections.emptyList();
  158 + }
155 159 return itemTypeMapper.selectByIds(ids);
156 160 }
157 161  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/unitmeasure/MesMdUnitMeasureServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.md.unitmeasure;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 6 import cn.iocoder.yudao.module.mes.controller.admin.md.unitmeasure.vo.MesMdUnitMeasurePageReqVO;
... ... @@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
12 13 import org.springframework.validation.annotation.Validated;
13 14  
14 15 import java.util.Collection;
  16 +import java.util.Collections;
15 17 import java.util.List;
16 18 import java.util.Objects;
17 19  
... ... @@ -105,6 +107,9 @@ public class MesMdUnitMeasureServiceImpl implements MesMdUnitMeasureService {
105 107  
106 108 @Override
107 109 public List<MesMdUnitMeasureDO> getUnitMeasureList(Collection<Long> ids) {
  110 + if (CollUtil.isEmpty(ids)) {
  111 + return Collections.emptyList();
  112 + }
108 113 return unitMeasureMapper.selectByIds(ids);
109 114 }
110 115  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/MesMdVendorServiceImpl.java
... ... @@ -19,6 +19,7 @@ import org.springframework.validation.annotation.Validated;
19 19  
20 20 import java.util.ArrayList;
21 21 import java.util.Collection;
  22 +import java.util.Collections;
22 23 import java.util.LinkedHashMap;
23 24 import java.util.List;
24 25 import java.util.concurrent.atomic.AtomicInteger;
... ... @@ -133,6 +134,9 @@ public class MesMdVendorServiceImpl implements MesMdVendorService {
133 134  
134 135 @Override
135 136 public List<MesMdVendorDO> getVendorList(Collection<Long> ids) {
  137 + if (CollUtil.isEmpty(ids)) {
  138 + return Collections.emptyList();
  139 + }
136 140 return vendorMapper.selectByIds(ids);
137 141 }
138 142  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.md.workstation;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.hutool.core.util.ObjUtil;
4 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
... ... @@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
15 16 import org.springframework.validation.annotation.Validated;
16 17  
17 18 import java.util.Collection;
  19 +import java.util.Collections;
18 20 import java.util.List;
19 21  
20 22 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -115,6 +117,9 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService {
115 117  
116 118 @Override
117 119 public List<MesMdWorkshopDO> getWorkshopList(Collection<Long> ids) {
  120 + if (CollUtil.isEmpty(ids)) {
  121 + return Collections.emptyList();
  122 + }
118 123 return workshopMapper.selectByIds(ids);
119 124 }
120 125  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolServiceImpl.java
... ... @@ -6,11 +6,14 @@ import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolPageReqV
6 6 import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.MesTmToolSaveReqVO;
7 7 import cn.iocoder.yudao.module.mes.dal.dataobject.tm.tool.MesTmToolDO;
8 8 import cn.iocoder.yudao.module.mes.dal.mysql.tm.tool.MesTmToolMapper;
  9 +import cn.iocoder.yudao.module.mes.enums.tm.MesTmMaintenTypeEnum;
9 10 import jakarta.annotation.Resource;
10 11 import org.springframework.context.annotation.Lazy;
11 12 import org.springframework.stereotype.Service;
12 13 import org.springframework.validation.annotation.Validated;
13 14  
  15 +import cn.hutool.core.util.ObjUtil;
  16 +
14 17 import java.util.Objects;
15 18  
16 19 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
... ... @@ -55,10 +58,9 @@ public class MesTmToolServiceImpl implements MesTmToolService {
55 58 validateToolCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
56 59  
57 60 // 更新
58   - // TODO @AI:枚举类维护类型,避免使用魔法值
59   - if (Objects.equals(updateReqVO.getMaintenType(), 1)) { // 定期维护
  61 + if (Objects.equals(updateReqVO.getMaintenType(), MesTmMaintenTypeEnum.REGULAR.getType())) {
60 62 updateReqVO.setNextMaintenPeriod(null);
61   - } else if (Objects.equals(updateReqVO.getMaintenType(), 2)) { // 按使用次数维护
  63 + } else if (Objects.equals(updateReqVO.getMaintenType(), MesTmMaintenTypeEnum.USAGE.getType())) {
62 64 updateReqVO.setNextMaintenDate(null);
63 65 }
64 66 MesTmToolDO updateObj = BeanUtils.toBean(updateReqVO, MesTmToolDO.class);
... ... @@ -87,11 +89,7 @@ public class MesTmToolServiceImpl implements MesTmToolService {
87 89 if (tool == null) {
88 90 return;
89 91 }
90   - // TODO @AI:ObjUtil notEquals
91   - if (id == null) {
92   - throw exception(TM_TOOL_CODE_DUPLICATE);
93   - }
94   - if (!Objects.equals(tool.getId(), id)) {
  92 + if (ObjUtil.notEqual(tool.getId(), id)) {
95 93 throw exception(TM_TOOL_CODE_DUPLICATE);
96 94 }
97 95 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/tm/tool/MesTmToolTypeServiceImpl.java
1 1 package cn.iocoder.yudao.module.mes.service.tm.tool;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 6 import cn.iocoder.yudao.module.mes.controller.admin.tm.tool.vo.type.MesTmToolTypePageReqVO;
... ... @@ -11,9 +12,11 @@ import jakarta.annotation.Resource;
11 12 import org.springframework.stereotype.Service;
12 13 import org.springframework.validation.annotation.Validated;
13 14  
  15 +import cn.hutool.core.util.ObjUtil;
  16 +
14 17 import java.util.Collection;
  18 +import java.util.Collections;
15 19 import java.util.List;
16   -import java.util.Objects;
17 20  
18 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
19 22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
... ... @@ -84,11 +87,7 @@ public class MesTmToolTypeServiceImpl implements MesTmToolTypeService {
84 87 if (toolType == null) {
85 88 return;
86 89 }
87   - // TODO @AI:ObjUtil notEquals
88   - if (id == null) {
89   - throw exception(TM_TOOL_TYPE_CODE_DUPLICATE);
90   - }
91   - if (!Objects.equals(toolType.getId(), id)) {
  90 + if (ObjUtil.notEqual(toolType.getId(), id)) {
92 91 throw exception(TM_TOOL_TYPE_CODE_DUPLICATE);
93 92 }
94 93 }
... ... @@ -98,11 +97,7 @@ public class MesTmToolTypeServiceImpl implements MesTmToolTypeService {
98 97 if (toolType == null) {
99 98 return;
100 99 }
101   - // TODO @AI:ObjUtil notEquals
102   - if (id == null) {
103   - throw exception(TM_TOOL_TYPE_NAME_DUPLICATE);
104   - }
105   - if (!Objects.equals(toolType.getId(), id)) {
  100 + if (ObjUtil.notEqual(toolType.getId(), id)) {
106 101 throw exception(TM_TOOL_TYPE_NAME_DUPLICATE);
107 102 }
108 103 }
... ... @@ -124,6 +119,9 @@ public class MesTmToolTypeServiceImpl implements MesTmToolTypeService {
124 119  
125 120 @Override
126 121 public List<MesTmToolTypeDO> getToolTypeList(Collection<Long> ids) {
  122 + if (CollUtil.isEmpty(ids)) {
  123 + return Collections.emptyList();
  124 + }
127 125 return toolTypeMapper.selectByIds(ids);
128 126 }
129 127  
... ...