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.CollectionUtils;
|
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 DEPT_LEDGER_LIST_QUERY_PREFIX = "SELECT tenant.`name` AS AGENCY_NAME,ware.`name` 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 LEFT JOIN fin_sys_tenant tenant ON ware.TENANT_ID=tenant.id WHERE 1=1 ";
|
private String DEPT_LEDGER_LIST_QUERY_GROUP = " GROUP BY 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>> depLedgerList(LWhLedgerQry param) {
|
StringBuilder sql = new StringBuilder(DEPT_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 (!CollectionUtils.isEmpty(param.getStatesList())){
|
sql.append(" and goods.states in(:statesList)");
|
paramts.put("statesList", param.getStatesList());
|
}
|
//机构
|
if (param.getAgencyId() != null) {
|
sql.append(" and ware.TENANT_ID= :agencyId");
|
paramts.put("lengthAgencyId", param.getAgencyId());
|
paramts.put("agencyId", param.getAgencyId());
|
}
|
// 部门
|
if (param.getDepartmentId() != null) {
|
sql.append(" and goods.WAREHOUSE_ID= :departmentId");
|
paramts.put("departmentId", param.getDepartmentId());
|
}
|
//仓库类型
|
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(DEPT_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());
|
}
|
}
|