From caf451f76ac30aa222230e0bc2d0d7cb9f420bdf Mon Sep 17 00:00:00 2001
From: 杨凯 <398860375@qq.com>
Date: 星期三, 18 十月 2023 21:54:42 +0800
Subject: [PATCH] 新增部门出入库

---
 consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java |  215 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 215 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..05eadcc 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;
 
 /**
  * 杩涘嚭搴� 涓氬姟澶� 绫�
@@ -91,6 +94,7 @@
             CheckWarehouseParam param = new CheckWarehouseParam();
             param.setIsCheckIn(false);
             param.setWarehouseId(output.getWarehouseId());
+            param.setModelId(goods.getBaseGoodsModelsId());
             param.setCount(goods.getCounts());
 
             List<CheckWarehouseResult> results =  coreService.unifyCheck(param);
@@ -455,4 +459,215 @@
             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 doDepBack(DepFormBack back){
+        String sql = "SELECT\n" +
+                "	* \n" +
+                "FROM\n" +
+                "	DEP_FORM_BACK_GOODS A \n" +
+                "WHERE\n" +
+                "	A.DEP_FORM_BACK_ID = :BACK_ID \n";
+
+        List<DepFormBackGoods>  goodsList = this.select(sql,new SqlParameter()
+                .put("BACK_ID",back.getId()),new DepFormBackGoods());
+
+        for (DepFormBackGoods goods : goodsList) {
+            CheckUsingParam param = new CheckUsingParam();
+            param.setIsCheckIn(false);
+            param.setLending_id(back.getDepFormLendingId());
+            param.setOutputCount(goods.getBackCounts());
+            //鍨嬪彿
+//            param.setModel_id(model.);
+
+            //瀛楄〃璁捐鏈夐棶棰橈紝闇�瑕侀噸鏂拌璁★紝鍙傝�冩姤搴熻〃銆�
+        }
+
+
+    }
+
+
+    /**
+     * 閮ㄩ棬鐗╁搧鍒嗗彂
+     */
+    public void doDepLending(DepFormLending lending){
+        String sql = "SELECT\n" +
+                "	* \n" +
+                "FROM\n" +
+                "	DEP_FORM_LENDING_GOODS A \n" +
+                "WHERE\n" +
+                "	A.DEP_FORM_LENDING_ID = :LENDING_ID";
+
+        List<DepFormLendingGoods>  goodsList = this.select(sql,new SqlParameter()
+                .put("LENDING_ID",lending.getId()),new DepFormLendingGoods());
+
+        for (DepFormLendingGoods goods : goodsList){
+            CheckWarehouseParam param = new CheckWarehouseParam();
+            param.setIsCheckIn(false);
+            param.setWarehouseId(lending.getWarehouseId());
+            param.setModelId(goods.getBaseGoodsModelsId());
+            param.setCount(goods.getCounts());
+
+            //棣栧厛浠庢満鏋勪粨搴撳嚭搴�
+            List<CheckWarehouseResult> results =  coreService.unifyCheck(param);
+            for (CheckWarehouseResult result : results){
+                WhGoodsDetails details = new WhGoodsDetails();
+                details.setId(NumberGenerator.getLongSequenceNumber());
+                details.setBusinessFormId(lending.getId());
+                details.setBusinessFormCode(lending.getBusinessFormCode());
+                details.setBusinessFormName("鍒嗗彂鍗曪細" + lending.getBusinessFormCode());
+                details.setInitialCount(result.getInitial_count());
+                details.setThisType(2);
+                details.setThisCount(result.getInitial_count() - result.getEnd_count());
+                details.setEndCount(result.getEnd_count());
+                details.setWarehouseId(result.getWhGoods().getWarehouseId());
+                details.setWarehouseName(result.getWhGoods().getWarehouseName());
+                details.setClassification(11);
+                details.setOperatorId(lending.getOperatorId());
+                details.setOperatorName(lending.getOperatorName());
+                details.setDealTime(lending.getDealTime());
+                details.setWhGoodsId(result.getWhGoods().getId());
+                this.insert(details);
+
+                //鍥炲~鍑哄簱娴佹按ID锛岀敤浜庡垎鍙戞椂浣跨敤
+                result.setWh_goods_detail_id(details.getId());
+            }
+
+            CheckUsingParam usingParam = new CheckUsingParam();
+            usingParam.setIsCheckIn(true);
+            usingParam.setInput_type(1);
+            usingParam.setOutputList(results);
+
+            List<CheckUsingResult> usingResults = coreService.unifyUsingCheck(usingParam);
+            for (CheckUsingResult usingResult : usingResults) {
+                UsingGoodsHis his  = new UsingGoodsHis();
+                his.setId(NumberGenerator.getLongSequenceNumber());
+                his.setBusinessFormId(lending.getId());
+                his.setBusinessFormCode(lending.getBusinessFormCode());
+                his.setBusinessFormName("鍒嗗彂鍗曪細" + lending.getBusinessFormCode());
+                his.setClassification(1);
+                his.setOperatorId(lending.getOperatorId());
+                his.setOperatorName(lending.getOperatorName());
+                his.setDealTime(lending.getDealTime());
+                his.setDepFormLendingModelId(usingResult.getLendingModel().getId());
+                his.setDepFormLendingGoodsId(usingResult.getLendingModel().getDepFormLendingGoodsId());
+                his.setDepFormLendingId(lending.getId());
+                his.setWhGoodsId(usingResult.getLendingModel().getWhGoodsId());
+                his.setInitialCount(usingResult.getInitial_count());
+                his.setEndCount(usingResult.getEnd_count());
+                his.setWarehouseId(lending.getWarehouseId());
+                his.setWarehouseName(lending.getWarehouseName());
+                his.setDepartmentId(lending.getDepartmentId());
+                his.setDepartmentName(lending.getDepartmentName());
+                insert(his);
+            }
+
+        }
+    }
+
 }

--
Gitblit v1.9.1