package com.consum.base.service;
|
|
import com.consum.base.core.WhBusinessEnum;
|
import com.consum.model.po.LWarehouseFlow;
|
import com.consum.model.po.LWhFormProcure;
|
import com.consum.model.po.LWhProcureModel;
|
import com.iplatform.model.po.S_user_core;
|
import com.walker.infrastructure.utils.DateUtils;
|
import com.walker.infrastructure.utils.NumberGenerator;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* @ClassName LWhFormProcureCoreService
|
* @Author cy
|
* @Date 2023/10/26
|
* @Description
|
* @Version 1.0
|
**/
|
@Service
|
@Slf4j
|
public class LWhFormProcureCoreService {
|
@Resource
|
private LWhProcureModelService lWhProcureModelService;
|
|
@Resource
|
private LWhFormProcureService lWhFormProcureService;
|
|
@Resource
|
private LWarehouseFlowCoreService lWarehouseFlowService;
|
|
/**
|
* 执行采购入库
|
* 第一步:通过采购单ID查询采购单型号【L_WH_PROCURE_MODEL】得到商品型号以及数量
|
* 第二步:记录进出库流水:L_WAREHOUSE_FLOW
|
*/
|
public String doProcure(Long whFormProcureId, S_user_core currentUser) {
|
if (whFormProcureId == null) {
|
return "采购单id为空";
|
}
|
//采购单信息
|
LWhFormProcure whFormProcure = new LWhFormProcure(whFormProcureId);
|
LWhFormProcure lWhFormProcure = lWhFormProcureService.get(whFormProcure);
|
if (lWhFormProcure == null || lWhFormProcure.getStates() != 1) {
|
log.error("入库失败!请检查入库单状态");
|
return "入库失败!请检查入库单状态";
|
}
|
Long userId = currentUser.getId();
|
String nickName = currentUser.getNick_name();
|
long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
|
|
List<LWhProcureModel> goodsModelNum = lWhProcureModelService.getModelByForm(WhBusinessEnum.CAIGOU, whFormProcureId);
|
// 流水记录总表ID
|
long lWarehouseFlowId = NumberGenerator.getLongSequenceNumberNano();
|
LWarehouseFlow warehouseFlow = new LWarehouseFlow();
|
warehouseFlow.setId(lWarehouseFlowId);
|
warehouseFlow.setWarehouseId(lWhFormProcure.getWarehouseId());
|
warehouseFlow.setWarehouseName(lWhFormProcure.getWarehouseName());
|
warehouseFlow.setThisType(1);
|
warehouseFlow.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0);
|
warehouseFlow.setBusinessFormId(whFormProcureId);
|
warehouseFlow.setOperatorId(userId);
|
warehouseFlow.setOperatorName(nickName);
|
warehouseFlow.setDealTime(dealTime);
|
int flowInsertFlag = lWarehouseFlowService.buyInsertWareFlow(goodsModelNum, lWhFormProcure, warehouseFlow);
|
if (flowInsertFlag == 1) {
|
// 更新采购单【L_WH_FORM_PROCURE】
|
whFormProcure.setStates(2);
|
whFormProcure.setLWarehouseFlowId(lWarehouseFlowId);
|
whFormProcure.setIncomeId(userId);
|
whFormProcure.setIncomeName(nickName);
|
whFormProcure.setIncomeTime(dealTime);
|
lWhFormProcureService.update(whFormProcure);
|
}
|
log.info("入库单:{} 入库完成", whFormProcureId);
|
return null;
|
|
}
|
}
|