From 06e2ce23ba5944161e5bd32dd2ac63a6aee60013 Mon Sep 17 00:00:00 2001 From: 杨凯 <398860375@qq.com> Date: 星期三, 18 十月 2023 12:03:27 +0800 Subject: [PATCH] 数据库WH_GOODS删除调拨数量,总数量。在调拨时重新生成调拨物品WH_GOODS表中重新生成记录。 --- consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java | 315 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 304 insertions(+), 11 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 d39badc..e75b036 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,12 +1,13 @@ package com.consum.base.core; -import com.consum.base.core.po.WhFormInventory; import com.consum.base.core.tools.SqlParameter; 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; /** @@ -16,6 +17,7 @@ public class WarehouseBusinessService extends BaseServiceImpl { + @Autowired private WarehouseCoreService coreService; /** @@ -33,7 +35,7 @@ "FROM\n" + " WH_FORM_PROCURE_MODEL A \n" + "WHERE\n" + - " A.WH_FORM_PROCURE_ID = : PROCURE_ID"; + " A.WH_FORM_PROCURE_ID = :PROCURE_ID"; List<WhFormProcureModel> modelList = this.select(sql,new SqlParameter().put("PROCURE_ID",procure.getId()),new WhFormProcureModel()); @@ -45,7 +47,7 @@ param.setFirstInputCode(model.getId().toString()); param.setFirst_input_type(1); param.setModelId(model.getBaseGoodsModelsId()); - CheckWarehouseResult result = coreService.unifyCheck(param)[0]; + CheckWarehouseResult result = coreService.unifyCheck(param).get(0); WhGoodsDetails details = new WhGoodsDetails(); @@ -74,6 +76,54 @@ 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){ + CheckWarehouseParam param = new CheckWarehouseParam(); + param.setIsCheckIn(false); + param.setWarehouseId(output.getWarehouseId()); + 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); + } + } + } + /** * 鎵ц璋冩嫧鍑哄簱鎿嶄綔 @@ -89,7 +139,7 @@ "FROM\n" + " WH_FORM_TRANSFER_GOODS A \n" + "WHERE\n" + - " A.WH_FORM_TRANSFER_ID = : TRANSFER_ID"; + " A.WH_FORM_TRANSFER_ID = :TRANSFER_ID"; List<WhFormTransferGoods> goodsList = this.select(sql,new SqlParameter() .put("TRANSFER_ID",transfer.getId()),new WhFormTransferGoods()); @@ -99,13 +149,13 @@ param.setIsCheckIn(false); param.setWarehouseId(transfer.getOutWarehouseId()); param.setCount(goods.getCounts()); - CheckWarehouseResult[] results = coreService.unifyCheck(param); + 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.getInitial_count()); + model.setCounts(result.getInitial_count() - result.getEnd_count()); model.setOutWhGoodsDetailsId(result.getWhGoods().getId()); model.setWhFormTransferGoodsId(goods.getId()); insert(model); @@ -143,13 +193,97 @@ String sql = "SELECT\n" + " * \n" + "FROM\n" + - " WH_FORM_TRANSFER_GOODS A \n" + + " WH_FORM_TRANSFER_MODEL A \n" + "WHERE\n" + - " A.WH_FORM_TRANSFER_ID = : TRANSFER_ID"; + " A.WH_FORM_TRANSFER_ID = :TRANSFER_ID"; - List<WhFormTransferGoods> goodsList = this.select(sql,new SqlParameter() - .put("TRANSFER_ID",transfer.getId()),new WhFormTransferGoods()); + List<WhFormTransferModel> modelsList = this.select(sql,new SqlParameter() + .put("TRANSFER_ID",transfer.getId()),new WhFormTransferModel()); + for (WhFormTransferModel model : modelsList) { + CheckWarehouseParam param = new CheckWarehouseParam(); + 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){ + CheckWarehouseParam param = new CheckWarehouseParam(); + 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); + } + } } /** @@ -158,8 +292,167 @@ * 鏈熷垵鏁伴噺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){ + CheckWarehouseParam param = new CheckWarehouseParam(); + 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){ + CheckWarehouseParam param = new CheckWarehouseParam(); + 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); + } + } } -- Gitblit v1.9.1