cy
2023-11-01 ef02f737f198ebe11178a956cb0e5caba2bc9508
feat: 盘点单生成入库、出库单
3个文件已修改
138 ■■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory_mapper.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryCoreService.java
@@ -3,7 +3,6 @@
import com.consum.base.core.CodeGeneratorEnum;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.WhBusinessEnum;
import com.consum.base.core.param.BaseWarehouseParam1;
import com.consum.base.util.IdUtil;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
@@ -82,24 +81,35 @@
     * errMsg 错误消息
     */
    @Transactional(rollbackFor = Exception.class)
    public Map<String, Object> createInOutFormByInventoryId(Long whformInventoryId, S_user_core currentUser, FinSysTenantUser sysInfo) {
        HashMap<String, Object> rtnMap = new HashMap<>();
    public String createInOutFormByInventoryId(Long whformInventoryId, S_user_core currentUser, FinSysTenantUser sysInfo) {
        LWhFormInventory lWhFormInventory = lWhFormInventoryService.get(new LWhFormInventory(whformInventoryId));
        if (lWhFormInventory == null) {
//            rtnMap.put("status", false);
//            rtnMap.put("errMsg", "没有找到盘点单");
            return "没有找到盘点单";
        }
        if (lWhFormInventory.getStates() != 1) {
//            rtnMap.put("status", false);
//            rtnMap.put("errMsg", "请检查盘点单状态");
            return "请检查盘点单状态";
        }
        List<LWhFormInventoryGoods> lWhFormInventoryGoods = this.lWhFormInventoryGoods.getByInventoryId(whformInventoryId);
        if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) {
            rtnMap.put("status", false);
            rtnMap.put("errMsg", "没有找到物品");
            return rtnMap;
//            rtnMap.put("status", false);
//            rtnMap.put("errMsg", "没有找到盘点单结果物品");
            return "没有找到盘点单结果物品";
        }
        Map<Integer, List<LWhFormInventoryGoods>> inventoryGoodsMap = lWhFormInventoryGoods.stream()
                .filter(goods -> goods.getInventoryResult() == 2 || goods.getInventoryResult() == 3)
                .collect(Collectors.groupingBy(LWhFormInventoryGoods::getInventoryResult));
        if (CollectionUtils.isEmpty(lWhFormInventoryGoods)) {
            rtnMap.put("status", true);
            return rtnMap;
//            rtnMap.put("status", true);
            return null;
        }
        LWhFormInventory lWhFormInventory = lWhFormInventoryService.get(new LWhFormInventory(whformInventoryId));
        Long warehouseId = lWhFormInventory.getWarehouseId();
        Long stopTime = lWhFormInventory.getStopTime();
        Map<String, Object> inOutMap = new HashMap<>();
        for (Map.Entry<Integer, List<LWhFormInventoryGoods>> entry : inventoryGoodsMap.entrySet()) {
            //盘点结果(1=正常;2=盘盈;3=盘亏)
@@ -108,50 +118,61 @@
            if (inventoryResult == 2) {
                // 创建入库单并入库
                // 返回入库单号
                Long inFormByInventoryId = createInFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser);
                if (inFormByInventoryId == null) {
                Map<String, Object> rkMap = createInFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser);
                if (rkMap == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建入库单失败");
                    log.error("创建入库单失败");
                    rtnMap.put("status", false);
                    rtnMap.put("errMsg", "创建入库单失败");
                    return rtnMap;
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
                String errMsg = lWhFormProcureCoreService.doProcure(warehouseId, currentUser);
                Long inFormByInventoryId = (Long) inOutMap.get("inId");
                inOutMap.putAll(rkMap);
                String errMsg = lWhFormProcureCoreService.doProcure(inFormByInventoryId, currentUser);
                if (errMsg != null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException(errMsg);
                    log.error("创建入库单失败");
                    rtnMap.put("status", false);
                    rtnMap.put("errMsg", "创建入库单失败");
                    return rtnMap;
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
            } else {
                // 创建出库单并出库
                Long lWhFormOutputId = this.createOutFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser, sysInfo);
                if (lWhFormOutputId == null) {
                Map<String, Object> ckMap = createOutFormByInventoryId(warehouseId, stopTime, inventoryGoods, currentUser, sysInfo);
                if (ckMap == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
                    log.error("创建入库单失败");
                    rtnMap.put("status", false);
                    rtnMap.put("errMsg", "创建入库单失败");
                    return rtnMap;
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
                inOutMap.putAll(ckMap);
                Long lWhFormOutputId = (Long) inOutMap.get("outId");
                //2.根据出库单出库
                Long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(lWhFormOutputId, currentUser, stopTime);
                if (lWarehouseFlowId == null) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                    throw new RuntimeException("创建出库单失败");
                    log.error("创建入库单失败");
                    rtnMap.put("status", false);
                    rtnMap.put("errMsg", "创建入库单失败");
                    return rtnMap;
//                    rtnMap.put("status", false);
//                    rtnMap.put("errMsg", "创建入库单失败");
                    return "创建入库单失败";
                }
            }
        }
        //
        lWhFormInventory = new LWhFormInventory(whformInventoryId);
        lWhFormInventory.setStates(2);
        lWhFormInventory.setInWarehouseFormId((Long) inOutMap.get("inId"));
        lWhFormInventory.setInBusinessFormCode((String) inOutMap.get("inCode"));
        lWhFormInventory.setOutWarehouseFormId((Long) inOutMap.get("outId"));
        lWhFormInventory.setOutBusinessFormCode((String) inOutMap.get("outCode"));
        lWhFormInventoryService.update(lWhFormInventory);
        return rtnMap;
        return null;
    }
    /**
@@ -161,8 +182,8 @@
     * @param procureTime 采购时间
     * @param currentUser
     */
    private Long createInFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
                                           S_user_core currentUser) {
    private Map<String, Object> createInFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
                                                          S_user_core currentUser) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
