diff --git a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/base/stock/service/StockQueryService.java b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/base/stock/service/StockQueryService.java index 7da8de7..eb353d3 100644 --- a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/base/stock/service/StockQueryService.java +++ b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/base/stock/service/StockQueryService.java @@ -2,8 +2,10 @@ package net.lab1024.sa.admin.module.business.wms.base.stock.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Maps; import jakarta.annotation.Resource; import net.lab1024.sa.admin.module.business.wms.base.area.domain.entity.AreaEntity; +import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity; import net.lab1024.sa.admin.module.business.wms.base.location.domain.entity.LocationEntity; import net.lab1024.sa.admin.module.business.wms.base.location.domain.vo.LocationVO; import net.lab1024.sa.admin.module.business.wms.base.location.manager.LocationManager; @@ -20,6 +22,7 @@ import net.lab1024.sa.admin.module.business.wms.base.stock.domain.entity.StockEn import net.lab1024.sa.admin.module.business.wms.base.stock.domain.form.StockQueryForm; import net.lab1024.sa.admin.module.business.wms.base.stock.domain.form.StockSelect; import net.lab1024.sa.admin.module.business.wms.base.stock.domain.vo.StocksExcelVO; +import net.lab1024.sa.admin.module.business.wms.base.stock.manager.StockManager; import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.util.SmartPageUtil; import net.lab1024.sa.base.module.support.dict.constant.DictConst; @@ -42,6 +45,9 @@ public class StockQueryService { @Resource private LocationManager locationManager; + @Resource + private StockManager stockManager; + @Resource private DictService dictService; @@ -70,6 +76,27 @@ public class StockQueryService { return SmartPageUtil.convert2PageResult(page, list); } + /** + * 根据容器id集合查询容器信息 + * + * @param stockIdList 容器id集合 + * @return Map + */ + public Map queryStockList(List stockIdList) { + if (CollectionUtils.isEmpty(stockIdList)) { + return Collections.emptyMap(); + } + stockIdList = stockIdList.stream().distinct().collect(Collectors.toList()); + Map stockMap = Maps.newHashMap(); + for (Long stockId : stockIdList) { + StockEntity stock = stockManager.queryStock(stockId); + if (stock != null) { + stockMap.put(stockId, stock); + } + } + return stockMap; + } + /** * 容器下拉查询 * diff --git a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/controller/InventoryController.java b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/controller/InventoryController.java index 216b261..63c07bd 100644 --- a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/controller/InventoryController.java +++ b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/controller/InventoryController.java @@ -7,13 +7,9 @@ import net.lab1024.sa.admin.module.business.wms.inventory.domain.vo.InventoryVO; import net.lab1024.sa.admin.module.business.wms.inventory.service.InventoryQueryService; import net.lab1024.sa.admin.module.business.wms.inventory.service.InventoryService; import net.lab1024.sa.base.common.domain.ValidateList; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.*; import net.lab1024.sa.base.common.domain.ResponseDTO; import net.lab1024.sa.base.common.domain.PageResult; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import cn.dev33.satoken.annotation.SaCheckPermission; @@ -61,15 +57,15 @@ public class InventoryController { @Operation(summary = "批量删除 @author 霍锦") @PostMapping("/inventory/batchDelete") - @SaCheckPermission("inventory:delete") + @SaCheckPermission("inventory:batchDelete") public ResponseDTO batchDelete(@RequestBody ValidateList idList) { return inventoryService.batchDelete(idList); } @Operation(summary = "单个删除 @author 霍锦") - @GetMapping("/inventory/delete/{inventoryId}") + @GetMapping("/inventory/delete") @SaCheckPermission("inventory:delete") - public ResponseDTO batchDelete(@PathVariable Long inventoryId) { + public ResponseDTO delete(@RequestParam Long inventoryId) { return inventoryService.delete(inventoryId); } } diff --git a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/entity/InventoryEntity.java b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/entity/InventoryEntity.java index e547b68..977c848 100644 --- a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/entity/InventoryEntity.java +++ b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/entity/InventoryEntity.java @@ -12,6 +12,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import net.lab1024.sa.base.common.util.SmartRequestUtil; /** * 库存信息 实体类 diff --git a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/form/InventoryQueryForm.java b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/form/InventoryQueryForm.java index d86a042..f245d70 100644 --- a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/form/InventoryQueryForm.java +++ b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/form/InventoryQueryForm.java @@ -1,5 +1,6 @@ package net.lab1024.sa.admin.module.business.wms.inventory.domain.form; +import io.swagger.v3.oas.annotations.media.Schema; import net.lab1024.sa.base.common.domain.PageParam; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,4 +17,13 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = false) public class InventoryQueryForm extends PageParam { + @Schema(description = "物料") + private Long itemId; + + @Schema(description = "库位") + private Long locationId; + + @Schema(description = "容器") + private Long stockId; + } diff --git a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/vo/InventoryVO.java b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/vo/InventoryVO.java index 3d08d16..80a1374 100644 --- a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/vo/InventoryVO.java +++ b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/domain/vo/InventoryVO.java @@ -1,8 +1,10 @@ package net.lab1024.sa.admin.module.business.wms.inventory.domain.vo; import io.swagger.v3.oas.annotations.media.Schema; + import java.math.BigDecimal; import java.time.LocalDateTime; + import lombok.Data; /** @@ -23,12 +25,24 @@ public class InventoryVO { @Schema(description = "物料属性") private Long itemKeyId; + @Schema(description = "物料编码") + private String itemCode; + + @Schema(description = "物料名称") + private String itemName; + @Schema(description = "库位") private Long locationId; + @Schema(description = "库位编码") + private String locationCode; + @Schema(description = "容器") private Long stockId; + @Schema(description = "容器编码") + private String stockCode; + @Schema(description = "数量") private BigDecimal quantity; diff --git a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/service/InventoryQueryService.java b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/service/InventoryQueryService.java index 8b3d7f6..0ad0243 100644 --- a/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/service/InventoryQueryService.java +++ b/nc_wms_java/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/wms/inventory/service/InventoryQueryService.java @@ -3,28 +3,87 @@ package net.lab1024.sa.admin.module.business.wms.inventory.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; +import net.lab1024.sa.admin.module.business.wms.base.item.domain.entity.ItemEntity; +import net.lab1024.sa.admin.module.business.wms.base.item.service.ItemQueryService; +import net.lab1024.sa.admin.module.business.wms.base.location.domain.entity.LocationEntity; +import net.lab1024.sa.admin.module.business.wms.base.location.service.LocationQueryService; +import net.lab1024.sa.admin.module.business.wms.base.stock.domain.entity.StockEntity; +import net.lab1024.sa.admin.module.business.wms.base.stock.service.StockQueryService; import net.lab1024.sa.admin.module.business.wms.inventory.dao.InventoryDao; import net.lab1024.sa.admin.module.business.wms.inventory.domain.entity.InventoryEntity; import net.lab1024.sa.admin.module.business.wms.inventory.domain.form.InventoryQueryForm; import net.lab1024.sa.admin.module.business.wms.inventory.domain.vo.InventoryVO; +import net.lab1024.sa.admin.module.business.wms.itemKey.domain.entity.ItemKeyEntity; +import net.lab1024.sa.admin.module.business.wms.itemKey.service.ItemKeyQueryService; +import net.lab1024.sa.admin.module.business.wms.task.domain.vo.TaskVO; import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.util.SmartPageUtil; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class InventoryQueryService { + @Resource private InventoryDao inventoryDao; + @Resource + private ItemQueryService itemQueryService; + + @Resource + private StockQueryService stockQueryService; + + @Resource + private LocationQueryService locationQueryService; + + @Resource + private ItemKeyQueryService itemKeyQueryService; + + /** * 分页查询 */ public PageResult queryPage(InventoryQueryForm queryForm) { Page page = SmartPageUtil.convert2PageQuery(queryForm); List list = inventoryDao.queryPage(page, queryForm); + // 查询物料属性 + List itemKeyIds = list.stream().map(InventoryVO::getItemKeyId).distinct().collect(Collectors.toList()); + Map itemKeyMap = itemKeyQueryService.queryItemKeyList(itemKeyIds); + + //查询物料 + List itemIds = itemKeyMap.values().stream().map(ItemKeyEntity::getItemId).distinct().collect(Collectors.toList()); + Map itemMap = itemQueryService.queryItemList(itemIds); + + //查询容器 + List stockIds = list.stream().map(InventoryVO::getStockId).distinct().collect(Collectors.toList()); + Map stockMap = stockQueryService.queryStockList(stockIds); + + //查询库位 + List locationIds = list.stream().map(InventoryVO::getLocationId).distinct().collect(Collectors.toList()); + Map locationMap = locationQueryService.queryLocationList(locationIds); + + list.forEach(InventoryVO -> { + ItemKeyEntity itemKey = itemKeyMap.get(InventoryVO.getItemKeyId()); + if (itemKey != null) { + ItemEntity item = itemMap.get(itemKey.getItemId()); + if (item != null) { + InventoryVO.setItemCode(item.getItemCode()); + InventoryVO.setItemName(item.getItemName()); + } + } + StockEntity stock = stockMap.get(InventoryVO.getStockId()); + if (stock != null) { + InventoryVO.setStockCode(stock.getStockCode()); + } + LocationEntity location = locationMap.get(InventoryVO.getLocationId()); + if (location != null) { + InventoryVO.setLocationCode(location.getLocationCode()); + } + }); return SmartPageUtil.convert2PageResult(page, list); } diff --git a/nc_wms_java/sa-admin/src/main/resources/mapper/business/wms/inventory/InventoryMapper.xml b/nc_wms_java/sa-admin/src/main/resources/mapper/business/wms/inventory/InventoryMapper.xml index c912ac1..971f90c 100644 --- a/nc_wms_java/sa-admin/src/main/resources/mapper/business/wms/inventory/InventoryMapper.xml +++ b/nc_wms_java/sa-admin/src/main/resources/mapper/business/wms/inventory/InventoryMapper.xml @@ -21,6 +21,21 @@ SELECT FROM t_inventory + + + + AND t_inventory.item_key_id in (select item_key_id from t_item_key where item_id = #{queryForm.itemId}) + + + + AND t_inventory.location_id=#{queryForm.locationId} + + + + AND t_inventory.stock_id=#{queryForm.stockId} + + + ORDER BY t_inventory.create_time