From c3826a2bc0589980f3846ba7ebf51fc635cd8d9c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Mon, 16 Feb 2026 08:40:17 +0800 Subject: [PATCH] feat(mes): 新增车间管理、工位管理模块后端(MD 主数据) --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java | 12 +++++++++--- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java | 13 ++++++++++--- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java | 4 +++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java | 41 ++++++++++++++++++++++++++++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java | 35 ++++++++++++++++++++++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java | 35 ++++++++++++++++++++++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java | 35 ++++++++++++++++++++++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java | 6 +++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java | 6 +++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java | 6 +++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java | 6 +++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java | 6 +++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java | 10 ++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java | 16 ++++++++++++++-- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java | 7 ++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java | 16 +++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java | 8 +++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java | 7 ++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java | 8 +++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java | 15 ++++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java | 7 ++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java | 14 +++++++++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java | 8 +++++++- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java | 13 ++++++++++++- 25 files changed, 361 insertions(+), 29 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java index 4490a33..f173a0b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkshopController.java @@ -116,9 +116,15 @@ public class MesMdWorkshopController { HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = workshopService.getWorkshopPage(pageReqVO).getList(); - // TODO @AI:导出是不是也要拼接关联字段? - ExcelUtils.write(response, "车间.xls", "数据", MesMdWorkshopRespVO.class, - BeanUtils.toBean(list, MesMdWorkshopRespVO.class)); + // 拼装负责人名称 + List voList = BeanUtils.toBean(list, MesMdWorkshopRespVO.class); + Map userMap = adminUserApi.getUserMap( + convertSet(voList, MesMdWorkshopRespVO::getChargeUserId)); + voList.forEach(vo -> findAndThen(userMap, vo.getChargeUserId(), + user -> vo.setChargeUserName(user.getNickname()))); + ExcelUtils.write(response, "车间.xls", "数据", MesMdWorkshopRespVO.class, voList); } + // TODO @AI:是不是要搞个方法,类似 private List buildProductBomRespVOList(List list) { + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java index fe9b03b..ad75141 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationController.java @@ -116,10 +116,17 @@ public class MesMdWorkstationController { public void exportWorkstationExcel(@Valid MesMdWorkstationPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - // TODO @AI:导出是不是也要处理下关联字段?比如车间名称。 List list = workstationService.getWorkstationPage(pageReqVO).getList(); - ExcelUtils.write(response, "工位.xls", "数据", MesMdWorkstationRespVO.class, - BeanUtils.toBean(list, MesMdWorkstationRespVO.class)); + // 拼装车间名称 + List voList = BeanUtils.toBean(list, MesMdWorkstationRespVO.class); + Map workshopMap = cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap( + workshopService.getWorkshopListByStatus(null), + MesMdWorkshopDO::getId); + voList.forEach(vo -> findAndThen(workshopMap, vo.getWorkshopId(), + workshop -> vo.setWorkshopName(workshop.getName()))); + ExcelUtils.write(response, "工位.xls", "数据", MesMdWorkstationRespVO.class, voList); } + // TODO @AI:是不是要搞个方法,类似 private List buildProductBomRespVOList(List list) { + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java index cdad469..0fcd4f0 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/MesMdWorkstationWorkerController.java @@ -60,8 +60,10 @@ public class MesMdWorkstationWorkerController { @RequestParam("workstationId") Long workstationId) { List list = workstationWorkerService.getWorkstationWorkerListByWorkstationId(workstationId); // TODO @芋艿:拼装岗位名称,等前端从 system_post 获取岗位下拉列表 - // TODO @AI:拼接下! + // TODO @AI:后端拼接下返回;postApi? return success(BeanUtils.toBean(list, MesMdWorkstationWorkerRespVO.class)); } + // TODO @AI:是不是要搞个方法,类似 private List buildProductBomRespVOList(List list) { + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java index 792400b..091d008 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkshopDO.java @@ -8,7 +8,11 @@ import lombok.*; import java.math.BigDecimal; -// TODO @AI:注释;以及关联; +/** + * MES 车间 DO + * + * @author 芋道源码 + */ @TableName("mes_md_workshop") @KeySequence("mes_md_workshop_seq") @Data @@ -19,17 +23,52 @@ import java.math.BigDecimal; @AllArgsConstructor public class MesMdWorkshopDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; + /** + * 车间编码 + */ private String code; + /** + * 车间名称 + */ private String name; + /** + * 面积(平方米) + */ private BigDecimal area; + // TODO @AI:通过 @ 去关联 + /** + * 负责人用户编号,关联 system_users 表的 id + */ private Long chargeUserId; + // TODO @AI:通过 @ 去关联 + /** + * 状态,参见 CommonStatusEnum 枚举 + */ private Integer status; + /** + * 备注 + */ private String remark; + /** + * 预留字段1 + */ private String attribute1; + /** + * 预留字段2 + */ private String attribute2; + /** + * 预留字段3 + */ private Integer attribute3; + /** + * 预留字段4 + */ private Integer attribute4; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java index 40b22b2..9103732 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationDO.java +++ b/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; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; -// TODO @AI:注释;以及关联; +/** + * MES 工位 DO + * + * @author 芋道源码 + */ @TableName("mes_md_workstation") @KeySequence("mes_md_workstation_seq") @Data @@ -17,21 +21,71 @@ import lombok.*; @AllArgsConstructor public class MesMdWorkstationDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; + /** + * 工位编码 + */ private String code; + /** + * 工位名称 + */ private String name; + /** + * 工位地点 + */ private String address; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 所在车间编号,关联 {@link MesMdWorkshopDO#getId()} + */ private Long workshopId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 工序编号 + */ private Long processId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 线边库编号 + */ private Long warehouseId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 库区编号 + */ private Long locationId; + /** + * 库位编号 + */ private Long areaId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 状态,参见 CommonStatusEnum 枚举 + */ private Integer status; + /** + * 备注 + */ private String remark; + /** + * 预留字段1 + */ private String attribute1; + /** + * 预留字段2 + */ private String attribute2; + /** + * 预留字段3 + */ private Integer attribute3; + /** + * 预留字段4 + */ private Integer attribute4; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java index 2a70d37..48778da 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationMachineDO.java +++ b/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; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; -// TODO @AI:注释;以及关联; +/** + * MES 工位设备 DO + * + * @author 芋道源码 + */ @TableName("mes_md_workstation_machine") @KeySequence("mes_md_workstation_machine_seq") @Data @@ -17,15 +21,44 @@ import lombok.*; @AllArgsConstructor public class MesMdWorkstationMachineDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 工位编号,关联 {@link MesMdWorkstationDO#id} + */ private Long workstationId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 设备编号 + */ private Long machineryId; + /** + * 数量 + */ private Integer quantity; + /** + * 备注 + */ private String remark; + /** + * 预留字段1 + */ private String attribute1; + /** + * 预留字段2 + */ private String attribute2; + /** + * 预留字段3 + */ private Integer attribute3; + /** + * 预留字段4 + */ private Integer attribute4; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java index ebd5c47..522bfee 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationToolDO.java +++ b/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; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; -// TODO @AI:注释;以及关联; +/** + * MES 工位工具 DO + * + * @author 芋道源码 + */ @TableName("mes_md_workstation_tool") @KeySequence("mes_md_workstation_tool_seq") @Data @@ -17,15 +21,44 @@ import lombok.*; @AllArgsConstructor public class MesMdWorkstationToolDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 工位编号,关联 {@link MesMdWorkstationDO#id} + */ private Long workstationId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 工具类型编号 + */ private Long toolTypeId; + /** + * 数量 + */ private Integer quantity; + /** + * 备注 + */ private String remark; + /** + * 预留字段1 + */ private String attribute1; + /** + * 预留字段2 + */ private String attribute2; + /** + * 预留字段3 + */ private Integer attribute3; + /** + * 预留字段4 + */ private Integer attribute4; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java index 6d6ef17..2dc7c2d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/workstation/MesMdWorkstationWorkerDO.java +++ b/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; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; -// TODO @AI:注释;以及关联; +/** + * MES 工位人员 DO + * + * @author 芋道源码 + */ @TableName("mes_md_workstation_worker") @KeySequence("mes_md_workstation_worker_seq") @Data @@ -17,15 +21,44 @@ import lombok.*; @AllArgsConstructor public class MesMdWorkstationWorkerDO extends BaseDO { + /** + * 编号 + */ @TableId private Long id; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 工位编号,关联 {@link MesMdWorkstationDO#id} + */ private Long workstationId; + // TODO @AI:通过 @ 去关联,按照别的模块 + /** + * 岗位编号,关联 system_post 表的 id + */ private Long postId; + /** + * 数量 + */ private Integer quantity; + /** + * 备注 + */ private String remark; + /** + * 预留字段1 + */ private String attribute1; + /** + * 预留字段2 + */ private String attribute2; + /** + * 预留字段3 + */ private Integer attribute3; + /** + * 预留字段4 + */ private Integer attribute4; } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java index d51bcc2..824bfdc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkshopMapper.java +++ b/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; import java.util.List; -// TODO @AI:注释; +/** + * MES 车间 Mapper + * + * @author 芋道源码 + */ @Mapper public interface MesMdWorkshopMapper extends BaseMapperX { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java index 72f5ed3..59d3887 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMachineMapper.java +++ b/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; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位设备 Mapper + * + * @author 芋道源码 + */ @Mapper public interface MesMdWorkstationMachineMapper extends BaseMapperX { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java index 0e34296..4b278b5 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationMapper.java +++ b/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; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位 Mapper + * + * @author 芋道源码 + */ @Mapper public interface MesMdWorkstationMapper extends BaseMapperX { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java index 2e23a30..d2c42b0 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationToolMapper.java +++ b/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; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位工具 Mapper + * + * @author 芋道源码 + */ @Mapper public interface MesMdWorkstationToolMapper extends BaseMapperX { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java index 78db810..3601b93 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/workstation/MesMdWorkstationWorkerMapper.java +++ b/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; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位人员 Mapper + * + * @author 芋道源码 + */ @Mapper public interface MesMdWorkstationWorkerMapper extends BaseMapperX { diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index 44bf369..8743a78 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -70,6 +70,16 @@ public interface ErrorCodeConstants { // ========== MES 基础数据-产品BOM(1-040-107-000) ========== ErrorCode MD_PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1_040_107_000, "产品BOM不存在"); + ErrorCode MD_PRODUCT_BOM_SELF_REFERENCE = new ErrorCode(1_040_107_001, "产品不能作为自身的BOM物料"); + ErrorCode MD_PRODUCT_BOM_CIRCULAR = new ErrorCode(1_040_107_002, "BOM物料存在闭环,无法新增"); + + // ========== MES 基础数据-产品SOP(1-040-108-000) ========== + ErrorCode MD_PRODUCT_SOP_NOT_EXISTS = new ErrorCode(1_040_108_000, "产品SOP不存在"); + ErrorCode MD_PRODUCT_SOP_ORDER_NUM_DUPLICATE = new ErrorCode(1_040_108_001, "该展示序号已存在"); + + // ========== MES 基础数据-产品SIP(1-040-109-000) ========== + ErrorCode MD_PRODUCT_SIP_NOT_EXISTS = new ErrorCode(1_040_109_000, "产品SIP不存在"); + ErrorCode MD_PRODUCT_SIP_ORDER_NUM_DUPLICATE = new ErrorCode(1_040_109_001, "该展示序号已存在"); // ========== MES 日历排班-班次(1-040-200-000) ========== ErrorCode CAL_SHIFT_NOT_EXISTS = new ErrorCode(1_040_200_000, "班次不存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java index 7de8665..106fb88 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java +++ b/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 { @Resource private MesMdItemTypeService itemTypeService; - @Resource private MesMdUnitMeasureService unitMeasureService; - @Resource private MesMdItemBatchConfigService itemBatchConfigService; + @Resource + private MesMdProductBomService productBomService; + @Resource + private MesMdProductSopService productSopService; + @Resource + private MesMdProductSipService productSipService; @Override public Long createItem(MesMdItemSaveReqVO createReqVO) { @@ -91,11 +95,19 @@ public class MesMdItemServiceImpl implements MesMdItemService { } @Override + @Transactional(rollbackFor = Exception.class) public void deleteItem(Long id) { // 校验存在 validateItemExists(id); + // 级联删除批次属性配置 itemBatchConfigService.deleteItemBatchConfigByItemId(id); + // 级联删除产品BOM + productBomService.deleteProductBomByItemId(id); + // 级联删除产品SOP + productSopService.deleteProductSopByItemId(id); + // 级联删除产品SIP + productSipService.deleteProductSipByItemId(id); // 删除 itemMapper.deleteById(id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java index 71b6ed6..abb0d53 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopService.java @@ -8,7 +8,12 @@ import jakarta.validation.Valid; import java.util.List; -// TODO @AI:注释; +// TODO @AI:方法注释? +/** + * MES 车间 Service 接口 + * + * @author 芋道源码 + */ public interface MesMdWorkshopService { Long createWorkshop(@Valid MesMdWorkshopSaveReqVO createReqVO); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java index f03b25b..412aec9 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkshopServiceImpl.java @@ -19,7 +19,11 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释; +/** + * MES 车间 Service 实现类 + * + * @author 芋道源码 + */ @Service @Validated public class MesMdWorkshopServiceImpl implements MesMdWorkshopService { @@ -33,9 +37,12 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService { @Override public Long createWorkshop(MesMdWorkshopSaveReqVO createReqVO) { + // TODO @AI:注释 validateWorkshopCodeUnique(null, createReqVO.getCode()); + // TODO @AI:注释 validateWorkshopNameUnique(null, createReqVO.getName()); + // 插入 MesMdWorkshopDO workshop = BeanUtils.toBean(createReqVO, MesMdWorkshopDO.class); workshopMapper.insert(workshop); return workshop.getId(); @@ -43,22 +50,29 @@ public class MesMdWorkshopServiceImpl implements MesMdWorkshopService { @Override public void updateWorkshop(MesMdWorkshopSaveReqVO updateReqVO) { + // TODO @AI:注释 validateWorkshopExists(updateReqVO.getId()); + // TODO @AI:注释 validateWorkshopCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); + // TODO @AI:注释 validateWorkshopNameUnique(updateReqVO.getId(), updateReqVO.getName()); + // 更新 MesMdWorkshopDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkshopDO.class); workshopMapper.updateById(updateObj); } @Override public void deleteWorkshop(Long id) { + // TODO @AI:注释 validateWorkshopExists(id); // 校验车间下是否存在工位 Long count = workstationMapper.selectCount(MesMdWorkstationDO::getWorkshopId, id); if (count > 0) { throw exception(MD_WORKSHOP_HAS_WORKSTATION); } + + // 删除 workshopMapper.deleteById(id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java index c6c3f7d..8f650b0 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineService.java @@ -6,9 +6,15 @@ import jakarta.validation.Valid; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位设备 Service 接口 + * + * @author 芋道源码 + */ public interface MesMdWorkstationMachineService { +// TODO @AI:方法注释? + Long createWorkstationMachine(@Valid MesMdWorkstationMachineSaveReqVO createReqVO); void deleteWorkstationMachine(Long id); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java index 5388a4a..3d423c4 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationMachineServiceImpl.java @@ -13,7 +13,11 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释; +/** + * MES 工位设备 Service 实现类 + * + * @author 芋道源码 + */ @Service @Validated public class MesMdWorkstationMachineServiceImpl implements MesMdWorkstationMachineService { @@ -29,6 +33,7 @@ public class MesMdWorkstationMachineServiceImpl implements MesMdWorkstationMachi throw exception(MD_WORKSTATION_MACHINE_EXISTS); } + // 插入 MesMdWorkstationMachineDO machine = BeanUtils.toBean(createReqVO, MesMdWorkstationMachineDO.class); workstationMachineMapper.insert(machine); return machine.getId(); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java index 95867a9..fccbdac 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java @@ -8,9 +8,15 @@ import jakarta.validation.Valid; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位 Service 接口 + * + * @author 芋道源码 + */ public interface MesMdWorkstationService { + // TODO @AI:方法注释? + Long createWorkstation(@Valid MesMdWorkstationSaveReqVO createReqVO); void updateWorkstation(@Valid MesMdWorkstationSaveReqVO updateReqVO); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java index 2b16a6a..f5daa2d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationServiceImpl.java @@ -20,7 +20,11 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释; +/** + * MES 工位 Service 实现类 + * + * @author 芋道源码 + */ @Service @Validated public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { @@ -42,11 +46,14 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { @Override public Long createWorkstation(MesMdWorkstationSaveReqVO createReqVO) { + // TODO @AI:注释 validateWorkstationCodeUnique(null, createReqVO.getCode()); + // TODO @AI:注释 validateWorkstationNameUnique(null, createReqVO.getName()); // 校验车间存在 workshopService.getWorkshop(createReqVO.getWorkshopId()); // validateWorkshopExists via getWorkshop + // 插入 MesMdWorkstationDO workstation = BeanUtils.toBean(createReqVO, MesMdWorkstationDO.class); workstationMapper.insert(workstation); return workstation.getId(); @@ -54,12 +61,16 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { @Override public void updateWorkstation(MesMdWorkstationSaveReqVO updateReqVO) { + // TODO @AI:注释 validateWorkstationExists(updateReqVO.getId()); + // TODO @AI:注释 validateWorkstationCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); + // TODO @AI:注释 validateWorkstationNameUnique(updateReqVO.getId(), updateReqVO.getName()); // 校验车间存在 workshopService.getWorkshop(updateReqVO.getWorkshopId()); + // 更新 MesMdWorkstationDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationDO.class); workstationMapper.updateById(updateObj); } @@ -67,7 +78,9 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { @Override @Transactional(rollbackFor = Exception.class) public void deleteWorkstation(Long id) { + // TODO @AI:注释 validateWorkstationExists(id); + // 级联删除子资源 workstationMachineMapper.deleteByWorkstationId(id); workstationToolMapper.deleteByWorkstationId(id); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java index 38aa277..f6d09af 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolService.java @@ -6,9 +6,14 @@ import jakarta.validation.Valid; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位工具 Service 接口 + * + * @author 芋道源码 + */ public interface MesMdWorkstationToolService { + // TODO @AI:方法注释? Long createWorkstationTool(@Valid MesMdWorkstationToolSaveReqVO createReqVO); void updateWorkstationTool(@Valid MesMdWorkstationToolSaveReqVO updateReqVO); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java index c9d205f..3314d09 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationToolServiceImpl.java @@ -13,7 +13,11 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释; +/** + * MES 工位工具 Service 实现类 + * + * @author 芋道源码 + */ @Service @Validated public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolService { @@ -30,6 +34,7 @@ public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolServ throw exception(MD_WORKSTATION_TOOL_TYPE_EXISTS); } + // 插入 MesMdWorkstationToolDO tool = BeanUtils.toBean(createReqVO, MesMdWorkstationToolDO.class); workstationToolMapper.insert(tool); return tool.getId(); @@ -37,18 +42,25 @@ public class MesMdWorkstationToolServiceImpl implements MesMdWorkstationToolServ @Override public void updateWorkstationTool(MesMdWorkstationToolSaveReqVO updateReqVO) { + // 校验存在 + // TODO @AI:要不要抽个方法,参考别的模块 if (workstationToolMapper.selectById(updateReqVO.getId()) == null) { throw exception(MD_WORKSTATION_TOOL_NOT_EXISTS); } + + // 更新 MesMdWorkstationToolDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationToolDO.class); workstationToolMapper.updateById(updateObj); } @Override public void deleteWorkstationTool(Long id) { + // 校验存在 if (workstationToolMapper.selectById(id) == null) { throw exception(MD_WORKSTATION_TOOL_NOT_EXISTS); } + + // 删除 workstationToolMapper.deleteById(id); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java index 1cd8d53..4145656 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerService.java @@ -6,9 +6,15 @@ import jakarta.validation.Valid; import java.util.List; -// TODO @AI:注释; +/** + * MES 工位人员 Service 接口 + * + * @author 芋道源码 + */ public interface MesMdWorkstationWorkerService { + // TODO @AI:方法注释; + Long createWorkstationWorker(@Valid MesMdWorkstationWorkerSaveReqVO createReqVO); void updateWorkstationWorker(@Valid MesMdWorkstationWorkerSaveReqVO updateReqVO); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java index 491a35f..af8e52d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationWorkerServiceImpl.java @@ -13,7 +13,11 @@ import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; -// TODO @AI:注释; +/** + * MES 工位人员 Service 实现类 + * + * @author 芋道源码 + */ @Service @Validated public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorkerService { @@ -30,6 +34,7 @@ public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorker throw exception(MD_WORKSTATION_WORKER_POST_EXISTS); } + // 插入 MesMdWorkstationWorkerDO worker = BeanUtils.toBean(createReqVO, MesMdWorkstationWorkerDO.class); workstationWorkerMapper.insert(worker); return worker.getId(); @@ -37,18 +42,24 @@ public class MesMdWorkstationWorkerServiceImpl implements MesMdWorkstationWorker @Override public void updateWorkstationWorker(MesMdWorkstationWorkerSaveReqVO updateReqVO) { + // TODO @AI:抽个方法,参考别的模块 if (workstationWorkerMapper.selectById(updateReqVO.getId()) == null) { throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS); } + + // 更新 MesMdWorkstationWorkerDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationWorkerDO.class); workstationWorkerMapper.updateById(updateObj); } @Override public void deleteWorkstationWorker(Long id) { + // TODO @AI:抽个方法,参考别的模块 if (workstationWorkerMapper.selectById(id) == null) { throw exception(MD_WORKSTATION_WORKER_NOT_EXISTS); } + + // 删除 workstationWorkerMapper.deleteById(id); } -- libgit2 0.21.4