@@ -170,7 +191,8 @@
        BaseWarehouse baseWarehouse = baseWarehouseService.getById(warehouseId);
        LWhFormProcure lWhFormProcure = new LWhFormProcure();
        lWhFormProcure.setId(whFormProcureId);
        lWhFormProcure.setBusinessFormCode(codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.Procure_Warehouse.getValue(), 10));
        String inCode = codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.Procure_Warehouse.getValue(), 10);
        lWhFormProcure.setBusinessFormCode(inCode);
        lWhFormProcure.setWarehouseId(warehouseId);
        lWhFormProcure.setWarehouseName(baseWarehouse.getWarehouseName());
        lWhFormProcure.setBuyerId(currentUser.getId());
@@ -182,7 +204,9 @@
        lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId());
        lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName());
        int result = lWhFormProcureService.insert(lWhFormProcure);
        if (result == 0) return null;
        if (result == 0) {
            return null;
        }
        ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>();
        ArrayList<LWhProcureModel> whProcureModeLlist = new ArrayList<>();
@@ -225,7 +249,11 @@
        }
        lWhFormProcureGoodsService.insertBatch(procureGoodList);
        lWhProcureModelService.insertBatch(whProcureModeLlist);
        return whFormProcureId;
        HashMap<String, Object> rtnMap = new HashMap<>();
        rtnMap.put("inId", whFormProcureId);
        rtnMap.put("inCode", inCode);
        return rtnMap;
    }
    /**
@@ -235,8 +263,8 @@
     * @param procureTime 出库时间
     * @param currentUser
     */
    private Long createOutFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
                                            S_user_core currentUser, FinSysTenantUser sysInfo) {
    private Map<String, Object> createOutFormByInventoryId(Long warehouseId, Long procureTime, List<LWhFormInventoryGoods> inventoryGoodsList,
                                                           S_user_core currentUser, FinSysTenantUser sysInfo) {
        if (CollectionUtils.isEmpty(inventoryGoodsList)) {
            return null;
        }
@@ -253,7 +281,8 @@
            return null;
        }
        lWhFormOutput.setWarehouseName(warehouse.getWarehouseName());
        lWhFormOutput.setOutputCode(BaseWarehouseParam1.In_OutPutTypeEnum.Inventory_Output.getValue() + "");
        String outCode = codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.OutPut_Warehouse.getValue(), 10);
        lWhFormOutput.setOutputCode(outCode);
        lWhFormOutput.setOutputName("盘点出库");
        lWhFormOutput.setAgencyId(Long.valueOf(sysInfo.getTenantId()));
        lWhFormOutput.setAgencyName(sysInfo.getTenantName());
