diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java
index 9215e874f..fbc24b76c 100644
--- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java
+++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java
@@ -184,4 +184,165 @@ public class MaterialBaseInfo extends BaseVOEntity{
@ApiModelProperty("整机编码")
@Excel(name = "整机编号")
private String machineCode;
-}
+
+ /**
+ * 商品名称
+ */
+ @ApiModelProperty("商品名称")
+ @Excel(name = "商品名称")
+ private String commodityName;
+ /**
+ * 商品编码
+ */
+ @ApiModelProperty("商品编码")
+ @Excel(name = "商品编码")
+ private String commodityNo;
+ /**
+ * 料号
+ */
+ @ApiModelProperty("料号")
+ @Excel(name = "料号")
+ private String materialNo;
+ /**
+ * 规格型号
+ */
+ @ApiModelProperty("规格型号")
+ @Excel(name = "规格型号")
+ private String specificationModel;
+ /**
+ * 商品SKU码
+ */
+ @ApiModelProperty("商品SKU码")
+ @Excel(name = "商品SKU码")
+ private String skucode;
+ /**
+ * Invoice No
+ */
+ @ApiModelProperty("Invoice No")
+ @Excel(name = "Invoice No")
+ private String invoiceNo;
+ /**
+ * 升
+ */
+ @ApiModelProperty("升")
+ @Excel(name = "升")
+ private String liter;
+
+ /**
+ * 尺寸
+ */
+ @ApiModelProperty("尺寸")
+ @Excel(name = "尺寸")
+ private String size;
+
+ /**
+ * 申报单位
+ */
+ @ApiModelProperty("申报单位")
+ @Excel(name = "申报单位")
+ private String declareUnit;
+
+ /**
+ * Batch Ref NO’s
+ */
+ @ApiModelProperty("Batch Ref NO’s")
+ @Excel(name = "Batch Ref NO’s")
+ private String batchRefNo;
+
+ /**
+ * Sheet Ref NO’s
+ */
+ @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 casePalletNo;
+
+ /**
+ * 币制
+ */
+ @ApiModelProperty("币制")
+ @Excel(name = "币制")
+ private String currency;
+
+ /**
+ * 申报数量
+ */
+ @ApiModelProperty("申报数量")
+ @Excel(name = "申报数量")
+ private Double declareQuantity;
+
+ /**
+ * 箱数
+ */
+ @ApiModelProperty("箱数")
+ @Excel(name = "箱数")
+ private Double caseCount;
+
+ /**
+ * 件数
+ */
+ @ApiModelProperty("件数")
+ @Excel(name = "件数")
+ private Double pieceCount;
+
+ /**
+ * 出库数量
+ */
+ @ApiModelProperty("出库数量")
+ @Excel(name = "出库数量")
+ private Double outboundQuantity;
+
+ /**
+ * 总净重(KG)
+ */
+ @ApiModelProperty("总净重(KG)")
+ @Excel(name = "总净重(KG)")
+ private Double totalNetWeight;
+
+ /**
+ * 总毛重(KG)
+ */
+ @ApiModelProperty("总毛重(KG)")
+ @Excel(name = "总毛重(KG)")
+ private Double totalGrossWeight;
+
+ /**
+ * 总体积(CBM)
+ */
+ @ApiModelProperty("总体积(CBM)")
+ @Excel(name = "总体积(CBM)")
+ private Double totalVolume;
+
+ /**
+ * 总面积(SQM)
+ */
+ @ApiModelProperty("总面积(SQM)")
+ @Excel(name = "总面积(SQM)")
+ private Double totalArea;
+ /**
+ * 总价
+ */
+ @ApiModelProperty("总价")
+ @Excel(name = "总价")
+ private Double totalAmount;
+
+ /**
+ * 单位
+ */
+ @ApiModelProperty("单位")
+ @Excel(name = "单位")
+ private String unit;
+}
\ No newline at end of file
diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java
index 1b9bae270..3af62f2db 100644
--- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java
+++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java
@@ -182,4 +182,166 @@ public class MaterialBaseInfoPO extends BaseVOEntity{
@Excel(name = "整机编号")
private String machineCode;
-}
+
+ /**
+ * 商品名称
+ */
+ @ApiModelProperty("商品名称")
+ @Excel(name = "商品名称")
+ private String commodityName;
+ /**
+ * 商品编码
+ */
+ @ApiModelProperty("商品编码")
+ @Excel(name = "商品编码")
+ private String commodityNo;
+ /**
+ * 料号
+ */
+ @ApiModelProperty("料号")
+ @Excel(name = "料号")
+ private String materialNo;
+ /**
+ * 规格型号
+ */
+ @ApiModelProperty("规格型号")
+ @Excel(name = "规格型号")
+ private String specificationModel;
+ /**
+ * 商品SKU码
+ */
+ @ApiModelProperty("商品SKU码")
+ @Excel(name = "商品SKU码")
+ private String skucode;
+ /**
+ * Invoice No
+ */
+ @ApiModelProperty("Invoice No")
+ @Excel(name = "Invoice No")
+ private String invoiceNo;
+ /**
+ * 升
+ */
+ @ApiModelProperty("升")
+ @Excel(name = "升")
+ private String liter;
+
+ /**
+ * 尺寸
+ */
+ @ApiModelProperty("尺寸")
+ @Excel(name = "尺寸")
+ private String size;
+
+ /**
+ * 申报单位
+ */
+ @ApiModelProperty("申报单位")
+ @Excel(name = "申报单位")
+ private String declareUnit;
+
+ /**
+ * Batch Ref NO’s
+ */
+ @ApiModelProperty("Batch Ref NO’s")
+ @Excel(name = "Batch Ref NO’s")
+ private String batchRefNo;
+
+ /**
+ * Sheet Ref NO’s
+ */
+ @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 casePalletNo;
+
+ /**
+ * 币制
+ */
+ @ApiModelProperty("币制")
+ @Excel(name = "币制")
+ private String currency;
+
+ /**
+ * 申报数量
+ */
+ @ApiModelProperty("申报数量")
+ @Excel(name = "申报数量")
+ private Double declareQuantity;
+
+ /**
+ * 箱数
+ */
+ @ApiModelProperty("箱数")
+ @Excel(name = "箱数")
+ private Double caseCount;
+
+ /**
+ * 件数
+ */
+ @ApiModelProperty("件数")
+ @Excel(name = "件数")
+ private Double pieceCount;
+
+ /**
+ * 出库数量
+ */
+ @ApiModelProperty("出库数量")
+ @Excel(name = "出库数量")
+ private Double outboundQuantity;
+
+ /**
+ * 总净重(KG)
+ */
+ @ApiModelProperty("总净重(KG)")
+ @Excel(name = "总净重(KG)")
+ private Double totalNetWeight;
+
+ /**
+ * 总毛重(KG)
+ */
+ @ApiModelProperty("总毛重(KG)")
+ @Excel(name = "总毛重(KG)")
+ private Double totalGrossWeight;
+
+ /**
+ * 总体积(CBM)
+ */
+ @ApiModelProperty("总体积(CBM)")
+ @Excel(name = "总体积(CBM)")
+ private Double totalVolume;
+
+ /**
+ * 总面积(SQM)
+ */
+ @ApiModelProperty("总面积(SQM)")
+ @Excel(name = "总面积(SQM)")
+ private Double totalArea;
+ /**
+ * 总价
+ */
+ @ApiModelProperty("总价")
+ @Excel(name = "总价")
+ private Double totalAmount;
+
+ /**
+ * 单位
+ */
+ @ApiModelProperty("单位")
+ @Excel(name = "单位")
+ private String unit;
+
+}
\ No newline at end of file
diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java
index b688b22fa..dd8a236b5 100644
--- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java
+++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java
@@ -203,4 +203,166 @@ public class MaterialBaseInfoDO extends BaseVOEntity{
@ApiModelProperty("整机编码")
@Excel(name = "整机编号")
private String machineCode;
-}
+
+
+ /**
+ * 商品名称
+ */
+ @ApiModelProperty("商品名称")
+ @Excel(name = "商品名称")
+ private String commodityName;
+ /**
+ * 商品编码
+ */
+ @ApiModelProperty("商品编码")
+ @Excel(name = "商品编码")
+ private String commodityNo;
+ /**
+ * 料号
+ */
+ @ApiModelProperty("料号")
+ @Excel(name = "料号")
+ private String materialNo;
+ /**
+ * 规格型号
+ */
+ @ApiModelProperty("规格型号")
+ @Excel(name = "规格型号")
+ private String specificationModel;
+ /**
+ * 商品SKU码
+ */
+ @ApiModelProperty("商品SKU码")
+ @Excel(name = "商品SKU码")
+ private String skucode;
+ /**
+ * Invoice No
+ */
+ @ApiModelProperty("Invoice No")
+ @Excel(name = "Invoice No")
+ private String invoiceNo;
+ /**
+ * 升
+ */
+ @ApiModelProperty("升")
+ @Excel(name = "升")
+ private String liter;
+
+ /**
+ * 尺寸
+ */
+ @ApiModelProperty("尺寸")
+ @Excel(name = "尺寸")
+ private String size;
+
+ /**
+ * 申报单位
+ */
+ @ApiModelProperty("申报单位")
+ @Excel(name = "申报单位")
+ private String declareUnit;
+
+ /**
+ * Batch Ref NO’s
+ */
+ @ApiModelProperty("Batch Ref NO’s")
+ @Excel(name = "Batch Ref NO’s")
+ private String batchRefNo;
+
+ /**
+ * Sheet Ref NO’s
+ */
+ @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 casePalletNo;
+
+ /**
+ * 币制
+ */
+ @ApiModelProperty("币制")
+ @Excel(name = "币制")
+ private String currency;
+
+ /**
+ * 申报数量
+ */
+ @ApiModelProperty("申报数量")
+ @Excel(name = "申报数量")
+ private Double declareQuantity;
+
+ /**
+ * 箱数
+ */
+ @ApiModelProperty("箱数")
+ @Excel(name = "箱数")
+ private Double caseCount;
+
+ /**
+ * 件数
+ */
+ @ApiModelProperty("件数")
+ @Excel(name = "件数")
+ private Double pieceCount;
+
+ /**
+ * 出库数量
+ */
+ @ApiModelProperty("出库数量")
+ @Excel(name = "出库数量")
+ private Double outboundQuantity;
+
+ /**
+ * 总净重(KG)
+ */
+ @ApiModelProperty("总净重(KG)")
+ @Excel(name = "总净重(KG)")
+ private Double totalNetWeight;
+
+ /**
+ * 总毛重(KG)
+ */
+ @ApiModelProperty("总毛重(KG)")
+ @Excel(name = "总毛重(KG)")
+ private Double totalGrossWeight;
+
+ /**
+ * 总体积(CBM)
+ */
+ @ApiModelProperty("总体积(CBM)")
+ @Excel(name = "总体积(CBM)")
+ private Double totalVolume;
+
+ /**
+ * 总面积(SQM)
+ */
+ @ApiModelProperty("总面积(SQM)")
+ @Excel(name = "总面积(SQM)")
+ private Double totalArea;
+ /**
+ * 总价
+ */
+ @ApiModelProperty("总价")
+ @Excel(name = "总价")
+ private Double totalAmount;
+
+ /**
+ * 单位
+ */
+ @ApiModelProperty("单位")
+ @Excel(name = "单位")
+ private String unit;
+}
\ No newline at end of file
diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java
index e8abbcc81..80748de88 100644
--- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java
+++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java
@@ -181,4 +181,166 @@ public class MaterialBaseInfoDTO extends BaseVOEntity{
@ApiModelProperty("是否公用: 1-是 2-否")
@Excel(name = "是否公用: 1-是 2-否")
private Integer common;
-}
+
+
+ /**
+ * 商品名称
+ */
+ @ApiModelProperty("商品名称")
+ @Excel(name = "商品名称")
+ private String commodityName;
+ /**
+ * 商品编码
+ */
+ @ApiModelProperty("商品编码")
+ @Excel(name = "商品编码")
+ private String commodityNo;
+ /**
+ * 料号
+ */
+ @ApiModelProperty("料号")
+ @Excel(name = "料号")
+ private String materialNo;
+ /**
+ * 规格型号
+ */
+ @ApiModelProperty("规格型号")
+ @Excel(name = "规格型号")
+ private String specificationModel;
+ /**
+ * 商品SKU码
+ */
+ @ApiModelProperty("商品SKU码")
+ @Excel(name = "商品SKU码")
+ private String skucode;
+ /**
+ * Invoice No
+ */
+ @ApiModelProperty("Invoice No")
+ @Excel(name = "Invoice No")
+ private String invoiceNo;
+ /**
+ * 升
+ */
+ @ApiModelProperty("升")
+ @Excel(name = "升")
+ private String liter;
+
+ /**
+ * 尺寸
+ */
+ @ApiModelProperty("尺寸")
+ @Excel(name = "尺寸")
+ private String size;
+
+ /**
+ * 申报单位
+ */
+ @ApiModelProperty("申报单位")
+ @Excel(name = "申报单位")
+ private String declareUnit;
+
+ /**
+ * Batch Ref NO’s
+ */
+ @ApiModelProperty("Batch Ref NO’s")
+ @Excel(name = "Batch Ref NO’s")
+ private String batchRefNo;
+
+ /**
+ * Sheet Ref NO’s
+ */
+ @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 casePalletNo;
+
+ /**
+ * 币制
+ */
+ @ApiModelProperty("币制")
+ @Excel(name = "币制")
+ private String currency;
+
+ /**
+ * 申报数量
+ */
+ @ApiModelProperty("申报数量")
+ @Excel(name = "申报数量")
+ private Double declareQuantity;
+
+ /**
+ * 箱数
+ */
+ @ApiModelProperty("箱数")
+ @Excel(name = "箱数")
+ private Double caseCount;
+
+ /**
+ * 件数
+ */
+ @ApiModelProperty("件数")
+ @Excel(name = "件数")
+ private Double pieceCount;
+
+ /**
+ * 出库数量
+ */
+ @ApiModelProperty("出库数量")
+ @Excel(name = "出库数量")
+ private Double outboundQuantity;
+
+ /**
+ * 总净重(KG)
+ */
+ @ApiModelProperty("总净重(KG)")
+ @Excel(name = "总净重(KG)")
+ private Double totalNetWeight;
+
+ /**
+ * 总毛重(KG)
+ */
+ @ApiModelProperty("总毛重(KG)")
+ @Excel(name = "总毛重(KG)")
+ private Double totalGrossWeight;
+
+ /**
+ * 总体积(CBM)
+ */
+ @ApiModelProperty("总体积(CBM)")
+ @Excel(name = "总体积(CBM)")
+ private Double totalVolume;
+
+ /**
+ * 总面积(SQM)
+ */
+ @ApiModelProperty("总面积(SQM)")
+ @Excel(name = "总面积(SQM)")
+ private Double totalArea;
+ /**
+ * 总价
+ */
+ @ApiModelProperty("总价")
+ @Excel(name = "总价")
+ private Double totalAmount;
+
+ /**
+ * 单位
+ */
+ @ApiModelProperty("单位")
+ @Excel(name = "单位")
+ private String unit;
+}
\ No newline at end of file
diff --git a/mhd_wms/pom.xml b/mhd_wms/pom.xml
index 59fb87a32..675c7cfa1 100644
--- a/mhd_wms/pom.xml
+++ b/mhd_wms/pom.xml
@@ -131,6 +131,13 @@
4.1.2
+
+
+ com.alibaba
+ easyexcel
+ 3.3.2
+
+
com.mhd
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
index 28e3f82d8..c069e1acd 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockOutOrder/StockOutOrderApplicationService.java
@@ -521,4 +521,7 @@ public class StockOutOrderApplicationService {
outMaterialDetailDO.setContainerType(materialInventoryPO.getContainerType());
outMaterialDetailDO.setContainerTypeName(materialInventoryPO.getContainerTypeName());
}
-}
+
+
+
+}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
index a5d85c87b..9b1f340e4 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/entity/OutMaterialDetail.java
@@ -222,4 +222,166 @@ public class OutMaterialDetail extends BaseVOEntity {
@ApiModelProperty("越库类型:1-直接越库 2-分拨越库")
@Excel(name = "越库类型:1-直接越库 2-分拨越库")
private Long overStockType;
-}
+
+
+ /**
+ * 商品名称
+ */
+ @ApiModelProperty("商品名称")
+ @Excel(name = "商品名称")
+ private String commodityName;
+ /**
+ * 商品编码
+ */
+ @ApiModelProperty("商品编码")
+ @Excel(name = "商品编码")
+ private String commodityNo;
+ /**
+ * 料号
+ */
+ @ApiModelProperty("料号")
+ @Excel(name = "料号")
+ private String materialNo;
+ /**
+ * 规格型号
+ */
+ @ApiModelProperty("规格型号")
+ @Excel(name = "规格型号")
+ private String specificationModel;
+ /**
+ * 商品SKU码
+ */
+ @ApiModelProperty("商品SKU码")
+ @Excel(name = "商品SKU码")
+ private String skucode;
+ /**
+ * Invoice No
+ */
+ @ApiModelProperty("Invoice No")
+ @Excel(name = "Invoice No")
+ private String invoiceNo;
+ /**
+ * 升
+ */
+ @ApiModelProperty("升")
+ @Excel(name = "升")
+ private String liter;
+
+ /**
+ * 尺寸
+ */
+ @ApiModelProperty("尺寸")
+ @Excel(name = "尺寸")
+ private String size;
+
+ /**
+ * 申报单位
+ */
+ @ApiModelProperty("申报单位")
+ @Excel(name = "申报单位")
+ private String declareUnit;
+
+ /**
+ * Batch Ref NO’s
+ */
+ @ApiModelProperty("Batch Ref NO’s")
+ @Excel(name = "Batch Ref NO’s")
+ private String batchRefNo;
+
+ /**
+ * Sheet Ref NO’s
+ */
+ @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 casePalletNo;
+
+ /**
+ * 币制
+ */
+ @ApiModelProperty("币制")
+ @Excel(name = "币制")
+ private String currency;
+
+ /**
+ * 申报数量
+ */
+ @ApiModelProperty("申报数量")
+ @Excel(name = "申报数量")
+ private Double declareQuantity;
+
+ /**
+ * 箱数
+ */
+ @ApiModelProperty("箱数")
+ @Excel(name = "箱数")
+ private Double caseCount;
+
+ /**
+ * 件数
+ */
+ @ApiModelProperty("件数")
+ @Excel(name = "件数")
+ private Double pieceCount;
+
+ /**
+ * 出库数量
+ */
+ @ApiModelProperty("出库数量")
+ @Excel(name = "出库数量")
+ private Double outboundQuantity;
+
+ /**
+ * 总净重(KG)
+ */
+ @ApiModelProperty("总净重(KG)")
+ @Excel(name = "总净重(KG)")
+ private Double totalNetWeight;
+
+ /**
+ * 总毛重(KG)
+ */
+ @ApiModelProperty("总毛重(KG)")
+ @Excel(name = "总毛重(KG)")
+ private Double totalGrossWeight;
+
+ /**
+ * 总体积(CBM)
+ */
+ @ApiModelProperty("总体积(CBM)")
+ @Excel(name = "总体积(CBM)")
+ private Double totalVolume;
+
+ /**
+ * 总面积(SQM)
+ */
+ @ApiModelProperty("总面积(SQM)")
+ @Excel(name = "总面积(SQM)")
+ private Double totalArea;
+ /**
+ * 总价
+ */
+ @ApiModelProperty("总价")
+ @Excel(name = "总价")
+ private Double totalAmount;
+
+ /**
+ * 单位
+ */
+ @ApiModelProperty("单位")
+ @Excel(name = "单位")
+ private String unit;
+}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
index 0cbf9ff15..ba61e8a97 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/outMaterialDetail/repository/todo/OutMaterialDetailDO.java
@@ -238,4 +238,167 @@ public class OutMaterialDetailDO extends BaseVOEntity {
@Excel(name = "作业数量(例如:分配数量 拣货数量 复核数量)")
private BigDecimal actualQuantity;
-}
+
+
+ /**
+ * 商品名称
+ */
+ @ApiModelProperty("商品名称")
+ @Excel(name = "商品名称")
+ private String commodityName;
+ /**
+ * 商品编码
+ */
+ @ApiModelProperty("商品编码")
+ @Excel(name = "商品编码")
+ private String commodityNo;
+ /**
+ * 料号
+ */
+ @ApiModelProperty("料号")
+ @Excel(name = "料号")
+ private String materialNo;
+ /**
+ * 规格型号
+ */
+ @ApiModelProperty("规格型号")
+ @Excel(name = "规格型号")
+ private String specificationModel;
+ /**
+ * 商品SKU码
+ */
+ @ApiModelProperty("商品SKU码")
+ @Excel(name = "商品SKU码")
+ private String skucode;
+ /**
+ * Invoice No
+ */
+ @ApiModelProperty("Invoice No")
+ @Excel(name = "Invoice No")
+ private String invoiceNo;
+ /**
+ * 升
+ */
+ @ApiModelProperty("升")
+ @Excel(name = "升")
+ private String liter;
+
+ /**
+ * 尺寸
+ */
+ @ApiModelProperty("尺寸")
+ @Excel(name = "尺寸")
+ private String size;
+
+ /**
+ * 申报单位
+ */
+ @ApiModelProperty("申报单位")
+ @Excel(name = "申报单位")
+ private String declareUnit;
+
+ /**
+ * Batch Ref NO’s
+ */
+ @ApiModelProperty("Batch Ref NO’s")
+ @Excel(name = "Batch Ref NO’s")
+ private String batchRefNo;
+
+ /**
+ * Sheet Ref NO’s
+ */
+ @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 casePalletNo;
+
+ /**
+ * 币制
+ */
+ @ApiModelProperty("币制")
+ @Excel(name = "币制")
+ private String currency;
+
+ /**
+ * 申报数量
+ */
+ @ApiModelProperty("申报数量")
+ @Excel(name = "申报数量")
+ private Double declareQuantity;
+
+ /**
+ * 箱数
+ */
+ @ApiModelProperty("箱数")
+ @Excel(name = "箱数")
+ private Double caseCount;
+
+ /**
+ * 件数
+ */
+ @ApiModelProperty("件数")
+ @Excel(name = "件数")
+ private Double pieceCount;
+
+ /**
+ * 出库数量
+ */
+ @ApiModelProperty("出库数量")
+ @Excel(name = "出库数量")
+ private Double outboundQuantity;
+
+ /**
+ * 总净重(KG)
+ */
+ @ApiModelProperty("总净重(KG)")
+ @Excel(name = "总净重(KG)")
+ private Double totalNetWeight;
+
+ /**
+ * 总毛重(KG)
+ */
+ @ApiModelProperty("总毛重(KG)")
+ @Excel(name = "总毛重(KG)")
+ private Double totalGrossWeight;
+
+ /**
+ * 总体积(CBM)
+ */
+ @ApiModelProperty("总体积(CBM)")
+ @Excel(name = "总体积(CBM)")
+ private Double totalVolume;
+
+ /**
+ * 总面积(SQM)
+ */
+ @ApiModelProperty("总面积(SQM)")
+ @Excel(name = "总面积(SQM)")
+ private Double totalArea;
+ /**
+ * 总价
+ */
+ @ApiModelProperty("总价")
+ @Excel(name = "总价")
+ private Double totalAmount;
+
+ /**
+ * 单位
+ */
+ @ApiModelProperty("单位")
+ @Excel(name = "单位")
+ private String unit;
+
+}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java
index fc2649773..c8bb6928e 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/entity/StockOutOrder.java
@@ -262,4 +262,106 @@ public class StockOutOrder 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 vehicleModelPlate;
+
+ @ApiModelProperty("委托编号")
+ @Excel(name = "委托编号")
+ private String entrustNo;
+
+ @ApiModelProperty("Tel")
+ @Excel(name = "Tel")
+ private String tel;
+
+ @ApiModelProperty("司机签名")
+ @Excel(name = "司机签名")
+ private String driverSign;
+
+ @ApiModelProperty("Fax")
+ @Excel(name = "Fax")
+ private String fax;
+
+ @ApiModelProperty("申报地关区")
+ @Excel(name = "申报地关区")
+ private String declareCustoms;
+
+ @ApiModelProperty("生产商")
+ @Excel(name = "生产商")
+ private String manufacturer;
+
+ @ApiModelProperty("报关员姓名及联系方式")
+ @Excel(name = "报关员姓名及联系方式")
+ private String customsDeclarerInfo;
+
+ @ApiModelProperty("送货地址")
+ @Excel(name = "送货地址")
+ private String deliveryAddr;
+
+ @ApiModelProperty("进出境关别")
+ @Excel(name = "进出境关别")
+ private String entryExitCustoms;
+
+ @ApiModelProperty("起运/运抵国(地区)")
+ @Excel(name = "起运/运抵国(地区)")
+ private String departureArrivalCountry;
+
+ @ApiModelProperty("承运商")
+ @Excel(name = "承运商")
+ private String carrier;
+
+ @ApiModelProperty("柜号")
+ @Excel(name = "柜号")
+ private String containerNo;
+
+ @ApiModelProperty("柜")
+ @Excel(name = "柜")
+ private String containerNoName;
+
+ @ApiModelProperty("出仓日期")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date outboundDate;
+ @ApiModelProperty("完成时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date completeTime;
+ @ApiModelProperty("orderDate")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date orderDate;
+
+ @ApiModelProperty("运输方式")
+ @Excel(name = "运输方式")
+ private String transportModeCode;
+ @ApiModelProperty("运输方式")
+ @Excel(name = "运输方式")
+ private String transportModeName;
+ @ApiModelProperty("监管方式")
+ @Excel(name = "监管方式")
+ private String supervisionModeCode;
+ @ApiModelProperty("监管方式")
+ @Excel(name = "监管方式")
+ private String supervisionModeName;
+ @ApiModelProperty("海关是否查验货物")
+ @Excel(name = "海关是否查验货物")
+ private String customsInspectionFlag;
+ @ApiModelProperty("是否需要报关")
+ @Excel(name = "是否需要报关")
+ private String needDeclareFlag;
+ @ApiModelProperty("是否需要运输")
+ @Excel(name = "是否需要运输")
+ private String needTransportFlag;
+}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java
new file mode 100644
index 000000000..cb1df22e3
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ExcelParseService.java
@@ -0,0 +1,73 @@
+package com.mhd.wms.domain.stockOutOrder.repository.listener;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelReader;
+import com.alibaba.excel.read.builder.ExcelReaderBuilder;
+import com.alibaba.excel.read.metadata.ReadSheet;
+import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
+import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+
+/**
+ * Excel解析服务
+ */
+@Service
+public class ExcelParseService {
+
+ /**
+ * 解析出仓委托单Excel
+ * @param file 上传的Excel文件
+ * @return 解析后的出仓委托单对象
+ */
+ public StockOutOrderDO parseOutboundOrderExcel(MultipartFile file) throws IOException {
+ // 1. 解析表头信息(前11行)
+ HeaderListener headerListener = new HeaderListener();
+
+ // 读取前11行表头
+ // 读取第一个sheet,只读前11行
+ ReadSheet headerSheet = EasyExcel.readSheet(0)
+ .headRowNumber(0)
+ .build();
+
+ ExcelReader headerReader = EasyExcel.read(file.getInputStream())
+ .autoCloseStream(false) // 不自动关闭流,因为后面还需要使用
+ .registerReadListener(headerListener)
+ .registerConverter(new NoConvertConverter()) // 注册自定义转换器
+ .headRowNumber(0) // 从第0行开始读取表头
+ .build();
+
+ // 通过监听器控制只读取前11行
+ headerReader.read(headerSheet);
+
+ // 注意:这里不能关闭reader,因为后面还要用输入流
+
+ // 2. 解析商品明细(从第12行开始)
+ // 重新获取输入流
+ InputStream itemInputStream = file.getInputStream();
+ ItemListener itemListener = new ItemListener();
+
+ // 商品明细需要跳过前11行,从第12行开始读取
+ ExcelReader itemReader = EasyExcel.read(itemInputStream)
+ .autoCloseStream(false) // 不自动关闭流
+ .registerReadListener(itemListener)
+ .registerConverter(new NoConvertConverter()) // 注册自定义转换器
+ .headRowNumber(12) // 关键:设置headRowNumber为11,表示前11行是表头,从第12行开始读取数据
+ .build();
+
+ ReadSheet itemSheet = EasyExcel.readSheet(0).build();
+ itemReader.read(itemSheet);
+
+ // 关闭读取器
+ itemReader.finish();
+
+ // 3. 组装完整的出仓委托单
+ StockOutOrderDO stockOutOrder = headerListener.getStockOutOrder();
+ stockOutOrder.setMaterialDetailList(itemListener.getItemList());
+
+ return stockOutOrder;
+ }
+}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/HeaderListener.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/HeaderListener.java
new file mode 100644
index 000000000..10f6285e6
--- /dev/null
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/HeaderListener.java
@@ -0,0 +1,173 @@
+package com.mhd.wms.domain.stockOutOrder.repository.listener;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.metadata.data.ReadCellData;
+import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
+import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
+import lombok.Getter;
+
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Collections;
+import java.util.ArrayList;
+import java.util.stream.Collectors;
+
+/**
+ * 解析表头信息的监听器(处理前11行)
+ */
+@Getter
+public class HeaderListener extends AnalysisEventListener