添加库存信息
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.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import jakarta.annotation.Resource;
|
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.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.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.domain.vo.LocationVO;
|
||||||
import net.lab1024.sa.admin.module.business.wms.base.location.manager.LocationManager;
|
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.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.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.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.domain.PageResult;
|
||||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||||
import net.lab1024.sa.base.module.support.dict.constant.DictConst;
|
import net.lab1024.sa.base.module.support.dict.constant.DictConst;
|
||||||
|
|
@ -42,6 +45,9 @@ public class StockQueryService {
|
||||||
@Resource
|
@Resource
|
||||||
private LocationManager locationManager;
|
private LocationManager locationManager;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StockManager stockManager;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DictService dictService;
|
private DictService dictService;
|
||||||
|
|
||||||
|
|
@ -70,6 +76,27 @@ public class StockQueryService {
|
||||||
return SmartPageUtil.convert2PageResult(page, list);
|
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.InventoryQueryService;
|
||||||
import net.lab1024.sa.admin.module.business.wms.inventory.service.InventoryService;
|
import net.lab1024.sa.admin.module.business.wms.inventory.service.InventoryService;
|
||||||
import net.lab1024.sa.base.common.domain.ValidateList;
|
import net.lab1024.sa.base.common.domain.ValidateList;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
import net.lab1024.sa.base.common.domain.ResponseDTO;
|
||||||
import net.lab1024.sa.base.common.domain.PageResult;
|
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.tags.Tag;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
|
@ -61,15 +57,15 @@ public class InventoryController {
|
||||||
|
|
||||||
@Operation(summary = "批量删除 @author 霍锦")
|
@Operation(summary = "批量删除 @author 霍锦")
|
||||||
@PostMapping("/inventory/batchDelete")
|
@PostMapping("/inventory/batchDelete")
|
||||||
@SaCheckPermission("inventory:delete")
|
@SaCheckPermission("inventory:batchDelete")
|
||||||
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<Long> idList) {
|
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<Long> idList) {
|
||||||
return inventoryService.batchDelete(idList);
|
return inventoryService.batchDelete(idList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "单个删除 @author 霍锦")
|
@Operation(summary = "单个删除 @author 霍锦")
|
||||||
@GetMapping("/inventory/delete/{inventoryId}")
|
@GetMapping("/inventory/delete")
|
||||||
@SaCheckPermission("inventory:delete")
|
@SaCheckPermission("inventory:delete")
|
||||||
public ResponseDTO<String> batchDelete(@PathVariable Long inventoryId) {
|
public ResponseDTO<String> delete(@RequestParam Long inventoryId) {
|
||||||
return inventoryService.delete(inventoryId);
|
return inventoryService.delete(inventoryId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
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;
|
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 net.lab1024.sa.base.common.domain.PageParam;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
@ -16,4 +17,13 @@ import lombok.EqualsAndHashCode;
|
||||||
@EqualsAndHashCode(callSuper = false)
|
@EqualsAndHashCode(callSuper = false)
|
||||||
public class InventoryQueryForm extends PageParam {
|
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;
|
package net.lab1024.sa.admin.module.business.wms.inventory.domain.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -23,12 +25,24 @@ public class InventoryVO {
|
||||||
@Schema(description = "物料属性")
|
@Schema(description = "物料属性")
|
||||||
private Long itemKeyId;
|
private Long itemKeyId;
|
||||||
|
|
||||||
|
@Schema(description = "物料编码")
|
||||||
|
private String itemCode;
|
||||||
|
|
||||||
|
@Schema(description = "物料名称")
|
||||||
|
private String itemName;
|
||||||
|
|
||||||
@Schema(description = "库位")
|
@Schema(description = "库位")
|
||||||
private Long locationId;
|
private Long locationId;
|
||||||
|
|
||||||
|
@Schema(description = "库位编码")
|
||||||
|
private String locationCode;
|
||||||
|
|
||||||
@Schema(description = "容器")
|
@Schema(description = "容器")
|
||||||
private Long stockId;
|
private Long stockId;
|
||||||
|
|
||||||
|
@Schema(description = "容器编码")
|
||||||
|
private String stockCode;
|
||||||
|
|
||||||
@Schema(description = "数量")
|
@Schema(description = "数量")
|
||||||
private BigDecimal quantity;
|
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.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import jakarta.annotation.Resource;
|
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.dao.InventoryDao;
|
||||||
import net.lab1024.sa.admin.module.business.wms.inventory.domain.entity.InventoryEntity;
|
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.form.InventoryQueryForm;
|
||||||
import net.lab1024.sa.admin.module.business.wms.inventory.domain.vo.InventoryVO;
|
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.domain.PageResult;
|
||||||
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
import net.lab1024.sa.base.common.util.SmartPageUtil;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class InventoryQueryService {
|
public class InventoryQueryService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private InventoryDao inventoryDao;
|
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) {
|
public PageResult<InventoryVO> queryPage(InventoryQueryForm queryForm) {
|
||||||
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
|
||||||
List<InventoryVO> list = inventoryDao.queryPage(page, 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);
|
return SmartPageUtil.convert2PageResult(page, list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,21 @@
|
||||||
SELECT
|
SELECT
|
||||||
<include refid="base_columns"/>
|
<include refid="base_columns"/>
|
||||||
FROM t_inventory
|
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>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue