Merge branch 'dev_qinhongzhanWMS' into wms_dev

This commit is contained in:
秦鸿展
2026-01-23 08:42:33 +08:00
18 changed files with 1330 additions and 52 deletions
@@ -251,4 +251,89 @@ public class InMaterialDetail extends BaseVOEntity {
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关明细字段 ==========
@ApiModelProperty("规格型号/ITEM")
@Excel(name = "规格型号/ITEM")
private String specification;
@ApiModelProperty("商品SKU码")
@Excel(name = "商品SKU码")
private String skuCode;
@ApiModelProperty("Invoice No.")
@Excel(name = "Invoice No.")
private String invoiceNo;
@ApiModelProperty("")
@Excel(name = "")
private BigDecimal liter;
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String dimensions;
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declaredUnit;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String countryOfOrigin;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declaredQuantity;
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal boxCount;
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
@ApiModelProperty("出库数量")
@Excel(name = "出库数量")
private BigDecimal outboundQuantity;
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalPrice;
}
@@ -263,4 +263,89 @@ public class InMaterialDetailPO extends StockInOrderBasePO {
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关明细字段 ==========
@ApiModelProperty("规格型号/ITEM")
@Excel(name = "规格型号/ITEM")
private String specification;
@ApiModelProperty("商品SKU码")
@Excel(name = "商品SKU码")
private String skuCode;
@ApiModelProperty("Invoice No.")
@Excel(name = "Invoice No.")
private String invoiceNo;
@ApiModelProperty("")
@Excel(name = "")
private BigDecimal liter;
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String dimensions;
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declaredUnit;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String countryOfOrigin;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
@ApiModelProperty("单位")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("申报数量")
@Excel(name = "申报数量")
private BigDecimal declaredQuantity;
@ApiModelProperty("箱数")
@Excel(name = "箱数")
private BigDecimal boxCount;
@ApiModelProperty("件数")
@Excel(name = "件数")
private BigDecimal pieceCount;
@ApiModelProperty("出库数量")
@Excel(name = "出库数量")
private BigDecimal outboundQuantity;
@ApiModelProperty("总净重(KG)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("总价")
@Excel(name = "总价")
private BigDecimal totalPrice;
}
@@ -258,4 +258,89 @@ public class InMaterialDetailDO extends StockInOrderBaseDO {
@ApiModelProperty("入库单号集合")
@Excel(name = "入库单号集合")
private List<String> inOrderNumberList;
// ========== 报关相关明细字段 ==========
@ApiModelProperty("规格型号/ITEM(选择物料后自动带出,不可编辑)")
@Excel(name = "规格型号/ITEM")
private String specification;
@ApiModelProperty("商品SKU码(选择物料后自动带出,不可编辑)")
@Excel(name = "商品SKU码")
private String skuCode;
@ApiModelProperty("Invoice No.")
@Excel(name = "Invoice No.")
private String invoiceNo;
@ApiModelProperty("升(输入大于等于0的数字,可以为小数)")
@Excel(name = "")
private BigDecimal liter;
@ApiModelProperty("尺寸")
@Excel(name = "尺寸")
private String dimensions;
@ApiModelProperty("申报单位")
@Excel(name = "申报单位")
private String declaredUnit;
@ApiModelProperty("Batch Ref NO's")
@Excel(name = "Batch Ref NO's")
private String batchRefNo;
@ApiModelProperty("Sheet Ref NO's")
@Excel(name = "Sheet Ref NO's")
private String sheetRefNo;
@ApiModelProperty("原产国")
@Excel(name = "原产国")
private String countryOfOrigin;
@ApiModelProperty("箱号/卡板号")
@Excel(name = "箱号/卡板号")
private String boxPalletNo;
@ApiModelProperty("币制")
@Excel(name = "币制")
private String currency;
@ApiModelProperty("单位(数据字典下拉选择框)")
@Excel(name = "单位")
private String unit;
@ApiModelProperty("申报数量(输入大于等于0的数字,可以为小数)")
@Excel(name = "申报数量")
private BigDecimal declaredQuantity;
@ApiModelProperty("箱数(输入大于等于0的数字,可以为小数)")
@Excel(name = "箱数")
private BigDecimal boxCount;
@ApiModelProperty("件数(输入大于等于0的数字,可以为小数)")
@Excel(name = "件数")
private BigDecimal pieceCount;
@ApiModelProperty("出库数量(输入大于等于0的数字,可以为小数)")
@Excel(name = "出库数量")
private BigDecimal outboundQuantity;
@ApiModelProperty("总净重(KG)(输入大于等于0的数字,可以为小数)")
@Excel(name = "总净重(KG)")
private BigDecimal totalNetWeight;
@ApiModelProperty("总毛重(KG)(输入大于等于0的数字,可以为小数)")
@Excel(name = "总毛重(KG)")
private BigDecimal totalGrossWeight;
@ApiModelProperty("总体积(CBM)(输入大于等于0的数字,可以为小数)")
@Excel(name = "总体积(CBM)")
private BigDecimal totalVolume;
@ApiModelProperty("总面积(SQM)(输入大于等于0的数字,可以为小数)")
@Excel(name = "总面积(SQM)")
private BigDecimal totalArea;
@ApiModelProperty("总价(输入大于等于0的数字,可以为小数)")
@Excel(name = "总价")
private BigDecimal totalPrice;
}
@@ -1,6 +1,7 @@
package com.mhd.wms.domain.stockInOrder.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
@@ -225,4 +226,104 @@ public class StockInOrder extends BaseVOEntity {
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关字段 ==========
@ApiModelProperty("To")
@Excel(name = "To")
@TableField(value = "\"TO\"")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleInfo;
@ApiModelProperty("委托编号NO")
@Excel(name = "委托编号NO")
private String consignmentNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSignature;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declarationArea;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsBrokerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddress;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String originDestinationCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportMethod;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionMethod;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private Integer customsInspection;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private Integer needCustomsDeclaration;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private Integer needTransport;
@ApiModelProperty("入仓日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date completionTime;
@ApiModelProperty("下单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
}
@@ -226,4 +226,103 @@ public class StockInOrderPO extends BaseVOEntity {
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
// ========== 报关相关字段 ==========
@ApiModelProperty("To")
@Excel(name = "To")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleInfo;
@ApiModelProperty("委托编号NO")
@Excel(name = "委托编号NO")
private String consignmentNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSignature;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declarationArea;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsBrokerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddress;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String originDestinationCountry;
@ApiModelProperty("承运商")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("运输方式")
@Excel(name = "运输方式")
private String transportMethod;
@ApiModelProperty("监管方式")
@Excel(name = "监管方式")
private String supervisionMethod;
@ApiModelProperty("海关是否查验货物")
@Excel(name = "海关是否查验货物")
private Integer customsInspection;
@ApiModelProperty("是否需要报关")
@Excel(name = "是否需要报关")
private Integer needCustomsDeclaration;
@ApiModelProperty("是否需要运输")
@Excel(name = "是否需要运输")
private Integer needTransport;
@ApiModelProperty("入仓日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date completionTime;
@ApiModelProperty("下单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
}
@@ -241,4 +241,103 @@ public class StockInOrderDO extends BaseVOEntity {
@ApiModelProperty("调度单号")
private String mobilizeCode;
// ========== 报关相关字段 ==========
@ApiModelProperty("To")
@Excel(name = "To")
private String to;
@ApiModelProperty("联系人")
@Excel(name = "联系人")
private String contactPerson;
@ApiModelProperty("车型及车牌")
@Excel(name = "车型及车牌")
private String vehicleInfo;
@ApiModelProperty("委托编号NO")
@Excel(name = "委托编号NO")
private String consignmentNo;
@ApiModelProperty("Tel")
@Excel(name = "Tel")
private String tel;
@ApiModelProperty("司机签名")
@Excel(name = "司机签名")
private String driverSignature;
@ApiModelProperty("Fax")
@Excel(name = "Fax")
private String fax;
@ApiModelProperty("申报地关区")
@Excel(name = "申报地关区")
private String declarationArea;
@ApiModelProperty("生产商")
@Excel(name = "生产商")
private String manufacturer;
@ApiModelProperty("报关员姓名及联系方式")
@Excel(name = "报关员姓名及联系方式")
private String customsBrokerInfo;
@ApiModelProperty("送货地址")
@Excel(name = "送货地址")
private String deliveryAddress;
@ApiModelProperty("进出境关别")
@Excel(name = "进出境关别")
private String entryExitCustoms;
@ApiModelProperty("起运/运抵国(地区)")
@Excel(name = "起运/运抵国(地区)")
private String originDestinationCountry;
@ApiModelProperty("承运商(先做成输入框,待定)")
@Excel(name = "承运商")
private String carrier;
@ApiModelProperty("柜号(数据字典:20尺/40尺)")
@Excel(name = "柜号")
private String containerNo;
@ApiModelProperty("运输方式(数据字典:公路运输/其他运输)")
@Excel(name = "运输方式")
private String transportMethod;
@ApiModelProperty("监管方式(数据字典:一般贸易)")
@Excel(name = "监管方式")
private String supervisionMethod;
@ApiModelProperty("海关是否查验货物(默认:否)")
@Excel(name = "海关是否查验货物")
private Integer customsInspection;
@ApiModelProperty("是否需要报关(默认:是)")
@Excel(name = "是否需要报关")
private Integer needCustomsDeclaration;
@ApiModelProperty("是否需要运输(默认:否)")
@Excel(name = "是否需要运输")
private Integer needTransport;
@ApiModelProperty("入仓日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入仓日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date warehouseDate;
@ApiModelProperty("完成时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date completionTime;
@ApiModelProperty("下单日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date orderDate;
}
@@ -31,6 +31,7 @@ import com.mhd.wms.domain.stockInOrder.entity.StockInOrder;
import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService;
import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO;
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService;
import lombok.extern.slf4j.Slf4j;
@@ -84,19 +85,21 @@ public class StockInOrderDomainService {
@Transactional(rollbackFor = Exception.class)
public Boolean insert(StockInOrderDO stockInOrderDO) {
stockInOrderDO.setInOrderNumber(OrderSequence.getOrderCode("RK"));
//设置物料信息
setMaterialDetailInfo(stockInOrderDO);
//统计总物料种数
stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size());
//统计总计划
BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderDO.setQuantity(quantity);
//统计总重量
BigDecimal weightLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getWeightLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderDO.setWeightLimit(weightLimit);
//统计总体积
BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderDO.setVolumeLimit(volumeLimit);
// //设置默认值
// setDefaultValues(stockInOrderDO);
// //设置物料信息
// setMaterialDetailInfo(stockInOrderDO);
// //统计总物料种
// stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size());
// //统计总计划数
// BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// stockInOrderDO.setQuantity(quantity);
// //统计总重量
// BigDecimal weightLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getWeightLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// stockInOrderDO.setWeightLimit(weightLimit);
// //统计总体积
// BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// stockInOrderDO.setVolumeLimit(volumeLimit);
stockInOrderService.insert(stockInOrderDO);
return materialDetailService.batchInsert(stockInOrderDO.getInOrderNumber(), stockInOrderDO.getMaterialDetailList());
}
@@ -110,19 +113,19 @@ public class StockInOrderDomainService {
if (StringUtils.isBlank(stockInOrderDO.getInOrderNumber())){
stockInOrderDO.setInOrderNumber(OrderSequence.getOrderCode("RK"));
}
//设置物料信息
setMaterialDetailInfo(stockInOrderDO);
//统计总物料种数
stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size());
//统计总计划数
BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderDO.setQuantity(quantity);
//统计总重量
BigDecimal weightLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getWeightLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderDO.setWeightLimit(weightLimit);
//统计总体积
BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderDO.setVolumeLimit(volumeLimit);
// //设置物料信息
// setMaterialDetailInfo(stockInOrderDO);
// //统计总物料种数
// stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size());
// //统计总计划数
// BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// stockInOrderDO.setQuantity(quantity);
// //统计总重量
// BigDecimal weightLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getWeightLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// stockInOrderDO.setWeightLimit(weightLimit);
// //统计总体积
// BigDecimal volumeLimit = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getVolumeLimit).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
// stockInOrderDO.setVolumeLimit(volumeLimit);
stockInOrderService.insert(stockInOrderDO);
materialDetailService.batchInsert(stockInOrderDO.getInOrderNumber(), stockInOrderDO.getMaterialDetailList());
}
@@ -143,7 +146,7 @@ public class StockInOrderDomainService {
//统计总物料种数
stockInOrderDO.setMaterialQuantity(stockInOrderDO.getMaterialDetailList().size());
//统计总计划数
BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal quantity = stockInOrderDO.getMaterialDetailList().stream().map(InMaterialDetailDO::getQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockInOrderPO.setQuantity(quantity);
stockInOrderDO.setQuantity(quantity);
//统计总重量
@@ -304,7 +307,25 @@ public class StockInOrderDomainService {
});
//判断物流是否需要生成质检单
genQualityInspection(stockReceiptOrderDOList);
return stockReceiptOrderDomainService.batchInsert(stockReceiptOrderDOList);
//生成收货单
Boolean batchInsertResult = stockReceiptOrderDomainService.batchInsert(stockReceiptOrderDOList);
if (!batchInsertResult) {
throw new ServiceException("生成收货单失败");
}
//生成收货任务:根据入库单号查询刚生成的收货单
List<StockReceiptOrderPO> stockReceiptOrderPOList = new ArrayList<>();
for (String inOrderNumber : inOrderNumberList) {
StockReceiptOrderDO stockReceiptOrderDOQuery = new StockReceiptOrderDO();
stockReceiptOrderDOQuery.setInOrderNumber(inOrderNumber);
List<StockReceiptOrderPO> receiptOrderList = stockReceiptOrderDomainService.queryList(stockReceiptOrderDOQuery);
if (!CollectionUtils.isEmpty(receiptOrderList)) {
stockReceiptOrderPOList.addAll(receiptOrderList);
}
}
if (!CollectionUtils.isEmpty(stockReceiptOrderPOList)) {
stockReceiptOrderDomainService.genStockReceiptTaskOrder(stockReceiptOrderPOList);
}
return batchInsertResult;
}
/**
@@ -385,7 +406,42 @@ public class StockInOrderDomainService {
inMaterialDetailDO.setDistributeRuleId(materialGoodsRulePO.getMaterialGoodsRuleId());
inMaterialDetailDO.setDistributeRuleCode(materialGoodsRulePO.getRuleCode());
inMaterialDetailDO.setDistributeRuleName(materialGoodsRulePO.getRuleName());
//自动填充规格型号和SKU码(如果物料基础信息中有相关字段且明细中未设置)
//规格型号:优先使用物料种类名称,如果为空则使用物料类型名称
if (StringUtils.isBlank(inMaterialDetailDO.getSpecification())) {
if (StringUtils.isNotBlank(materialBaseInfoPO.getMaterialTypeName())) {
inMaterialDetailDO.setSpecification(materialBaseInfoPO.getMaterialTypeName());
}
}
//商品SKU码:使用物料条形码
if (StringUtils.isBlank(inMaterialDetailDO.getSkuCode())) {
if (StringUtils.isNotBlank(materialBaseInfoPO.getBarCode())) {
inMaterialDetailDO.setSkuCode(materialBaseInfoPO.getBarCode());
}
}
});
}
/**
* @description 设置默认值
* @author gen
* @date 2026/1/16
* @param stockInOrderDO
*/
private void setDefaultValues(StockInOrderDO stockInOrderDO) {
//海关是否查验货物(默认:0=否)
if (stockInOrderDO.getCustomsInspection() == null) {
stockInOrderDO.setCustomsInspection(0);
}
//是否需要报关(默认:1=是)
if (stockInOrderDO.getNeedCustomsDeclaration() == null) {
stockInOrderDO.setNeedCustomsDeclaration(1);
}
//是否需要运输(默认:0=否)
if (stockInOrderDO.getNeedTransport() == null) {
stockInOrderDO.setNeedTransport(0);
}
}
}