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 | 410 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 400 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..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,17 +1,23 @@ 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.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; /** * 杩涘嚭搴� 涓氬姟澶� 绫� */ @Service -public class WarehouseBusinessService { +public class WarehouseBusinessService extends BaseServiceImpl { + @Autowired private WarehouseCoreService coreService; /** @@ -23,13 +29,101 @@ * @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){ + CheckWarehouseParam param = new CheckWarehouseParam(); + 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){ + 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); + } + } + } + /** * 鎵ц璋冩嫧鍑哄簱鎿嶄綔 @@ -40,7 +134,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){ + CheckWarehouseParam param = new CheckWarehouseParam(); + 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 +190,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) { + 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); + } + } } /** @@ -61,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