杨凯
2023-10-17 b3dc62c650c3760644a3f06f094db132bf2aeea6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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.base.core.tools.SuperMap;
import com.consum.model.po.WhFormProcureModel;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.jdbc.service.BaseServiceImpl;
import org.springframework.stereotype.Service;
 
import java.util.List;
import java.util.Map;
 
/**
 * 进出库 业务处 类
 */
@Service
public class WarehouseBusinessService extends BaseServiceImpl {
 
 
    private WarehouseCoreService coreService;
 
    /**
     * 执行采购入库
     * 第一步:通过采购单【WH_FORM_PROCURE】查询采购单型号【WH_FORM_PROCURE_MODEL】数据
     * 第二步:组织CheckWarehouseParam,调用WarehouseCoreService.unifyCheck()执行入库
     * 第三步:更新采购单型号【WH_FORM_PROCURE_MODEL】库存物品编号字段及主表WH_FORM_PROCURE状态信息
     * 第四步:更新 进出库流水(仓库)【WH_GOODS_DETAILS】
     * @param procure
     */
    public void doProcure(WhFormProcure procure){
 
        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);
 
 
 
        }
 
 
 
    }
 
    /**
     * 执行调拨出库操作
     * 1. 通过调拨单【WH_FORM_TRANSFER】、调拨单物品【WH_FORM_TRANSFER_GOODS】组织CheckWarehouseParam
     * 2. 调用调用WarehouseCoreService.unifyCheck()执行出库
     * 3. 更新进出库流水(仓库)【WH_GOODS_DETAILS】
     * 4. 更新调拨单【WH_FORM_TRANSFER】为待接收,更新调拨单物品【WH_FORM_TRANSFER_MODEL】出库流水ID
     * @param transfer
     */
    public void doTransferOutPut(WhFormTransfer transfer){
 
    }
 
    /**
     * 执行调拨入库操作
     * 1. 通过调拨单【WH_FORM_TRANSFER】、调拨单物品【WH_FORM_TRANSFER_GOODS】组织CheckWarehouseParam
     * 2. 调用调用WarehouseCoreService.unifyCheck()执行出库
     * 3. 更新进出库流水(仓库)【WH_GOODS_DETAILS】
     * 4. 更新调拨单【WH_FORM_TRANSFER】为已入库,,更新调拨单物品【WH_FORM_TRANSFER_MODEL】入库流水ID
     * @param transfer
     */
    public void doTransferInPut(WhFormTransfer transfer){
 
    }
 
    /**
     * 创建盘点任务,创建盘点任务时,根据当时时间会将库存数据冻结一份放入待盘点单。
     * 1.从库存物品【WH_GOODS】中按照仓库将数据放入盘点单物品【WH_FORM_INVENTORY_GOODS】,主要是
     * 期初数量INIT_COUNTS,和 库存物品编号WH_GOODS_ID字段
     * @param inventory
     */
    public void createInventory(WhFormInventory inventory){
 
    }
 
}