Browse Source

pms功能优化 库存地点/库区/库位

zhangcl 4 months ago
parent
commit
1738c1148f
15 changed files with 211 additions and 6 deletions
  1. 28 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/IotCargoLocationController.java
  2. 4 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/vo/IotCargoLocationPageReqVO.java
  3. 17 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/vo/IotCargoLocationRespVO.java
  4. 4 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/vo/IotCargoLocationSaveReqVO.java
  5. 14 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotshelves/IotShelvesController.java
  6. 13 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotstoragearea/IotStorageAreaController.java
  7. 42 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/convert/cargolocation/IotCargoLocationConvert.java
  8. 5 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotcargolocation/IotCargoLocationDO.java
  9. 1 1
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotcargolocation/IotCargoLocationMapper.java
  10. 9 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotshelves/IotShelvesMapper.java
  11. 9 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotstoragearea/IotStorageAreaMapper.java
  12. 32 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotshelves/IotShelvesService.java
  13. 18 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotshelves/IotShelvesServiceImpl.java
  14. 9 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotstoragearea/IotStorageAreaService.java
  15. 6 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotstoragearea/IotStorageAreaServiceImpl.java

+ 28 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/IotCargoLocationController.java

@@ -9,8 +9,16 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationSaveReqVO;
+import cn.iocoder.yudao.module.pms.convert.cargolocation.IotCargoLocationConvert;
+import cn.iocoder.yudao.module.pms.convert.shelves.IotShelvesConvert;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotcargolocation.IotCargoLocationDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotcargolocation.IotCargoLocationDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import cn.iocoder.yudao.module.pms.service.iotcargolocation.IotCargoLocationService;
 import cn.iocoder.yudao.module.pms.service.iotcargolocation.IotCargoLocationService;
+import cn.iocoder.yudao.module.pms.service.iotshelves.IotShelvesService;
+import cn.iocoder.yudao.module.pms.service.iotstoragearea.IotStorageAreaService;
+import cn.iocoder.yudao.module.system.api.saporg.SapOrgApi;
+import cn.iocoder.yudao.module.system.api.saporg.dto.SapOrgRespDTO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -23,9 +31,11 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 
 
 @Tag(name = "管理后台 - PMS 货位")
 @Tag(name = "管理后台 - PMS 货位")
 @RestController
 @RestController
@@ -35,6 +45,12 @@ public class IotCargoLocationController {
 
 
     @Resource
     @Resource
     private IotCargoLocationService iotCargoLocationService;
     private IotCargoLocationService iotCargoLocationService;
+    @Resource
+    private SapOrgApi sapOrgApi;
+    @Resource
+    private IotStorageAreaService iotStorageAreaService;
+    @Resource
+    private IotShelvesService iotShelvesService;
 
 
     @PostMapping("/create")
     @PostMapping("/create")
     @Operation(summary = "创建PMS 货位")
     @Operation(summary = "创建PMS 货位")
@@ -74,7 +90,18 @@ public class IotCargoLocationController {
     @PreAuthorize("@ss.hasPermission('pms:iot-cargo-location:query')")
     @PreAuthorize("@ss.hasPermission('pms:iot-cargo-location:query')")
     public CommonResult<PageResult<IotCargoLocationRespVO>> getIotCargoLocationPage(@Valid IotCargoLocationPageReqVO pageReqVO) {
     public CommonResult<PageResult<IotCargoLocationRespVO>> getIotCargoLocationPage(@Valid IotCargoLocationPageReqVO pageReqVO) {
         PageResult<IotCargoLocationDO> pageResult = iotCargoLocationService.getIotCargoLocationPage(pageReqVO);
         PageResult<IotCargoLocationDO> pageResult = iotCargoLocationService.getIotCargoLocationPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, IotCargoLocationRespVO.class));
+        // 组装 库存地点 库区 货架 信息
+        // 拼接库存地点数据
+        Map<Long, SapOrgRespDTO> storageLocationMap = sapOrgApi.getSapOrgMap(
+                convertList(pageResult.getList(), IotCargoLocationDO::getStorageLocationId));
+        // 拼接库区数据
+        Map<Long, IotStorageAreaDO> storageAreaMap = iotStorageAreaService.getStorageAreaMap(
+                convertList(pageResult.getList(), IotCargoLocationDO::getStorageAreaId));
+        // 拼接货架数据
+        Map<Long, IotShelvesDO> shelvesMap = iotShelvesService.getShelvesMap(
+                convertList(pageResult.getList(), IotCargoLocationDO::getShelvesId));
+        return success(new PageResult<>(IotCargoLocationConvert.INSTANCE.convertList(pageResult.getList(),
+                storageLocationMap, storageAreaMap, shelvesMap), pageResult.getTotal()));
     }
     }
 
 
     @GetMapping("/export-excel")
     @GetMapping("/export-excel")

+ 4 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/vo/IotCargoLocationPageReqVO.java

@@ -39,6 +39,9 @@ public class IotCargoLocationPageReqVO extends PageParam {
     @Schema(description = "库存地点编码 - 项目部")
     @Schema(description = "库存地点编码 - 项目部")
     private String storageLocationCode;
     private String storageLocationCode;
 
 
+    @Schema(description = "仓库区域(A区 B区)", example = "9339")
+    private Long storageAreaId;
+
     @Schema(description = "货架id", example = "9384")
     @Schema(description = "货架id", example = "9384")
     private Long shelvesId;
     private Long shelvesId;
 
 
@@ -58,7 +61,7 @@ public class IotCargoLocationPageReqVO extends PageParam {
     private Integer layer;
     private Integer layer;
 
 
     @Schema(description = "列号(货架的纵深分区)")
     @Schema(description = "列号(货架的纵深分区)")
-    private Integer column;
+    private Integer columnNumber;
 
 
     @Schema(description = "货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     @Schema(description = "货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     private BigDecimal capacity;
     private BigDecimal capacity;

+ 17 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/vo/IotCargoLocationRespVO.java

@@ -45,10 +45,26 @@ public class IotCargoLocationRespVO {
     @ExcelProperty("库存地点编码 - 项目部")
     @ExcelProperty("库存地点编码 - 项目部")
     private String storageLocationCode;
     private String storageLocationCode;
 
 
+    @Schema(description = "库存地点名称")
+    @ExcelProperty("库存地点名称")
+    private String storageLocationName;
+
+    @Schema(description = "仓库区域(A区 B区)", example = "9339")
+    @ExcelProperty("仓库区域(A区 B区)")
+    private Long storageAreaId;
+
+    @Schema(description = "仓库区域(A区 B区)名称", example = "区域")
+    @ExcelProperty("仓库区域(A区 B区)名称")
+    private String storageAreaName;
+
     @Schema(description = "货架id", example = "9384")
     @Schema(description = "货架id", example = "9384")
     @ExcelProperty("货架id")
     @ExcelProperty("货架id")
     private Long shelvesId;
     private Long shelvesId;
 
 
+    @Schema(description = "货架名称", example = "货架1")
+    @ExcelProperty("货架名称")
+    private String shelvesName;
+
     @Schema(description = "货位编码")
     @Schema(description = "货位编码")
     @ExcelProperty("货位编码")
     @ExcelProperty("货位编码")
     private String code;
     private String code;
@@ -71,7 +87,7 @@ public class IotCargoLocationRespVO {
 
 
     @Schema(description = "列号(货架的纵深分区)")
     @Schema(description = "列号(货架的纵深分区)")
     @ExcelProperty("列号(货架的纵深分区)")
     @ExcelProperty("列号(货架的纵深分区)")
-    private Integer column;
+    private Integer columnNumber;
 
 
     @Schema(description = "货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     @Schema(description = "货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     @ExcelProperty("货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     @ExcelProperty("货位容量(单位:可自定义,如件数、体积m³、重量kg)")

+ 4 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotcargolocation/vo/IotCargoLocationSaveReqVO.java

@@ -33,6 +33,9 @@ public class IotCargoLocationSaveReqVO {
     @Schema(description = "库存地点编码 - 项目部")
     @Schema(description = "库存地点编码 - 项目部")
     private String storageLocationCode;
     private String storageLocationCode;
 
 
+    @Schema(description = "仓库区域(A区 B区)", example = "9339")
+    private Long storageAreaId;
+
     @Schema(description = "货架id", example = "9384")
     @Schema(description = "货架id", example = "9384")
     private Long shelvesId;
     private Long shelvesId;
 
 
@@ -52,7 +55,7 @@ public class IotCargoLocationSaveReqVO {
     private Integer layer;
     private Integer layer;
 
 
     @Schema(description = "列号(货架的纵深分区)")
     @Schema(description = "列号(货架的纵深分区)")
-    private Integer column;
+    private Integer columnNumber;
 
 
     @Schema(description = "货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     @Schema(description = "货位容量(单位:可自定义,如件数、体积m³、重量kg)")
     private BigDecimal capacity;
     private BigDecimal capacity;

+ 14 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotshelves/IotShelvesController.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.pms.controller.admin.iotshelves;
 package cn.iocoder.yudao.module.pms.controller.admin.iotshelves;
 
 
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -9,6 +10,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaRespVO;
 import cn.iocoder.yudao.module.pms.convert.shelves.IotShelvesConvert;
 import cn.iocoder.yudao.module.pms.convert.shelves.IotShelvesConvert;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
@@ -27,6 +29,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -95,6 +99,16 @@ public class IotShelvesController {
                 pageResult.getTotal()));
                 pageResult.getTotal()));
     }
     }
 
 
+    @GetMapping(value = {"/list-all-simple", "simple-list"})
+    @Operation(summary = "获取货架全列表", description = "只包含被开启的数据,主要用于前端的下拉选项")
+    public CommonResult<List<IotShelvesRespVO>> getSimpleShelvesList() {
+        // 获得货架列表,只要开启状态的
+        List<IotShelvesDO> list = iotShelvesService.getShelvesListByStatus(Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
+        // 排序后,返回给前端
+        list.sort(Comparator.comparing(IotShelvesDO::getSort));
+        return success(BeanUtils.toBean(list, IotShelvesRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @GetMapping("/export-excel")
     @Operation(summary = "导出PMS 货架 Excel")
     @Operation(summary = "导出PMS 货架 Excel")
     @PreAuthorize("@ss.hasPermission('pms:iot-shelves:export')")
     @PreAuthorize("@ss.hasPermission('pms:iot-shelves:export')")

+ 13 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotstoragearea/IotStorageAreaController.java

@@ -1,6 +1,7 @@
 package cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea;
 package cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea;
 
 
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -25,6 +26,8 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -89,6 +92,16 @@ public class IotStorageAreaController {
                 pageResult.getTotal()));
                 pageResult.getTotal()));
     }
     }
 
 
+    @GetMapping(value = {"/list-all-simple", "simple-list"})
+    @Operation(summary = "获取库存地点区域全列表", description = "只包含被开启的数据,主要用于前端的下拉选项")
+    public CommonResult<List<IotStorageAreaRespVO>> getSimpleStorageAreaList() {
+        // 获得库存地点区域列表,只要开启状态的
+        List<IotStorageAreaDO> list = iotStorageAreaService.getStorageAreaListByStatus(Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
+        // 排序后,返回给前端
+        list.sort(Comparator.comparing(IotStorageAreaDO::getSort));
+        return success(BeanUtils.toBean(list, IotStorageAreaRespVO.class));
+    }
+
     @GetMapping("/export-excel")
     @GetMapping("/export-excel")
     @Operation(summary = "导出PMS 库区 Excel")
     @Operation(summary = "导出PMS 库区 Excel")
     @PreAuthorize("@ss.hasPermission('pms:iot-storage-area:export')")
     @PreAuthorize("@ss.hasPermission('pms:iot-storage-area:export')")

+ 42 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/convert/cargolocation/IotCargoLocationConvert.java

@@ -0,0 +1,42 @@
+package cn.iocoder.yudao.module.pms.convert.cargolocation;
+
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.iotcargolocation.vo.IotCargoLocationRespVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotcargolocation.IotCargoLocationDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
+import cn.iocoder.yudao.module.system.api.saporg.dto.SapOrgRespDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface IotCargoLocationConvert {
+
+    IotCargoLocationConvert INSTANCE = Mappers.getMapper(IotCargoLocationConvert.class);
+
+    default List<IotCargoLocationRespVO> convertList(List<IotCargoLocationDO> list, Map<Long, SapOrgRespDTO> sapOrgMap,
+                                                     Map<Long, IotStorageAreaDO> areaMap, Map<Long, IotShelvesDO> shelvesMap) {
+        return CollectionUtils.convertList(list, cargo -> convert1(cargo, sapOrgMap.get(cargo.getStorageLocationId()),
+                areaMap.get(cargo.getStorageAreaId()), shelvesMap.get(cargo.getShelvesId())));
+    }
+
+    default IotCargoLocationRespVO convert1(IotCargoLocationDO cargoLocation, SapOrgRespDTO sapOrg,
+                                            IotStorageAreaDO storageArea, IotShelvesDO shelves) {
+        IotCargoLocationRespVO cargoLocationVO = BeanUtils.toBean(cargoLocation, IotCargoLocationRespVO.class);
+        if (sapOrg != null) {
+            cargoLocationVO.setStorageLocationName(sapOrg.getStorageLocationName());
+        }
+        if (storageArea != null) {
+            cargoLocationVO.setStorageAreaName(storageArea.getName());
+        }
+        if (shelves != null) {
+            cargoLocationVO.setShelvesName(shelves.getName());
+        }
+        return cargoLocationVO;
+    }
+
+}

+ 5 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/iotcargolocation/IotCargoLocationDO.java

@@ -56,6 +56,10 @@ public class IotCargoLocationDO extends BaseDO {
      * 库存地点编码 - 项目部
      * 库存地点编码 - 项目部
      */
      */
     private String storageLocationCode;
     private String storageLocationCode;
+    /**
+     * 仓库区域(A区 B区)
+     */
+    private Long storageAreaId;
     /**
     /**
      * 货架id
      * 货架id
      */
      */
@@ -83,7 +87,7 @@ public class IotCargoLocationDO extends BaseDO {
     /**
     /**
      * 列号(货架的纵深分区)
      * 列号(货架的纵深分区)
      */
      */
-    private Integer column;
+    private Integer columnNumber;
     /**
     /**
      * 货位容量(单位:可自定义,如件数、体积m³、重量kg)
      * 货位容量(单位:可自定义,如件数、体积m³、重量kg)
      */
      */

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotcargolocation/IotCargoLocationMapper.java

@@ -30,7 +30,7 @@ public interface IotCargoLocationMapper extends BaseMapperX<IotCargoLocationDO>
                 .eqIfPresent(IotCargoLocationDO::getType, reqVO.getType())
                 .eqIfPresent(IotCargoLocationDO::getType, reqVO.getType())
                 .eqIfPresent(IotCargoLocationDO::getRow, reqVO.getRow())
                 .eqIfPresent(IotCargoLocationDO::getRow, reqVO.getRow())
                 .eqIfPresent(IotCargoLocationDO::getLayer, reqVO.getLayer())
                 .eqIfPresent(IotCargoLocationDO::getLayer, reqVO.getLayer())
-                .eqIfPresent(IotCargoLocationDO::getColumn, reqVO.getColumn())
+                .eqIfPresent(IotCargoLocationDO::getColumnNumber, reqVO.getColumnNumber())
                 .eqIfPresent(IotCargoLocationDO::getCapacity, reqVO.getCapacity())
                 .eqIfPresent(IotCargoLocationDO::getCapacity, reqVO.getCapacity())
                 .eqIfPresent(IotCargoLocationDO::getCurrentUsage, reqVO.getCurrentUsage())
                 .eqIfPresent(IotCargoLocationDO::getCurrentUsage, reqVO.getCurrentUsage())
                 .eqIfPresent(IotCargoLocationDO::getSort, reqVO.getSort())
                 .eqIfPresent(IotCargoLocationDO::getSort, reqVO.getSort())

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotshelves/IotShelvesMapper.java

@@ -5,7 +5,12 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.springframework.lang.Nullable;
+
+import java.util.Collection;
+import java.util.List;
 
 
 /**
 /**
  * PMS 货架 Mapper
  * PMS 货架 Mapper
@@ -36,4 +41,8 @@ public interface IotShelvesMapper extends BaseMapperX<IotShelvesDO> {
                 .orderByDesc(IotShelvesDO::getId));
                 .orderByDesc(IotShelvesDO::getId));
     }
     }
 
 
+    default List<IotShelvesDO> selectListByStatus(@Nullable Collection<Integer> statuses) {
+        return selectList(IotShelvesDO::getStatus, statuses);
+    }
+
 }
 }

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotstoragearea/IotStorageAreaMapper.java

@@ -5,7 +5,12 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.springframework.lang.Nullable;
+
+import java.util.Collection;
+import java.util.List;
 
 
 /**
 /**
  * PMS 库区 Mapper
  * PMS 库区 Mapper
@@ -35,4 +40,8 @@ public interface IotStorageAreaMapper extends BaseMapperX<IotStorageAreaDO> {
                 .orderByDesc(IotStorageAreaDO::getId));
                 .orderByDesc(IotStorageAreaDO::getId));
     }
     }
 
 
+    default List<IotStorageAreaDO> selectListByStatus(@Nullable Collection<Integer> statuses) {
+        return selectList(IotStorageAreaDO::getStatus, statuses);
+    }
+
 }
 }

+ 32 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotshelves/IotShelvesService.java

@@ -1,11 +1,16 @@
 package cn.iocoder.yudao.module.pms.service.iotshelves;
 package cn.iocoder.yudao.module.pms.service.iotshelves;
 
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotshelves.IotShelvesDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * PMS 货架 Service 接口
  * PMS 货架 Service 接口
@@ -52,4 +57,31 @@ public interface IotShelvesService {
      */
      */
     PageResult<IotShelvesDO> getIotShelvesPage(IotShelvesPageReqVO pageReqVO);
     PageResult<IotShelvesDO> getIotShelvesPage(IotShelvesPageReqVO pageReqVO);
 
 
+    /**
+     * 获得货架信息数组
+     *
+     * @param ids 货架编号数组
+     * @return 货架信息数组
+     */
+    List<IotShelvesDO> getShelvesList(Collection<Long> ids);
+
+    /**
+     * 获得指定编号的货架 Map
+     *
+     * @param ids 货架编号数组
+     * @return 货架 Map
+     */
+    default Map<Long, IotShelvesDO> getShelvesMap(Collection<Long> ids) {
+        List<IotShelvesDO> list = getShelvesList(ids);
+        return CollectionUtils.convertMap(list, IotShelvesDO::getId);
+    }
+
+    /**
+     * 获得货架精简列表
+     *
+     * @param statuses 筛选的状态
+     * @return 货架列表
+     */
+    List<IotShelvesDO> getShelvesListByStatus(Collection<Integer> statuses);
+
 }
 }

+ 18 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotshelves/IotShelvesServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.pms.service.iotshelves;
 package cn.iocoder.yudao.module.pms.service.iotshelves;
 
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotshelves.vo.IotShelvesPageReqVO;
@@ -11,6 +12,10 @@ import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_SHELVES_NOT_EXISTS;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_SHELVES_NOT_EXISTS;
 
 
@@ -68,4 +73,17 @@ public class IotShelvesServiceImpl implements IotShelvesService {
         return iotShelvesMapper.selectPage(pageReqVO);
         return iotShelvesMapper.selectPage(pageReqVO);
     }
     }
 
 
+    @Override
+    public List<IotShelvesDO> getShelvesList(Collection<Long> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return Collections.emptyList();
+        }
+        return iotShelvesMapper.selectBatchIds(ids);
+    }
+
+    @Override
+    public List<IotShelvesDO> getShelvesListByStatus(Collection<Integer> statuses) {
+        return iotShelvesMapper.selectListByStatus(statuses);
+    }
+
 }
 }

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotstoragearea/IotStorageAreaService.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.util.Collection;
 import java.util.Collection;
@@ -75,4 +76,12 @@ public interface IotStorageAreaService {
         return CollectionUtils.convertMap(list, IotStorageAreaDO::getId);
         return CollectionUtils.convertMap(list, IotStorageAreaDO::getId);
     }
     }
 
 
+    /**
+     * 获得库区精简列表
+     *
+     * @param statuses 筛选的状态
+     * @return 库区列表
+     */
+    List<IotStorageAreaDO> getStorageAreaListByStatus(Collection<Integer> statuses);
+
 }
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotstoragearea/IotStorageAreaServiceImpl.java

@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorage
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotstoragearea.vo.IotStorageAreaSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotstoragearea.IotStorageAreaDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotstoragearea.IotStorageAreaMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotstoragearea.IotStorageAreaMapper;
+import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
@@ -81,4 +82,9 @@ public class IotStorageAreaServiceImpl implements IotStorageAreaService {
         return iotStorageAreaMapper.selectBatchIds(ids);
         return iotStorageAreaMapper.selectBatchIds(ids);
     }
     }
 
 
+    @Override
+    public List<IotStorageAreaDO> getStorageAreaListByStatus(Collection<Integer> statuses) {
+        return iotStorageAreaMapper.selectListByStatus(statuses);
+    }
+
 }
 }