package com.consum.base.service;
|
|
import com.consum.model.po.LWhFormTransfer;
|
import com.iplatform.model.po.S_user_core;
|
import com.walker.infrastructure.utils.DateUtils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @ClassName LWhFormTransferCoreService
|
* @Author cy
|
* @Date 2023/10/26
|
* @Description
|
* @Version 1.0
|
**/
|
@Service
|
@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) {
|
LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(whFormTransferId);
|
lWhFormTransfer = lWhFormTransferService.get(lWhFormTransfer);
|
if (lWhFormTransfer == null || lWhFormTransfer.getStates() != 0) {
|
log.error("调拨失败!请检查调拨单状态");
|
return;
|
}
|
|
Long userId = currentUser.getId();
|
String nickName = currentUser.getNick_name();
|
long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
|
|
// 出库单ID
|
Long outWarehouseFormId = null;
|
try {
|
// 根据调拨单 生成 出库单
|
outWarehouseFormId = lWhFormOutputCoreService.createOutFormByTransId(whFormTransferId, currentUser, dealTime);
|
} catch (Exception e) {
|
log.error(e.getMessage());
|
return;
|
}
|
// 出库单 出库,返回 出库单流水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;
|
|
}
|
}
|