Commit 2fcfebc7c5b26215375912fb45a2cbd165b04de9

Authored by YunaiV
1 parent 2d49ac27

feat(mes): 更新物料库存模块,优化物料查询逻辑并新增工作站和库区数量统计功能

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 { @@ -15,11 +15,8 @@ public class MesWmMaterialStockPageReqVO extends PageParam {
15 @Schema(description = "物料分类编号", example = "1") 15 @Schema(description = "物料分类编号", example = "1")
16 private Long itemTypeId; 16 private Long itemTypeId;
17 17
18 - @Schema(description = "物料编码", example = "M001")  
19 - private String itemCode;  
20 -  
21 - @Schema(description = "物料名称", example = "钢板")  
22 - private String itemName; 18 + @Schema(description = "物料编号", example = "1")
  19 + private Long itemId;
23 20
24 @Schema(description = "批次号", example = "B20260101") 21 @Schema(description = "批次号", example = "B20260101")
25 private String batchCode; 22 private String batchCode;
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/workstation/MesMdWorkstationService.java
@@ -61,4 +61,28 @@ public interface MesMdWorkstationService { @@ -61,4 +61,28 @@ public interface MesMdWorkstationService {
61 */ 61 */
62 List<MesMdWorkstationDO> getWorkstationListByStatus(Integer status); 62 List<MesMdWorkstationDO> getWorkstationListByStatus(Integer status);
63 63
  64 + /**
  65 + * 获得指定仓库下的工作站数量
  66 + *
  67 + * @param warehouseId 仓库编号
  68 + * @return 工作站数量
  69 + */
  70 + Long getWorkstationCountByWarehouseId(Long warehouseId);
  71 +
  72 + /**
  73 + * 获得指定库区下的工作站数量
  74 + *
  75 + * @param locationId 库区编号
  76 + * @return 工作站数量
  77 + */
  78 + Long getWorkstationCountByLocationId(Long locationId);
  79 +
  80 + /**
  81 + * 获得指定库位下的工作站数量
  82 + *
  83 + * @param areaId 库位编号
  84 + * @return 工作站数量
  85 + */
  86 + Long getWorkstationCountByAreaId(Long areaId);
  87 +
64 } 88 }
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 { @@ -212,4 +212,19 @@ public class MesMdWorkstationServiceImpl implements MesMdWorkstationService {
212 return workstationMapper.selectListByStatus(status); 212 return workstationMapper.selectListByStatus(status);
213 } 213 }
214 214
  215 + @Override
  216 + public Long getWorkstationCountByWarehouseId(Long warehouseId) {
  217 + return workstationMapper.selectCountByWarehouseId(warehouseId);
  218 + }
  219 +
  220 + @Override
  221 + public Long getWorkstationCountByLocationId(Long locationId) {
  222 + return workstationMapper.selectCountByLocationId(locationId);
  223 + }
  224 +
  225 + @Override
  226 + public Long getWorkstationCountByAreaId(Long areaId) {
  227 + return workstationMapper.selectCountByAreaId(areaId);
  228 + }
  229 +
215 } 230 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockServiceImpl.java
1 package cn.iocoder.yudao.module.mes.service.wm.materialstock; 1 package cn.iocoder.yudao.module.mes.service.wm.materialstock;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.hutool.core.util.StrUtil;  
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
6 import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockPageReqVO; 6 import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockPageReqVO;
7 import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockSaveReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockSaveReqVO;
8 -import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;  
9 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; 8 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO;
10 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO; 9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO;
11 -import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper;  
12 import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper; 10 import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper;
13 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService; 11 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService;
14 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
15 import jakarta.annotation.Resource; 12 import jakarta.annotation.Resource;
16 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
17 import org.springframework.validation.annotation.Validated; 14 import org.springframework.validation.annotation.Validated;
@@ -35,9 +32,6 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService @@ -35,9 +32,6 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService
35 @Resource 32 @Resource
36 private MesMdItemTypeService itemTypeService; 33 private MesMdItemTypeService itemTypeService;
37 34
38 - @Resource  
39 - private MesMdItemMapper itemMapper;  
40 -  
41 @Override 35 @Override
42 public MesWmMaterialStockDO getMaterialStock(Long id) { 36 public MesWmMaterialStockDO getMaterialStock(Long id) {
43 return materialStockMapper.selectById(id); 37 return materialStockMapper.selectById(id);
@@ -54,7 +48,7 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService @@ -54,7 +48,7 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService
54 48
55 @Override 49 @Override
56 public PageResult<MesWmMaterialStockDO> getMaterialStockPage(MesWmMaterialStockPageReqVO pageReqVO) { 50 public PageResult<MesWmMaterialStockDO> getMaterialStockPage(MesWmMaterialStockPageReqVO pageReqVO) {
57 - // 1. 解析 itemTypeId:包含子分类 51 + // 1.1 解析 itemTypeId:包含子分类
58 Set<Long> itemTypeIds = null; 52 Set<Long> itemTypeIds = null;
59 if (pageReqVO.getItemTypeId() != null) { 53 if (pageReqVO.getItemTypeId() != null) {
60 itemTypeIds = new HashSet<>(); 54 itemTypeIds = new HashSet<>();
@@ -62,20 +56,13 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService @@ -62,20 +56,13 @@ public class MesWmMaterialStockServiceImpl implements MesWmMaterialStockService
62 List<MesMdItemTypeDO> children = itemTypeService.getItemTypeChildrenList(pageReqVO.getItemTypeId()); 56 List<MesMdItemTypeDO> children = itemTypeService.getItemTypeChildrenList(pageReqVO.getItemTypeId());
63 itemTypeIds.addAll(convertSet(children, MesMdItemTypeDO::getId)); 57 itemTypeIds.addAll(convertSet(children, MesMdItemTypeDO::getId));
64 } 58 }
65 -  
66 - // 2. 解析 itemCode/itemName:查 md_item 找匹配的 itemId 集合 59 + // 1.2 解析 itemId
67 Set<Long> itemIds = null; 60 Set<Long> itemIds = null;
68 - if (StrUtil.isNotBlank(pageReqVO.getItemCode()) || StrUtil.isNotBlank(pageReqVO.getItemName())) {  
69 - List<MesMdItemDO> matchingItems = itemMapper.selectList(new LambdaQueryWrapperX<MesMdItemDO>()  
70 - .eqIfPresent(MesMdItemDO::getCode, pageReqVO.getItemCode())  
71 - .likeIfPresent(MesMdItemDO::getName, pageReqVO.getItemName()));  
72 - if (matchingItems.isEmpty()) {  
73 - return PageResult.empty();  
74 - }  
75 - itemIds = convertSet(matchingItems, MesMdItemDO::getId); 61 + if (pageReqVO.getItemId() != null) {
  62 + itemIds = SetUtils.asSet(pageReqVO.getItemId());
76 } 63 }
77 64
78 - // 3. 分页查询 65 + // 2. 分页查询
79 return materialStockMapper.selectPage(pageReqVO, itemTypeIds, itemIds); 66 return materialStockMapper.selectPage(pageReqVO, itemTypeIds, itemIds);
80 } 67 }
81 68
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseAreaService.java
@@ -83,4 +83,12 @@ public interface MesWmWarehouseAreaService { @@ -83,4 +83,12 @@ public interface MesWmWarehouseAreaService {
83 return convertMap(getWarehouseAreaList(ids), MesWmWarehouseAreaDO::getId); 83 return convertMap(getWarehouseAreaList(ids), MesWmWarehouseAreaDO::getId);
84 } 84 }
85 85
  86 + /**
  87 + * 获得指定库区下的库位数量
  88 + *
  89 + * @param locationId 库区编号
  90 + * @return 库位数量
  91 + */
  92 + Long getWarehouseAreaCountByLocationId(Long locationId);
  93 +
86 } 94 }
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; @@ -7,9 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaPageReqVO;
8 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.area.MesWmWarehouseAreaSaveReqVO;
9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO; 9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseAreaDO;
10 -import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;  
11 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper;  
12 import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper; 10 import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper;
  11 +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
  12 +import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
13 import jakarta.annotation.Resource; 13 import jakarta.annotation.Resource;
14 import org.springframework.stereotype.Service; 14 import org.springframework.stereotype.Service;
15 import org.springframework.validation.annotation.Validated; 15 import org.springframework.validation.annotation.Validated;
@@ -21,7 +21,6 @@ import java.util.List; @@ -21,7 +21,6 @@ import java.util.List;
21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; 22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
23 23
24 -// TODO @AI:不应该直接跨模块调用 mapper,通过他们的 service 操作  
25 /** 24 /**
26 * MES 库位 Service 实现类 25 * MES 库位 Service 实现类
27 */ 26 */
@@ -33,11 +32,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService @@ -33,11 +32,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
33 private MesWmWarehouseAreaMapper areaMapper; 32 private MesWmWarehouseAreaMapper areaMapper;
34 33
35 @Resource 34 @Resource
36 - private MesMdWorkstationMapper workstationMapper;  
37 - 35 + private MesMdWorkstationService workstationService;
38 @Resource 36 @Resource
39 - private MesWmMaterialStockMapper materialStockMapper;  
40 - 37 + private MesWmMaterialStockService materialStockService;
41 @Resource 38 @Resource
42 private MesWmWarehouseLocationService locationService; 39 private MesWmWarehouseLocationService locationService;
43 40
@@ -75,11 +72,11 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService @@ -75,11 +72,11 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
75 // 校验存在 72 // 校验存在
76 validateWarehouseAreaExists(id); 73 validateWarehouseAreaExists(id);
77 // 校验是否被工作站引用 74 // 校验是否被工作站引用
78 - if (workstationMapper.selectCountByAreaId(id) > 0) { 75 + if (workstationService.getWorkstationCountByAreaId(id) > 0) {
79 throw exception(WM_WAREHOUSE_AREA_HAS_WORKSTATION); 76 throw exception(WM_WAREHOUSE_AREA_HAS_WORKSTATION);
80 } 77 }
81 // 校验是否有库存记录 78 // 校验是否有库存记录
82 - if (materialStockMapper.selectCountByAreaId(id) > 0) { 79 + if (materialStockService.getMaterialStockCountByAreaId(id) > 0) {
83 throw exception(WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK); 80 throw exception(WM_WAREHOUSE_AREA_HAS_MATERIAL_STOCK);
84 } 81 }
85 82
@@ -138,4 +135,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService @@ -138,4 +135,9 @@ public class MesWmWarehouseAreaServiceImpl implements MesWmWarehouseAreaService
138 return areaMapper.selectListByIds(ids); 135 return areaMapper.selectListByIds(ids);
139 } 136 }
140 137
  138 + @Override
  139 + public Long getWarehouseAreaCountByLocationId(Long locationId) {
  140 + return areaMapper.selectCountByLocationId(locationId);
  141 + }
  142 +
