| | |
| | | package com.consum.base.service; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Propagation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import com.consum.base.core.WhBusinessEnum; |
| | | import com.consum.base.core.service.LWhWarningCoreServiceImpl; |
| | | 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 org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | /** |
| | | * @ClassName LWhFormProcureCoreService |
| | | |
| | | * @Date 2023/10/26 |
| | | * @Description |
| | | * @Version 1.0 |
| | | **/ |
| | | @Service |
| | | @Slf4j |
| | | @Transactional(propagation = Propagation.REQUIRED) |
| | | public class LWhFormProcureCoreService { |
| | | @Resource |
| | | private LWhProcureModelService lWhProcureModelService; |
| | | |
| | | @Resource |
| | | private LWhFormProcureService lWhFormProcureService; |
| | | private LWhFormProcureService lWhFormProcureServiceImpl; |
| | | |
| | | @Resource |
| | | private LWhWarningCoreServiceImpl lWhWarningCoreService; |
| | | |
| | | @Resource |
| | | private LWarehouseFlowCoreService lWarehouseFlowService; |
| | | |
| | | /** |
| | | * 执行采购入库 |
| | | * 第一步:通过采购单ID查询采购单型号【L_WH_PROCURE_MODEL】得到商品型号以及数量 |
| | | * 第二步:记录进出库流水:L_WAREHOUSE_FLOW |
| | | * 执行采购入库 第一步:通过采购单ID查询采购单型号【L_WH_PROCURE_MODEL】得到商品型号以及数量 第二步:记录进出库流水:L_WAREHOUSE_FLOW |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public String doProcure(Long whFormProcureId, S_user_core currentUser) { |
| | | if (whFormProcureId == null) { |
| | | return "采购单id为空"; |
| | | } |
| | | //采购单信息 |
| | | // 采购单信息 |
| | | LWhFormProcure whFormProcure = new LWhFormProcure(whFormProcureId); |
| | | LWhFormProcure lWhFormProcure = lWhFormProcureService.get(whFormProcure); |
| | | LWhFormProcure lWhFormProcure = lWhFormProcureServiceImpl.get(whFormProcure); |
| | | if (lWhFormProcure == null || lWhFormProcure.getStates() != 1) { |
| | | log.error("入库失败!请检查入库单状态"); |
| | | return "入库失败!请检查入库单状态"; |
| | |
| | | String nickName = currentUser.getNick_name(); |
| | | long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis()); |
| | | |
| | | List<LWhProcureModel> goodsModelNum = lWhProcureModelService.getModelByForm(WhBusinessEnum.CAIGOU, whFormProcureId); |
| | | List<LWhProcureModel> goodsModelNum = |
| | | lWhProcureModelService.getModelByForm(WhBusinessEnum.CAIGOU, whFormProcureId); |
| | | // 流水记录总表ID |
| | | Long warehouseId = lWhFormProcure.getWarehouseId(); |
| | | long lWarehouseFlowId = NumberGenerator.getLongSequenceNumberNano(); |
| | | LWarehouseFlow warehouseFlow = new LWarehouseFlow(); |
| | | warehouseFlow.setId(lWarehouseFlowId); |
| | | warehouseFlow.setWarehouseType(0); |
| | | warehouseFlow.setWarehouseId(lWhFormProcure.getWarehouseId()); |
| | | warehouseFlow.setWarehouseId(warehouseId); |
| | | warehouseFlow.setWarehouseName(lWhFormProcure.getWarehouseName()); |
| | | warehouseFlow.setThisType(1); |
| | | warehouseFlow.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0); |
| | |
| | | whFormProcure.setIncomeId(userId); |
| | | whFormProcure.setIncomeName(nickName); |
| | | whFormProcure.setIncomeTime(dealTime); |
| | | lWhFormProcureService.update(whFormProcure); |
| | | lWhFormProcureServiceImpl.update(whFormProcure); |
| | | } |
| | | |
| | | // 提取baseGoodsModelsId并放入新的List中 |
| | | List<Long> allChangModelList = |
| | | goodsModelNum.stream().map(LWhProcureModel::getBaseGoodsModelsId).distinct().collect(Collectors.toList()); |
| | | // 当库存变动时调用该方法 |
| | | lWhWarningCoreService.updateKuCun((short)0, warehouseId, allChangModelList, null, dealTime); |
| | | |
| | | log.info("入库单:{} 入库完成", whFormProcureId); |
| | | return null; |
| | | |
| | | } |
| | | |
| | | } |