From 21f14947f2a3d3e5a034f383cd1c87e7d42dbc8d Mon Sep 17 00:00:00 2001 From: 杨凯 <398860375@qq.com> Date: 星期三, 18 十月 2023 13:57:16 +0800 Subject: [PATCH] 库存预警,定时任务调用服务 --- consum-base/doc/项目资料/河南邮政低值易耗品V20231011.pdm | 48 ++++++----- consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java | 9 ++ consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java | 4 + consum-base/doc/项目资料/河南邮政低值易耗品V20231011.pdb | 14 ++- consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java | 110 +++++++++++++++++++++++++++ 5 files changed, 158 insertions(+), 27 deletions(-) diff --git "a/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdb" "b/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdb" index 2e63bc4..c510ce2 100644 --- "a/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdb" +++ "b/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdb" @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<?PowerDesigner AppLocale="UTF16" ID="{88086B01-C9E1-11D4-9552-0090277716A9}" Label="" LastModificationDate="1697596745" Name="Physical Data Model 1" Objects="923" Symbols="95" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.7.4.6866"?> +<?PowerDesigner AppLocale="UTF16" ID="{88086B01-C9E1-11D4-9552-0090277716A9}" Label="" LastModificationDate="1697596745" Name="Physical Data Model 1" Objects="934" Symbols="95" Target="MySQL 5.0" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="16.7.4.6866"?> <!-- do not edit this file --> <Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object"> @@ -12342,9 +12342,11 @@ <a:Code>RECEIVER_NAME</a:Code> <a:CreationDate>1697268752</a:CreationDate> <a:Creator>39886</a:Creator> -<a:ModificationDate>1697268860</a:ModificationDate> -<a:Modifier>39886</a:Modifier> +<a:ModificationDate>1697604044</a:ModificationDate> +<a:Modifier>Administrator</a:Modifier> <a:Comment>棰嗙敤浜哄鍚�</a:Comment> +<a:DataType>varchar(100)</a:DataType> +<a:Length>100</a:Length> <a:GlobalObjectID/> </o:Column> <o:Column Id="o606"> @@ -12353,9 +12355,11 @@ <a:Code>RECEIVER_PHONE</a:Code> <a:CreationDate>1697268752</a:CreationDate> <a:Creator>39886</a:Creator> -<a:ModificationDate>1697268860</a:ModificationDate> -<a:Modifier>39886</a:Modifier> +<a:ModificationDate>1697604044</a:ModificationDate> +<a:Modifier>Administrator</a:Modifier> <a:Comment>棰嗙敤浜虹數璇�</a:Comment> +<a:DataType>varchar(30)</a:DataType> +<a:Length>30</a:Length> <a:GlobalObjectID/> </o:Column> <o:Column Id="o607"> diff --git "a/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdm" "b/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdm" index ed19f1d..238ad9f 100644 --- "a/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdm" +++ "b/consum-base/doc/\351\241\271\347\233\256\350\265\204\346\226\231/\346\262\263\345\215\227\351\202\256\346\224\277\344\275\216\345\200\274\346\230\223\350\200\227\345\223\201V20231011.pdm" @@ -10918,9 +10918,9 @@ </o:ReferenceSymbol> <o:ReferenceSymbol Id="o497"> <a:CreationDate>1697006177</a:CreationDate> -<a:ModificationDate>1697270366</a:ModificationDate> -<a:Rect>((19559,-48259), (37401,-34585))</a:Rect> -<a:ListOfPoints>((37001,-34985),(37001,-47634),(19959,-47634))</a:ListOfPoints> +<a:ModificationDate>1697604165</a:ModificationDate> +<a:Rect>((5181,-34034), (13693,-32784))</a:Rect> +<a:ListOfPoints>((13293,-33409),(5581,-33409))</a:ListOfPoints> <a:CornerStyle>1</a:CornerStyle> <a:ArrowStyle>1</a:ArrowStyle> <a:LineColor>12615680</a:LineColor> @@ -10962,9 +10962,9 @@ </o:ReferenceSymbol> <o:ReferenceSymbol Id="o505"> <a:CreationDate>1696642937</a:CreationDate> -<a:ModificationDate>1697270063</a:ModificationDate> -<a:Rect>((9968,-38135), (11218,-32096))</a:Rect> -<a:ListOfPoints>((10593,-32496),(10593,-37735))</a:ListOfPoints> +<a:ModificationDate>1697604164</a:ModificationDate> +<a:Rect>((5181,-43333), (14927,-42083))</a:Rect> +<a:ListOfPoints>((14527,-42708),(5581,-42708))</a:ListOfPoints> <a:CornerStyle>1</a:CornerStyle> <a:ArrowStyle>1</a:ArrowStyle> <a:LineColor>12615680</a:LineColor> @@ -11028,9 +11028,9 @@ </o:ReferenceSymbol> <o:ReferenceSymbol Id="o515"> <a:CreationDate>1696856666</a:CreationDate> -<a:ModificationDate>1697270366</a:ModificationDate> -<a:Rect>((18001,-25045), (24765,-23795))</a:Rect> -<a:ListOfPoints>((24365,-24420),(18401,-24420))</a:ListOfPoints> +<a:ModificationDate>1697604165</a:ModificationDate> +<a:Rect>((25488,-40073), (26738,-34507))</a:Rect> +<a:ListOfPoints>((26113,-34907),(26113,-39673))</a:ListOfPoints> <a:CornerStyle>1</a:CornerStyle> <a:ArrowStyle>1</a:ArrowStyle> <a:LineColor>12615680</a:LineColor> @@ -11182,9 +11182,9 @@ </o:ReferenceSymbol> <o:ReferenceSymbol Id="o535"> <a:CreationDate>1697090252</a:CreationDate> -<a:ModificationDate>1697596448</a:ModificationDate> -<a:Rect>((49237,-41976), (65630,-26861))</a:Rect> -<a:ListOfPoints>((65230,-41576),(65230,-27486),(49637,-27486))</a:ListOfPoints> +<a:ModificationDate>1697604165</a:ModificationDate> +<a:Rect>((38165,-41976), (65630,-26783))</a:Rect> +<a:ListOfPoints>((65230,-41576),(65230,-27408),(38565,-27408))</a:ListOfPoints> <a:CornerStyle>1</a:CornerStyle> <a:ArrowStyle>1</a:ArrowStyle> <a:LineColor>12615680</a:LineColor> @@ -11279,9 +11279,9 @@ </o:TableSymbol> <o:TableSymbol Id="o499"> <a:CreationDate>1696642937</a:CreationDate> -<a:ModificationDate>1697269960</a:ModificationDate> +<a:ModificationDate>1697604163</a:ModificationDate> <a:IconMode>-1</a:IconMode> -<a:Rect>((987,-57533), (19959,-37735))</a:Rect> +<a:Rect>((-13391,-43308), (5581,-23510))</a:Rect> <a:LineColor>12615680</a:LineColor> <a:FillColor>16570034</a:FillColor> <a:ShadowColor>12632256</a:ShadowColor> @@ -11304,9 +11304,9 @@ </o:TableSymbol> <o:TableSymbol Id="o506"> <a:CreationDate>1696642937</a:CreationDate> -<a:ModificationDate>1697270063</a:ModificationDate> +<a:ModificationDate>1697604164</a:ModificationDate> <a:IconMode>-1</a:IconMode> -<a:Rect>((-4771,-32496), (18401,-16298))</a:Rect> +<a:Rect>((14527,-55871), (37699,-39673))</a:Rect> <a:LineColor>12615680</a:LineColor> <a:FillColor>16570034</a:FillColor> <a:ShadowColor>12632256</a:ShadowColor> @@ -11429,9 +11429,9 @@ </o:TableSymbol> <o:TableSymbol Id="o498"> <a:CreationDate>1696856513</a:CreationDate> -<a:ModificationDate>1697270366</a:ModificationDate> +<a:ModificationDate>1697604165</a:ModificationDate> <a:IconMode>-1</a:IconMode> -<a:Rect>((24365,-34985), (49637,-19987))</a:Rect> +<a:Rect>((13293,-34907), (38565,-19909))</a:Rect> <a:LineColor>12615680</a:LineColor> <a:FillColor>12615935</a:FillColor> <a:ShadowColor>12632256</a:ShadowColor> @@ -12342,9 +12342,11 @@ <a:Code>RECEIVER_NAME</a:Code> <a:CreationDate>1697268752</a:CreationDate> <a:Creator>39886</a:Creator> -<a:ModificationDate>1697268860</a:ModificationDate> -<a:Modifier>39886</a:Modifier> +<a:ModificationDate>1697604044</a:ModificationDate> +<a:Modifier>Administrator</a:Modifier> <a:Comment>棰嗙敤浜哄鍚�</a:Comment> +<a:DataType>varchar(100)</a:DataType> +<a:Length>100</a:Length> <a:GlobalObjectID/> </o:Column> <o:Column Id="o606"> @@ -12353,9 +12355,11 @@ <a:Code>RECEIVER_PHONE</a:Code> <a:CreationDate>1697268752</a:CreationDate> <a:Creator>39886</a:Creator> -<a:ModificationDate>1697268860</a:ModificationDate> -<a:Modifier>39886</a:Modifier> +<a:ModificationDate>1697604044</a:ModificationDate> +<a:Modifier>Administrator</a:Modifier> <a:Comment>棰嗙敤浜虹數璇�</a:Comment> +<a:DataType>varchar(30)</a:DataType> +<a:Length>30</a:Length> <a:GlobalObjectID/> </o:Column> <o:Column Id="o607"> 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); + } } diff --git a/consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java b/consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java index 39c58ef..20dbe89 100644 --- a/consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java +++ b/consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java @@ -9,6 +9,10 @@ super(); } + public SqlParameter(String key,Object value){ + super.put(key,value); + } + public SqlParameter put(String key,Object value){ super.put(key,value); return this; diff --git a/consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java b/consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java index 02fe547..edef8f2 100644 --- a/consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java +++ b/consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java @@ -7,6 +7,10 @@ public class SuperMap extends HashMap { + public SuperMap(Map map){ + super(map); + } + public SuperMap putMap(Map map){ super.putAll(map); return this; @@ -23,6 +27,11 @@ return value == null ? null : Long.valueOf(value); } + public Integer getInteger(String key){ + String value = getString(key); + return value == null ? null : Integer.valueOf(value); + } + } -- Gitblit v1.9.1