luqingyang
2023-11-02 93dd846b5023cc268b06e0a8e0fb6a04a4ff5fde
consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -31,18 +31,20 @@
    private SimpleJdbcCall simpleJdbcCall;
    private LWarehouseFlowService lWarehouseFlowService;
    private LWhGoodsService lWhGoodsService;
    private LWhFormTransferService lWhFormTransferService;
    private LWhGoodsRecordService lWhGoodsRecordService;
    private LWhFormTransferServiceImpl lWhFormTransferService;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    @Autowired
    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService) {
    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferServiceImpl lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordService) {
        this.jdbcTemplate = jdbcTemplate;
        this.lWarehouseFlowService = lWarehouseFlowService;
        this.baseGoodsTemplateService = baseGoodsTemplateService;
        this.lWhFormTransferService = lWhFormTransferService;
        this.lWhFormOutputCoreService = lWhFormOutputCoreService;
        this.lWhGoodsService = lWhGoodsService;
        this.lWhGoodsRecordService = lWhGoodsRecordService;
        this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS");
    }
@@ -63,6 +65,7 @@
        }
        // 查询仓库信息
        Long warehouseFlowId = warehouseFlow.getId();
        Integer warehouseType = warehouseFlow.getWarehouseType();
        Long warehouseId = warehouseFlow.getWarehouseId();
        Long dealTime = warehouseFlow.getDealTime();
        BaseWarehouse baseWarehouses = lWarehouseFlowService.get(new BaseWarehouse(warehouseId));
@@ -116,10 +119,10 @@
            whGoodsRecord.setThisType(1);
            //通过LockManage获得锁
            Object warehouseModelLockObj = LockManage.acquireLock(warehouseId, baseGoodsModelsId);
            Object warehouseModelLockObj = LockManage.acquireLock(warehouseType, warehouseId, baseGoodsModelsId);
            synchronized (warehouseModelLockObj) {
                // 获得锁后查询该型号的期初数量
                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseId, baseGoodsModelsId, (short) 1, null);
                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseType, warehouseId, baseGoodsModelsId, (short) 1, null);
                whGoodsRecord.setInitialCount(goodsModelNum);
                whGoodsRecord.setThisCount(modelCount);
                whGoodsRecord.setEndCount(goodsModelNum + modelCount);
@@ -133,11 +136,12 @@
                    Long price = item.getPrice();
                    //物品个数
                    Integer counts = item.getCounts();
                    sameGoodsInsertMore(warehouseFlowId, warehouseId, whGoodsRecordId, (short) 1, warehouseName,
                    sameGoodsInsertMore(warehouseFlowId, warehouseType, warehouseId, whGoodsRecordId, (short) 1, warehouseName,
                            classification, tempGoodsId, goodsName, baseGoodsModelsId, modelName,
                            supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
                });
            }
            lWhGoodsRecordService.insert(whGoodsRecord);
        });
        return 1;
@@ -163,13 +167,14 @@
     * @param pStates              状态
     * @param pTimes               插入条数
     */
    public void sameGoodsInsertMore(long pWarehouseFlowId, long pWarehouseId, long pWhGoodsRecordId, short pRecordType, String pWarehouseName, short pCostType,
    public void sameGoodsInsertMore(long pWarehouseFlowId, Integer warehouseType , long pWarehouseId, long pWhGoodsRecordId, short pRecordType, String pWarehouseName, short pCostType,
                                    long pBaseGoodsTemplateId, String pGoodsTemplateName, long pBaseGoodsModelsId,
                                    String pBaseGoodsModelsName, String pSupplier, short pBuyType,
                                    String pUnit, long pPrice, long pProcureDate,
                                    int pStates, long pDealTime, int pTimes) {
        SqlParameterSource in = new MapSqlParameterSource()
                .addValue("p_WAREHOUSE_FLOW_ID", pWarehouseFlowId)
                .addValue("p_WAREHOUSE_TYPE", warehouseType)
                .addValue("p_WAREHOUSE_ID", pWarehouseId)
                .addValue("p_WH_GOODS_RECORD_ID", pWhGoodsRecordId)
                .addValue("p_RECORD_TYPE", pRecordType)