cy
2023-10-30 458760a9367ada2b046752b8918e5171876cd959
consum-base/src/main/java/com/consum/base/service/LWhFormTransferCoreService.java
@@ -19,23 +19,13 @@
@Slf4j
public class LWhFormTransferCoreService {
    @Resource
    private LWhProcureModelService lWhProcureModelService;
    @Resource
    private LWhFormTransferService lWhFormTransferService;
    @Resource
    private LWarehouseFlowCoreService lWarehouseFlowService;
    @Resource
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    /**
     * 执行调拨出库操作
     * 1. 通过调拨单【WH_FORM_TRANSFER】 确定调拨单物品【L_WH_PROCURE_MODEL】
     * 2. 校验库存
     * 3. 更新进出库流水总表[L_WAREHOUSE_FLOW]、各规格物品的进出库【L_WH_GOODS_RECORD】、进出库流水明细[L_WH_GOODS_RECORD_DETAILS]、
     * 库存物品详情(L_WH_GOODS)
     * 4. 更新调拨单【WH_FORM_TRANSFER】为待接收,更新调拨单物品【WH_FORM_TRANSFER_MODEL】出库流水ID
     *
     * @param whFormTransferId 调拨单id
     */
    public void doTransferOutPut(Long whFormTransferId, S_user_core currentUser) {
@@ -54,17 +44,60 @@
        Long outWarehouseFormId = null;
        try {
            // 根据调拨单 生成 出库单
            outWarehouseFormId = lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, currentUser);
            outWarehouseFormId = lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, currentUser, dealTime);
        } catch (Exception e) {
            log.error(e.getMessage());
            return;
        }
        // 出库单 出库
        Long aLong = lWhFormOutputCoreService.outFormByTransId(whFormTransferId, currentUser);
        // 出库单 出库,返回 出库单流水Id
        Long outFormByTransId = lWhFormOutputCoreService.outFormByTransId(whFormTransferId, currentUser, dealTime);
        // 更新调拨单
        lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        lWhFormTransfer.setOutWarehouseFormId(outWarehouseFormId);
        lWhFormTransfer.setStates(1);
        lWhFormTransfer.setOutOperatorId(userId);
        lWhFormTransfer.setOutOperatorName(nickName);
        lWhFormTransfer.setOutputTime(dealTime);
        lWhFormTransferService.update(lWhFormTransfer);
        log.info("调拨单:{} 出库完成", whFormTransferId);
        return;
    }
    /**
     * 调拨单入库
     *
     * @param whFormTransferId
     * @param currentUser
     */
    public void doTransferInPut(Long whFormTransferId, S_user_core currentUser) {
        LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
        if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 1) {
            log.error("调拨失败!请检查调拨单状态");
            return;
        }
        Long userId = currentUser.getId();
        String nickName = currentUser.getNick_name();
        // 出库单ID
        Long outWarehouseFormId = lWhFormTransfer.getOutWarehouseFormId();
        long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        // 流水记录总表ID
        long lWarehouseFlowId = lWhFormOutputCoreService.outFormByTransId(outWarehouseFormId, currentUser, dealTime);
        // 更新调拨单
        lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
        lWhFormTransfer.setInWarehouseFormId(lWarehouseFlowId);
        lWhFormTransfer.setStates(2);
        lWhFormTransfer.setInOperatorId(userId);
        lWhFormTransfer.setInOperatorName(nickName);
        lWhFormTransfer.setInTime(dealTime);
        lWhFormTransferService.update(lWhFormTransfer);
        log.info("调拨单:{} 入库完成", whFormTransferId);
        return;
    }
}