package com.consum.base.service;
|
|
import com.walker.infrastructure.utils.CollectionUtils;
|
import com.walker.jdbc.service.BaseServiceImpl;
|
import org.springframework.stereotype.Service;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* @ClassName LWhGoodsService
|
* @Author cy
|
* @Date 2023/10/24
|
* @Description
|
* @Version 1.0
|
**/
|
@Service
|
public class LWhGoodsService extends BaseServiceImpl {
|
|
|
/**
|
* @param warehouseId 所属仓库仓库编号
|
* @param baseGoodsModelsId 规格型号编号
|
* @param states (0=在途调拨;1=入库未分发;2=已下发;3=报废)
|
* @param buyType 采购方式(1:集采;2=自采)
|
* @return 查询某个型号在仓库中的数量
|
*/
|
private static String query_Goods_Model_Num = "SELECT COUNT(1) from L_WH_GOODS where 1=1";
|
|
public int queryGoodsModelNum(Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType) {
|
StringBuilder sql = new StringBuilder(query_Goods_Model_Num);
|
Map<String, Object> paramts = new HashMap<>();
|
|
if (warehouseId != null) {
|
sql.append(" and WAREHOUSE_ID=:warehouseId");
|
paramts.put("warehouseId", warehouseId);
|
}
|
if (baseGoodsModelsId != null) {
|
sql.append(" and BASE_GOODS_TEMPLATE_ID=:baseGoodsModelsId");
|
paramts.put("baseGoodsModelsId", baseGoodsModelsId);
|
}
|
if (states != null) {
|
sql.append(" and STATES=:STATES");
|
paramts.put("states", states);
|
}
|
if (buyType != null) {
|
sql.append(" and BUY_TYPE=:buyType");
|
paramts.put("buyType", buyType);
|
}
|
return queryForInt(sql.toString(), paramts);
|
}
|
|
|
/**
|
* 出库时候,先入库的先出库,同时入库的,按价格高的先出库
|
*
|
* @param warehouseId 所属仓库仓库编号
|
* @param baseGoodsModelsId 规格型号编号
|
* @param states 状态(0=在途调拨;1=入库未分发;2=已下发;3=报废)
|
* @param buyType 采购方式(1:集采;2=自采)
|
* @param goodsModelNum 取出的数量
|
* @return
|
*/
|
private static String QUERY_OUT_GOODS_ID = "SELECT*FROM L_WH_GOODS WHERE 1=1";
|
|
public List<Map<String, Object>> queryOutGoods(Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) {
|
StringBuilder sql = new StringBuilder(QUERY_OUT_GOODS_ID);
|
Map<String, Object> paramts = new HashMap<>();
|
if (warehouseId != null) {
|
sql.append(" and WAREHOUSE_ID=:warehouseId");
|
paramts.put("warehouseId", warehouseId);
|
}
|
if (baseGoodsModelsId != null) {
|
sql.append(" and BASE_GOODS_TEMPLATE_ID=:baseGoodsModelsId");
|
paramts.put("baseGoodsModelsId", baseGoodsModelsId);
|
}
|
if (states != null) {
|
sql.append(" and STATES=:STATES");
|
paramts.put("states", states);
|
}
|
if (buyType != null) {
|
sql.append(" and BUY_TYPE=:buyType");
|
paramts.put("buyType", buyType);
|
}
|
return select(sql.append(" limit").append(goodsModelNum).toString(), paramts);
|
}
|
|
|
/**
|
* 出库时候,先入库的先出库,同时入库的,按价格高的先出库
|
*
|
* @param warehouseId 所属仓库仓库编号
|
* @param baseGoodsModelsId 规格型号编号
|
* @param states 状态(0=在途调拨;1=入库未分发;2=已下发;3=报废)
|
* @param buyType 采购方式(1:集采;2=自采)
|
* @param goodsModelNum 取出的数量
|
* @return
|
*/
|
public List<Long> queryOutGoodsId(Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) {
|
List<Map<String, Object>> outGoods = queryOutGoods(warehouseId, baseGoodsModelsId, states, buyType, goodsModelNum);
|
if (CollectionUtils.isEmpty(outGoods)) {
|
return null;
|
}
|
List<Long> whGoodsIds = outGoods.stream().map(map -> (Long) map.get("id")).collect(Collectors.toList());
|
return whGoodsIds;
|
}
|
|
/**
|
* 设置物品状态为调拨中
|
*
|
* @param whGoods
|
* @param toWarehouseId
|
* @param toWarehouseName
|
* @return
|
*/
|
private static String MOD_GOODS_TRANSFERING = "";
|
|
public int modGoodsTransfering(List<Long> whGoods, Long toWarehouseId, String toWarehouseName) {
|
//upda
|
return 0;
|
}
|
}
|