添加库存信息
							parent
							
								
									74a963ac66
								
							
						
					
					
						commit
						7c8f7d1c4a
					
				| 
						 | 
				
			
			@ -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<Long, StockEntity>
 | 
			
		||||
     */
 | 
			
		||||
    public Map<Long, StockEntity> queryStockList(List<Long> stockIdList) {
 | 
			
		||||
        if (CollectionUtils.isEmpty(stockIdList)) {
 | 
			
		||||
            return Collections.emptyMap();
 | 
			
		||||
        }
 | 
			
		||||
        stockIdList = stockIdList.stream().distinct().collect(Collectors.toList());
 | 
			
		||||
        Map<Long, StockEntity> stockMap = Maps.newHashMap();
 | 
			
		||||
        for (Long stockId : stockIdList) {
 | 
			
		||||
            StockEntity stock = stockManager.queryStock(stockId);
 | 
			
		||||
            if (stock != null) {
 | 
			
		||||
                stockMap.put(stockId, stock);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return stockMap;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 容器下拉查询
 | 
			
		||||
     *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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<String> batchDelete(@RequestBody ValidateList<Long> idList) {
 | 
			
		||||
        return inventoryService.batchDelete(idList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Operation(summary = "单个删除 @author 霍锦")
 | 
			
		||||
    @GetMapping("/inventory/delete/{inventoryId}")
 | 
			
		||||
    @GetMapping("/inventory/delete")
 | 
			
		||||
    @SaCheckPermission("inventory:delete")
 | 
			
		||||
    public ResponseDTO<String> batchDelete(@PathVariable Long inventoryId) {
 | 
			
		||||
    public ResponseDTO<String> delete(@RequestParam Long inventoryId) {
 | 
			
		||||
        return inventoryService.delete(inventoryId);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,7 @@ import lombok.AllArgsConstructor;
 | 
			
		|||
import lombok.Builder;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.NoArgsConstructor;
 | 
			
		||||
import net.lab1024.sa.base.common.util.SmartRequestUtil;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 库存信息 实体类
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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<InventoryVO> queryPage(InventoryQueryForm queryForm) {
 | 
			
		||||
        Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
 | 
			
		||||
        List<InventoryVO> list = inventoryDao.queryPage(page, queryForm);
 | 
			
		||||
        // 查询物料属性
 | 
			
		||||
        List<Long> itemKeyIds = list.stream().map(InventoryVO::getItemKeyId).distinct().collect(Collectors.toList());
 | 
			
		||||
        Map<Long, ItemKeyEntity> itemKeyMap = itemKeyQueryService.queryItemKeyList(itemKeyIds);
 | 
			
		||||
 | 
			
		||||
        //查询物料
 | 
			
		||||
        List<Long> itemIds = itemKeyMap.values().stream().map(ItemKeyEntity::getItemId).distinct().collect(Collectors.toList());
 | 
			
		||||
        Map<Long, ItemEntity> itemMap = itemQueryService.queryItemList(itemIds);
 | 
			
		||||
 | 
			
		||||
        //查询容器
 | 
			
		||||
        List<Long> stockIds = list.stream().map(InventoryVO::getStockId).distinct().collect(Collectors.toList());
 | 
			
		||||
        Map<Long, StockEntity> stockMap = stockQueryService.queryStockList(stockIds);
 | 
			
		||||
 | 
			
		||||
        //查询库位
 | 
			
		||||
        List<Long> locationIds = list.stream().map(InventoryVO::getLocationId).distinct().collect(Collectors.toList());
 | 
			
		||||
        Map<Long, LocationEntity> 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);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,6 +21,21 @@
 | 
			
		|||
        SELECT
 | 
			
		||||
        <include refid="base_columns"/>
 | 
			
		||||
        FROM t_inventory
 | 
			
		||||
        <where>
 | 
			
		||||
            <!--物料-->
 | 
			
		||||
            <if test="queryForm.itemId != null">
 | 
			
		||||
                AND t_inventory.item_key_id in (select item_key_id from t_item_key where item_id = #{queryForm.itemId})
 | 
			
		||||
            </if>
 | 
			
		||||
            <!--库位-->
 | 
			
		||||
            <if test="queryForm.locationId != null">
 | 
			
		||||
                AND t_inventory.location_id=#{queryForm.locationId}
 | 
			
		||||
            </if>
 | 
			
		||||
            <!--容器-->
 | 
			
		||||
            <if test="queryForm.stockId != null">
 | 
			
		||||
                AND t_inventory.stock_id=#{queryForm.stockId}
 | 
			
		||||
            </if>
 | 
			
		||||
        </where>
 | 
			
		||||
        ORDER BY t_inventory.create_time
 | 
			
		||||
    </select>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue