From 31fbee8d73fbdc8e2331208d69f674f9b29246ca Mon Sep 17 00:00:00 2001 From: 杨凯 <398860375@qq.com> Date: 星期三, 18 十月 2023 16:02:24 +0800 Subject: [PATCH] 同一个仓库下的同一个型号上锁,不同仓库、不同型号不受影响 --- consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 117 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..ca8e0d8 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,6 +1,8 @@ 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.walker.infrastructure.utils.NumberGenerator; import com.walker.jdbc.service.BaseServiceImpl; @@ -9,6 +11,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * 杩涘嚭搴� 涓氬姟澶� 绫� @@ -455,4 +458,118 @@ 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); + } + + /** + * 閮ㄩ棬鐗╁搧鍒嗗彂 + */ + public void doDepLending(){ + + } + } -- Gitblit v1.9.1