数据库WH_GOODS删除调拨数量,总数量。在调拨时重新生成调拨物品WH_GOODS表中重新生成记录。
3个文件已添加
6个文件已修改
5109 ■■■■■ 已修改文件
consum-base/doc/项目资料/河南邮政低值易耗品V20231011.pdb 1939 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/doc/项目资料/河南邮政低值易耗品V20231011.pdm 1935 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/WhFormOutput.java 348 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/WhFormOutputGoods.java 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/WhFormOutputModel.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/WhGoods.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/doc/ÏîÄ¿×ÊÁÏ/ºÓÄÏÓÊÕþµÍÖµÒ×ºÄÆ·V20231011.pdb
Diff too large
consum-base/doc/ÏîÄ¿×ÊÁÏ/ºÓÄÏÓÊÕþµÍÖµÒ×ºÄÆ·V20231011.pdm
Diff too large
consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java
@@ -41,7 +41,19 @@
    private String firstInputCode;
    /**
     * æ”¶å…¥å…¥åº“类型,1=采购入库;2=零星入库
     * ä»“库物品编号(入库类型为0时,使用)
     */
    private Long wh_goods_id;
    /**
     * æ”¶å…¥å…¥åº“类型,0=正常入库;1=采购入库;2=零星入库;3=盘点入库
     */
    private int first_input_type;
    /**
     * å‡ºåº“类型
     * 2=调拨,如果是调拨则需要转为调拨在途
     * 3=报废
     */
    private int output_type;
}
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);
        }
    }
}
consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java
@@ -6,9 +6,11 @@
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.jdbc.service.BaseServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.List;
@@ -33,20 +35,21 @@
    /**
     * ç»Ÿä¸€å‡ºå…¥åº“
     */
    public CheckWarehouseResult[] unifyCheck(CheckWarehouseParam param) {
    public List<CheckWarehouseResult> unifyCheck(CheckWarehouseParam param) {
        // TODO: 10/10/2023 æ­¤å¤„加了唯一锁,会影响性能,思考是否有更合适的办法
        try {
            Assert.notNull(param, "wareHouse param can not null !");
            Assert.notNull(param.getWarehouseId(), "wareHouse id can not null");
            CheckWarehouseResult[] result;
            List<CheckWarehouseResult> results;
            synchronized (param.getWarehouseId()) {
                if (param.getIsCheckIn()) {
                    result = new CheckWarehouseResult[]{checkin(param)};
                    results = new ArrayList<>();
                    results.add(checkin(param));
                } else {
                    result = checkout(param);
                    results = checkout(param);
                }
            }
            return result;
            return results;
        } catch (Exception e) {
            log.error(e.getMessage());
            throw new RuntimeException(e.getMessage());
@@ -57,7 +60,8 @@
    /**
     * å‡ºåº“
     */
    private CheckWarehouseResult[] checkout(CheckWarehouseParam param) {
    private List<CheckWarehouseResult> checkout(CheckWarehouseParam param) {
        //查询出指定仓库、指定型号,状态为正常的的库存物品,按照采购时间倒叙、价格倒叙排列
       String sql = "SELECT\n" +
                "    * \n" +
                "FROM\n" +
@@ -72,14 +76,69 @@
        parameter.add("WAREHOUSE_ID",param.getWarehouseId())
                .add("BASE_GOODS_MODELS_ID",param.getModelId());
        List<WhGoods> goodsList = select(sql,parameter,new WhGoods());
        List<CheckWarehouseResult> resultList = new ArrayList<>();
        int shengyu = param.getCount();
        for (WhGoods goods : goodsList){
            if (shengyu <= 0 ) break;
            //如果库存数量大于出库数量,直接减库存
            if (shengyu <= goods.getWhCount()){
                shengyu = 0;
                CheckWarehouseResult result = new CheckWarehouseResult();
                result.setWhGoods(goods);
                result.setInitial_count(goods.getWhCount());
                goods.setWhCount(goods.getWhCount() - param.getCount());
                result.setEnd_count(goods.getWhCount());
                resultList.add(result);
                //如果减库存后,库存数为0,则变更状态为已删除
                if (goods.getWhCount() == 0){
                    goods.setStates(0);
                }
                update(goods);
                //如果是调拨出库 2:调拨,3:报废
                if (param.getOutput_type() == 2 || param.getOutput_type() == 3){
                    WhGoods nGoods = new WhGoods();
                    BeanUtils.copyProperties(goods,nGoods);
                    //变更状态为调拨
                    nGoods.setStates(param.getOutput_type());
                    nGoods.setWhCount(param.getCount());
                    nGoods.setId(NumberGenerator.getLongSequenceNumber());
                    insert(nGoods);
                    CheckWarehouseResult nresult = new CheckWarehouseResult();
                    nresult.setWhGoods(nGoods);
                    nresult.setInitial_count(0);
                    nresult.setEnd_count(nresult.getEnd_count());
                    resultList.add(nresult);
                }
                return resultList;
            }
            //如果库存数量小于出库数量,则需要几个库存物品一起出库。
            CheckWarehouseResult result = new CheckWarehouseResult();
            result.setInitial_count(goods.getWhCount());
            result.setEnd_count(0);
            result.setWhGoods(goods);
            resultList.add(result);
            shengyu = param.getCount() - goods.getWhCount();
            if (shengyu < 0){
                throw new RuntimeException("出库时,计算错误");
            }
            goods.setWhCount(0);
            goods.setStates(0);
            update(goods);
        }
        return null;
        throw new RuntimeException("出库时,计算错误");
    }
    private BaseWarehouse getWarehouse(long id){
@@ -104,8 +163,6 @@
            goods.setBaseGoodsModelsId(procureModel.getBaseGoodsModelsId());
            goods.setBaseGoodsModelsName(procureModel.getBaseGoodsModelsName());
            goods.setWhCount(procureModel.getCounts());
            goods.setTransferCount(0);
            goods.setAllCount(procureModel.getCounts());
            goods.setFirstInputCode(param.getFirstInputCode());
            goods.setFirstInputType(param.getFirst_input_type());
            goods.setFirstInputHisId(NumberGenerator.getLongSequenceNumber());
@@ -122,7 +179,7 @@
            CheckWarehouseResult result = new CheckWarehouseResult();
            result.setWhGoods(goods);
            result.setInitial_count(0);
            result.setEnd_count(goods.getAllCount());
            result.setEnd_count(goods.getWhCount());
            return result;
        //零星入库
        } else if (param.getFirst_input_type() ==2){
@@ -161,7 +218,6 @@
            WhGoods newGoods = new WhGoods();
            newGoods.setId(goods.getId());
            newGoods.setWhCount(result.getEnd_count());
            newGoods.setAllCount(goods.getAllCount() + param.getCount());
            newGoods.setStates(1);
            newGoods.setBackDate(DateUtil.getCurrentDateFor14());
            this.update(newGoods);
consum-model-pojo/src/main/java/com/consum/model/po/WhFormOutput.java
New file
@@ -0,0 +1,348 @@
package com.consum.model.po;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.walker.jdbc.BasePo;
/**
 * è¡¨å:WH_FORM_OUTPUT *
 * @author genrator
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class WhFormOutput extends BasePo<WhFormOutput> {
    // åºåˆ—化版本号
    private static final long serialVersionUID = 1L;
    // ä¸»é”®
    private Long id = null;
    @JsonIgnore
    protected boolean isset_id = false;
    // å±žæ€§åˆ—表
    private String businessFormCode = null;
    @JsonIgnore
    protected boolean isset_businessFormCode = false;
    private Long warehouseId = null;
    @JsonIgnore
    protected boolean isset_warehouseId = false;
    private String warehouseName = null;
    @JsonIgnore
    protected boolean isset_warehouseName = false;
    private Long agencyId = null;
    @JsonIgnore
    protected boolean isset_agencyId = false;
    private String agencyName = null;
    @JsonIgnore
    protected boolean isset_agencyName = false;
    private Long operatorId = null;
    @JsonIgnore
    protected boolean isset_operatorId = false;
    private String operatorName = null;
    @JsonIgnore
    protected boolean isset_operatorName = false;
    private Long dealTime = null;
    @JsonIgnore
    protected boolean isset_dealTime = false;
    private Integer states = null;
    @JsonIgnore
    protected boolean isset_states = false;
    private String beiz = null;
    @JsonIgnore
    protected boolean isset_beiz = false;
    private String outputCode = null;
    @JsonIgnore
    protected boolean isset_outputCode = false;
    private String outputName = null;
    @JsonIgnore
    protected boolean isset_outputName = false;
    /**
     * é»˜è®¤æž„造函数
     */
    public WhFormOutput() {
    }
    /**
     * æ ¹æ®ä¸»é”®æž„造对象
     */
    public WhFormOutput(Long id) {
        this.setId(id);
    }
    /**
     * è®¾ç½®ä¸»é”®å€¼
     */
    @Override
    public void setPkValue(Object value) {
        this.setId((Long) value);
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
        this.isset_id = true;
    }
    @JsonIgnore
    public boolean isEmptyId() {
        return this.id == null;
    }
    public String getBusinessFormCode() {
        return this.businessFormCode;
    }
    public void setBusinessFormCode(String businessFormCode) {
        this.businessFormCode = businessFormCode;
        this.isset_businessFormCode = true;
    }
    @JsonIgnore
    public boolean isEmptyBusinessFormCode() {
        return this.businessFormCode == null || this.businessFormCode.length() == 0;
    }
    public Long getWarehouseId() {
        return this.warehouseId;
    }
    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
        this.isset_warehouseId = true;
    }
    @JsonIgnore
    public boolean isEmptyWarehouseId() {
        return this.warehouseId == null;
    }
    public String getWarehouseName() {
        return this.warehouseName;
    }
    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
        this.isset_warehouseName = true;
    }
    @JsonIgnore
    public boolean isEmptyWarehouseName() {
        return this.warehouseName == null || this.warehouseName.length() == 0;
    }
    public Long getAgencyId() {
        return this.agencyId;
    }
    public void setAgencyId(Long agencyId) {
        this.agencyId = agencyId;
        this.isset_agencyId = true;
    }
    @JsonIgnore
    public boolean isEmptyAgencyId() {
        return this.agencyId == null;
    }
    public String getAgencyName() {
        return this.agencyName;
    }
    public void setAgencyName(String agencyName) {
        this.agencyName = agencyName;
        this.isset_agencyName = true;
    }
    @JsonIgnore
    public boolean isEmptyAgencyName() {
        return this.agencyName == null || this.agencyName.length() == 0;
    }
    public Long getOperatorId() {
        return this.operatorId;
    }
    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
        this.isset_operatorId = true;
    }
    @JsonIgnore
    public boolean isEmptyOperatorId() {
        return this.operatorId == null;
    }
    public String getOperatorName() {
        return this.operatorName;
    }
    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
        this.isset_operatorName = true;
    }
    @JsonIgnore
    public boolean isEmptyOperatorName() {
        return this.operatorName == null || this.operatorName.length() == 0;
    }
    public Long getDealTime() {
        return this.dealTime;
    }
    public void setDealTime(Long dealTime) {
        this.dealTime = dealTime;
        this.isset_dealTime = true;
    }
    @JsonIgnore
    public boolean isEmptyDealTime() {
        return this.dealTime == null;
    }
    public Integer getStates() {
        return this.states;
    }
    public void setStates(Integer states) {
        this.states = states;
        this.isset_states = true;
    }
    @JsonIgnore
    public boolean isEmptyStates() {
        return this.states == null;
    }
    public String getBeiz() {
        return this.beiz;
    }
    public void setBeiz(String beiz) {
        this.beiz = beiz;
        this.isset_beiz = true;
    }
    @JsonIgnore
    public boolean isEmptyBeiz() {
        return this.beiz == null || this.beiz.length() == 0;
    }
    public String getOutputCode() {
        return this.outputCode;
    }
    public void setOutputCode(String outputCode) {
        this.outputCode = outputCode;
        this.isset_outputCode = true;
    }
    @JsonIgnore
    public boolean isEmptyOutputCode() {
        return this.outputCode == null || this.outputCode.length() == 0;
    }
    public String getOutputName() {
        return this.outputName;
    }
    public void setOutputName(String outputName) {
        this.outputName = outputName;
        this.isset_outputName = true;
    }
    @JsonIgnore
    public boolean isEmptyOutputName() {
        return this.outputName == null || this.outputName.length() == 0;
    }
    /**
     * é‡å†™ toString() æ–¹æ³•
     */
    @Override
    public String toString() {
        return new StringBuilder()
                .append("id=").append(this.id)
                .append("businessFormCode=").append(this.businessFormCode)
                .append("warehouseId=").append(this.warehouseId)
                .append("warehouseName=").append(this.warehouseName)
                .append("agencyId=").append(this.agencyId)
                .append("agencyName=").append(this.agencyName)
                .append("operatorId=").append(this.operatorId)
                .append("operatorName=").append(this.operatorName)
                .append("dealTime=").append(this.dealTime)
                .append("states=").append(this.states)
                .append("beiz=").append(this.beiz)
                .append("outputCode=").append(this.outputCode)
                .append("outputName=").append(this.outputName)
                .toString();
    }
    /**
     * å…‹éš†
     */
    public WhFormOutput $clone() {
        WhFormOutput wh_form_output = new WhFormOutput();
        // æ•°æ®åº“名称
        //wh_form_output.setDatabaseName_(this.getDatabaseName_());
        // ä¸»é”®
        if (this.isset_id) {
            wh_form_output.setId(this.getId());
        }
        // æ™®é€šå±žæ€§
        if (this.isset_businessFormCode) {
            wh_form_output.setBusinessFormCode(this.getBusinessFormCode());
        }
        if (this.isset_warehouseId) {
            wh_form_output.setWarehouseId(this.getWarehouseId());
        }
        if (this.isset_warehouseName) {
            wh_form_output.setWarehouseName(this.getWarehouseName());
        }
        if (this.isset_agencyId) {
            wh_form_output.setAgencyId(this.getAgencyId());
        }
        if (this.isset_agencyName) {
            wh_form_output.setAgencyName(this.getAgencyName());
        }
        if (this.isset_operatorId) {
            wh_form_output.setOperatorId(this.getOperatorId());
        }
        if (this.isset_operatorName) {
            wh_form_output.setOperatorName(this.getOperatorName());
        }
        if (this.isset_dealTime) {
            wh_form_output.setDealTime(this.getDealTime());
        }
        if (this.isset_states) {
            wh_form_output.setStates(this.getStates());
        }
        if (this.isset_beiz) {
            wh_form_output.setBeiz(this.getBeiz());
        }
        if (this.isset_outputCode) {
            wh_form_output.setOutputCode(this.getOutputCode());
        }
        if (this.isset_outputName) {
            wh_form_output.setOutputName(this.getOutputName());
        }
        return wh_form_output;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/WhFormOutputGoods.java
New file
@@ -0,0 +1,238 @@
package com.consum.model.po;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.walker.jdbc.BasePo;
/**
 * è¡¨å:WH_FORM_OUTPUT_GOODS *
 * @author genrator
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class WhFormOutputGoods extends BasePo<WhFormOutputGoods> {
    // åºåˆ—化版本号
    private static final long serialVersionUID = 1L;
    // ä¸»é”®
    private Long id = null;
    @JsonIgnore
    protected boolean isset_id = false;
    // å±žæ€§åˆ—表
    private Integer counts = null;
    @JsonIgnore
    protected boolean isset_counts = false;
    private Long whFormOutputId = null;
    @JsonIgnore
    protected boolean isset_whFormOutputId = false;
    private Long baseGoodsTemplateId = null;
    @JsonIgnore
    protected boolean isset_baseGoodsTemplateId = false;
    private String goodsTemplateName = null;
    @JsonIgnore
    protected boolean isset_goodsTemplateName = false;
    private String unit = null;
    @JsonIgnore
    protected boolean isset_unit = false;
    private Long baseGoodsModelsId = null;
    @JsonIgnore
    protected boolean isset_baseGoodsModelsId = false;
    private String baseGoodsModelsName = null;
    @JsonIgnore
    protected boolean isset_baseGoodsModelsName = false;
    /**
     * é»˜è®¤æž„造函数
     */
    public WhFormOutputGoods() {
    }
    /**
     * æ ¹æ®ä¸»é”®æž„造对象
     */
    public WhFormOutputGoods(Long id) {
        this.setId(id);
    }
    /**
     * è®¾ç½®ä¸»é”®å€¼
     */
    @Override
    public void setPkValue(Object value) {
        this.setId((Long) value);
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
        this.isset_id = true;
    }
    @JsonIgnore
    public boolean isEmptyId() {
        return this.id == null;
    }
    public Integer getCounts() {
        return this.counts;
    }
    public void setCounts(Integer counts) {
        this.counts = counts;
        this.isset_counts = true;
    }
    @JsonIgnore
    public boolean isEmptyCounts() {
        return this.counts == null;
    }
    public Long getWhFormOutputId() {
        return this.whFormOutputId;
    }
    public void setWhFormOutputId(Long whFormOutputId) {
        this.whFormOutputId = whFormOutputId;
        this.isset_whFormOutputId = true;
    }
    @JsonIgnore
    public boolean isEmptyWhFormOutputId() {
        return this.whFormOutputId == null;
    }
    public Long getBaseGoodsTemplateId() {
        return this.baseGoodsTemplateId;
    }
    public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) {
        this.baseGoodsTemplateId = baseGoodsTemplateId;
        this.isset_baseGoodsTemplateId = true;
    }
    @JsonIgnore
    public boolean isEmptyBaseGoodsTemplateId() {
        return this.baseGoodsTemplateId == null;
    }
    public String getGoodsTemplateName() {
        return this.goodsTemplateName;
    }
    public void setGoodsTemplateName(String goodsTemplateName) {
        this.goodsTemplateName = goodsTemplateName;
        this.isset_goodsTemplateName = true;
    }
    @JsonIgnore
    public boolean isEmptyGoodsTemplateName() {
        return this.goodsTemplateName == null || this.goodsTemplateName.length() == 0;
    }
    public String getUnit() {
        return this.unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
        this.isset_unit = true;
    }
    @JsonIgnore
    public boolean isEmptyUnit() {
        return this.unit == null || this.unit.length() == 0;
    }
    public Long getBaseGoodsModelsId() {
        return this.baseGoodsModelsId;
    }
    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
        this.baseGoodsModelsId = baseGoodsModelsId;
        this.isset_baseGoodsModelsId = true;
    }
    @JsonIgnore
    public boolean isEmptyBaseGoodsModelsId() {
        return this.baseGoodsModelsId == null;
    }
    public String getBaseGoodsModelsName() {
        return this.baseGoodsModelsName;
    }
    public void setBaseGoodsModelsName(String baseGoodsModelsName) {
        this.baseGoodsModelsName = baseGoodsModelsName;
        this.isset_baseGoodsModelsName = true;
    }
    @JsonIgnore
    public boolean isEmptyBaseGoodsModelsName() {
        return this.baseGoodsModelsName == null || this.baseGoodsModelsName.length() == 0;
    }
    /**
     * é‡å†™ toString() æ–¹æ³•
     */
    @Override
    public String toString() {
        return new StringBuilder()
                .append("id=").append(this.id)
                .append("counts=").append(this.counts)
                .append("whFormOutputId=").append(this.whFormOutputId)
                .append("baseGoodsTemplateId=").append(this.baseGoodsTemplateId)
                .append("goodsTemplateName=").append(this.goodsTemplateName)
                .append("unit=").append(this.unit)
                .append("baseGoodsModelsId=").append(this.baseGoodsModelsId)
                .append("baseGoodsModelsName=").append(this.baseGoodsModelsName)
                .toString();
    }
    /**
     * å…‹éš†
     */
    public WhFormOutputGoods $clone() {
        WhFormOutputGoods wh_form_output_goods = new WhFormOutputGoods();
        // æ•°æ®åº“名称
        //wh_form_output_goods.setDatabaseName_(this.getDatabaseName_());
        // ä¸»é”®
        if (this.isset_id) {
            wh_form_output_goods.setId(this.getId());
        }
        // æ™®é€šå±žæ€§
        if (this.isset_counts) {
            wh_form_output_goods.setCounts(this.getCounts());
        }
        if (this.isset_whFormOutputId) {
            wh_form_output_goods.setWhFormOutputId(this.getWhFormOutputId());
        }
        if (this.isset_baseGoodsTemplateId) {
            wh_form_output_goods.setBaseGoodsTemplateId(this.getBaseGoodsTemplateId());
        }
        if (this.isset_goodsTemplateName) {
            wh_form_output_goods.setGoodsTemplateName(this.getGoodsTemplateName());
        }
        if (this.isset_unit) {
            wh_form_output_goods.setUnit(this.getUnit());
        }
        if (this.isset_baseGoodsModelsId) {
            wh_form_output_goods.setBaseGoodsModelsId(this.getBaseGoodsModelsId());
        }
        if (this.isset_baseGoodsModelsName) {
            wh_form_output_goods.setBaseGoodsModelsName(this.getBaseGoodsModelsName());
        }
        return wh_form_output_goods;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/WhFormOutputModel.java
New file
@@ -0,0 +1,194 @@
package com.consum.model.po;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.walker.jdbc.BasePo;
/**
 * è¡¨å:WH_FORM_OUTPUT_MODEL *
 * @author genrator
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class WhFormOutputModel extends BasePo<WhFormOutputModel> {
    // åºåˆ—化版本号
    private static final long serialVersionUID = 1L;
    // ä¸»é”®
    private Long id = null;
    @JsonIgnore
    protected boolean isset_id = false;
    // å±žæ€§åˆ—表
    private Integer counts = null;
    @JsonIgnore
    protected boolean isset_counts = false;
    private Long outWhGoodsDetailsId = null;
    @JsonIgnore
    protected boolean isset_outWhGoodsDetailsId = false;
    private Long whGoodsId = null;
    @JsonIgnore
    protected boolean isset_whGoodsId = false;
    private Long whFormOutputId = null;
    @JsonIgnore
    protected boolean isset_whFormOutputId = false;
    private Long whFormOutputGoodsId = null;
    @JsonIgnore
    protected boolean isset_whFormOutputGoodsId = false;
    /**
     * é»˜è®¤æž„造函数
     */
    public WhFormOutputModel() {
    }
    /**
     * æ ¹æ®ä¸»é”®æž„造对象
     */
    public WhFormOutputModel(Long id) {
        this.setId(id);
    }
    /**
     * è®¾ç½®ä¸»é”®å€¼
     */
    @Override
    public void setPkValue(Object value) {
        this.setId((Long) value);
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
        this.isset_id = true;
    }
    @JsonIgnore
    public boolean isEmptyId() {
        return this.id == null;
    }
    public Integer getCounts() {
        return this.counts;
    }
    public void setCounts(Integer counts) {
        this.counts = counts;
        this.isset_counts = true;
    }
    @JsonIgnore
    public boolean isEmptyCounts() {
        return this.counts == null;
    }
    public Long getOutWhGoodsDetailsId() {
        return this.outWhGoodsDetailsId;
    }
    public void setOutWhGoodsDetailsId(Long outWhGoodsDetailsId) {
        this.outWhGoodsDetailsId = outWhGoodsDetailsId;
        this.isset_outWhGoodsDetailsId = true;
    }
    @JsonIgnore
    public boolean isEmptyOutWhGoodsDetailsId() {
        return this.outWhGoodsDetailsId == null;
    }
    public Long getWhGoodsId() {
        return this.whGoodsId;
    }
    public void setWhGoodsId(Long whGoodsId) {
        this.whGoodsId = whGoodsId;
        this.isset_whGoodsId = true;
    }
    @JsonIgnore
    public boolean isEmptyWhGoodsId() {
        return this.whGoodsId == null;
    }
    public Long getWhFormOutputId() {
        return this.whFormOutputId;
    }
    public void setWhFormOutputId(Long whFormOutputId) {
        this.whFormOutputId = whFormOutputId;
        this.isset_whFormOutputId = true;
    }
    @JsonIgnore
    public boolean isEmptyWhFormOutputId() {
        return this.whFormOutputId == null;
    }
    public Long getWhFormOutputGoodsId() {
        return this.whFormOutputGoodsId;
    }
    public void setWhFormOutputGoodsId(Long whFormOutputGoodsId) {
        this.whFormOutputGoodsId = whFormOutputGoodsId;
        this.isset_whFormOutputGoodsId = true;
    }
    @JsonIgnore
    public boolean isEmptyWhFormOutputGoodsId() {
        return this.whFormOutputGoodsId == null;
    }
    /**
     * é‡å†™ toString() æ–¹æ³•
     */
    @Override
    public String toString() {
        return new StringBuilder()
                .append("id=").append(this.id)
                .append("counts=").append(this.counts)
                .append("outWhGoodsDetailsId=").append(this.outWhGoodsDetailsId)
                .append("whGoodsId=").append(this.whGoodsId)
                .append("whFormOutputId=").append(this.whFormOutputId)
                .append("whFormOutputGoodsId=").append(this.whFormOutputGoodsId)
                .toString();
    }
    /**
     * å…‹éš†
     */
    public WhFormOutputModel $clone() {
        WhFormOutputModel wh_form_output_model = new WhFormOutputModel();
        // æ•°æ®åº“名称
        //wh_form_output_model.setDatabaseName_(this.getDatabaseName_());
        // ä¸»é”®
        if (this.isset_id) {
            wh_form_output_model.setId(this.getId());
        }
        // æ™®é€šå±žæ€§
        if (this.isset_counts) {
            wh_form_output_model.setCounts(this.getCounts());
        }
        if (this.isset_outWhGoodsDetailsId) {
            wh_form_output_model.setOutWhGoodsDetailsId(this.getOutWhGoodsDetailsId());
        }
        if (this.isset_whGoodsId) {
            wh_form_output_model.setWhGoodsId(this.getWhGoodsId());
        }
        if (this.isset_whFormOutputId) {
            wh_form_output_model.setWhFormOutputId(this.getWhFormOutputId());
        }
        if (this.isset_whFormOutputGoodsId) {
            wh_form_output_model.setWhFormOutputGoodsId(this.getWhFormOutputGoodsId());
        }
        return wh_form_output_model;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/WhGoods.java
@@ -40,14 +40,6 @@
    @JsonIgnore
    protected boolean isset_whCount = false;
    private Integer transferCount = null;
    @JsonIgnore
    protected boolean isset_transferCount = false;
    private Integer allCount = null;
    @JsonIgnore
    protected boolean isset_allCount = false;
    private String firstInputCode = null;
    @JsonIgnore
    protected boolean isset_firstInputCode = false;
@@ -195,34 +187,6 @@
    @JsonIgnore
    public boolean isEmptyWhCount() {
        return this.whCount == null;
    }
    public Integer getTransferCount() {
        return this.transferCount;
    }
    public void setTransferCount(Integer transferCount) {
        this.transferCount = transferCount;
        this.isset_transferCount = true;
    }
    @JsonIgnore
    public boolean isEmptyTransferCount() {
        return this.transferCount == null;
    }
    public Integer getAllCount() {
        return this.allCount;
    }
    public void setAllCount(Integer allCount) {
        this.allCount = allCount;
        this.isset_allCount = true;
    }
    @JsonIgnore
    public boolean isEmptyAllCount() {
        return this.allCount == null;
    }
    public String getFirstInputCode() {
@@ -391,8 +355,6 @@
                .append("baseGoodsModelsId=").append(this.baseGoodsModelsId)
                .append("baseGoodsModelsName=").append(this.baseGoodsModelsName)
                .append("whCount=").append(this.whCount)
                .append("transferCount=").append(this.transferCount)
                .append("allCount=").append(this.allCount)
                .append("firstInputCode=").append(this.firstInputCode)
                .append("firstInputType=").append(this.firstInputType)
                .append("firstInputHisId=").append(this.firstInputHisId)
@@ -435,12 +397,6 @@
        }
        if (this.isset_whCount) {
            wh_goods.setWhCount(this.getWhCount());
        }
        if (this.isset_transferCount) {
            wh_goods.setTransferCount(this.getTransferCount());
        }
        if (this.isset_allCount) {
            wh_goods.setAllCount(this.getAllCount());
        }
        if (this.isset_firstInputCode) {
            wh_goods.setFirstInputCode(this.getFirstInputCode());