parent
6bae50dab8
commit
1ea7db9ae3
|
|
@ -25,10 +25,9 @@ import org.springframework.web.client.RestTemplate;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.dev33.satoken.SaManager.log;
|
||||
|
||||
|
|
@ -74,139 +73,151 @@ public class NormalPGIControllerService {
|
|||
@Resource
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
|
||||
/**
|
||||
* 根据订单编号获取订单详情信息,包括订单头信息和订单行项目信息。
|
||||
* <p>
|
||||
* 该方法首先根据订单编号查询订单主表信息,若不存在则返回 null;
|
||||
* 若存在,则进一步查询订单行项目列表,并结合 SAP 系统同步物料相关信息,
|
||||
* 最终组装成 PDAOrderVO 对象返回。
|
||||
*
|
||||
* @param orderNo 订单编号,用于查询订单主表和子表数据
|
||||
* @return PDAOrderVO 包含订单头信息和行项目信息的视图对象;若未找到对应订单则返回 null
|
||||
* @throws Exception 查询或业务处理过程中可能抛出的异常
|
||||
*/
|
||||
public PDAOrderVO getOrderItemByOrderNo(@RequestParam String orderNo) throws Exception {
|
||||
//return ApiResult.success(wmsSrmOrderItemService.getOrderItem(orderId));
|
||||
PDAOrderVO pdaOrderVO = new PDAOrderVO();
|
||||
|
||||
// 根据订单编号查询订单主表信息
|
||||
WmsSrmOrder order = wmsSrmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, orderNo).one();
|
||||
if (Objects.isNull(order))
|
||||
return null;
|
||||
|
||||
PDAOrderVO pdaOrderVO = new PDAOrderVO();
|
||||
// 设置订单头基本信息
|
||||
pdaOrderVO.setNoteNum(order.getNoteNum());
|
||||
pdaOrderVO.setSupplierNum(order.getSupplierNum());
|
||||
pdaOrderVO.setSupplierName(order.getSupplierName());
|
||||
|
||||
List<WmsSrmOrderItem> orderItemList = wmsSrmOrderItemService.lambdaQuery().eq(WmsSrmOrderItem::getOrderId, order.getId()).list();
|
||||
if (CollectionUtil.isNotEmpty(orderItemList)) {
|
||||
List<PDAOrderItemVO> orderItemVOList = new ArrayList<>();
|
||||
// 查询订单行项目列表
|
||||
List<WmsSrmOrderItem> orderItemList = wmsSrmOrderItemService.lambdaQuery()
|
||||
.eq(WmsSrmOrderItem::getOrderId, order.getId())
|
||||
.list();
|
||||
|
||||
for (WmsSrmOrderItem item : orderItemList) {
|
||||
PDAOrderItemVO itemVO = new PDAOrderItemVO();
|
||||
itemVO.setId(item.getId());
|
||||
itemVO.setPoLineNumber(item.getPoLineNumber());
|
||||
itemVO.setPoNum(item.getPoNum());
|
||||
itemVO.setItemCode(item.getItemCode());
|
||||
itemVO.setItemName(item.getItemName());
|
||||
itemVO.setIsQuality(item.getIsQuality());
|
||||
itemVO.setOrderQty(item.getOrderQty());
|
||||
itemVO.setUomCode(item.getUomCode());
|
||||
itemVO.setDeliveryQty(item.getDeliveryQty());
|
||||
|
||||
|
||||
SAPSyncParamsDTO syncParamsDTO = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), order.getSupplierNum(), item.getItemCode());
|
||||
if (Objects.nonNull(syncParamsDTO)) {
|
||||
itemVO.setItemName(syncParamsDTO.getMaktx());
|
||||
itemVO.setUomCode(syncParamsDTO.getMeins());
|
||||
itemVO.setOrderQty(syncParamsDTO.getMenge());
|
||||
itemVO.setReceivedWarehouse(syncParamsDTO.getWarehouseNo());
|
||||
itemVO.setBinNos(syncParamsDTO.getBinNos());
|
||||
itemVO.setLbprt(syncParamsDTO.getLbprt());
|
||||
itemVO.setTransportNum(syncParamsDTO.getTransportNum());
|
||||
boolean isQuality ;
|
||||
if (syncParamsDTO.getKzkri().equals("X"))
|
||||
isQuality = true;
|
||||
else
|
||||
isQuality = false;
|
||||
|
||||
itemVO.setIsQuality(isQuality);
|
||||
|
||||
orderItemVOList.add(itemVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pdaOrderVO.setOrderItemVOList(orderItemVOList);
|
||||
if (CollectionUtil.isEmpty(orderItemList)) {
|
||||
return pdaOrderVO;
|
||||
}
|
||||
// if (CollectionUtil.isNotEmpty(orderItemList)) {
|
||||
List<PDAOrderItemVO> orderItemVOList = new ArrayList<>();
|
||||
// 遍历订单行项目,填充详细信息并从 SAP 获取补充数据
|
||||
for (WmsSrmOrderItem item : orderItemList) {
|
||||
PDAOrderItemVO itemVO = new PDAOrderItemVO();
|
||||
itemVO.setId(item.getId());
|
||||
itemVO.setPoLineNumber(item.getPoLineNumber());
|
||||
itemVO.setPoNum(item.getPoNum());
|
||||
itemVO.setItemCode(item.getItemCode());
|
||||
itemVO.setItemName(item.getItemName());
|
||||
itemVO.setIsQuality(item.getIsQuality());
|
||||
itemVO.setOrderQty(item.getOrderQty());
|
||||
itemVO.setUomCode(item.getUomCode());
|
||||
itemVO.setDeliveryQty(item.getDeliveryQty());
|
||||
// 从 SAP 系统获取物料相关信息
|
||||
SAPSyncParamsDTO syncParamsDTO = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), order.getSupplierNum(), item.getItemCode());
|
||||
if (Objects.nonNull(syncParamsDTO)) {
|
||||
itemVO.setItemName(syncParamsDTO.getMaktx());
|
||||
itemVO.setUomCode(syncParamsDTO.getMeins());
|
||||
itemVO.setOrderQty(syncParamsDTO.getMenge());
|
||||
itemVO.setReceivedWarehouse(syncParamsDTO.getWarehouseNo());
|
||||
itemVO.setBinNos(syncParamsDTO.getBinNos());
|
||||
itemVO.setLbprt(syncParamsDTO.getLbprt());
|
||||
itemVO.setTransportNum(syncParamsDTO.getTransportNum());
|
||||
// 判断是否质检
|
||||
boolean isQuality = "X".equals(syncParamsDTO.getKzkri());
|
||||
itemVO.setIsQuality(isQuality);
|
||||
orderItemVOList.add(itemVO);
|
||||
}
|
||||
}
|
||||
// 设置订单行项目列表到返回对象中
|
||||
pdaOrderVO.setOrderItemVOList(orderItemVOList);
|
||||
return pdaOrderVO;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void takeDelivery(List<SrmMaterialReceiptQO> request) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("收货参数为空");
|
||||
List<WmsSrmMaterialReceipt> receipts = new ArrayList<>();
|
||||
List<WmsSrmMaterialReceiptItem> receiptitems = new ArrayList<>();
|
||||
List<WmsInTaskItem> tasks = new ArrayList<>();
|
||||
List<SRMLineVOListItem> srmLineVOListItems = new ArrayList<>();
|
||||
|
||||
request.forEach(item -> {
|
||||
SAPSyncParamsDTO materialInfoInOrder = null;
|
||||
try {
|
||||
materialInfoInOrder = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), item.getSupplierNum(), item.getItemCode());
|
||||
} catch (Exception e) {
|
||||
log.error("获取物料信息失败", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("无法获取到有效订单信息" + item.getPoNum());
|
||||
//判断收货数量是否大于了未收数量
|
||||
VUtil.trueThrowBusinessError(item.getReceiptNum().add(item.getCrossNumber()).compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("无法获取到有效订单信息" + item.getPoNum());
|
||||
//判断序列号、批次号是否规范
|
||||
// 1 - 批次号为空,序列号为空
|
||||
// 2 - 批次号必填,序列号为空
|
||||
// 3 - 批次号为空,序列号必填
|
||||
// 4 - 批次号必填,序列号必填
|
||||
private void validateScanCodes(SrmMaterialReceiptQO item, SAPSyncParamsDTO materialInfoInOrder) {
|
||||
String lbprt = materialInfoInOrder.getLbprt();
|
||||
//判断序列号、批次号是否规范
|
||||
// 1 - 批次号为空,序列号为空
|
||||
// 2 - 批次号必填,序列号为空
|
||||
// 3 - 批次号为空,序列号必填
|
||||
// 4 - 批次号必填,序列号必填
|
||||
if ("2".equals(lbprt) || "4".equals(lbprt)) {
|
||||
VUtil.trueThrowBusinessError(
|
||||
CollectionUtil.isEmpty(item.getScanCodes()) ||
|
||||
item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getBatchNumber()))
|
||||
).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号,订单号:" + item.getPoNum());
|
||||
}
|
||||
|
||||
//批次號必填
|
||||
if (materialInfoInOrder.getLbprt().equals("2") || materialInfoInOrder.getLbprt().equals("4")) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getScanCodes()) || item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getBatchNumber()))).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号" + item.getPoNum());
|
||||
}
|
||||
if ("3".equals(lbprt) || "4".equals(lbprt)) {
|
||||
VUtil.trueThrowBusinessError(
|
||||
CollectionUtil.isEmpty(item.getScanCodes()) ||
|
||||
item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getSerialNumber()))
|
||||
).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum());
|
||||
}
|
||||
}
|
||||
|
||||
//序列號必填
|
||||
if (materialInfoInOrder.getLbprt().equals("3") || materialInfoInOrder.getLbprt().equals("4")) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getScanCodes()) || item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getSerialNumber()))).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号" + item.getPoNum());
|
||||
}
|
||||
List<String> serialNumbers = new ArrayList<>();
|
||||
List<String> batchNumbers = new ArrayList<>();
|
||||
boolean isQuality = materialInfoInOrder.getKzkri().equals("X") ? true : false;
|
||||
if (!isQuality) {
|
||||
// 保存收货信息
|
||||
WmsSrmMaterialReceipt receipt = new WmsSrmMaterialReceipt();
|
||||
Long receiptId = IdUtil.getSnowflakeNextId();
|
||||
receipt.setId(receiptId);
|
||||
receipt.setOrderItemId(item.getOrderItemId());
|
||||
receipt.setReceiptNum(item.getReceiptNum());
|
||||
receipt.setCrossNumber(item.getCrossNumber());
|
||||
receipt.setIsQuality(isQuality);
|
||||
receipt.setCreateTime(LocalDateTime.now());
|
||||
receipt.setCreateUserId(UserUtil.getUserId());
|
||||
receipt.setCreateUserName(UserUtil.getUserName());
|
||||
/**
|
||||
* 推送质检物料到SRM
|
||||
*/
|
||||
private void pushInspectionMaterialsToSRM(SrmMaterialReceiptQO receiptQO, List<SRMLineVOListItem> srmLineVOListItems) {
|
||||
SRMInspectionInputDTO pushDto = new SRMInspectionInputDTO();
|
||||
SRMInspectionContentDTO content = new SRMInspectionContentDTO();
|
||||
content.setLineVOList(srmLineVOListItems);
|
||||
content.setSupplierName(receiptQO.getSupplierName());
|
||||
content.setSupplierNum(receiptQO.getSupplierNum());
|
||||
content.setReceiveNum("ZJ-" + receiptQO.getNoteNum());
|
||||
content.setReceiveType("BY_DELIVERY");
|
||||
pushDto.setContent(content);
|
||||
pushDto.setCode("SCAN_RCV_RECEIVE_TO_SRM");
|
||||
pushInspectionMaterialsToSRM(pushDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 收货单、质检单、任务单组装
|
||||
*/
|
||||
private void generyReceipt(SrmMaterialReceiptQO item,
|
||||
boolean isQuality,
|
||||
SAPSyncParamsDTO materialInfoInOrder,
|
||||
List<WmsSrmMaterialReceipt> receipts,
|
||||
List<WmsSrmMaterialReceiptItem> receiptItems,
|
||||
List<WmsInTaskItem> tasks,
|
||||
List<SRMLineVOListItem> srmLineVOListItems
|
||||
) {
|
||||
// 保存收货信息
|
||||
WmsSrmMaterialReceipt receipt = new WmsSrmMaterialReceipt();
|
||||
Long receiptId = IdUtil.getSnowflakeNextId();
|
||||
receipt.setId(receiptId);
|
||||
receipt.setOrderItemId(item.getOrderItemId());
|
||||
receipt.setReceiptNum(item.getReceiptNum());
|
||||
receipt.setCrossNumber(item.getCrossNumber());
|
||||
receipt.setIsQuality(isQuality);
|
||||
receipt.setCreateTime(LocalDateTime.now());
|
||||
receipt.setCreateUserId(UserUtil.getUserId());
|
||||
receipt.setCreateUserName(UserUtil.getUserName());
|
||||
//条码内容
|
||||
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
||||
item.getScanCodes().forEach(scanCode -> {
|
||||
WmsSrmMaterialReceiptItem receiptItem = new WmsSrmMaterialReceiptItem();
|
||||
receiptItem.setCodeId(scanCode.getCodeId());
|
||||
receiptItem.setCodeNum(scanCode.getCodeNum());
|
||||
receiptItem.setBatchNumber(scanCode.getBatchNumber());
|
||||
receiptItem.setSerialNumber(scanCode.getSerialNumber());
|
||||
receiptItem.setCodeContent(scanCode.getCodeContent());
|
||||
receiptItem.setOrderItemId(item.getOrderItemId());
|
||||
receiptItem.setCreateUserId(UserUtil.getUserId());
|
||||
receiptItem.setCreateUserName(UserUtil.getUserName());
|
||||
receiptItem.setCreateTime(LocalDateTime.now());
|
||||
receiptItem.setReceiptId(receiptId);
|
||||
receiptItem.setId(IdUtil.getSnowflakeNextId());
|
||||
receiptItems.add(receiptItem);
|
||||
|
||||
//条码内容
|
||||
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
||||
item.getScanCodes().forEach(scanCode -> {
|
||||
WmsSrmMaterialReceiptItem receiptItem = new WmsSrmMaterialReceiptItem();
|
||||
receiptItem.setCodeId(scanCode.getCodeId());
|
||||
receiptItem.setCodeNum(scanCode.getCodeNum());
|
||||
receiptItem.setBatchNumber(scanCode.getBatchNumber());
|
||||
receiptItem.setSerialNumber(scanCode.getSerialNumber());
|
||||
receiptItem.setCodeContent(scanCode.getCodeContent());
|
||||
receiptItem.setOrderItemId(item.getOrderItemId());
|
||||
receiptItem.setCreateUserId(UserUtil.getUserId());
|
||||
receiptItem.setCreateUserName(UserUtil.getUserName());
|
||||
receiptItem.setCreateTime(LocalDateTime.now());
|
||||
receiptItem.setReceiptId(receiptId);
|
||||
receiptItem.setId(IdUtil.getSnowflakeNextId());
|
||||
receiptitems.add(receiptItem);
|
||||
if (!serialNumbers.contains(receiptItem.getSerialNumber())) {
|
||||
serialNumbers.add(receiptItem.getSerialNumber());
|
||||
}
|
||||
if (!batchNumbers.contains(receiptItem.getBatchNumber())) {
|
||||
batchNumbers.add(receiptItem.getBatchNumber());
|
||||
}
|
||||
});
|
||||
}
|
||||
receipts.add(receipt);
|
||||
//生成上架任务
|
||||
//上架任务
|
||||
WmsInTaskItem taskItem = new WmsInTaskItem();
|
||||
taskItem.setPoNum(item.getPoNum())
|
||||
.setPoLineNumber(item.getPoLineNumber())
|
||||
|
|
@ -225,57 +236,72 @@ public class NormalPGIControllerService {
|
|||
.setFactory(materialInfoInOrder.getWerks())
|
||||
.setDataStatus((short) 0)
|
||||
.setFailResult("")
|
||||
.setSerialNumber(serialNumbers.isEmpty() ? "" : String.join(";", serialNumbers))
|
||||
.setBatchNumber(batchNumbers.isEmpty() ? "" : String.join(";", batchNumbers))
|
||||
.setSerialNumber(scanCode.getSerialNumber())
|
||||
.setBatchNumber(scanCode.getBatchNumber())
|
||||
.setInspectionQty(new BigDecimal(0.00))
|
||||
.setSupplierNum(item.getSupplierNum())
|
||||
.setInspectionOrder("");
|
||||
tasks.add(taskItem);
|
||||
} else {
|
||||
//质检物料发送到质检单
|
||||
SRMLineVOListItem srmItem = new SRMLineVOListItem();
|
||||
srmItem.setItemCode(item.getItemCode());
|
||||
srmItem.setItemName(materialInfoInOrder.getMaktx());
|
||||
srmItem.setUnit(materialInfoInOrder.getMeins());
|
||||
srmItem.setFactory(materialInfoInOrder.getWerks());
|
||||
srmItem.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo());
|
||||
srmItem.setReceiveBatchNum(batchNumbers.isEmpty() ? "" : String.join(";", batchNumbers));
|
||||
srmItem.setReceivedQty(item.getReceiptNum());
|
||||
srmItem.setSerialNum(serialNumbers.isEmpty() ? "" : String.join(";", serialNumbers));
|
||||
srmItem.setLineNumber(Integer.valueOf(item.getLineNumber()));
|
||||
srmItem.setNoteNum(item.getNoteNum());
|
||||
srmItem.setReceivedDate(DateTime.now());
|
||||
srmItem.setInspectionFlag("Y");
|
||||
srmLineVOListItems.add(srmItem);
|
||||
}
|
||||
|
||||
if (isQuality) {
|
||||
//质检物料发送到质检单
|
||||
SRMLineVOListItem srmItem = new SRMLineVOListItem();
|
||||
srmItem.setItemCode(item.getItemCode());
|
||||
srmItem.setItemName(materialInfoInOrder.getMaktx());
|
||||
srmItem.setUnit(materialInfoInOrder.getMeins());
|
||||
srmItem.setFactory(materialInfoInOrder.getWerks());
|
||||
srmItem.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo());
|
||||
srmItem.setReceiveBatchNum(scanCode.getBatchNumber());
|
||||
srmItem.setReceivedQty(item.getReceiptNum());
|
||||
srmItem.setSerialNum(scanCode.getSerialNumber());
|
||||
srmItem.setLineNumber(Integer.valueOf(item.getLineNumber()));
|
||||
srmItem.setNoteNum(item.getNoteNum());
|
||||
srmItem.setReceivedDate(DateTime.now());
|
||||
srmItem.setInspectionFlag("Y");
|
||||
srmLineVOListItems.add(srmItem);
|
||||
}
|
||||
});
|
||||
}
|
||||
receipts.add(receipt);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存送货信息
|
||||
* */
|
||||
public void takeDelivery(List<SrmMaterialReceiptQO> request) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("收货参数为空");
|
||||
List<WmsSrmMaterialReceipt> receipts = new ArrayList<>();
|
||||
List<WmsSrmMaterialReceiptItem> receiptitems = new ArrayList<>();
|
||||
List<WmsInTaskItem> tasks = new ArrayList<>();
|
||||
List<SRMLineVOListItem> srmLineVOListItems = new ArrayList<>();
|
||||
|
||||
request.forEach(item -> {
|
||||
SAPSyncParamsDTO materialInfoInOrder = null;
|
||||
try {
|
||||
materialInfoInOrder = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), item.getSupplierNum(), item.getItemCode());
|
||||
} catch (Exception e) {
|
||||
log.error("获取物料信息失败", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("无法获取到有效订单信息" + item.getPoNum());
|
||||
//数量验证(判断收货数量是否大于了未收数量)
|
||||
VUtil.trueThrowBusinessError(item.getReceiptNum().add(item.getCrossNumber()).compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("无法获取到有效订单信息" + item.getPoNum());
|
||||
//序列号和批次号验证
|
||||
validateScanCodes(item, materialInfoInOrder);
|
||||
boolean isQuality = materialInfoInOrder.getKzkri().equals("X") ? true : false;
|
||||
// 生成相关单据
|
||||
generyReceipt(item, isQuality, materialInfoInOrder, receipts, receiptitems, tasks, srmLineVOListItems);
|
||||
});
|
||||
//推送质检单
|
||||
if (Objects.nonNull(srmLineVOListItems) && !srmLineVOListItems.isEmpty()) {
|
||||
SrmMaterialReceiptQO receiptQO = request.get(0);
|
||||
SRMInspectionInputDTO pushDto = new SRMInspectionInputDTO();
|
||||
SRMInspectionContentDTO content = new SRMInspectionContentDTO();
|
||||
content.setLineVOList(srmLineVOListItems);
|
||||
content.setSupplierName(receiptQO.getSupplierName());
|
||||
content.setSupplierNum(receiptQO.getSupplierNum());
|
||||
content.setReceiveNum("ZJ-" + receiptQO.getNoteNum());
|
||||
content.setReceiveType("BY_DELIVERY");
|
||||
pushDto.setContent(content);
|
||||
pushDto.setCode("SCAN_RCV_RECEIVE_TO_SRM");
|
||||
pushInspectionMaterialsToSRM(pushDto);
|
||||
}
|
||||
|
||||
if (Objects.nonNull(receipts) && !receipts.isEmpty()) {
|
||||
wmsSrmMaterialReceiptService.saveBatch(receipts);
|
||||
}
|
||||
if (Objects.nonNull(receipts) && !receipts.isEmpty()) {
|
||||
wmsSrmMaterialReceiptItemService.saveBatch(receiptitems);
|
||||
}
|
||||
if (Objects.nonNull(receipts) && !receipts.isEmpty()) {
|
||||
if (!taskService.generateTask(tasks, (short) 1))
|
||||
log.error("收货单生成上架任务失败");
|
||||
pushInspectionMaterialsToSRM(receiptQO, srmLineVOListItems);
|
||||
}
|
||||
//生成wms的单据
|
||||
wmsSrmMaterialReceiptService.generateReceiptInfo(receipts, receiptitems, tasks);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将检验物料信息推送到SRM系统
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
package com.nflg.wms.repository.service;
|
||||
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import com.nflg.wms.repository.entity.WmsSrmMaterialReceipt;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.wms.repository.entity.WmsSrmMaterialReceiptItem;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
*/
|
||||
public interface IWmsSrmMaterialReceiptService extends IService<WmsSrmMaterialReceipt> {
|
||||
|
||||
void generateReceiptInfo(List<WmsSrmMaterialReceipt> receipts,
|
||||
List<WmsSrmMaterialReceiptItem> receiptitems,
|
||||
List<WmsInTaskItem> tasks);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,23 @@
|
|||
package com.nflg.wms.repository.service.impl;
|
||||
|
||||
import com.nflg.wms.repository.entity.WmsInTaskItem;
|
||||
import com.nflg.wms.repository.entity.WmsSrmMaterialReceipt;
|
||||
import com.nflg.wms.repository.entity.WmsSrmMaterialReceiptItem;
|
||||
import com.nflg.wms.repository.mapper.WmsSrmMaterialReceiptMapper;
|
||||
import com.nflg.wms.repository.service.IWmsSrmMaterialReceiptService;
|
||||
import com.nflg.wms.repository.service.*;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.dev33.satoken.SaManager.log;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务实现类
|
||||
* 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
@ -17,4 +26,27 @@ import org.springframework.stereotype.Service;
|
|||
@Service
|
||||
public class WmsSrmMaterialReceiptServiceImpl extends ServiceImpl<WmsSrmMaterialReceiptMapper, WmsSrmMaterialReceipt> implements IWmsSrmMaterialReceiptService {
|
||||
|
||||
@Resource
|
||||
private IWmsSrmMaterialReceiptItemService wmsSrmMaterialReceiptItemService;
|
||||
|
||||
@Resource
|
||||
private IWmsSrmMaterialReceiptService wmsSrmMaterialReceiptService;
|
||||
|
||||
@Resource
|
||||
private IWmsInTaskService taskService;
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void generateReceiptInfo(List<WmsSrmMaterialReceipt> receipts, List<WmsSrmMaterialReceiptItem> receiptitems, List<WmsInTaskItem> tasks) {
|
||||
if (Objects.nonNull(receipts) && !receipts.isEmpty()) {
|
||||
wmsSrmMaterialReceiptService.saveBatch(receipts);
|
||||
}
|
||||
if (Objects.nonNull(receipts) && !receipts.isEmpty()) {
|
||||
wmsSrmMaterialReceiptItemService.saveBatch(receiptitems);
|
||||
}
|
||||
if (Objects.nonNull(receipts) && !receipts.isEmpty()) {
|
||||
if (!taskService.generateTask(tasks, (short) 1))
|
||||
log.error("收货单生成上架任务失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue