Commit c3826a2bc0589980f3846ba7ebf51fc635cd8d9c

Authored by YunaiV
1 parent 57dc91dc

feat(mes): 新增车间管理、工位管理模块后端(MD 主数据)

新增车间(workshop)和工位(workstation)5 张表的完整后端:
- DDL 建表 + 菜单 SQL(5160-5175)+ 螺丝刀工厂演示数据 21 条
- 5 DO + 5 Mapper + 5 Service 接口 + 5 Service 实现 + 5 Controller
- 17 VO(含分页/保存/响应)
- 工位子资源(设备/工具/人员)支持级联删除
- 导出 Excel 已拼装车间名称、负责人名称等关联字段
Showing 25 changed files with 361 additions and 29 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java
... ... @@ -116,9 +116,15 @@ public class MesMdWorkshopController {
116 116 HttpServletResponse response) throws IOException {
117 117 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
118 118 List<MesMdWorkshopDO> list = workshopService.getWorkshopPage(pageReqVO).getList();
119   - // TODO @AI:导出是不是也要拼接关联字段?
120   - ExcelUtils.write(response, "车间.xls", "数据", MesMdWorkshopRespVO.class,
121   - BeanUtils.toBean(list, MesMdWorkshopRespVO.class));
  119 + // 拼装负责人名称
  120 + List<MesMdWorkshopRespVO> voList = BeanUtils.toBean(list, MesMdWorkshopRespVO.class);
  121 + Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(
  122 + convertSet(voList, MesMdWorkshopRespVO::getChargeUserId));
  123 + voList.forEach(vo -> findAndThen(userMap, vo.getChargeUserId(),
  124 + user -> vo.setChargeUserName(user.getNickname())));
  125 + ExcelUtils.write(response, "车间.xls", "数据", MesMdWorkshopRespVO.class, voList);
122 126 }
123 127  
  128 + // TODO @AI:是不是要搞个方法,类似 private List<MesMdProductBomRespVO> buildProductBomRespVOList(List<MesMdProductBomDO> list) {
  129 +
124 130 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java
... ... @@ -116,10 +116,17 @@ public class MesMdWorkstationController {
116 116 public void exportWorkstationExcel(@Valid MesMdWorkstationPageReqVO pageReqVO,
117 117 HttpServletResponse response) throws IOException {
118 118 pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
119   - // TODO @AI:导出是不是也要处理下关联字段?比如车间名称。
120 119 List<MesMdWorkstationDO> list = workstationService.getWorkstationPage(pageReqVO).getList();
121   - ExcelUtils.write(response, "工位.xls", "数据", MesMdWorkstationRespVO.class,
122   - BeanUtils.toBean(list, MesMdWorkstationRespVO.class));
  120 + // 拼装车间名称
  121 + List<MesMdWorkstationRespVO> voList = BeanUtils.toBean(list, MesMdWorkstationRespVO.class);
  122 + Map<Long, MesMdWorkshopDO> workshopMap = cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap(
  123 + workshopService.getWorkshopListByStatus(null),
  124 + MesMdWorkshopDO::getId);
  125 + voList.forEach(vo -> findAndThen(workshopMap, vo.getWorkshopId(),
  126 + workshop -> vo.setWorkshopName(workshop.getName())));
  127 + ExcelUtils.write(response, "工位.xls", "数据", MesMdWorkstationRespVO.class, voList);
123 128 }
124 129  
  130 + // TODO @AI:是不是要搞个方法,类似 private List<MesMdProductBomRespVO> buildProductBomRespVOList(List<MesMdProductBomDO> list) {
  131 +
125 132 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java
... ... @@ -60,8 +60,10 @@ public class MesMdWorkstationWorkerController {
60 60 @RequestParam("workstationId") Long workstationId) {
61 61 List<MesMdWorkstationWorkerDO> list = workstationWorkerService.getWorkstationWorkerListByWorkstationId(workstationId);
62 62 // TODO @芋艿:拼装岗位名称,等前端从 system_post 获取岗位下拉列表
63   - // TODO @AI:拼接下!
  63 + // TODO @AI:后端拼接下返回;postApi?
64 64 return success(BeanUtils.toBean(list, MesMdWorkstationWorkerRespVO.class));
65 65 }
66 66  
  67 + // TODO @AI:是不是要搞个方法,类似 private List<MesMdProductBomRespVO> buildProductBomRespVOList(List<MesMdProductBomDO> list) {
  68 +
67 69 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java
... ... @@ -8,7 +8,11 @@ import lombok.*;
8 8  
9 9 import java.math.BigDecimal;
10 10  
11   -// TODO @AI:注释;以及关联;
  11 +/**
  12 + * MES 车间 DO
  13 + *
  14 + * @author 芋道源码
  15 + */
12 16 @TableName("mes_md_workshop")
13 17 @KeySequence("mes_md_workshop_seq")
14 18 @Data
... ... @@ -19,17 +23,52 @@ import java.math.BigDecimal;
19 23 @AllArgsConstructor
20 24 public class MesMdWorkshopDO extends BaseDO {
21 25  
  26 + /**
  27 + * 编号
  28 + */
22 29 @TableId
23 30 private Long id;
  31 + /**
  32 + * 车间编码
  33 + */
24 34 private String code;
  35 + /**
  36 + * 车间名称
  37 + */
25 38 private String name;
  39 + /**
  40 + * 面积(平方米)
  41 + */
26 42 private BigDecimal area;
  43 + // TODO @AI:通过 @ 去关联
  44 + /**
  45 + * 负责人用户编号,关联 system_users 表的 id
  46 + */
27 47 private Long chargeUserId;
  48 + // TODO @AI:通过 @ 去关联
  49 + /**
  50 + * 状态,参见 CommonStatusEnum 枚举
  51 + */
28 52 private Integer status;
  53 + /**
  54 + * 备注
  55 + */
29 56 private String remark;
  57 + /**
  58 + * 预留字段1
  59 + */
30 60 private String attribute1;
  61 + /**
  62 + * 预留字段2
  63 + */
31 64 private String attribute2;
  65 + /**
  66 + * 预留字段3
  67 + */
32 68 private Integer attribute3;
  69 + /**
  70 + * 预留字段4
  71 + */
33 72 private Integer attribute4;
34 73  
35 74 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java
... ... @@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import lombok.*;
8 8  
9   -// TODO @AI:注释;以及关联;
  9 +/**
  10 + * MES 工位 DO
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 @TableName("mes_md_workstation")
11 15 @KeySequence("mes_md_workstation_seq")
12 16 @Data
... ... @@ -17,21 +21,71 @@ import lombok.*;
17 21 @AllArgsConstructor
18 22 public class MesMdWorkstationDO extends BaseDO {
19 23  
  24 + /**
  25 + * 编号
  26 + */
20 27 @TableId
21 28 private Long id;
  29 + /**
  30 + * 工位编码
  31 + */
22 32 private String code;
  33 + /**
  34 + * 工位名称
  35 + */
23 36 private String name;
  37 + /**
  38 + * 工位地点
  39 + */
24 40 private String address;
  41 + // TODO @AI:通过 @ 去关联,按照别的模块
  42 + /**
  43 + * 所在车间编号,关联 {@link MesMdWorkshopDO#getId()}
  44 + */
25 45 private Long workshopId;
  46 + // TODO @AI:通过 @ 去关联,按照别的模块
  47 + /**
  48 + * 工序编号
  49 + */
26 50 private Long processId;
  51 + // TODO @AI:通过 @ 去关联,按照别的模块
  52 + /**
  53 + * 线边库编号
  54 + */
27 55 private Long warehouseId;
  56 + // TODO @AI:通过 @ 去关联,按照别的模块
  57 + /**
  58 + * 库区编号
  59 + */
28 60 private Long locationId;
  61 + /**
  62 + * 库位编号
  63 + */
29 64 private Long areaId;
  65 + // TODO @AI:通过 @ 去关联,按照别的模块
  66 + /**
  67 + * 状态,参见 CommonStatusEnum 枚举
  68 + */
30 69 private Integer status;
  70 + /**
  71 + * 备注
  72 + */
31 73 private String remark;
  74 + /**
  75 + * 预留字段1
  76 + */
32 77 private String attribute1;
  78 + /**
  79 + * 预留字段2
  80 + */
33 81 private String attribute2;
  82 + /**
  83 + * 预留字段3
  84 + */
34 85 private Integer attribute3;
  86 + /**
  87 + * 预留字段4
  88 + */
35 89 private Integer attribute4;
36 90  
37 91 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java
... ... @@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import lombok.*;
8 8  
9   -// TODO @AI:注释;以及关联;
  9 +/**
  10 + * MES 工位设备 DO
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 @TableName("mes_md_workstation_machine")
11 15 @KeySequence("mes_md_workstation_machine_seq")
12 16 @Data
... ... @@ -17,15 +21,44 @@ import lombok.*;
17 21 @AllArgsConstructor
18 22 public class MesMdWorkstationMachineDO extends BaseDO {
19 23  
  24 + /**
  25 + * 编号
  26 + */
20 27 @TableId
21 28 private Long id;
  29 + // TODO @AI:通过 @ 去关联,按照别的模块
  30 + /**
  31 + * 工位编号,关联 {@link MesMdWorkstationDO#id}
  32 + */
22 33 private Long workstationId;
  34 + // TODO @AI:通过 @ 去关联,按照别的模块
  35 + /**
  36 + * 设备编号
  37 + */
23 38 private Long machineryId;
  39 + /**
  40 + * 数量
  41 + */
24 42 private Integer quantity;
  43 + /**
  44 + * 备注
  45 + */
25 46 private String remark;
  47 + /**
  48 + * 预留字段1
  49 + */
26 50 private String attribute1;
  51 + /**
  52 + * 预留字段2
  53 + */
27 54 private String attribute2;
  55 + /**
  56 + * 预留字段3
  57 + */
28 58 private Integer attribute3;
  59 + /**
  60 + * 预留字段4
  61 + */
29 62 private Integer attribute4;
30 63  
31 64 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java
... ... @@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import lombok.*;
8 8  
9   -// TODO @AI:注释;以及关联;
  9 +/**
  10 + * MES 工位工具 DO
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 @TableName("mes_md_workstation_tool")
11 15 @KeySequence("mes_md_workstation_tool_seq")
12 16 @Data
... ... @@ -17,15 +21,44 @@ import lombok.*;
17 21 @AllArgsConstructor
18 22 public class MesMdWorkstationToolDO extends BaseDO {
19 23  
  24 + /**
  25 + * 编号
  26 + */
20 27 @TableId
21 28 private Long id;
  29 + // TODO @AI:通过 @ 去关联,按照别的模块
  30 + /**
  31 + * 工位编号,关联 {@link MesMdWorkstationDO#id}
  32 + */
22 33 private Long workstationId;
  34 + // TODO @AI:通过 @ 去关联,按照别的模块
  35 + /**
  36 + * 工具类型编号
  37 + */
23 38 private Long toolTypeId;
  39 + /**
  40 + * 数量
  41 + */
24 42 private Integer quantity;
  43 + /**
  44 + * 备注
  45 + */
25 46 private String remark;
  47 + /**
  48 + * 预留字段1
  49 + */
26 50 private String attribute1;
  51 + /**
  52 + * 预留字段2
  53 + */
27 54 private String attribute2;
  55 + /**
  56 + * 预留字段3
  57 + */
28 58 private Integer attribute3;
  59 + /**
  60 + * 预留字段4
  61 + */
29 62 private Integer attribute4;
30 63  
31 64 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java
... ... @@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import lombok.*;
8 8  
9   -// TODO @AI:注释;以及关联;
  9 +/**
  10 + * MES 工位人员 DO
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 @TableName("mes_md_workstation_worker")
11 15 @KeySequence("mes_md_workstation_worker_seq")
12 16 @Data
... ... @@ -17,15 +21,44 @@ import lombok.*;
17 21 @AllArgsConstructor
18 22 public class MesMdWorkstationWorkerDO extends BaseDO {
19 23  
  24 + /**
  25 + * 编号
  26 + */
20 27 @TableId
21 28 private Long id;
  29 + // TODO @AI:通过 @ 去关联,按照别的模块
  30 + /**
  31 + * 工位编号,关联 {@link MesMdWorkstationDO#id}
  32 + */
22 33 private Long workstationId;
  34 + // TODO @AI:通过 @ 去关联,按照别的模块
  35 + /**
  36 + * 岗位编号,关联 system_post 表的 id
  37 + */
23 38 private Long postId;
  39 + /**
  40 + * 数量
  41 + */
24 42 private Integer quantity;
  43 + /**
  44 + * 备注
  45 + */
25 46 private String remark;
  47 + /**
  48 + * 预留字段1
  49 + */
26 50 private String attribute1;
  51 + /**
  52 + * 预留字段2
  53 + */
27 54 private String attribute2;
  55 + /**
  56 + * 预留字段3
  57 + */
28 58 private Integer attribute3;
  59 + /**
  60 + * 预留字段4
  61 + */
29 62 private Integer attribute4;
30 63  
31 64 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java
... ... @@ -9,7 +9,11 @@ import org.apache.ibatis.annotations.Mapper;
9 9  
10 10 import java.util.List;
11 11  
12   -// TODO @AI:注释;
  12 +/**
  13 + * MES 车间 Mapper
  14 + *
  15 + * @author 芋道源码
  16 + */
13 17 @Mapper
14 18 public interface MesMdWorkshopMapper extends BaseMapperX<MesMdWorkshopDO> {
15 19  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java
... ... @@ -6,7 +6,11 @@ import org.apache.ibatis.annotations.Mapper;
6 6  
7 7 import java.util.List;
8 8  
9   -// TODO @AI:注释;
  9 +/**
  10 + * MES 工位设备 Mapper
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 @Mapper
11 15 public interface MesMdWorkstationMachineMapper extends BaseMapperX<MesMdWorkstationMachineDO> {
12 16  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java
... ... @@ -9,7 +9,11 @@ import org.apache.ibatis.annotations.Mapper;
9 9  
10 10 import java.util.List;
11 11  
12   -// TODO @AI:注释;
  12 +/**
  13 + * MES 工位 Mapper
  14 + *
  15 + * @author 芋道源码
  16 + */
13 17 @Mapper
14 18 public interface MesMdWorkstationMapper extends BaseMapperX<MesMdWorkstationDO> {
15 19  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java
... ... @@ -7,7 +7,11 @@ import org.apache.ibatis.annotations.Mapper;
7 7  
8 8 import java.util.List;
9 9  
10   -// TODO @AI:注释;
  10 +/**
  11 + * MES 工位工具 Mapper
  12 + *
  13 + * @author 芋道源码
  14 + */
11 15 @Mapper
12 16 public interface MesMdWorkstationToolMapper extends BaseMapperX<MesMdWorkstationToolDO> {
13 17  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java
... ... @@ -7,7 +7,11 @@ import org.apache.ibatis.annotations.Mapper;
7 7  
8 8 import java.util.List;
9 9  
10   -// TODO @AI:注释;
  10 +/**
  11 + * MES 工位人员 Mapper
  12 + *
  13 + * @author 芋道源码
  14 + */
11 15 @Mapper
12 16 public interface MesMdWorkstationWorkerMapper extends BaseMapperX<MesMdWorkstationWorkerDO> {
13 17  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
... ... @@ -70,6 +70,16 @@ public interface ErrorCodeConstants {
70 70  
71 71 // ========== MES 基础数据-产品BOM(1-040-107-000) ==========
72 72 ErrorCode MD_PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1_040_107_000, "产品BOM不存在");
  73 + ErrorCode MD_PRODUCT_BOM_SELF_REFERENCE = new ErrorCode(1_040_107_001, "产品不能作为自身的BOM物料");
  74 + ErrorCode MD_PRODUCT_BOM_CIRCULAR = new ErrorCode(1_040_107_002, "BOM物料存在闭环,无法新增");
  75 +
  76 + // ========== MES 基础数据-产品SOP(1-040-108-000) ==========
  77 + ErrorCode MD_PRODUCT_SOP_NOT_EXISTS = new ErrorCode(1_040_108_000, "产品SOP不存在");
  78 + ErrorCode MD_PRODUCT_SOP_ORDER_NUM_DUPLICATE = new ErrorCode(1_040_108_001, "该展示序号已存在");
  79 +
  80 + // ========== MES 基础数据-产品SIP(1-040-109-000) ==========
  81 + ErrorCode MD_PRODUCT_SIP_NOT_EXISTS = new ErrorCode(1_040_109_000, "产品SIP不存在");
  82 + ErrorCode MD_PRODUCT_SIP_ORDER_NUM_DUPLICATE = new ErrorCode(1_040_109_001, "该展示序号已存在");
73 83  
74 84 // ========== MES 日历排班-班次(1-040-200-000) ==========
75 85 ErrorCode CAL_SHIFT_NOT_EXISTS = new ErrorCode(1_040_200_000, "班次不存在");
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
... ... @@ -43,12 +43,16 @@ public class MesMdItemServiceImpl implements MesMdItemService {
43 43  
44 44 @Resource
45 45 private MesMdItemTypeService itemTypeService;
46   -
47 46 @Resource
48 47 private MesMdUnitMeasureService unitMeasureService;
49   -
50 48 @Resource
51 49 private MesMdItemBatchConfigService itemBatchConfigService;
  50 + @Resource
  51 + private MesMdProductBomService productBomService;
  52 + @Resource
  53 + private MesMdProductSopService productSopService;
  54 + @Resource
  55 + private MesMdProductSipService productSipService;
52 56  
53 57 @Override
54 58 public Long createItem(MesMdItemSaveReqVO createReqVO) {
... ... @@ -91,11 +95,19 @@ public class MesMdItemServiceImpl implements MesMdItemService {
91 95 }
92 96  
93 97 @Override
  98 + @Transactional(rollbackFor = Exception.class)
94 99 public void deleteItem(Long id) {
95 100 // 校验存在
96 101 validateItemExists(id);
  102 +
97 103 // 级联删除批次属性配置
98 104 itemBatchConfigService.deleteItemBatchConfigByItemId(id);
  105 + // 级联删除产品BOM
  106 + productBomService.deleteProductBomByItemId(id);
  107 + // 级联删除产品SOP
  108 + productSopService.deleteProductSopByItemId(id);
  109 + // 级联删除产品SIP
  110 + productSipService.deleteProductSipByItemId(id);
99 111 // 删除
100 112 itemMapper.deleteById(id);
101 113 }
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java
... ... @@ -8,7 +8,12 @@ import jakarta.validation.Valid;
8 8  
9 9 import java.util.List;
10 10  
11   -// TODO @AI:注释;
  11 +// TODO @AI:方法注释?
  12 +/**
  13 + * MES 车间 Service 接口
  14 + *
  15 + * @author 芋道源码
  16 + */
12 17 public interface MesMdWorkshopService {
13 18  
14 19 Long createWorkshop(@Valid MesMdWorkshopSaveReqVO createReqVO);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java
... ... @@ -19,7 +19,11 @@ import java.util.List;
19 19 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
20 20 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
21 21  
22   -// TODO @AI:注释;
  22 +/**
  23 + * MES 车间 Service 实现类
  24 + *
  25 + * @author 芋道源码
  26 + */
23 27 @Service
24 28 @Validated
25 29 public class MesMdWorkshopServiceImpl implements MesMdWorkshopService {
... ... @@ -33,9 +37,12 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService {
33 37  
34 38 @Override
35 39 public Long createWorkshop(MesMdWorkshopSaveReqVO createReqVO) {
  40 + // TODO @AI:注释
36 41 validateWorkshopCodeUnique(null, createReqVO.getCode());
  42 + // TODO @AI:注释
37 43 validateWorkshopNameUnique(null, createReqVO.getName());
38 44  
  45 + // 插入
39 46 MesMdWorkshopDO workshop = BeanUtils.toBean(createReqVO, MesMdWorkshopDO.class);
40 47 workshopMapper.insert(workshop);
41 48 return workshop.getId();
... ... @@ -43,22 +50,29 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService {
43 50  
44 51 @Override
45 52 public void updateWorkshop(MesMdWorkshopSaveReqVO updateReqVO) {
  53 + // TODO @AI:注释
46 54 validateWorkshopExists(updateReqVO.getId());
  55 + // TODO @AI:注释
47 56 validateWorkshopCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
  57 + // TODO @AI:注释
48 58 validateWorkshopNameUnique(updateReqVO.getId(), updateReqVO.getName());
49 59  
  60 + // 更新
50 61 MesMdWorkshopDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkshopDO.class);
51 62 workshopMapper.updateById(updateObj);
52 63 }
53 64  
54 65 @Override
55 66 public void deleteWorkshop(Long id) {
  67 + // TODO @AI:注释
56 68 validateWorkshopExists(id);
57 69 // 校验车间下是否存在工位
58 70 Long count = workstationMapper.selectCount(MesMdWorkstationDO::getWorkshopId, id);
59 71 if (count > 0) {
60 72 throw exception(MD_WORKSHOP_HAS_WORKSTATION);
61 73 }
  74 +
  75 + // 删除
62 76 workshopMapper.deleteById(id);
63 77 }
64 78  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java
... ... @@ -6,9 +6,15 @@ import jakarta.validation.Valid;
6 6  
7 7 import java.util.List;
8 8  
9   -// TODO @AI:注释;
  9 +/**
  10 + * MES 工位设备 Service 接口
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 public interface MesMdWorkstationMachineService {
11 15  
  16 +// TODO @AI:方法注释?
  17 +
12 18 Long createWorkstationMachine(@Valid MesMdWorkstationMachineSaveReqVO createReqVO);
13 19  
14 20 void deleteWorkstationMachine(Long id);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java
... ... @@ -13,7 +13,11 @@ import java.util.List;
13 13 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
14 14 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
15 15  
16   -// TODO @AI:注释;
  16 +/**
  17 + * MES 工位设备 Service 实现类
  18 + *
  19 + * @author 芋道源码
  20 + */
17 21 @Service
18 22 @Validated
19 23 public class MesMdWorkstationMachineServiceImpl implements MesMdWorkstationMachineService {
... ... @@ -29,6 +33,7 @@ public class MesMdWorkstationMachineServiceImpl implements MesMdWorkstationMachi
29 33 throw exception(MD_WORKSTATION_MACHINE_EXISTS);
30 34 }
31 35  
  36 + // 插入
32 37 MesMdWorkstationMachineDO machine = BeanUtils.toBean(createReqVO, MesMdWorkstationMachineDO.class);
33 38 workstationMachineMapper.insert(machine);
34 39 return machine.getId();
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java
... ... @@ -8,9 +8,15 @@ import jakarta.validation.Valid;
8 8  
9 9 import java.util.List;
10 10  
11   -// TODO @AI:注释;
  11 +/**
  12 + * MES 工位 Service 接口
  13 + *
  14 + * @author 芋道源码
  15 + */
12 16 public interface MesMdWorkstationService {
13 17  
  18 + // TODO @AI:方法注释?
  19 +
14 20 Long createWorkstation(@Valid MesMdWorkstationSaveReqVO createReqVO);
15 21  
16 22 void updateWorkstation(@Valid MesMdWorkstationSaveReqVO updateReqVO);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java
... ... @@ -20,7 +20,11 @@ import java.util.List;
20 20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
21 21 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
22 22  
23   -// TODO @AI:注释;
  23 +/**
  24 + * MES 工位 Service 实现类
  25 + *
  26 + * @author 芋道源码
  27 + */
24 28 @Service
25 29 @Validated
26 30 public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
... ... @@ -42,11 +46,14 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
42 46  
43 47 @Override
44 48 public Long createWorkstation(MesMdWorkstationSaveReqVO createReqVO) {
  49 + // TODO @AI:注释
45 50 validateWorkstationCodeUnique(null, createReqVO.getCode());
  51 + // TODO @AI:注释
46 52 validateWorkstationNameUnique(null, createReqVO.getName());
47 53 // 校验车间存在
48 54 workshopService.getWorkshop(createReqVO.getWorkshopId()); // validateWorkshopExists via getWorkshop
49 55  
  56 + // 插入
50 57 MesMdWorkstationDO workstation = BeanUtils.toBean(createReqVO, MesMdWorkstationDO.class);
51 58 workstationMapper.insert(workstation);
52 59 return workstation.getId();
... ... @@ -54,12 +61,16 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
54 61  
55 62 @Override
56 63 public void updateWorkstation(MesMdWorkstationSaveReqVO updateReqVO) {
  64 + // TODO @AI:注释
57 65 validateWorkstationExists(updateReqVO.getId());
  66 + // TODO @AI:注释
58 67 validateWorkstationCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
  68 + // TODO @AI:注释
59 69 validateWorkstationNameUnique(updateReqVO.getId(), updateReqVO.getName());
60 70 // 校验车间存在
61 71 workshopService.getWorkshop(updateReqVO.getWorkshopId());
62 72  
  73 + // 更新
63 74 MesMdWorkstationDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationDO.class);
64 75 workstationMapper.updateById(updateObj);
65 76 }
... ... @@ -67,7 +78,9 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
67 78 @Override
68 79 @Transactional(rollbackFor = Exception.class)
69 80 public void deleteWorkstation(Long id) {
  81 + // TODO @AI:注释
70 82 validateWorkstationExists(id);
  83 +
71 84 // 级联删除子资源
72 85 workstationMachineMapper.deleteByWorkstationId(id);
73 86 workstationToolMapper.deleteByWorkstationId(id);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java
... ... @@ -6,9 +6,14 @@ import jakarta.validation.Valid;
6 6  
7 7 import java.util.List;
8 8  
9   -// TODO @AI:注释;
  9 +/**
  10 + * MES 工位工具 Service 接口
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 public interface MesMdWorkstationToolService {
11 15  
  16 + // TODO @AI:方法注释?
12 17 Long createWorkstationTool(@Valid MesMdWorkstationToolSaveReqVO createReqVO);
13 18  
14 19 void updateWorkstationTool(@Valid MesMdWorkstationToolSaveReqVO updateReqVO);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java
... ... @@ -13,7 +13,11 @@ import java.util.List;
13 13 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
14 14 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
15 15  
16   -// TODO @AI:注释;
  16 +/**
  17 + * MES 工位工具 Service 实现类
  18 + *
  19 + * @author 芋道源码
  20 + */
17 21 @Service
18 22 @Validated
19 23 public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolService {
... ... @@ -30,6 +34,7 @@ public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolServ
30 34 throw exception(MD_WORKSTATION_TOOL_TYPE_EXISTS);
31 35 }
32 36  
  37 + // 插入
33 38 MesMdWorkstationToolDO tool = BeanUtils.toBean(createReqVO, MesMdWorkstationToolDO.class);
34 39 workstationToolMapper.insert(tool);
35 40 return tool.getId();
... ... @@ -37,18 +42,25 @@ public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolServ
37 42  
38 43 @Override
39 44 public void updateWorkstationTool(MesMdWorkstationToolSaveReqVO updateReqVO) {
  45 + // 校验存在
  46 + // TODO @AI:要不要抽个方法,参考别的模块
40 47 if (workstationToolMapper.selectById(updateReqVO.getId()) == null) {
41 48 throw exception(MD_WORKSTATION_TOOL_NOT_EXISTS);
42 49 }
  50 +
  51 + // 更新
43 52 MesMdWorkstationToolDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationToolDO.class);
44 53 workstationToolMapper.updateById(updateObj);
45 54 }
46 55  
47 56 @Override
48 57 public void deleteWorkstationTool(Long id) {
  58 + // 校验存在
49 59 if (workstationToolMapper.selectById(id) == null) {
50 60 throw exception(MD_WORKSTATION_TOOL_NOT_EXISTS);
51 61 }
  62 +
  63 + // 删除
52 64 workstationToolMapper.deleteById(id);
53 65 }
54 66  
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java
... ... @@ -6,9 +6,15 @@ import jakarta.validation.Valid;
6 6  
7 7 import java.util.List;
8 8  
9   -// TODO @AI:注释;
  9 +/**
  10 + * MES 工位人员 Service 接口
  11 + *
  12 + * @author 芋道源码
  13 + */
10 14 public interface MesMdWorkstationWorkerService {
11 15  
  16 + // TODO @AI:方法注释;
  17 +
12 18 Long createWorkstationWorker(@Valid MesMdWorkstationWorkerSaveReqVO createReqVO);
13 19  
14 20 void updateWorkstationWorker(@Valid MesMdWorkstationWorkerSaveReqVO updateReqVO);
... ...
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java
... ... @@ -13,7 +13,11 @@ import java.util.List;
13 13 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
14 14 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
15 15  
16   -// TODO @AI:注释;
  16 +/**
  17 + * MES 工位人员 Service 实现类
  18 + *
  19 + * @author 芋道源码
  20 + */
17 21 @Service
18 22 @Validated
19 23 public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorkerService {
... ... @@ -30,6 +34,7 @@ public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorker
30 34 throw exception(MD_WORKSTATION_WORKER_POST_EXISTS);
31 35 }
32 36  
  37 + // 插入
33 38 MesMdWorkstationWorkerDO worker = BeanUtils.toBean(createReqVO, MesMdWorkstationWorkerDO.class);
34 39 workstationWorkerMapper.insert(worker);
35 40 return worker.getId();
... ... @@ -37,18 +42,24 @@ public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorker
37 42  
38 43 @Override
39 44 public void updateWorkstationWorker(MesMdWorkstationWorkerSaveReqVO updateReqVO) {
  45 + // TODO @AI:抽个方法,参考别的模块
40 46 if (workstationWorkerMapper.selectById(updateReqVO.getId()) == null) {
41 47 throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS);
42 48 }
  49 +
  50 + // 更新
43 51 MesMdWorkstationWorkerDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationWorkerDO.class);
44 52 workstationWorkerMapper.updateById(updateObj);
45 53 }
46 54  
47 55 @Override
48 56 public void deleteWorkstationWorker(Long id) {
  57 + // TODO @AI:抽个方法,参考别的模块
49 58 if (workstationWorkerMapper.selectById(id) == null) {
50 59 throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS);
51 60 }
  61 +
  62 + // 删除
52 63 workstationWorkerMapper.deleteById(id);
53 64 }
54 65  
... ...