From 01107e8aadfaf1e84a971d8eeb9ab37e1c5569f3 Mon Sep 17 00:00:00 2001 From: cy <1664593601@qq.com> Date: 星期五, 01 十二月 2023 09:38:56 +0800 Subject: [PATCH] feat: 部门退回/报废公用接口 --- consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java | 805 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 795 insertions(+), 10 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 ae212eb..3d2b8f5 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,17 +1,28 @@ package com.consum.base.core; -import com.consum.base.core.po.WhFormInventory; -import com.consum.base.core.po.WhFormProcure; -import com.consum.base.core.po.WhFormTransfer; +import com.consum.base.core.param.BaseWarehouseParam; +import com.consum.base.core.param.DepBackWarehouseParam; +import com.consum.base.core.utils.SqlParameter; +import com.consum.base.core.utils.SuperMap; +import com.consum.base.core.utils.DateUtil; +import com.consum.model.po.*; +import com.walker.infrastructure.utils.NumberGenerator; +import com.walker.jdbc.service.BaseServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; /** * 杩涘嚭搴� 涓氬姟澶� 绫� */ @Service -public class WarehouseBusinessService { +public class WarehouseBusinessService extends BaseServiceImpl { + @Autowired private WarehouseCoreService coreService; /** @@ -23,13 +34,102 @@ * @param procure */ public void doProcure(WhFormProcure procure){ - CheckWarehouseParam param = new CheckWarehouseParam(); - param.setIsCheckIn(true); - param.setWarehouseId(procure.getId()); - param.setIsCheckIn(true); - coreService.unifyCheck(param); + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_PROCURE_MODEL A \n" + + "WHERE\n" + + " A.WH_FORM_PROCURE_ID = :PROCURE_ID"; + + List<WhFormProcureModel> modelList = this.select(sql,new SqlParameter().put("PROCURE_ID",procure.getId()),new WhFormProcureModel()); + + for (WhFormProcureModel model : modelList){ + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(true); + param.setWarehouseId(procure.getId()); + param.setCount(model.getCounts()); + param.setFirstInputCode(model.getId().toString()); + param.setFirst_input_type(1); + param.setModelId(model.getBaseGoodsModelsId()); + CheckWarehouseResult result = coreService.unifyCheck(param).get(0); + + + WhGoodsDetails details = new WhGoodsDetails(); + details.setId(result.getWhGoods().getFirstInputHisId()); + details.setBusinessFormId(procure.getId()); + details.setBusinessFormCode(procure.getBusinessFormCode()); + details.setBusinessFormName(procure.getWarehouseName() + "閲囪喘鍏ュ簱鍗�:" + details.getBusinessFormCode()); + details.setInitialCount(result.getInitial_count()); + details.setThisType(1); + details.setEndCount(result.getEnd_count()); + details.setWarehouseId(param.getWarehouseId()); + details.setWarehouseName(procure.getWarehouseName()); + details.setClassification(1); + details.setOperatorId(procure.getOperatorId2()); + details.setOperatorName(procure.getOperatorName2()); + details.setDealTime(procure.getIncomeTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + + this.insert(details); + + + model.setInWhGoodsDetailsId(details.getId()); + update(model); + + procure.setStates(2); + update(procure); + } } + public void doOutPut(WhFormOutput output){ + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_OUTPUT_GOODS A \n" + + "WHERE\n" + + " A.WH_FORM_OUTPUT_ID = :OUTPUT_ID"; + + List<WhFormOutputGoods> goodsList = this.select(sql,new SqlParameter() + .put("OUTPUT_ID",output.getId()),new WhFormOutputGoods()); + + for (WhFormOutputGoods goods : goodsList){ + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(false); + param.setWarehouseId(output.getWarehouseId()); + param.setModelId(goods.getBaseGoodsModelsId()); + param.setCount(goods.getCounts()); + + List<CheckWarehouseResult> results = coreService.unifyCheck(param); + for (CheckWarehouseResult result : results){ + WhFormOutputModel model = new WhFormOutputModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setCounts(result.getInitial_count() - result.getEnd_count()); + model.setOutWhGoodsDetailsId(result.getWhGoods().getId()); + model.setWhGoodsId(result.getWhGoods().getId()); + model.setWhFormOutputId(output.getId()); + model.setWhFormOutputGoodsId(goods.getId()); + insert(model); + + WhGoodsDetails details = new WhGoodsDetails(); + details.setBusinessFormId(output.getId()); + details.setBusinessFormCode(output.getBusinessFormCode()); + details.setBusinessFormName("鍑哄簱鍗曪細" + output.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(3); + details.setOperatorId(output.getOperatorId()); + details.setOperatorName(output.getOperatorName()); + details.setDealTime(output.getDealTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + this.insert(details); + } + } + } + /** * 鎵ц璋冩嫧鍑哄簱鎿嶄綔 @@ -40,7 +140,50 @@ * @param transfer */ public void doTransferOutPut(WhFormTransfer transfer){ + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_TRANSFER_GOODS A \n" + + "WHERE\n" + + " A.WH_FORM_TRANSFER_ID = :TRANSFER_ID"; + List<WhFormTransferGoods> goodsList = this.select(sql,new SqlParameter() + .put("TRANSFER_ID",transfer.getId()),new WhFormTransferGoods()); + + for (WhFormTransferGoods goods : goodsList){ + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(false); + param.setWarehouseId(transfer.getOutWarehouseId()); + param.setCount(goods.getCounts()); + List<CheckWarehouseResult> results = coreService.unifyCheck(param); + for (CheckWarehouseResult result : results){ + WhFormTransferModel model = new WhFormTransferModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setWhFormTransferId(transfer.getId()); + model.setWorehouseCount(result.getInitial_count()); + model.setCounts(result.getInitial_count() - result.getEnd_count()); + model.setOutWhGoodsDetailsId(result.getWhGoods().getId()); + model.setWhFormTransferGoodsId(goods.getId()); + insert(model); + + WhGoodsDetails details = new WhGoodsDetails(); + details.setBusinessFormId(transfer.getId()); + details.setBusinessFormCode(transfer.getBusinessFormCode()); + details.setBusinessFormName("璋冩嫧鍑哄簱鍗曪細" + transfer.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(5); + details.setOperatorId(transfer.getOperatorId()); + details.setOperatorName(transfer.getOperatorName()); + details.setDealTime(transfer.getOutputTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + this.insert(details); + } + } } /** @@ -53,6 +196,100 @@ */ public void doTransferInPut(WhFormTransfer transfer){ + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_TRANSFER_MODEL A \n" + + "WHERE\n" + + " A.WH_FORM_TRANSFER_ID = :TRANSFER_ID"; + + List<WhFormTransferModel> modelsList = this.select(sql,new SqlParameter() + .put("TRANSFER_ID",transfer.getId()),new WhFormTransferModel()); + + for (WhFormTransferModel model : modelsList) { + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(true); + param.setWarehouseId(transfer.getInWarehouseId()); + param.setCount(model.getCounts()); + param.setWh_goods_id(model.getWhGoodsId()); + CheckWarehouseResult result = coreService.unifyCheck(param).get(0); + + WhGoodsDetails details = new WhGoodsDetails(); + details.setBusinessFormId(transfer.getId()); + details.setBusinessFormCode(transfer.getBusinessFormCode()); + details.setBusinessFormName("璋冩嫧鍏ュ簱鍗曪細" + transfer.getBusinessFormCode()); + details.setInitialCount(result.getInitial_count()); + details.setThisType(1); + details.setThisCount(result.getEnd_count()-result.getInitial_count()); + details.setEndCount(result.getEnd_count()); + details.setWarehouseId(result.getWhGoods().getWarehouseId()); + details.setWarehouseName(result.getWhGoods().getWarehouseName()); + details.setClassification(4); + details.setOperatorId(transfer.getOperatorId2()); + details.setOperatorName(transfer.getOperatorName2()); + details.setDealTime(transfer.getIninputTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + this.insert(details); + + model.setInWhGoodsDetailsId(details.getId()); + update(model); + } + } + + /** + * 鎶ュ簾鍗� + * @param scrapped + */ + public void doScrapped(WhFormScrapped scrapped){ + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_SCRAPPED_GOODS A \n" + + "WHERE\n" + + " A.DEP_FORM_SCRAPPED_ID = :SCRAPPED_ID"; + + List<WhFormScrappedGoods> goodsList = this.select(sql,new SqlParameter() + .put("SCRAPPED_ID",scrapped.getId()),new WhFormScrappedGoods()); + + for (WhFormScrappedGoods goods : goodsList){ + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(false); + param.setWarehouseId(scrapped.getWarehouseId()); + param.setCount(goods.getCounts()); + List<CheckWarehouseResult> results = coreService.unifyCheck(param); + for (CheckWarehouseResult result : results){ + + + WhGoodsDetails details = new WhGoodsDetails(); + details.setBusinessFormId(scrapped.getId()); + details.setBusinessFormCode(scrapped.getBusinessFormCode()); + details.setBusinessFormName("鎶ュ簾鍗曪細" + scrapped.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(10); + details.setOperatorId(scrapped.getOperatorId()); + details.setOperatorName(scrapped.getOperatorName()); + details.setDealTime(scrapped.getDealTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + this.insert(details); + + + WhFormScrappedModel model = new WhFormScrappedModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setCounts(result.getWhGoods().getWhCount()); + model.setScrappedCode(goods.getScrappedCode()); + model.setScrappedName(goods.getScrappedName()); + model.setDepGoodsDetailsId(details.getId()); + model.setDepFormScrappedId(scrapped.getId()); + model.setWhGoodsId(result.getWhGoods().getId()); + model.setWhFormScrappedGoodsId(goods.getId()); + insert(model); + } + } } /** @@ -61,8 +298,556 @@ * 鏈熷垵鏁伴噺INIT_COUNTS锛屽拰 搴撳瓨鐗╁搧缂栧彿WH_GOODS_ID瀛楁 * @param inventory */ - public void createInventory(WhFormInventory inventory){ + public void createInventoryForm(WhFormInventory inventory){ + String sql = + "SELECT\n" + + " b.BASE_GOODS_TEMPLATE_ID,\n" + + " b.GOODS_TEMPLATE_NAME,\n" + + " SUM( b.WH_COUNT ) AS WH_COUNT,\n" + + " b.BASE_GOODS_MODELS_ID,\n" + + " b.BASE_GOODS_MODELS_NAME,\n" + + " b.UNIT \n" + + "FROM\n" + + " (\n" + + " SELECT\n" + + " ID \n" + + " FROM\n" + + " BASE_GOODS_MODELS m \n" + + " WHERE\n" + + " STATES != 3 \n" + + " AND EXISTS ( SELECT 1 FROM BASE_GOODS_TEMPLATE t WHERE t.ID = m.GOODS_TEMPLATES_ID AND t.STATES != 3 ) \n" + + " ) a\n" + + " LEFT JOIN wh_goods b ON a.ID = b.BASE_GOODS_MODELS_ID \n" + + "WHERE\n" + + " b.STATES = 1 \n" + + " AND b.WAREHOUSE_ID =:WAREHOUSE_ID \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"; + + List<WhGoods> goodsList = select(sql,new SqlParameter().add("WAREHOUSE_ID",inventory.getWarehouseId())); + List<WhFormInventoryGoods> list = new ArrayList<>(); + for (WhGoods goods : goodsList) { + WhFormInventoryGoods inventoryGoods = new WhFormInventoryGoods(); + inventoryGoods.setId(NumberGenerator.getLongSequenceNumber()); + inventoryGoods.setWhFormInventoryId(inventory.getId()); + inventoryGoods.setBaseGoodsTemplateId(goods.getBaseGoodsTemplateId()); + inventoryGoods.setGoodsTemplateName(goods.getGoodsTemplateName()); + inventoryGoods.setUnit(goods.getUnit()); + inventoryGoods.setBaseGoodsModelsId(goods.getBaseGoodsModelsId()); + inventoryGoods.setBaseGoodsModelsName(goods.getBaseGoodsModelsName()); + inventoryGoods.setInitCounts(goods.getWhCount()); + inventoryGoods.setInitCounts(null); + inventoryGoods.setErrorCounts(null); + inventoryGoods.setInventoryResult(1); + list.add(inventoryGoods); + } + insertBatch(list); } + /** + * 鐩樼偣鍑哄簱 + * @param inventory + */ + public void doInventoryOutput(WhFormInventory inventory){ + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_INVENTORY_GOODS A \n" + + "WHERE\n" + + " A.WH_FORM_INVENTORY_ID = :INVENTORY_ID \n" + + " AND A.INVENTORY_RESULT =3 "; + + List<WhFormInventoryGoods> goodsList = this.select(sql,new SqlParameter() + .put("INVENTORY_ID",inventory.getId()),new WhFormInventoryGoods()); + + for (WhFormInventoryGoods goods : goodsList){ + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(false); + param.setWarehouseId(inventory.getWarehouseId()); + param.setCount(goods.getErrorCounts()); + param.setModelId(goods.getBaseGoodsModelsId()); + param.setOutput_type(3); + List<CheckWarehouseResult> results = coreService.unifyCheck(param); + for (CheckWarehouseResult result : results){ + + WhGoodsDetails details = new WhGoodsDetails(); + details.setBusinessFormId(inventory.getId()); + details.setBusinessFormCode(inventory.getBusinessFormCode()); + details.setBusinessFormName("鐩樼偣鍑哄崟锛�" + inventory.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(9); + details.setOperatorId(inventory.getOperatorId()); + details.setOperatorName(inventory.getOperatorName()); + details.setDealTime(inventory.getStopTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + this.insert(details); + + + WhFormInventoryModel model = new WhFormInventoryModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setCounts(result.getWhGoods().getWhCount()); + model.setWhFormInventoryId(inventory.getId()); + model.setInventoryResult(3); + model.setWhGoodsDetailsId(details.getId()); + model.setWhFormInventoryGoodsId(goods.getId()); + model.setWhGoodsId(result.getWhGoods().getId()); + insert(model); + } + } + } + + /** + * 鐩樼偣鍏ュ簱 + * @param inventory + */ + public void doInventoryInput(WhFormInventory inventory){ + String sql = "SELECT\n" + + " * \n" + + "FROM\n" + + " WH_FORM_INVENTORY_GOODS A \n" + + "WHERE\n" + + " A.WH_FORM_INVENTORY_ID = :INVENTORY_ID \n" + + " AND A.INVENTORY_RESULT =2 "; + + List<WhFormInventoryGoods> goodsList = this.select(sql,new SqlParameter() + .put("INVENTORY_ID",inventory.getId()),new WhFormInventoryGoods()); + + for (WhFormInventoryGoods goods : goodsList){ + BaseWarehouseParam param = new BaseWarehouseParam(); + param.setIsCheckIn(true); + param.setWarehouseId(inventory.getWarehouseId()); + param.setCount(goods.getErrorCounts()); + param.setModelId(goods.getBaseGoodsModelsId()); + param.setFirst_input_type(3); + CheckWarehouseResult result = coreService.unifyCheck(param).get(0); + + WhGoodsDetails details = new WhGoodsDetails(); + details.setBusinessFormId(inventory.getId()); + details.setBusinessFormCode(inventory.getBusinessFormCode()); + details.setBusinessFormName("鐩樼偣鍏ュ簱鍗曪細" + inventory.getBusinessFormCode()); + + details.setInitialCount(result.getInitial_count()); + details.setThisType(1); + details.setThisCount(result.getEnd_count()-result.getInitial_count()); + details.setEndCount(result.getEnd_count()); + details.setWarehouseId(result.getWhGoods().getWarehouseId()); + details.setWarehouseName(result.getWhGoods().getWarehouseName()); + details.setClassification(8); + details.setOperatorId(inventory.getOperatorId()); + details.setOperatorName(inventory.getOperatorName()); + details.setDealTime(inventory.getStopTime()); + details.setWhGoodsId(result.getWhGoods().getId()); + this.insert(details); + + + WhFormInventoryModel model = new WhFormInventoryModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setCounts(result.getWhGoods().getWhCount()); + model.setWhFormInventoryId(inventory.getId()); + model.setInventoryResult(3); + model.setWhGoodsDetailsId(details.getId()); + model.setWhFormInventoryGoodsId(goods.getId()); + model.setWhGoodsId(result.getWhGoods().getId()); + 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(String depFormBackId){ + + DepFormBack back = get(new DepFormBack(),"ID=?",new Object[]{depFormBackId}); + + String sql = "SELECT\n" + + " B.*,\n" + + " A.BACK_COUNTS, \n" + + " A.ID AS DEP_FORM_BACK_GOODS_ID \n" + + "FROM\n" + + " DEP_FORM_BACK_GOODS A\n" + + " LEFT JOIN DEP_FORM_LENDING_GOODS B ON A.DEP_FORM_LENDING_GOODS_ID = B.ID \n" + + "WHERE\n" + + " A.DEP_FORM_BACK_ID = :DEP_FORM_BACK_ID \n" + + " AND A.WAREHOUSE_ID = B.WAREHOUSE_ID \n" + + " AND A.WAREHOUSE_ID = :WAREHOUSE_ID"; + + List<Map> list = select(sql,new SqlParameter("DEP_FORM_BACK_ID",back.getId()).add("WAREHOUSE_ID",back.getWarehouseId())); + + for (Map myMap : list) { + SuperMap map = new SuperMap(myMap); + + CheckUsingParam param = new CheckUsingParam(); + param.setIsCheckIn(false); + param.setLending_id(map.getLong("DEP_FORM_LENDING_ID")); + param.setModel_id(map.getLong("BASE_GOODS_MODELS_ID")); + param.setUser_name(map.getString("GOODS_USER_NAME")); + + List<CheckUsingResult> resultList = coreService.unifyUsingCheck(param); + for (CheckUsingResult result : resultList) { + BaseWarehouseParam param1 = new DepBackWarehouseParam(); + param1.setIsCheckIn(true); + param1.setWarehouseId(result.getLendingModel().getWarehouseId()); + param1.setModelId(result.getLendingModel().getBaseGoodsModelsId()); + param1.setCount(result.getEnd_count() - result.getInitial_count()); + param1.setFirst_input_type(4); + + //鍏ュ簱骞跺瓨鍏ユ祦姘� + CheckWarehouseResult result1 = coreService.unifyCheck(param1).get(0); + WhGoodsDetails details = new WhGoodsDetails(); + details.setId(result1.getWhGoods().getFirstInputHisId()); + details.setBusinessFormId(back.getId()); + details.setBusinessFormCode(back.getBusinessFormCode()); + details.setBusinessFormName(back.getWarehouseName() + "杩斿簱鍏ュ簱鍗�:" + details.getBusinessFormCode()); + details.setInitialCount(result.getInitial_count()); + details.setThisType(1); + details.setEndCount(result.getEnd_count()); + details.setWarehouseId(back.getWarehouseId()); + details.setWarehouseName(back.getWarehouseName()); + details.setClassification(1); + details.setOperatorId(back.getOperatorId()); + details.setOperatorName(back.getOperatorName()); + details.setDealTime(back.getDealTime()); + details.setWhGoodsId(result1.getWhGoods().getId()); + + this.insert(details); + + + //瀛樺叆鍦ㄧ敤娴佹按 + UsingGoodsHis his = new UsingGoodsHis(); + his.setId(NumberGenerator.getLongSequenceNumber()); + his.setBusinessFormId(back.getId()); + his.setBusinessFormCode(back.getBusinessFormCode()); + his.setBusinessFormName("杩斿簱鍗曪細" + back.getBusinessFormCode()); + his.setClassification(3); + his.setOperatorId(back.getOperatorId()); + his.setOperatorName(back.getOperatorName()); + his.setDealTime(back.getDealTime()); + his.setDepFormLendingModelId(result.getLendingModel().getId()); + his.setDepFormLendingGoodsId(result.getLendingModel().getDepFormLendingGoodsId()); + his.setDepFormLendingId(result.getLendingModel().getDepFormLendingId()); + his.setWhGoodsId(result.getLendingModel().getWhGoodsId()); + his.setInitialCount(result.getInitial_count()); + his.setEndCount(result.getEnd_count()); + his.setWarehouseId(back.getWarehouseId()); + his.setWarehouseName(back.getWarehouseName()); + his.setDepartmentId(back.getDepartmentId()); + his.setDepartmentName(back.getDepartmentName()); + insert(his); + + DepFormBackModel model = new DepFormBackModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setDepFormBackGoodsId(map.getLong("DEP_FORM_BACK_GOODS_ID")); + model.setDepFormBackId(back.getId()); + model.setWhGoodsDetailsId(result1.getWh_goods_detail_id()); + model.setUsingGoodsHisId(his.getId()); + model.setWhGoodsId(his.getWhGoodsId()); + model.setCounts(his.getThisCount()); + model.setDepFormLendingModelId(his.getDepFormLendingModelId()); + model.setDepFormLendingGoodsId(his.getDepFormLendingGoodsId()); + model.setDepFormLendingId(his.getDepFormLendingId()); + model.setWhGoodsId(his.getWhGoodsId()); + insert(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){ + BaseWarehouseParam param = new BaseWarehouseParam(); + 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); + } + } + } + + public void doDepScrapped(String dep_form_scrapped_id){ + + DepFormScrapped scrapped = get(new DepFormScrapped(),"ID=?",new Object[]{dep_form_scrapped_id}); + + String sql = "SELECT\n" + + " B.*,\n" + + " A.SCRAPPED_COUNTS, \n" + + " A.ID AS DEP_FORM_SCRAPPED_GOODS_ID \n" + + "FROM\n" + + " DEP_FORM_SCRAPPED_GOODS A\n" + + " LEFT JOIN DEP_FORM_LENDING_GOODS B ON A.DEP_FORM_LENDING_GOODS_ID = B.ID \n" + + "WHERE\n" + + " A.DEP_FORM_SCRAPPED_ID = :DEP_FORM_SCRAPPED_ID \n" + + " AND A.WAREHOUSE_ID = B.WAREHOUSE_ID \n" + + " AND A.WAREHOUSE_ID = :WAREHOUSE_ID"; + + List<Map> list = select(sql,new SqlParameter("DEP_FORM_SCRAPPED_ID",scrapped.getId()).add("WAREHOUSE_ID",scrapped.getOutWarehouseId())); + for (Map _map : list) { + SuperMap map = new SuperMap(_map); + + CheckUsingParam param = new CheckUsingParam(); + param.setIsCheckIn(false); + param.setOutputCount(map.getInteger("SCRAPPED_COUNTS")); + param.setLending_id(map.getLong("DEP_FORM_LENDING_ID")); + param.setModel_id(map.getLong("BASE_GOODS_MODELS_ID")); + param.setUser_name(map.getString("GOODS_USER_NAME")); + + List<CheckUsingResult> resultList = coreService.unifyUsingCheck(param); + + for (CheckUsingResult result : resultList) { + + //瀛樺叆鍦ㄧ敤娴佹按 + UsingGoodsHis his = new UsingGoodsHis(); + his.setId(NumberGenerator.getLongSequenceNumber()); + his.setBusinessFormId(scrapped.getId()); + his.setBusinessFormCode(scrapped.getBusinessFormCode()); + his.setBusinessFormName("閮ㄩ棬鎶ュ簾鍗曪細" + scrapped.getBusinessFormCode()); + his.setClassification(4); + his.setOperatorId(scrapped.getOperatorId()); + his.setOperatorName(scrapped.getOperatorName()); + his.setDealTime(scrapped.getDealTime()); + his.setDepFormLendingModelId(result.getLendingModel().getId()); + his.setDepFormLendingGoodsId(result.getLendingModel().getDepFormLendingGoodsId()); + his.setDepFormLendingId(result.getLendingModel().getDepFormLendingId()); + his.setWhGoodsId(result.getLendingModel().getWhGoodsId()); + his.setInitialCount(result.getInitial_count()); + his.setEndCount(result.getEnd_count()); + his.setWarehouseId(scrapped.getOutWarehouseId()); + his.setWarehouseName(scrapped.getOutWarehouseName()); + his.setDepartmentId(scrapped.getDepartmentId()); + his.setDepartmentName(scrapped.getDepartmentName()); + insert(his); + + + DepFormScrappedModel model = new DepFormScrappedModel(); + model.setId(NumberGenerator.getLongSequenceNumber()); + model.setDepFormScrappedGoodsId(map.getLong("DEP_FORM_SCRAPPED_GOODS_ID")); + model.setScrappedCode(map.getString("SCRAPPED_CODE")); + model.setScrappedName(map.getString("SCRAPPED_NAME")); +// model.setUsingGoodsHisId(his.getId()); +// model.setDepFormScrappedId(scrapped.getId()); +// model.setWhGoodsId(his.getWhGoodsId()); +// model.setScrappedCounts(his.getThisCount()); +// model.setInitCount(his.getInitialCount()); +// model.setDepFormLendingModelId(his.getDepFormLendingModelId()); +// model.setDepFormLendingGoodsId(his.getDepFormLendingGoodsId()); +// model.setDepFormLendingId(his.getDepFormLendingId()); + insert(model); + } + } + } + + /** + * 鐢ㄤ簬鍙樻洿鐗╁搧浣跨敤浜哄悗锛屾洿鏂板簱瀛樼墿鍝佷娇鐢ㄤ汉淇℃伅銆� + * @param dep_form_lending_goods_user_id + */ + public void changeUser(Long dep_form_lending_goods_user_id){ + DepFormLendingGoodsUser user = get(new DepFormLendingGoodsUser(),"ID=?",new Object[]{dep_form_lending_goods_user_id}); + DepFormLendingGoods goods = get(new DepFormLendingGoods(),"ID=?",new Object[]{user.getDepFormLendingGoodsId()}); + + + String sql = + "UPDATE DEP_FORM_LENDING_MODEL \n" + + "SET NOW_USER_NAME =:NOW_USER_NAME,\n" + + "NOW_USER_PHONE =:NOW_USER_PHONE \n" + + "WHERE\n" + + " DEP_FORM_LENDING_GOODS_ID =:DEP_FORM_LENDING_GOODS_ID \n" + + " AND BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID \n" + + " AND NOW_USER_NAME =:OLD_USER_NAME\n" + + " AND USING_COUNT > 0"; + + List<SqlParameter> parameterList = new ArrayList<>(); + List<DepFormLendingModel> modelList = select(new DepFormLendingModel(),"DEP_FORM_LENDING_GOODS_ID=?",new Object[]{goods.getId()}); + for (DepFormLendingModel model : modelList) { + if (model.getUsingCount() == 0) continue; + SqlParameter parameter = new SqlParameter(); + parameter.add("NOW_USER_NAME",user.getNowUserName()) + .add("NOW_USER_PHONE",user.getNowUserPhone()) + .add("DEP_FORM_LENDING_GOODS_ID",goods.getId()) + .add("BASE_GOODS_MODELS_ID",goods.getBaseGoodsModelsId()) + .add("OLD_USER_NAME",goods.getGoodsUserName()); + parameterList.add(parameter); + } + execBatchUpdate(sql,parameterList); + } } -- Gitblit v1.9.1