futian.liu
2023-12-22 8ce1dcfe07de7dcfd397a0af02689653da0981eb
部门分发时,修改正确的预警库存
2个文件已修改
55 ■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -147,7 +147,7 @@
            lWhFormTransfer.setOutWarehouseId(wareHouseId);
            lWhFormTransfer.setOutWarehouseName(warehouseName);
            lWhFormTransferService.update(lWhFormTransfer);
            lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser());
            lWhFormTransferCoreService.doTransferOutPutNew(id, getCurrentUser(), WhBusinessEnum.BUMENFENFA);
            lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser(), param.getOperatorName());
        }
@@ -276,7 +276,7 @@
    @ApiOperation(value = "调拨入库", notes = "调拨入库")
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),})
    @PostMapping("/income")
    public ResponseValue income(Long id) {
    public ResponseValue income(Long id) throws Exception {
        lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser(), null);
        return ResponseValue.success();
    }
@@ -289,7 +289,7 @@
    @ApiOperation(value = "调拨出库", notes = "调拨出库")
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),})
    @PostMapping("/output")
    public ResponseValue output(Long id) {
    public ResponseValue output(Long id) throws Exception {
        List<LWhProcureModel> modelByForm = lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, id);
        Set<Long> baseModelIds =
@@ -314,7 +314,7 @@
        lWhFormTransfer.setOutWarehouseName(warehouseName);
        lWhFormTransferService.update(lWhFormTransfer);
        // lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser());
        lWhFormTransferCoreService.doTransferOutPutNew(id, getCurrentUser());
        lWhFormTransferCoreService.doTransferOutPutNew(id, getCurrentUser(),WhBusinessEnum.DIAOBO);
        return ResponseValue.success();
    }
consum-base/src/main/java/com/consum/base/service/core/LWhFormTransferCoreService.java
@@ -144,12 +144,13 @@
     * @param whFormTransferId
     * @param currentUser
     */
    public Long doTransferOutPutNew(Long whFormTransferId, S_user_core currentUser) {
    public Long doTransferOutPutNew(Long whFormTransferId, S_user_core currentUser, WhBusinessEnum whBusinessEnum)
        throws Exception {
        LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
        if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 0) {
            log.error("调拨失败!请检查调拨单状态");
            return null;
            throw new Exception("调拨失败!请检查调拨单状态");
        }
        Long userId = currentUser.getId();
@@ -157,10 +158,10 @@
        long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        // 申请调拨的物品
        List<LWhProcureModel> goodsModelNumList =
            lWhProcureModelService.getModelByForm(WhBusinessEnum.DIAOBO, whFormTransferId);
            lWhProcureModelService.getModelByForm(whBusinessEnum, whFormTransferId);
        if (CollectionUtils.isEmpty(goodsModelNumList)) {
            log.error("没有要出库的物品");
            return null;
            throw new Exception("没有要出库的物品");
        }
        List<LWhProcureModel> goodsModelNumUpdList = new ArrayList<>(goodsModelNumList.size());
@@ -178,21 +179,16 @@
        long lWarehouseFlowBusinessId = whFormTransferId;
        // 物品状态(0=在途调拨;1=入库未分发;2=已下发;3=报废)
        Integer queryModelStatusT = 1;
        Integer queryModelStatus = 1;
        // 采购方式(1:集采;2=自采)
        Integer buyTypeT = null;
        Integer modGoodsTransferingStatusT = null;
        // 调拨出库
        queryModelStatusT = 1;
        buyTypeT = 1;
        modGoodsTransferingStatusT = 0;
        Integer queryModelStatus = queryModelStatusT;
        Integer buyType = buyTypeT;
        Integer modGoodsTransferingStatus = modGoodsTransferingStatusT;
        Integer buyType = 1;
        if (whBusinessEnum == WhBusinessEnum.BUMENFENFA) {
            buyType = null;
        }
        Integer modGoodsStatus = 0;
        ArrayList<Long> allChangModelList = new ArrayList<>();
        goodsModelNumList.forEach(itemModelInfo -> {
        for (LWhProcureModel itemModelInfo : goodsModelNumList) {
            // 需要调拨的物品的某个型号
            Long baseGoodsModelsId = itemModelInfo.getBaseGoodsModelsId();
            LWhProcureModel updWhProcureModel = new LWhProcureModel(itemModelInfo.getId());
@@ -244,7 +240,7 @@
                outGoodsId = lWhGoodsService.queryOutGoodsId(outWarehouseType, outWarehouseId, baseGoodsModelsId,
                    queryModelStatus, buyType, counts);
                lWhGoodsService.modGoodsTransfering(outGoodsId, inWarehouseType, inWarehouseId, inWarehouseName,
                    modGoodsTransferingStatus);
                    modGoodsStatus);
                // 批量插入 进出库流水明细[L_WH_GOODS_RECORD_DETAILS]
                lWhGoodsRecordDetailsService.sameGoodsInsertMore(outGoodsId, whGoodsRecordId, (short)0);
            }
@@ -256,7 +252,7 @@
            lWhProcureModelService.update(lWhProcureModel);
            updWhProcureModel.setTotalAmount(totalAmount);
            goodsModelNumUpdList.add(updWhProcureModel);
        });
        }
        // 更新L_WH_PROCURE_MODEL表内金额
        lWhProcureModelService.updateBatch(goodsModelNumUpdList);
@@ -265,7 +261,7 @@
        warehouseFlow.setWarehouseId(outWarehouseId);
        warehouseFlow.setWarehouseName(warehouseName);
        warehouseFlow.setThisType(2);
        warehouseFlow.setBusinessType(WhBusinessEnum.DIAOBO.getValue() + 0);
        warehouseFlow.setBusinessType(whBusinessEnum.getValue());
        warehouseFlow.setBusinessFormId(whFormTransferId == null ? lWarehouseFlowBusinessId : whFormTransferId);
        warehouseFlow.setOperatorId(userId);
@@ -305,20 +301,21 @@
     * @param whFormTransferId
     * @param currentUser
     */
    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser, String inOperatorName) {
    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser, String inOperatorName)
        throws Exception {
        LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
        if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 1) {
            log.error("调拨失败!请检查调拨单状态");
            return;
            log.info("调拨失败!请检查调拨单状态");
            throw new RuntimeException("调拨失败!请检查调拨单状态");
        }
        Long userId = currentUser.getId();
        String nickName = currentUser.getNick_name();
        // 出库单流水id
        Long outWarehouseFlowId = lWhFormTransfer.getOutWarehouseFlowId();
        if (outWarehouseFlowId == null) {
            log.error("调拨失败!未找到出库单");
            return;
            log.info("调拨失败!未找到出库单");
            throw new RuntimeException("调拨失败!未找到出库单");
        }
        // 入库仓库类型 0机构1部门
        Integer inWarehouseType = lWhFormTransfer.getInWarehouseType();
@@ -411,8 +408,8 @@
                        .mapToInt(LWhProcureModelUser::getGoodsNum).sum();
                    if (totalGoodsNum != outGoodsIds.size()) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        log.info("入库单失败,使用人使用数量与物品数量不一致");
                        throw new RuntimeException("入库单失败,使用人使用数量与物品数量不一致");
                        // log.error("创建入库单失败");
                    }
                    ArrayList<LGoodsUserRecord> goodsUserRecordList = new ArrayList<>();