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 7fbdf71..50c4cd7 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 @@ -14,8 +14,10 @@ import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorks import cn.iocoder.yudao.module.mes.controller.admin.md.workstation.vo.MesMdWorkstationSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkshopDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation.MesMdWorkstationDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkshopService; import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -44,9 +46,10 @@ public class MesMdWorkstationController { @Resource private MesMdWorkstationService workstationService; - @Resource private MesMdWorkshopService workshopService; + @Resource + private MesProProcessService processService; @PostMapping("/create") @Operation(summary = "创建工作站") @@ -116,13 +119,17 @@ public class MesMdWorkstationController { if (CollUtil.isEmpty(list)) { return Collections.emptyList(); } - // 1. 批量获取车间信息 + // 1. 批量获取车间、工序信息 Map workshopMap = workshopService.getWorkshopMap( convertSet(list, MesMdWorkstationDO::getWorkshopId)); + Map processMap = processService.getProcessMap( + convertSet(list, MesMdWorkstationDO::getProcessId)); // 2. 拼接 VO return BeanUtils.toBean(list, MesMdWorkstationRespVO.class, vo -> { MapUtils.findAndThen(workshopMap, vo.getWorkshopId(), workshop -> vo.setWorkshopName(workshop.getName())); + MapUtils.findAndThen(processMap, vo.getProcessId(), + process -> vo.setProcessName(process.getName())); }); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java index 7465262..90d3281 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationPageReqVO.java @@ -21,6 +21,9 @@ public class MesMdWorkstationPageReqVO extends PageParam { @Schema(description = "所在车间编号", example = "1") private Long workshopId; + @Schema(description = "工序编号", example = "1") + private Long processId; + @Schema(description = "状态", example = "0") private Integer status; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java index c433881..ef65dea 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationRespVO.java @@ -38,6 +38,10 @@ public class MesMdWorkstationRespVO { @Schema(description = "工序编号", example = "1") private Long processId; + @Schema(description = "工序名称", example = "打磨") + @ExcelProperty("工序名称") + private String processName; + @Schema(description = "线边库编号", example = "1") private Long warehouseId; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java index 251d6ec..e0beeaa 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/workstation/vo/MesMdWorkstationSaveReqVO.java @@ -27,7 +27,8 @@ public class MesMdWorkstationSaveReqVO { @NotNull(message = "所在车间不能为空") private Long workshopId; - @Schema(description = "工序编号", example = "1") + @Schema(description = "工序编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "所属工序不能为空") private Long processId; @Schema(description = "线边库编号", example = "1") 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 b1c3fc3..bd3e80f 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 @@ -1,6 +1,10 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.md.workstation; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.pro.process.MesProProcessDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; +import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -47,25 +51,25 @@ public class MesMdWorkstationDO extends BaseDO { /** * 工序编号 * - * TODO @芋艿:等 pro 模块,关联工序表 + * 关联 {@link MesProProcessDO#getId()} */ private Long processId; /** * 线边库编号 * - * TODO @芋艿:等 wm 模块,关联仓库表 + * 关联 {@link MesWmWarehouseDO#getId()} */ private Long warehouseId; /** * 库区编号 * - * TODO @芋艿:等 wm 模块,关联库区表 + * 关联 {@link MesWmWarehouseLocationDO#getId()} */ private Long locationId; /** * 库位编号 * - * TODO @芋艿:等 wm 模块,关联库位表 + * 关联 {@link MesWmWarehouseAreaDO#getId()} */ private Long areaId; /** 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 be71996..8819cf6 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 @@ -22,6 +22,7 @@ public interface MesMdWorkstationMapper extends BaseMapperX .eqIfPresent(MesMdWorkstationDO::getCode, reqVO.getCode()) .likeIfPresent(MesMdWorkstationDO::getName, reqVO.getName()) .eqIfPresent(MesMdWorkstationDO::getWorkshopId, reqVO.getWorkshopId()) + .eqIfPresent(MesMdWorkstationDO::getProcessId, reqVO.getProcessId()) .eqIfPresent(MesMdWorkstationDO::getStatus, reqVO.getStatus()) .orderByDesc(MesMdWorkstationDO::getId)); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java index 84c1cdc..b90edfc 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java @@ -15,6 +15,7 @@ public enum MesMdAutoCodeRuleCodeEnum { MD_ITEM_CODE("MD_ITEM_CODE", "物料编码"), MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"), MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"), + MD_WORKSTATION_CODE("MD_WORKSTATION_CODE", "工作站编码"), WM_SN_CODE("WM_SN_CODE", "SN 码"), WM_PACKAGE_CODE("WM_PACKAGE_CODE", "装箱单编码"), WM_BATCH_CODE("WM_BATCH_CODE", "批次编码"), 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 17b0f64..da97ee6 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 @@ -19,6 +19,7 @@ import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseLocationService; import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService; +import cn.iocoder.yudao.module.mes.service.pro.process.MesProProcessService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -67,16 +68,13 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { @Resource private MesWmBarcodeService barcodeService; + @Resource + private MesProProcessService processService; + @Override public Long createWorkstation(MesMdWorkstationSaveReqVO createReqVO) { - // 校验编码唯一 - validateWorkstationCodeUnique(null, createReqVO.getCode()); - // 校验名称唯一 - validateWorkstationNameUnique(null, createReqVO.getName()); - // 校验车间存在 - validateWorkshopExists(createReqVO.getWorkshopId()); - // 校验仓库层级 - validateWarehouseHierarchy(createReqVO); + // 校验数据 + validateWorkstationSaveData(null, createReqVO); // 插入 MesMdWorkstationDO workstation = BeanUtils.toBean(createReqVO, MesMdWorkstationDO.class); @@ -92,20 +90,27 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { public void updateWorkstation(MesMdWorkstationSaveReqVO updateReqVO) { // 校验存在 validateWorkstationExists(updateReqVO.getId()); - // 校验编码唯一 - validateWorkstationCodeUnique(updateReqVO.getId(), updateReqVO.getCode()); - // 校验名称唯一 - validateWorkstationNameUnique(updateReqVO.getId(), updateReqVO.getName()); - // 校验车间存在 - validateWorkshopExists(updateReqVO.getWorkshopId()); - // 校验仓库层级 - validateWarehouseHierarchy(updateReqVO); + // 校验数据 + validateWorkstationSaveData(updateReqVO.getId(), updateReqVO); // 更新 MesMdWorkstationDO updateObj = BeanUtils.toBean(updateReqVO, MesMdWorkstationDO.class); workstationMapper.updateById(updateObj); } + private void validateWorkstationSaveData(Long id, MesMdWorkstationSaveReqVO reqVO) { + // 校验编码唯一 + validateWorkstationCodeUnique(id, reqVO.getCode()); + // 校验名称唯一 + validateWorkstationNameUnique(id, reqVO.getName()); + // 校验车间存在 + validateWorkshopExists(reqVO.getWorkshopId()); + // 校验工序存在 + processService.validateProcessExists(reqVO.getProcessId()); + // 校验仓库层级 + validateWarehouseHierarchy(reqVO); + } + @Override @Transactional(rollbackFor = Exception.class) public void deleteWorkstation(Long id) {