141 } 143 }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/warehouse/MesWmWarehouseLocationService.java
@@ -83,4 +83,12 @@ public interface MesWmWarehouseLocationService { @@ -83,4 +83,12 @@ public interface MesWmWarehouseLocationService {
83 return convertMap(getWarehouseLocationList(ids), MesWmWarehouseLocationDO::getId); 83 return convertMap(getWarehouseLocationList(ids), MesWmWarehouseLocationDO::getId);
84 } 84 }
85 85
  86 + /**
  87 + * 获得指定仓库下的库区数量
  88 + *
  89 + * @param warehouseId 仓库编号
  90 + * @return 库区数量
  91 + */
  92 + Long getWarehouseLocationCountByWarehouseId(Long warehouseId);
  93 +
86 } 94 }
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; @@ -7,10 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationPageReqVO;
8 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.location.MesWmWarehouseLocationSaveReqVO;
9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO; 9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseLocationDO;
10 -import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;  
11 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper;  
12 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseAreaMapper;  
13 import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper; 10 import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper;
  11 +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
  12 +import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
14 import jakarta.annotation.Resource; 13 import jakarta.annotation.Resource;
15 import org.springframework.stereotype.Service; 14 import org.springframework.stereotype.Service;
16 import org.springframework.validation.annotation.Validated; 15 import org.springframework.validation.annotation.Validated;
@@ -22,7 +21,6 @@ import java.util.List; @@ -22,7 +21,6 @@ import java.util.List;
22 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
23 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; 22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
24 23
25 -// TODO @AI:不应该直接跨模块调用 mapper,通过他们的 service 操作  
26 /** 24 /**
27 * MES 库区 Service 实现类 25 * MES 库区 Service 实现类
28 */ 26 */
@@ -34,14 +32,11 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation @@ -34,14 +32,11 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
34 private MesWmWarehouseLocationMapper locationMapper; 32 private MesWmWarehouseLocationMapper locationMapper;
35 33
36 @Resource 34 @Resource
37 - private MesWmWarehouseAreaMapper areaMapper;  
38 - 35 + private MesWmWarehouseAreaService areaService;
39 @Resource 36 @Resource
40 - private MesMdWorkstationMapper workstationMapper;  
41 - 37 + private MesMdWorkstationService workstationService;
42 @Resource 38 @Resource
43 - private MesWmMaterialStockMapper materialStockMapper;  
44 - 39 + private MesWmMaterialStockService materialStockService;
45 @Resource 40 @Resource
46 private MesWmWarehouseService warehouseService; 41 private MesWmWarehouseService warehouseService;
47 42
@@ -79,15 +74,15 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation @@ -79,15 +74,15 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
79 // 校验存在 74 // 校验存在
80 validateWarehouseLocationExists(id); 75 validateWarehouseLocationExists(id);
81 // 校验是否有库位 76 // 校验是否有库位
82 - if (areaMapper.selectCountByLocationId(id) > 0) { 77 + if (areaService.getWarehouseAreaCountByLocationId(id) > 0) {
83 throw exception(WM_WAREHOUSE_LOCATION_HAS_AREA); 78 throw exception(WM_WAREHOUSE_LOCATION_HAS_AREA);
84 } 79 }
85 // 校验是否被工作站引用 80 // 校验是否被工作站引用
86 - if (workstationMapper.selectCountByLocationId(id) > 0) { 81 + if (workstationService.getWorkstationCountByLocationId(id) > 0) {
87 throw exception(WM_WAREHOUSE_LOCATION_HAS_WORKSTATION); 82 throw exception(WM_WAREHOUSE_LOCATION_HAS_WORKSTATION);
88 } 83 }
89 // 校验是否有库存记录 84 // 校验是否有库存记录
90 - if (materialStockMapper.selectCountByLocationId(id) > 0) { 85 + if (materialStockService.getMaterialStockCountByLocationId(id) > 0) {
91 throw exception(WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK); 86 throw exception(WM_WAREHOUSE_LOCATION_HAS_MATERIAL_STOCK);
92 } 87 }
93 88
@@ -146,4 +141,9 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation @@ -146,4 +141,9 @@ public class MesWmWarehouseLocationServiceImpl implements MesWmWarehouseLocation
146 return locationMapper.selectListByIds(ids); 141 return locationMapper.selectListByIds(ids);
147 } 142 }
148 143
  144 + @Override
  145 + public Long getWarehouseLocationCountByWarehouseId(Long warehouseId) {
  146 + return locationMapper.selectCountByWarehouseId(warehouseId);
  147 + }
  148 +
