futian.liu
2023-12-22 985a45dc5017872196ee9c3ae0af3094c223bb0e
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryServiceImpl.java
@@ -1,5 +1,8 @@
package com.consum.base.service.impl;
import com.consum.base.service.core.LWhFormInventoryCoreService;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -27,7 +30,7 @@
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.base.pojo.response.FormInventoryVO;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.LWhFormInventoryGoodsService;
import com.consum.base.service.LWhFormInventoryService;
import com.consum.base.service.LWhGoodsService;
@@ -61,7 +64,7 @@
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    @Autowired
    @Lazy
    private LWhFormInventoryCoreService lWhFormInventoryCoreService;
@@ -340,25 +343,36 @@
            return null;
        }
        Long warehouseId = inventory.getWarehouseId();
        Integer warehouseType = inventory.getWarehouseType();
        formInventoryVO.setBusinessFormCode(inventory.getBusinessFormCode());
        formInventoryVO.setBusinessFormName(inventory.getBusinessFormName());
        formInventoryVO.setWarehouseId(warehouseId);
        formInventoryVO.setWarehouseName(inventory.getWarehouseName());
        // 统计仓库内的物品
        String sql =
            "select bgt.id baseGoodsTemplateId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT "
                + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
                + "where bgt.AGENCY_ID = :agencyId";
            "SELECT distinct bgt.id baseGoodsTemplateId,bgm.id baseGoodsModelId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME baseGoodsModelsName,"
                + "bgt.CLASSIFICATION TYPE,bgm.UNIT FROM l_wh_goods g "
                + "LEFT JOIN base_goods_template bgt ON g.BASE_GOODS_TEMPLATE_ID = bgt.ID "
                + "LEFT JOIN base_goods_models bgm ON bgm.GOODS_TEMPLATES_ID = bgt.id WHERE "
                + "WAREHOUSE_ID = :warehouseId GROUP BY g.BASE_GOODS_MODELS_ID ";
        HashMap<String, Object> param = new HashMap<>();
        param.put("agencyId", inventory.getAgencyId());
        param.put("warehouseId", warehouseId);
        // String sql =
        // "select bgt.id baseGoodsTemplateId,bgm.id baseGoodsModelId,bgt.GOODS_NAME goodsTemplateName,bgm.MODEL_NAME
        // baseGoodsModelsName,bgt.CLASSIFICATION type,bgm.UNIT "
        // + "from base_goods_models bgm left join base_goods_template bgt on bgm.GOODS_TEMPLATES_ID = bgt.id "
        // + "where bgt.AGENCY_ID = :agencyId";
        // HashMap<String, Object> param = new HashMap<>();
        // param.put("agencyId", inventory.getAgencyId());
        List<Map<String, Object>> result = this.select(sql, param, new MapperUtil());
        List<FormInventoryGoodsVO> goodsVOList = Lists.newArrayList();
        result.forEach(item -> {
            FormInventoryGoodsVO baseGoodsModels = MapUtils.convertMapToObj(item, FormInventoryGoodsVO.class);
            int inventoryCount =
                this.lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModels.getId(), 1, null);
            List<Long> warehouseIds = new ArrayList<>(Arrays.asList(warehouseId));
            int inventoryCount = this.lWhGoodsService.queryGoodsModelNum(null, warehouseIds,
                baseGoodsModels.getBaseGoodsModelId(), 1, null);
            baseGoodsModels.setInventoryCount(inventoryCount);
            goodsVOList.add(baseGoodsModels);
        });