@@ -283,9 +312,10 @@
            lWhProcureModel.setWorehouseCount(goodsNum);
            lWhProcureModelService.insert(lWhProcureModel);
        }
        return lWhFormOutputId;
        HashMap<String, Object> rtnMap = new HashMap<>();
        rtnMap.put("outId", lWhFormOutputId);
        rtnMap.put("outCode", outCode);
        return rtnMap;
    }
}
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory.java
@@ -96,7 +96,7 @@
    @JsonIgnore
    protected boolean isset_inWarehouseFormId = false;
    private Long inBusinessFormCode = null;
    private String inBusinessFormCode = null;
    @JsonIgnore
    protected boolean isset_inBusinessFormCode = false;
@@ -104,7 +104,7 @@
    @JsonIgnore
    protected boolean isset_outWarehouseFormId = false;
    private Long outBusinessFormCode = null;
    private String outBusinessFormCode = null;
    @JsonIgnore
    protected boolean isset_outBusinessFormCode = false;
@@ -409,18 +409,18 @@
        return this.inWarehouseFormId == null;
    }
    public Long getInBusinessFormCode() {
    public String getInBusinessFormCode() {
        return this.inBusinessFormCode;
    }
    public void setInBusinessFormCode(Long inBusinessFormCode) {
    public void setInBusinessFormCode(String inBusinessFormCode) {
        this.inBusinessFormCode = inBusinessFormCode;
        this.isset_inBusinessFormCode = true;
    }
    @JsonIgnore
    public boolean isEmptyInBusinessFormCode() {
        return this.inBusinessFormCode == null;
        return this.inBusinessFormCode == null || this.inBusinessFormCode.length() == 0;
    }
    public Long getOutWarehouseFormId() {
@@ -437,18 +437,18 @@
        return this.outWarehouseFormId == null;
    }
    public Long getOutBusinessFormCode() {
    public String getOutBusinessFormCode() {
        return this.outBusinessFormCode;
    }
    public void setOutBusinessFormCode(Long outBusinessFormCode) {
    public void setOutBusinessFormCode(String outBusinessFormCode) {
        this.outBusinessFormCode = outBusinessFormCode;
        this.isset_outBusinessFormCode = true;
    }
    @JsonIgnore
    public boolean isEmptyOutBusinessFormCode() {
        return this.outBusinessFormCode == null;
        return this.outBusinessFormCode == null || this.outBusinessFormCode.length() == 0;
    }
    /**
consum-model-pojo/src/main/java/com/consum/model/po/LWhFormInventory_mapper.java
@@ -7,6 +7,8 @@
import com.walker.jdbc.sqlgen.InsertBuilder;
import com.walker.jdbc.sqlgen.SelectBuilder;
import com.walker.jdbc.sqlgen.UpdateBuilder;
import com.walker.jdbc.util.StringUtils;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
@@ -500,11 +502,7 @@
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.InBusinessFormCode);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                l_wh_form_inventory.setInBusinessFormCode(null);
            } else {
                l_wh_form_inventory.setInBusinessFormCode(rs.getLong(columnIndex));
            }
            l_wh_form_inventory.setInBusinessFormCode(rs.getString(columnIndex));
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.OutWarehouseFormId);
        if (columnIndex > 0) {
@@ -516,11 +514,7 @@
        }
        columnIndex = resultSetUtils.findColumn(rs, LWhFormInventory_mapper.OutBusinessFormCode);
        if (columnIndex > 0) {
            if (rs.getBigDecimal(columnIndex) == null) {
                l_wh_form_inventory.setOutBusinessFormCode(null);
            } else {
                l_wh_form_inventory.setOutBusinessFormCode(rs.getLong(columnIndex));
            }
            l_wh_form_inventory.setOutBusinessFormCode(rs.getString(columnIndex));
        }
        return l_wh_form_inventory;
    }