package com.consum.base.service;
|
|
import com.consum.base.core.utils.MapperUtil;
|
import com.consum.base.pojo.query.LWhLedgerQry;
|
import com.walker.db.page.GenericPager;
|
import com.walker.infrastructure.utils.StringUtils;
|
import com.walker.jdbc.service.BaseServiceImpl;
|
import org.springframework.stereotype.Service;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
/**
|
* @ClassName FinWarehouseLedgerServiceImpl
|
* @Author cy
|
* @Date 2023/11/20
|
* @Description
|
* @Version 1.0
|
**/
|
@Service
|
public class FinWarehouseLedgerServiceImpl extends BaseServiceImpl {
|
|
private String LEDGER_LIST_QUERY_PREFIX = "SELECT ware.AGENCY_NAME ,ware.WAREHOUSE_NAME ,goodsTemp.CATEGORY_NAME ,CASE goods.COST_TYPE WHEN 1 THEN 'A类' WHEN 2 THEN 'B类' WHEN 3 THEN 'C类' END AS cost_Type,goods.GOODS_TEMPLATE_NAME ,goods.BASE_GOODS_MODELS_NAME ,goods.UNIT unit,COUNt(goods.id) kucun FROM L_WH_GOODS goods LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON goods.BASE_GOODS_TEMPLATE_ID=goodsTemp.id LEFT JOIN BASE_WAREHOUSE ware ON ware.id=goods.WAREHOUSE_ID where 1=1 ";
|
private String LEDGER_LIST_QUERY_GROUP = " GROUP BY ware.AGENCY_NAME,ware.WAREHOUSE_NAME,goodsTemp.CATEGORY_NAME,goods.COST_TYPE,goods.GOODS_TEMPLATE_NAME,goods.BASE_GOODS_MODELS_NAME,goods.UNIT";
|
|
public GenericPager<Map<String, Object>> ledgerList(LWhLedgerQry param) {
|
StringBuilder sql = new StringBuilder(LEDGER_LIST_QUERY_PREFIX);
|
Map<String, Object> paramts = new HashMap<>();
|
//状态(0=在途调拨;1=入库未分发;2=已下发;3=报废 4 零星出库)
|
if (param.getStates() != null) {
|
sql.append(" and goods.states = :states");
|
paramts.put("states", param.getStates());
|
}
|
//机构
|
if (param.getAgencyId() != null) {
|
sql.append(" and left(ware.AGENCY_ID, length(:lengthAgencyId)) = :agencyId");
|
paramts.put("lengthAgencyId", param.getAgencyId());
|
paramts.put("agencyId", param.getAgencyId());
|
}
|
//仓库类型
|
if (param.getWarehouseType() != null) {
|
sql.append(" AND goods.WAREHOUSE_TYPE = :warehouseType");
|
paramts.put("warehouseType", param.getWarehouseType());
|
}
|
if (param.getWarehouseId() != null) {
|
sql.append(" AND goods.WAREHOUSE_ID = :warehouseId");
|
paramts.put("warehouseId", param.getWarehouseId());
|
}
|
//物品名称
|
if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
|
sql.append(" AND goods.GOODS_TEMPLATE_NAME like :goodsTemplateName");
|
paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
|
}
|
if (param.getGoodsTemplateId() != null) {
|
sql.append(" AND goods.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
|
paramts.put("goodsTemplateId", param.getGoodsTemplateId());
|
}
|
//分类
|
if (param.getCategoryId() != null) {
|
sql.append(" AND goodsTemp.CATEGORY_ID=:categoryId");
|
paramts.put("categoryId", param.getCategoryId());
|
}
|
//价值类型
|
if (param.getCostType() != null) {
|
sql.append(" AND goods.COST_TYPE=:costType");
|
paramts.put("costType", param.getCostType());
|
}
|
sql.append(LEDGER_LIST_QUERY_GROUP);
|
return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
|
}
|
|
private String DEPART_LEDGER_LIST_QUERY_PREFIX = "SELECT tenant.id tenantId,tenant.NAME AS AGENCY_NAME,ware.NAME AS depart_name,goodsTemp.CATEGORY_NAME,CASE goods.COST_TYPE WHEN 1 THEN 'A类' WHEN 2 THEN 'B类' WHEN 3 THEN 'C类' END AS cost_Type,goods.GOODS_TEMPLATE_NAME,goods.BASE_GOODS_MODELS_NAME,goods.UNIT unit,COUNt(goods.id) kucun FROM L_WH_GOODS goods LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON goods.BASE_GOODS_TEMPLATE_ID=goodsTemp.id LEFT JOIN fin_sys_tenant_department ware ON ware.id=goods.WAREHOUSE_ID AND goods.WAREHOUSE_TYPE=1 LEFT JOIN fin_sys_tenant tenant ON tenant.id=ware.TENANT_ID WHERE 1=1 ";
|
private String DEPART_LEDGER_LIST_QUERY_GROUP = " GROUP BY tenant.id,tenant.NAME,ware.NAME,goodsTemp.CATEGORY_NAME,goods.COST_TYPE,goods.GOODS_TEMPLATE_NAME,goods.BASE_GOODS_MODELS_NAME,goods.UNIT";
|
|
public GenericPager<Map<String, Object>> departLedgerList(LWhLedgerQry param) {
|
StringBuilder sql = new StringBuilder(DEPART_LEDGER_LIST_QUERY_PREFIX);
|
Map<String, Object> paramts = new HashMap<>();
|
//状态(0=在途调拨;1=入库未分发;2=已下发;3=报废 4 零星出库)
|
if (param.getStates() != null) {
|
sql.append(" and goods.states = :states");
|
paramts.put("states", param.getStates());
|
}
|
//机构
|
if (param.getAgencyId() != null) {
|
sql.append(" and left(ware.AGENCY_ID, length(:lengthAgencyId)) = :agencyId");
|
paramts.put("lengthAgencyId", param.getAgencyId());
|
paramts.put("agencyId", param.getAgencyId());
|
}
|
//仓库类型
|
if (param.getWarehouseType() != null) {
|
sql.append(" AND goods.WAREHOUSE_TYPE = :warehouseType");
|
paramts.put("warehouseType", param.getWarehouseType());
|
}
|
if (param.getWarehouseId() != null) {
|
sql.append(" AND goods.WAREHOUSE_ID = :warehouseId");
|
paramts.put("warehouseId", param.getWarehouseId());
|
}
|
//物品名称
|
if (StringUtils.isNotEmpty(param.getGoodsTemplateName())) {
|
sql.append(" AND goods.GOODS_TEMPLATE_NAME like :goodsTemplateName");
|
paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
|
}
|
if (param.getGoodsTemplateId() != null) {
|
sql.append(" AND goods.BASE_GOODS_TEMPLATE_ID=:goodsTemplateId");
|
paramts.put("goodsTemplateId", param.getGoodsTemplateId());
|
}
|
//分类
|
if (param.getCategoryId() != null) {
|
sql.append(" AND goodsTemp.CATEGORY_ID=:categoryId");
|
paramts.put("categoryId", param.getCategoryId());
|
}
|
//价值类型
|
if (param.getCostType() != null) {
|
sql.append(" AND goods.COST_TYPE=:costType");
|
paramts.put("costType", param.getCostType());
|
}
|
sql.append(DEPART_LEDGER_LIST_QUERY_GROUP);
|
return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapperUtil());
|
}
|
}
|