杨凯
2023-10-17 b3dc62c650c3760644a3f06f094db132bf2aeea6
上传项目资料
1个文件已添加
5个文件已修改
199 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/CheckWarehouseParam.java
@@ -36,6 +36,12 @@
    /**
     * 首次入库批次号,数据库字段
     * 采购入库时,采购单型号【WH_FORM_PROCURE_MODEL】.ID
     */
    private String firstInputCode;
    /**
     * 收入入库类型,1=采购入库;2=零星入库
     */
    private int first_input_type;
}
consum-base/src/main/java/com/consum/base/core/CheckWarehouseResult.java
@@ -1,14 +1,24 @@
package com.consum.base.core;
import com.consum.model.po.WhGoods;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
 * 执行入库后的返回类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Slf4j
public class CheckWarehouseResult {
    /**
     * 操作更新或新增的WH_GOODS库存物品ID
     */
    private long wh_goods_id;
    private WhGoods goods;
    /**
     * 执行操作时的期初数量
consum-base/src/main/java/com/consum/base/core/WarehouseBusinessService.java
@@ -3,13 +3,21 @@
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 {
public class WarehouseBusinessService extends BaseServiceImpl {
    private WarehouseCoreService coreService;
@@ -23,12 +31,32 @@
     * @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);
        }
    }
    /**
consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java
@@ -1,9 +1,15 @@
package com.consum.base.core;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.List;
/**
@@ -11,7 +17,19 @@
 */
@Service
@Slf4j
public class WarehouseCoreService {
public class WarehouseCoreService extends BaseServiceImpl {
    public static void main(String[] args) {
        WhGoods goods = new WhGoods();
        goods.setId(1l);
        goods.setWarehouseId(111l);
        goods.setSupplier("河南金明源");
        WhGoods_mapper mapper = new WhGoods_mapper(goods);
        System.out.println(mapper.getInsertSql_().getParameters());
        System.out.println(mapper.getInsertSql_().getSql());
    }
    /**
     * 统一出入库
@@ -44,10 +62,99 @@
        return new CheckWarehouseResult();
    }
    private BaseWarehouse getWarehouse(long id){
        BaseWarehouse w =  get(new BaseWarehouse(),"ID=:ID",new Object[]{id});
        return w;
    }
    /**
     * 入库
     */
    private CheckWarehouseResult checkin(CheckWarehouseParam param) {
        //如果是采购入库
        if (param.getFirst_input_type() ==1){
            WhFormProcureModel procureModel = get(new WhFormProcureModel(),"ID=:ID",new Object[]{param.getFirstInputCode()});
            WhFormProcure procure = get(new WhFormProcure(),"ID=:ID",new Object[]{procureModel.getWhFormProcureId()});
            WhGoods goods = new WhGoods();
            goods.setId(NumberGenerator.getLongSequenceNumber());
            goods.setBaseGoodsTemplateId(procureModel.getBaseGoodsTemplateId());
            goods.setGoodsTemplateName(procureModel.getGoodsTemplateName());
            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());
            goods.setWarehouseId(procure.getWarehouseId());
            goods.setWarehouseName(procure.getWarehouseName());
            goods.setSupplier(procureModel.getSupplier());
            goods.setUnit(procureModel.getUnit());
            goods.setPrice(procureModel.getPrice());
            goods.setProcureDate(procure.getIncomeTime());
            goods.setBackDate(procure.getIncomeTime());
            goods.setStates(1);
            insert(goods);
            CheckWarehouseResult result = new CheckWarehouseResult();
            result.setGoods(goods);
            result.setInitial_count(0);
            result.setEnd_count(goods.getAllCount());
            return result;
        }
        String sql = "SELECT\n" +
                "    * \n" +
                "FROM\n" +
                "    WH_GOODS \n" +
                "WHERE\n" +
                "    WAREHOUSE_ID =:WAREHOUSE_ID \n" +
                "    AND FIRST_INPUT_CODE =:FIRST_INPUT_CODE \n" +
                "    AND BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID";
        SqlParameter parameter = new SqlParameter();
        parameter.add("WAREHOUSE_ID",param.getWarehouseId())
                .add("FIRST_INPUT_CODE",param.getFirstInputCode())
                .add("BASE_GOODS_MODELS_ID",param.getModelId());
        List<WhGoods> goodsList = select(sql,parameter,new WhGoods());
        //第一次入库:采购入库或者零星入库
        if (goodsList == null || goodsList.size() == 0){
            BaseGoodsModels m = new BaseGoodsModels();
            m.setId(param.getModelId());
            BaseGoodsModels models = get(m);
            BaseGoodsTemplate t = new BaseGoodsTemplate();
            t.setId(models.getGoodsTemplatesId());
            BaseGoodsTemplate template = get(t);
            BaseWarehouse w = new BaseWarehouse();
            w.setId(param.getWarehouseId());
            BaseWarehouse warehouse = get(w);
            WhGoods goods = new WhGoods();
            goods.setId(NumberGenerator.getLongSequenceNumber());
            goods.setBaseGoodsTemplateId(template.getId());
            goods.setGoodsTemplateName(template.getGoodsName());
            goods.setBaseGoodsModelsId(models.getId());
            goods.setBaseGoodsModelsName(models.getModelName());
            goods.setWhCount(param.getCount());
            goods.setTransferCount(0);
            goods.setAllCount(param.getCount());
            goods.setFirstInputCode(param.getFirstInputCode());
//            goods.setFirstInputType(); 这个值在业务代码层面添加
//            goods.setFirstInputHisId();这个值在业务代码层面添加
            goods.setWarehouseId(param.getWarehouseId());
            goods.setWarehouseName(warehouse.getWarehouseName());
        }
        return new CheckWarehouseResult();
    }
consum-base/src/main/java/com/consum/base/core/tools/SqlParameter.java
@@ -14,4 +14,8 @@
        return this;
    }
    public SqlParameter add(String key,Object value){
        return this.put(key,value);
    }
}
consum-base/src/main/java/com/consum/base/core/tools/SuperMap.java
New file
@@ -0,0 +1,28 @@
package com.consum.base.core.tools;
import net.bytebuddy.implementation.bind.annotation.Super;
import java.util.HashMap;
import java.util.Map;
public class SuperMap extends HashMap {
    public SuperMap putMap(Map map){
        super.putAll(map);
        return this;
    }
    public String getString(String key){
        Object obj = this.get(key);
        if (obj == null) return null;
        return obj.toString();
    }
    public Long getLong(String key){
        String value = getString(key);
        return value == null ? null : Long.valueOf(value);
    }
}