diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialstock/vo/MesWmMaterialStockPageReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialstock/vo/MesWmMaterialStockPageReqVO.java index 5d4a900..fb3253c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialstock/vo/MesWmMaterialStockPageReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/materialstock/vo/MesWmMaterialStockPageReqVO.java @@ -15,11 +15,8 @@ public class MesWmMaterialStockPageReqVO extends PageParam { @Schema(description = "物料分类编号", example = "1") private Long itemTypeId; - @Schema(description = "物料编码", example = "M001") - private String itemCode; - - @Schema(description = "物料名称", example = "钢板") - private String itemName; + @Schema(description = "物料编号", example = "1") + private Long itemId; @Schema(description = "批次号", example = "B20260101") private String batchCode; 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 c036602..473c056 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 @@ -61,4 +61,28 @@ public interface MesMdWorkstationService { */ List getWorkstationListByStatus(Integer status); + /** + * 获得指定仓库下的工作站数量 + * + * @param warehouseId 仓库编号 + * @return 工作站数量 + */ + Long getWorkstationCountByWarehouseId(Long warehouseId); + + /** + * 获得指定库区下的工作站数量 + * + * @param locationId 库区编号 + * @return 工作站数量 + */ + Long getWorkstationCountByLocationId(Long locationId); + + /** + * 获得指定库位下的工作站数量 + * + * @param areaId 库位编号 + * @return 工作站数量 + */ + Long getWorkstationCountByAreaId(Long areaId); + } 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 15960df..55a900b 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 @@ -212,4 +212,19 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService { return workstationMapper.selectListByStatus(status); } + @Override + public Long getWorkstationCountByWarehouseId(Long warehouseId) { + return workstationMapper.selectCountByWarehouseId(warehouseId); + } + + @Override + public Long getWorkstationCountByLocationId(Long locationId) { + return workstationMapper.selectCountByLocationId(locationId); + } + + @Override + public Long getWorkstationCountByAreaId(Long areaId) { + return workstationMapper.selectCountByAreaId(areaId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java index 7c34c22..38742cb 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java @@ -1,17 +1,14 @@ package cn.iocoder.yudao.module.mes.service.wm.materialstock; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.SetUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockSaveReqVO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO; -import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -35,9 +32,6 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService @Resource private MesMdItemTypeService itemTypeService; - @Resource - private MesMdItemMapper itemMapper; - @Override public MesWmMaterialStockDO getMaterialStock(Long id) { return materialStockMapper.selectById(id); @@ -54,7 +48,7 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService @Override public PageResult getMaterialStockPage(MesWmMaterialStockPageReqVO pageReqVO) { - // 1. 解析 itemTypeId:包含子分类 + // 1.1 解析 itemTypeId:包含子分类 Set itemTypeIds = null; if (pageReqVO.getItemTypeId() != null) { itemTypeIds = new HashSet<>(); @@ -62,20 +56,13 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService List children = itemTypeService.getItemTypeChildrenList(pageReqVO.getItemTypeId()); itemTypeIds.addAll(convertSet(children, MesMdItemTypeDO::getId)); } - - // 2. 解析 itemCode/itemName:查 md_item 找匹配的 itemId 集合 + // 1.2 解析 itemId Set itemIds = null; - if (StrUtil.isNotBlank(pageReqVO.getItemCode()) || StrUtil.isNotBlank(pageReqVO.getItemName())) { - List matchingItems = itemMapper.selectList(new LambdaQueryWrapperX() - .eqIfPresent(MesMdItemDO::getCode, pageReqVO.getItemCode()) - .likeIfPresent(MesMdItemDO::getName, pageReqVO.getItemName())); - if (matchingItems.isEmpty()) { - return PageResult.empty(); - } - itemIds = convertSet(matchingItems, MesMdItemDO::getId); + if (pageReqVO.getItemId() != null) { + itemIds = SetUtils.asSet(pageReqVO.getItemId()); } - // 3. 分页查询 + // 2. 分页查询 return materialStockMapper.selectPage(pageReqVO, itemTypeIds, itemIds); } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java index 5b9df6c..b43154c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java @@ -83,4 +83,12 @@ public interface MesWmWarehouseAreaService { return convertMap(getWarehouseAreaList(ids), MesWmWarehouseAreaDO::getId); } + /** + * 获得指定库区下的库位数量 + * + * @param locationId 库区编号 + * @return 库位数量 + */ + Long getWarehouseAreaCountByLocationId(Long locationId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java index 286b267..2cd1120 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaServiceImpl.java @@ -7,9 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; -import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -21,7 +21,6 @@ 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:不应该直接跨模块调用 mapper,通过他们的 service 操作 /** * MES 库位 Service 实现类 */ @@ -33,11 +32,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService private MesWmWarehouseAreaMapper areaMapper; @Resource - private MesMdWorkstationMapper workstationMapper; - + private MesMdWorkstationService workstationService; @Resource - private MesWmMaterialStockMapper materialStockMapper; - + private MesWmMaterialStockService materialStockService; @Resource private MesWmWarehouseLocationService locationService; @@ -75,11 +72,11 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService // 校验存在 validateWarehouseAreaExists(id); // 校验是否被工作站引用 - if (workstationMapper.selectCountByAreaId(id) > 0) { + if (workstationService.getWorkstationCountByAreaId(id) > 0) { throw exception(WM_WAREHOUSE_AREA_HAS_WORKSTATION); } // 校验是否有库存记录 - if (materialStockMapper.selectCountByAreaId(id) > 0) { + if (materialStockService.getMaterialStockCountByAreaId(id) > 0) { throw exception(WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK); } @@ -138,4 +135,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService return areaMapper.selectListByIds(ids); } + @Override + public Long getWarehouseAreaCountByLocationId(Long locationId) { + return areaMapper.selectCountByLocationId(locationId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java index 021ba24..fc8d85f 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java @@ -83,4 +83,12 @@ public interface MesWmWarehouseLocationService { return convertMap(getWarehouseLocationList(ids), MesWmWarehouseLocationDO::getId); } + /** + * 获得指定仓库下的库区数量 + * + * @param warehouseId 仓库编号 + * @return 库区数量 + */ + Long getWarehouseLocationCountByWarehouseId(Long warehouseId); + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java index 26820a6..c4e1241 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationServiceImpl.java @@ -7,10 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; -import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -22,7 +21,6 @@ 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:不应该直接跨模块调用 mapper,通过他们的 service 操作 /** * MES 库区 Service 实现类 */ @@ -34,14 +32,11 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation private MesWmWarehouseLocationMapper locationMapper; @Resource - private MesWmWarehouseAreaMapper areaMapper; - + private MesWmWarehouseAreaService areaService; @Resource - private MesMdWorkstationMapper workstationMapper; - + private MesMdWorkstationService workstationService; @Resource - private MesWmMaterialStockMapper materialStockMapper; - + private MesWmMaterialStockService materialStockService; @Resource private MesWmWarehouseService warehouseService; @@ -79,15 +74,15 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation // 校验存在 validateWarehouseLocationExists(id); // 校验是否有库位 - if (areaMapper.selectCountByLocationId(id) > 0) { + if (areaService.getWarehouseAreaCountByLocationId(id) > 0) { throw exception(WM_WAREHOUSE_LOCATION_HAS_AREA); } // 校验是否被工作站引用 - if (workstationMapper.selectCountByLocationId(id) > 0) { + if (workstationService.getWorkstationCountByLocationId(id) > 0) { throw exception(WM_WAREHOUSE_LOCATION_HAS_WORKSTATION); } // 校验是否有库存记录 - if (materialStockMapper.selectCountByLocationId(id) > 0) { + if (materialStockService.getMaterialStockCountByLocationId(id) > 0) { throw exception(WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK); } @@ -146,4 +141,9 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation return locationMapper.selectListByIds(ids); } + @Override + public Long getWarehouseLocationCountByWarehouseId(Long warehouseId) { + return locationMapper.selectCountByWarehouseId(warehouseId); + } + } diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java index 2c11a93..b2e33cd 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseServiceImpl.java @@ -7,10 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO; import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO; import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; -import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; -import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper; import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseMapper; +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService; +import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -22,7 +21,6 @@ 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:不应该直接跨模块调用 mapper,通过他们的 service 操作 /** * MES 仓库 Service 实现类 */ @@ -34,13 +32,11 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { private MesWmWarehouseMapper warehouseMapper; @Resource - private MesWmWarehouseLocationMapper locationMapper; - + private MesWmWarehouseLocationService locationService; @Resource - private MesMdWorkstationMapper workstationMapper; - + private MesMdWorkstationService workstationService; @Resource - private MesWmMaterialStockMapper materialStockMapper; + private MesWmMaterialStockService materialStockService; @Override public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) { @@ -74,15 +70,15 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { // 校验存在 validateWarehouseExists(id); // 校验是否有库区 - if (locationMapper.selectCountByWarehouseId(id) > 0) { + if (locationService.getWarehouseLocationCountByWarehouseId(id) > 0) { throw exception(WM_WAREHOUSE_HAS_LOCATION); } // 校验是否被工作站引用 - if (workstationMapper.selectCountByWarehouseId(id) > 0) { + if (workstationService.getWorkstationCountByWarehouseId(id) > 0) { throw exception(WM_WAREHOUSE_HAS_WORKSTATION); } // 校验是否有库存记录 - if (materialStockMapper.selectCountByWarehouseId(id) > 0) { + if (materialStockService.getMaterialStockCountByWarehouseId(id) > 0) { throw exception(WM_WAREHOUSE_HAS_MATERIAL_STOCK); }