149 } 149 }
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; @@ -7,10 +7,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO; 7 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehousePageReqVO;
8 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO; 8 import cn.iocoder.yudao.module.mes.controller.admin.wm.warehouse.vo.MesWmWarehouseSaveReqVO;
9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO; 9 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
10 -import cn.iocoder.yudao.module.mes.dal.mysql.md.workstation.MesMdWorkstationMapper;  
11 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.materialstock.MesWmMaterialStockMapper;  
12 -import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseLocationMapper;  
13 import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseMapper; 10 import cn.iocoder.yudao.module.mes.dal.mysql.wm.warehouse.MesWmWarehouseMapper;
  11 +import cn.iocoder.yudao.module.mes.service.md.workstation.MesMdWorkstationService;
  12 +import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
14 import jakarta.annotation.Resource; 13 import jakarta.annotation.Resource;
15 import org.springframework.stereotype.Service; 14 import org.springframework.stereotype.Service;
16 import org.springframework.validation.annotation.Validated; 15 import org.springframework.validation.annotation.Validated;
@@ -22,7 +21,6 @@ import java.util.List; @@ -22,7 +21,6 @@ import java.util.List;
22 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
23 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; 22 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
24 23
25 -// TODO @AI:不应该直接跨模块调用 mapper,通过他们的 service 操作  
26 /** 24 /**
27 * MES 仓库 Service 实现类 25 * MES 仓库 Service 实现类
28 */ 26 */
@@ -34,13 +32,11 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { @@ -34,13 +32,11 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
34 private MesWmWarehouseMapper warehouseMapper; 32 private MesWmWarehouseMapper warehouseMapper;
35 33
36 @Resource 34 @Resource
37 - private MesWmWarehouseLocationMapper locationMapper;  
38 - 35 + private MesWmWarehouseLocationService locationService;
39 @Resource 36 @Resource
40 - private MesMdWorkstationMapper workstationMapper;  
41 - 37 + private MesMdWorkstationService workstationService;
42 @Resource 38 @Resource
43 - private MesWmMaterialStockMapper materialStockMapper; 39 + private MesWmMaterialStockService materialStockService;
44 40
45 @Override 41 @Override
46 public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) { 42 public Long createWarehouse(MesWmWarehouseSaveReqVO createReqVO) {
@@ -74,15 +70,15 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService { @@ -74,15 +70,15 @@ public class MesWmWarehouseServiceImpl implements MesWmWarehouseService {
74 // 校验存在 70 // 校验存在
75 validateWarehouseExists(id); 71 validateWarehouseExists(id);
76 // 校验是否有库区 72 // 校验是否有库区
77 - if (locationMapper.selectCountByWarehouseId(id) > 0) { 73 + if (locationService.getWarehouseLocationCountByWarehouseId(id) > 0) {
78 throw exception(WM_WAREHOUSE_HAS_LOCATION); 74 throw exception(WM_WAREHOUSE_HAS_LOCATION);
79 } 75 }
80 // 校验是否被工作站引用 76 // 校验是否被工作站引用
81 - if (workstationMapper.selectCountByWarehouseId(id) > 0) { 77 + if (workstationService.getWorkstationCountByWarehouseId(id) > 0) {
82 throw exception(WM_WAREHOUSE_HAS_WORKSTATION); 78 throw exception(WM_WAREHOUSE_HAS_WORKSTATION);
83 } 79 }
84 // 校验是否有库存记录 80 // 校验是否有库存记录
85 - if (materialStockMapper.selectCountByWarehouseId(id) > 0) { 81 + if (materialStockService.getMaterialStockCountByWarehouseId(id) > 0) {
86 throw exception(WM_WAREHOUSE_HAS_MATERIAL_STOCK); 82 throw exception(WM_WAREHOUSE_HAS_MATERIAL_STOCK);
87 } 83 }
88 84