From 16c46565f5180bb31c57be7c7eae7be6c9036102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Fri, 23 Jan 2026 15:33:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B7=BB=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/MaterialInventory.java | 20 +++++++- .../repository/po/MaterialInventoryPO.java | 23 ++++++++- .../po/MaterialInventoryQueryListPO.java | 23 ++++++++- .../repository/todo/MaterialInventoryDO.java | 23 ++++++++- .../todo/MaterialInventoryQueryListDO.java | 23 ++++++++- .../repository/listener/HeaderListener.java | 50 ++++++++++++++++++- .../repository/listener/ItemListener.java | 6 ++- .../pickingOrder/PickingOrderApi.java | 2 +- .../MaterialInventoryMapper.xml | 2 +- 9 files changed, 162 insertions(+), 10 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java index 81de5c78f..ea62ab958 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/entity/MaterialInventory.java @@ -129,5 +129,23 @@ public class MaterialInventory extends BaseVOEntity { @Excel(name = "盘点是否可用:0-禁用 1-可用") private Integer isAble; + @ApiModelProperty("单位") + @Excel(name = "单位") + private String unit; -} + @ApiModelProperty("净重(KG)") + @Excel(name = "净重(KG)") + private BigDecimal netWeight; + + @ApiModelProperty("毛重(KG)") + @Excel(name = "毛重(KG)") + private BigDecimal grossWeight; + + @ApiModelProperty("体积") + @Excel(name = "体积") + private BigDecimal volume; + + @ApiModelProperty("面积") + @Excel(name = "面积") + private BigDecimal area; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java index 51483621c..57cc5b97b 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryPO.java @@ -127,4 +127,25 @@ public class MaterialInventoryPO extends MaterialBasePO { @ApiModelProperty("盘点是否可用:0-禁用 1-可用") @Excel(name = "盘点是否可用:0-禁用 1-可用") private Integer isAble; -} + + + @ApiModelProperty("单位") + @Excel(name = "单位") + private String unit; + + @ApiModelProperty("净重(KG)") + @Excel(name = "净重(KG)") + private BigDecimal netWeight; + + @ApiModelProperty("毛重(KG)") + @Excel(name = "毛重(KG)") + private BigDecimal grossWeight; + + @ApiModelProperty("体积") + @Excel(name = "体积") + private BigDecimal volume; + + @ApiModelProperty("面积") + @Excel(name = "面积") + private BigDecimal area; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java index 76bcd0f94..882e00c6c 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/po/MaterialInventoryQueryListPO.java @@ -147,4 +147,25 @@ public class MaterialInventoryQueryListPO extends MaterialBasePO { @ApiModelProperty("盘点是否可用:0-禁用 1-可用") @Excel(name = "盘点是否可用:0-禁用 1-可用") private Integer isAble; -} + + + @ApiModelProperty("单位") + @Excel(name = "单位") + private String unit; + + @ApiModelProperty("净重(KG)") + @Excel(name = "净重(KG)") + private BigDecimal netWeight; + + @ApiModelProperty("毛重(KG)") + @Excel(name = "毛重(KG)") + private BigDecimal grossWeight; + + @ApiModelProperty("体积") + @Excel(name = "体积") + private BigDecimal volume; + + @ApiModelProperty("面积") + @Excel(name = "面积") + private BigDecimal area; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java index b379dd24e..e85d749c9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryDO.java @@ -144,4 +144,25 @@ public class MaterialInventoryDO extends MaterialBaseDO { @ApiModelProperty("物料/库位信息") @Excel(name = "物料/库位信息") private String storageInfo; -} + + + @ApiModelProperty("单位") + @Excel(name = "单位") + private String unit; + + @ApiModelProperty("净重(KG)") + @Excel(name = "净重(KG)") + private BigDecimal netWeight; + + @ApiModelProperty("毛重(KG)") + @Excel(name = "毛重(KG)") + private BigDecimal grossWeight; + + @ApiModelProperty("体积") + @Excel(name = "体积") + private BigDecimal volume; + + @ApiModelProperty("面积") + @Excel(name = "面积") + private BigDecimal area; +} \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryQueryListDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryQueryListDO.java index 08ef7a08f..34e8f12b9 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryQueryListDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/materialInventory/repository/todo/MaterialInventoryQueryListDO.java @@ -168,4 +168,25 @@ public class MaterialInventoryQueryListDO extends MaterialBaseDO { @ApiModelProperty("物料/库位信息") @Excel(name = "物料/库位信息") private String storageInfo; -} + + + @ApiModelProperty("单位") + @Excel(name = "单位") + private String unit; + + @ApiModelProperty("净重(KG)") + @Excel(name = "净重(KG)") + private BigDecimal netWeight; + + @ApiModelProperty("毛重(KG)") + @Excel(name = "毛重(KG)") + private BigDecimal grossWeight; + + @ApiModelProperty("体积") + @Excel(name = "体积") + private BigDecimal volume; + + @ApiModelProperty("面积") + @Excel(name = "面积") + private BigDecimal area; +} \ 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 index 728715c45..af37b8c3a 100644 --- 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 @@ -1,11 +1,18 @@ package com.mhd.wms.domain.stockOutOrder.repository.listener; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.metadata.data.ReadCellData; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSONObject; +import com.mhd.common.core.domain.po.SysDictDataVo; +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.system.api.SystemServiceFeign; import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder; import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO; import lombok.Getter; +import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDate; import java.time.ZoneId; @@ -25,6 +32,8 @@ public class HeaderListener extends AnalysisEventListener> private final StockOutOrderDO stockOutOrder = new StockOutOrderDO(); private int rowNum = 0; private final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + @Autowired + private SystemServiceFeign systemServiceFeign; @Override public void invoke(Map data, AnalysisContext context) { @@ -46,6 +55,19 @@ public class HeaderListener extends AnalysisEventListener> stockOutOrder.setCarrier(getStringValue(rowData[2])); stockOutOrder.setTel(getStringValue(rowData[5])); stockOutOrder.setContainerNoName(getStringValue(rowData[12])); + if (ObjectUtil.isNotNull(getStringValue(rowData[12]))) { + stockOutOrder.setContainerNoName(getStringValue(rowData[12])); + AjaxResult transportMode = systemServiceFeign.selectListByDictType("cabinetNo"); + if (ObjectUtil.isNotNull(transportMode) && transportMode.get("code").equals("200")) { + List transportModeList = JSON.parseArray(JSONObject.toJSONString(transportMode.get("data")), SysDictDataVo.class); + for (SysDictDataVo sysDictDataVo : transportModeList) { + if (getStringValue(rowData[12]).equals(sysDictDataVo.getDictLabel())) { + stockOutOrder.setContainerNo(sysDictDataVo.getDictValue()); + break; + } + } + } + } stockOutOrder.setDriverSign(getStringValue(rowData[16])); break; case 6: // 第7行:出仓日期、fax、运输方式、申报地关区 @@ -55,7 +77,19 @@ public class HeaderListener extends AnalysisEventListener> stockOutOrder.setOutboundDate(date); } stockOutOrder.setFax(getStringValue(rowData[5])); - stockOutOrder.setTransportModeName(getStringValue(rowData[12])); + if (ObjectUtil.isNotNull(getStringValue(rowData[12]))) { + stockOutOrder.setTransportModeName(getStringValue(rowData[12])); + AjaxResult transportMode = systemServiceFeign.selectListByDictType("transportMode"); + if (ObjectUtil.isNotNull(transportMode) && transportMode.get("code").equals("200")) { + List transportModeList = JSON.parseArray(JSONObject.toJSONString(transportMode.get("data")), SysDictDataVo.class); + for (SysDictDataVo sysDictDataVo : transportModeList) { + if (getStringValue(rowData[12]).equals(sysDictDataVo.getDictLabel())) { + stockOutOrder.setTransportModeCode(sysDictDataVo.getDictValue()); + break; + } + } + } + } stockOutOrder.setDeclareCustoms(getStringValue(rowData[16])); break; case 7: // 第8行:生产商、客户名称、报关姓名及联系方式、完成时间 @@ -69,7 +103,19 @@ public class HeaderListener extends AnalysisEventListener> } break; case 8: // 第9行:监管方式、送货地址、海关是否查验货物、进出境关别 - stockOutOrder.setSupervisionModeName(getStringValue(rowData[2])); + if (ObjectUtil.isNotNull(getStringValue(rowData[2]))) { + stockOutOrder.setSupervisionModeName(getStringValue(rowData[2])); + AjaxResult transportMode = systemServiceFeign.selectListByDictType("controlType"); + if (ObjectUtil.isNotNull(transportMode) && transportMode.get("code").equals("200")) { + List transportModeList = JSON.parseArray(JSONObject.toJSONString(transportMode.get("data")), SysDictDataVo.class); + for (SysDictDataVo sysDictDataVo : transportModeList) { + if (getStringValue(rowData[2]).equals(sysDictDataVo.getDictLabel())) { + stockOutOrder.setSupervisionModeCode(sysDictDataVo.getDictValue()); + break; + } + } + } + } stockOutOrder.setDeliveryAddr(getStringValue(rowData[5])); stockOutOrder.setCustomsInspectionFlag(getStringValue(rowData[12])); stockOutOrder.setEntryExitCustoms(getStringValue(rowData[16])); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ItemListener.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ItemListener.java index 0d0243a60..290c6fb05 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ItemListener.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockOutOrder/repository/listener/ItemListener.java @@ -27,7 +27,11 @@ public class ItemListener extends AnalysisEventListener> { // 提取序号(第一列),过滤空行和标题行 String serialNoStr = getStringValue(rowData[0]); - + String materialNo = getStringValue(rowData[1]); + String specificationModel = getStringValue(rowData[2]); + if (materialNo.isEmpty() && specificationModel.isEmpty()) { + return; + } if (serialNoStr.isEmpty() || "序号".equals(serialNoStr) || !isSequenceNumber(serialNoStr)) { return; } diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java index 9c5b014cc..a0bc87498 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/pickingOrder/PickingOrderApi.java @@ -116,4 +116,4 @@ public class PickingOrderApi extends BaseController { PickingOrderDO pickingOrderDO = pickingOrderAssembler.toDO(pickingOrderDTO); return toAjax(pickingOrderApplicationService.completePicking(pickingOrderDO)); } -} +} \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 4e2178332..a445dc686 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.storage_section_id, a.storage_code, a.storage_name, a.storage_location_id, a.storage_location_code, a.storage_location_name, a.material_base_info_id,a.material_detail_id, a.batch_number,a.material_status_code,a.material_status_name,a.container_id,a.container_code,a.container_type,a.container_type_name,IFNULL(a.freeze_quantity,0) freeze_quantity,a.is_able, IFNULL(a.inventory_quantity,0) inventory_quantity, IFNULL(a.allocation_quantity,0) allocation_quantity, a.remark, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, - a.del_flag + a.del_flag,a.unit,a.area,a.NET_WEIGHT,a.GROSS_WEIGHT,a.VOLUME