From 21f14947f2a3d3e5a034f383cd1c87e7d42dbc8d Mon Sep 17 00:00:00 2001 From: 杨凯 <398860375@qq.com> Date: 星期三, 18 十月 2023 13:57:16 +0800 Subject: [PATCH] 库存预警,定时任务调用服务 --- consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 110 insertions(+), 0 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java b/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java index e75b036..6d07897 100644 --- a/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java +++ b/consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java @@ -1,7 +1,10 @@ package com.consum.base.core; import com.consum.base.core.tools.SqlParameter; +import com.consum.base.core.tools.SuperMap; +import com.consum.base.core.util.DateUtil; import com.consum.model.po.*; +import com.fasterxml.jackson.databind.ser.std.ObjectArraySerializer; import com.walker.infrastructure.utils.NumberGenerator; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.beans.factory.annotation.Autowired; @@ -9,6 +12,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * 杩涘嚭搴� 涓氬姟澶� 绫� @@ -455,4 +459,110 @@ insert(model); } } + + /** + * 缁熶竴澶勭悊搴撳瓨棰勮锛堝畾鏃朵换鍔¤皟鐢ㄦ湇鍔★級 + * 璁″垝锛氭瘡澶╀腑鍗�13锛�00銆佹櫄涓�1:00鎵ц涓ゆ + */ + public void insertWarning(){ + + String sql = "SELECT\n" + + " SUM(b.WH_COUNT) AS WH_COUNT,\n" + + " b.BASE_GOODS_TEMPLATE_ID,\n" + + " b.GOODS_TEMPLATE_NAME,\n" + + " b.WAREHOUSE_ID,\n" + + " a.UPPER_LIMIT,\n" + + " a.LOWER_LIMIT \n" + + "FROM\n" + + " WH_WARNING_CONFIG a\n" + + " LEFT JOIN wh_goods b ON a.BASE_GOODS_TEMPLATE_ID = b.BASE_GOODS_TEMPLATE_ID \n" + + "WHERE\n" + + " a.BASE_WAREHOUSE_ID = b.WAREHOUSE_ID \n" + + " AND b.STATES = 1 \n" + + " AND a.GOODS_TYPE=1\n" + + " AND ( a.UPPER_LIMIT <= WH_COUNT OR a.LOWER_LIMIT >= WH_COUNT ) \n" + + "GROUP BY\n" + + " b.BASE_GOODS_TEMPLATE_ID,\n" + + " b.GOODS_TEMPLATE_NAME,\n" + + " b.WAREHOUSE_ID,\n" + + " a.UPPER_LIMIT,\n" + + " a.LOWER_LIMIT"; + + List<Map> goodslist = select(sql,new SqlParameter()); + + sql = "SELECT\n" + + " SUM(b.WH_COUNT) AS WH_COUNT,\n" + + " b.BASE_GOODS_TEMPLATE_ID,\n" + + " b.GOODS_TEMPLATE_NAME,\n" + + " b.BASE_GOODS_MODELS_ID,\n" + + " b.BASE_GOODS_MODELS_NAME,\n" + + " b.WAREHOUSE_ID,\n" + + " a.UPPER_LIMIT,\n" + + " a.LOWER_LIMIT \n" + + "FROM\n" + + " WH_WARNING_CONFIG a\n" + + " LEFT JOIN wh_goods b ON a.BASE_GOODS_MODELS_ID = b.BASE_GOODS_MODELS_ID \n" + + "WHERE\n" + + " a.BASE_WAREHOUSE_ID = b.WAREHOUSE_ID \n" + + " AND b.STATES = 1 \n" + + " AND a.GOODS_TYPE=2\n" + + " AND ( a.UPPER_LIMIT <= WH_COUNT OR a.LOWER_LIMIT >= WH_COUNT ) \n" + + "GROUP BY\n" + + " b.BASE_GOODS_TEMPLATE_ID,\n" + + " b.GOODS_TEMPLATE_NAME,\n" + + " b.BASE_GOODS_MODELS_ID,\n" + + " b.BASE_GOODS_MODELS_NAME,\n" + + " b.WAREHOUSE_ID,\n" + + " a.UPPER_LIMIT,\n" + + " a.LOWER_LIMIT"; + + List<Map> modeslist = select(sql,new SqlParameter()); + + List<Map> list = new ArrayList<>(); + list.addAll(goodslist); + list.addAll(modeslist); + + List<WhWarning> warningList = new ArrayList<>(); + for (Map map : list) { + SuperMap superMap = new SuperMap(map); + BaseWarehouse warehouse = get(new BaseWarehouse(),"ID=?",new Object[]{superMap.get("WAREHOUSE_ID")}); + + WhWarning warning = new WhWarning(); + warning.setId(NumberGenerator.getLongSequenceNumber()); + warning.setBaseWarehouseId(warehouse.getId()); + warning.setBaseWarehouseName(warehouse.getWarehouseName()); + warning.setBaseGoodsTemplateId(superMap.getLong("BASE_GOODS_TEMPLATE_ID")); + warning.setBaseGoodsTemplateName(superMap.getString("GOODS_TEMPLATE_NAME")); + if (superMap.getString("BASE_GOODS_MODELS_ID") == null){ + warning.setGoodsType(1); + } else { + warning.setBaseGoodsModelsId(superMap.getLong("BASE_GOODS_MODELS_ID")); + warning.setBaseGoodsModelsName(superMap.getString("BASE_GOODS_MODELS_NAME")); + warning.setGoodsType(2); + } + + int whCount = superMap.getInteger("WH_COUNT"); + int upCount = superMap.getInteger("UPPER_LIMIT"); + int lowCount = superMap.getInteger("LOWER_LIMIT"); + + if (whCount >= upCount){ + warning.setWarningType(1); + } + if (whCount<=lowCount){ + warning.setWarningType(2); + } + + warning.setUpperLimit(upCount); + warning.setLowerLimit(lowCount); + warning.setWarehouseCount(whCount); + warning.setStates(1); + warning.setWarningTime(DateUtil.getCurrentDateFor14()); + warning.setAgencyId(warehouse.getAgencyId()); + warning.setAgencyName(warehouse.getAgencyName()); + + warningList.add(warning); + } + + insertBatch(warningList); + } } -- Gitblit v1.9.1