futian.liu
2023-11-15 dc1800d4d2d252b7b37d80d9f54285200c94ff3c
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -1,10 +1,12 @@
package com.consum.base.service;
import com.consum.model.po.LWhGoods;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -69,9 +71,10 @@
     * @param goodsModelNum 取出的数量
     * @return
     */
    private static String QUERY_OUT_GOODS_ID = "SELECT*FROM L_WH_GOODS WHERE 1=1";
    private static String QUERY_OUT_GOODS_ID = "SELECT * FROM L_WH_GOODS WHERE 1=1";
    public List<Map<String, Object>> queryOutGoods(Integer warehouseType, Long warehouseId, Long baseGoodsModelsId, Short states, Short buyType, Integer goodsModelNum) {
    public List<Map<String, Object>> queryOutGoods(Integer warehouseType, 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 (warehouseType != null) {
@@ -83,7 +86,7 @@
            paramts.put("warehouseId", warehouseId);
        }
        if (baseGoodsModelsId != null) {
            sql.append(" and BASE_GOODS_TEMPLATE_ID=:baseGoodsModelsId");
            sql.append(" and BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
            paramts.put("baseGoodsModelsId", baseGoodsModelsId);
        }
        if (states != null) {
@@ -94,7 +97,7 @@
            sql.append(" and BUY_TYPE=:buyType");
            paramts.put("buyType", buyType);
        }
        return select(sql.append(" limit").append(goodsModelNum).toString(), paramts);
        return select(sql.append(" limit ").append(goodsModelNum).toString(), paramts);
    }
@@ -117,10 +120,26 @@
        return whGoodsIds;
    }
    private static String QUERY_GOODS_PRICE_BY_ID = "SELECT sum(PRICE)totalPrice from L_WH_GOODS goods where 1=1";
    public long queryGoodsPriceById(List<Long> goodsIds) {
        StringBuilder sql = new StringBuilder(QUERY_GOODS_PRICE_BY_ID);
        Map<String, Object> paramts = new HashMap<>();
        if (!CollectionUtils.isEmpty(goodsIds)) {
            sql.append(" and id in(:goodsIds)");
            paramts.put("goodsIds", goodsIds);
        }
        List<Map<String, Object>> map = this.select(sql.toString(), paramts);
        if (CollectionUtils.isEmpty(map)) {
            return 0;
        }
        BigDecimal totalPrice = (BigDecimal) map.get(0).get("totalPrice");
        return totalPrice.longValue();
    }
    /**
     * 查询报废物品
     * 默认优先报废最高价的物品
     * 查询报废物品 默认优先报废最高价的物品
     *
     * @param warehouseType
     * @param warehouseId
@@ -180,8 +199,7 @@
    }
    /**
     * 查询报废物品
     * 默认优先报废最高价的物品
     * 查询报废物品 默认优先报废最高价的物品
     *
     * @param warehouseType
     * @param warehouseId
@@ -199,7 +217,8 @@
                                            Long baseGoodsModelsId,
                                            Short states,
                                            Integer goodsModelNum) {
        List<Map<String, Object>> outGoods = queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, states, goodsModelNum);
        List<Map<String, Object>> outGoods = queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, states,
                goodsModelNum);
        if (CollectionUtils.isEmpty(outGoods)) {
            return null;
        }
@@ -216,31 +235,29 @@
     * @param toWarehouseName
     * @return
     */
    private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set";
    private static String MOD_GOODS_TRANSFERING_PREFIX = "update L_WH_GOODS set ";
    public int modGoodsTransfering(List<Long> whGoods, Integer warehouseType, Long toWarehouseId, String toWarehouseName, Short states) {
        StringBuilder sql = new StringBuilder(MOD_GOODS_TRANSFERING_PREFIX);
        ArrayList<Object> params = new ArrayList<>();
        if (toWarehouseId != null) {
            sql.append(", WAREHOUSE_TYPE=?");
            params.add(warehouseType);
        }
        if (toWarehouseId != null) {
            sql.append(", WAREHOUSE_ID=?");
            params.add(toWarehouseId);
        }
        if (toWarehouseName != null) {
            sql.append(", WAREHOUSE_NAME=?");
            params.add(toWarehouseName);
        }
        if (states != null) {
            sql.append(", STATES=?");
            params.add(states);
        }
        sql.deleteCharAt(22);
        sql.append(" where id in(?)");
        params.add(whGoods);
        return update(sql.toString(), params.toArray());
    public int modGoodsTransfering(List<Long> whGoods, Integer warehouseType, Long toWarehouseId, String toWarehouseName, Integer states) {
        List<LWhGoods> params = new ArrayList<>();
        whGoods.stream().forEach(id -> {
            LWhGoods lWhGoods = new LWhGoods();
            lWhGoods.setId(id);
            if (toWarehouseId != null) {
                lWhGoods.setWarehouseType(warehouseType);
            }
            if (toWarehouseId != null) {
                lWhGoods.setWarehouseId(toWarehouseId);
            }
            if (toWarehouseName != null) {
                lWhGoods.setWarehouseName(toWarehouseName);
            }
            if (states != null) {
                lWhGoods.setStates(states);
            }
            params.add(lWhGoods);
        });
        return updateBatch(params);
    }
}