diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java index c7fcf28d..c8010bcf 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/MaterialController.java @@ -176,4 +176,13 @@ public class MaterialController extends BaseController { public ApiResult queryMaterial(@Valid @RequestBody @NotNull EbomMaterialQO request) { return ApiResult.success(materialControllerService.queryMaterial(request)); } + + /** + * 批量从MPM系统同步图纸数据 + */ + @PostMapping("/mpm/syncFromMpmBatch") + public ApiResult syncFromMpmBatch(/*@Valid */@RequestBody @NotEmpty List requests) { + materialControllerService.syncFromMpmBatch(requests); + return ApiResult.success(); + } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java index d5896934..65a6616a 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageController.java @@ -11,6 +11,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -137,6 +138,24 @@ public class StructuralPackageController extends BaseController { public ApiResult exportPdf(@Valid @RequestParam @NotNull Long id) throws Exception { return ApiResult.success(packageControllerService.exportPdf(id)); } + + /** + * 从MPM系统同步钢构包数据(MPM推送数据到本系统) + */ + @PostMapping("/mpm/syncFromMpm") + public ApiResult syncFromMpm(/*@Valid */@RequestBody PackageAddQO request) { + packageControllerService.syncFromMpm(request); + return ApiResult.success(); + } + + /** + * 批量从MPM系统同步钢构包数据 + */ + @PostMapping("/mpm/syncFromMpmBatch") + public ApiResult syncFromMpmBatch(/*@Valid */@RequestBody @NotEmpty List requests) { + packageControllerService.syncFromMpmBatch(requests); + return ApiResult.success(); + } // // /** // * 导出老鼠图PDF diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java index d5c548ff..71b65c8c 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java @@ -60,6 +60,9 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; +import lombok.extern.slf4j.Slf4j; + +@Slf4j @Component public class MaterialControllerService { @@ -392,4 +395,34 @@ public class MaterialControllerService { public List getMaterials(@Valid @NotEmpty Set nos) { return materialService.getMaterials(nos); } + + /** + * 批量从MPM系统同步图纸数据 + * 每次推送都是新版本,直接新增 + */ + @Transactional + public void syncFromMpmBatch(@Valid @NotEmpty List requests) { + log.info("开始批量从MPM系统同步图纸数据,共{}条", requests.size()); + + for (MaterialAddQO request : requests) { + try { + log.info("开始从MPM系统同步图纸数据: {}", request.getNo()); + + WmsMaterial wmsMaterial = Convert.convert(WmsMaterial.class, request); + + wmsMaterial.setCreateBy("MPM_SYNC"); + wmsMaterial.setCreateTime(LocalDateTime.now()); + wmsMaterial.setFromMpm(true); // 标记为来自MPM + + materialService.add(wmsMaterial); + + log.info("成功从MPM系统同步图纸数据: {}, 版本: {}", request.getNo(), wmsMaterial.getVersion()); + } catch (Exception e) { + log.error("同步图纸失败: {}, 错误: {}", request.getNo(), e.getMessage(), e); + // 继续处理下一条,不中断整个批量同步 + } + } + + log.info("批量从MPM系统同步图纸数据完成"); + } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java index 0abfcb88..bb302b6a 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java @@ -33,6 +33,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.math.NumberUtils; @@ -559,4 +560,94 @@ public class StructuralPackageControllerService { //// sapService.zwm3A02(qo.getFactory(), qo.getMaterialNo(), qo.getReceivedWarehouse(), qo.getBinNos()); // } // } + + /** + * 从 MPM系统同步钢构包数据(MPM推送数据到本系统) + * 每次推送都是新版本,直接新增 + */ + @Transactional + public void syncFromMpm(@Valid PackageAddQO request) { + log.info("开始从MPM系统同步钢构包数据: {}, 版本: {}", request.getNo(), request.getVersion()); + + WmsStructuralPackage structuralPackage = Convert.convert(WmsStructuralPackage.class, request); + structuralPackage.setOrderNo(getOrderNo()); + structuralPackage.setCreateBy("MPM_SYNC"); + structuralPackage.setCreateTime(LocalDateTime.now()); + + String modelNo = request.getModelNos(); + if (StrUtil.isNotBlank(modelNo)) { + List modelNos = StrUtil.split(modelNo, ","); + if (CollectionUtil.isNotEmpty(modelNos)) { + List models = modelService.lambdaQuery().select(WmsModel::getId, WmsModel::getNo).eq(WmsModel::getEnable, true).in(WmsModel::getNo, modelNos).list(); + modelNos.removeIf(mno -> models.stream().anyMatch(model -> model.getNo().equals(mno))); + VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(modelNos)).throwMessage("以下机型编号无效:" + StrUtil.join(",", modelNos)); + structuralPackage.setModelIds(StrUtil.join(",", models.stream().map(WmsModel::getId).toList())); + } + } + + structuralPackage.setFromMpm(true); // 标记为来自MPM + structuralPackage.setLatest(true); // 设置为最新版本 + + // 将同编号的其他版本设置为非最新 + packageService.lambdaUpdate() + .set(WmsStructuralPackage::getLatest, false) + .eq(WmsStructuralPackage::getNo, request.getNo()) + .update(); + + // 处理零件清单,补充完整的物料信息 + List materials = new ArrayList<>(); + for (PackageMaterialDTO dto : request.getMaterials()) { + // 从物料服务获取当前最新的物料信息 + WmsMaterial material = materialService.getCurrent(dto.getNo()); + if (Objects.isNull(material)) { + log.warn("零件编码{}不存在,跳过", dto.getNo()); + continue; + } + + // 补充完整的物料信息 + dto.setName(material.getDescribe()); + dto.setDrawingNo(material.getDrawingNo()); + dto.setImage(material.getImage()); + + // 如果MPM推送的版本号为空,使用物料当前版本 + if (Objects.isNull(dto.getVersion())) { + dto.setVersion(material.getVersion()); + } + + dto.setCreateBy("MPM_SYNC"); + dto.setCreateTime(DateTimeUtil.format(LocalDateTime.now())); + materials.add(dto); + } + + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(materials)).throwMessage("有效的零件不能为空"); + + // 计算总重 + structuralPackage.setWeight(materials.stream() + .map(m -> m.getWeight().multiply(m.getNum())) + .reduce(BigDecimal.ZERO, BigDecimal::add)); + + structuralPackage.setMaterials(JSONUtil.toJsonStr(materials)); + packageService.add(structuralPackage); + + log.info("成功从MPM系统同步钢构包数据: {}, 版本: {}, 零件数: {}", request.getNo(), request.getVersion(), materials.size()); + } + + /** + * 批量从MPM系统同步钢构包数据 + */ + @Transactional + public void syncFromMpmBatch(@Valid @NotEmpty List requests) { + log.info("开始批量从MPM系统同步钢构包数据,共{}条", requests.size()); + + for (PackageAddQO request : requests) { + try { + syncFromMpm(request); + } catch (Exception e) { + log.error("同步钢构包失败: {}, 错误: {}", request.getNo(), e.getMessage(), e); + // 继续处理下一条,不中断整个批量同步 + } + } + + log.info("批量从MPM系统同步钢构包数据完成"); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelExportDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelExportDTO.java new file mode 100644 index 00000000..40ba4e67 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelExportDTO.java @@ -0,0 +1,96 @@ +package com.nflg.wms.common.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; +import org.ttzero.excel.annotation.ExcelColumn; +import org.ttzero.excel.annotation.MediaColumn; + +import java.math.BigDecimal; + +@Data +@Accessors(chain = true) +public class ShipmentMaterialExcelExportDTO { + + /** + * 物料编号 + */ + @ExcelColumn("物料编号") + private String no; + + /** + * 物料描述 + */ + @ExcelColumn("物料描述") + private String describe; + + /** + * 英文描述 + */ + @ExcelColumn("英文描述") + private String describeEn; + + /** + * 图号 + */ + @ExcelColumn("图号") + private String drawingNo; + + /** + * 重量 + */ + @ExcelColumn("重量") + private BigDecimal weight; + + /** + * 长度 + */ + @ExcelColumn("长度") + private BigDecimal length; + + /** + * 宽度 + */ + @ExcelColumn("宽度") + private BigDecimal width; + + /** + * 高度 + */ + @ExcelColumn("高度") + private BigDecimal height; + + /** + * 图片URL + */ + @MediaColumn + private String image; + + /** + * 图片类型 + */ + private String imageType; +// +// /** +// * 创建人 +// */ +// @ExcelColumn("创建人") +// private String createBy; +// +// /** +// * 创建时间 +// */ +// @ExcelColumn("创建时间") +// private String createTime; +// +// /** +// * 最后更新人 +// */ +// @ExcelColumn("最后更新人") +// private String updateBy; +// +// /** +// * 最后更新时间 +// */ +// @ExcelColumn("最后更新时间") +// private String updateTime; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelImportDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelImportDTO.java new file mode 100644 index 00000000..d86d55e6 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelImportDTO.java @@ -0,0 +1,56 @@ +package com.nflg.wms.common.pojo.dto; + +import lombok.Data; +import org.ttzero.excel.annotation.ExcelColumn; + +@Data +public class ShipmentMaterialExcelImportDTO { + + /** + * 物料编号 + */ + @ExcelColumn("*物料编号") + private String no; + + /** + * 物料描述 + */ + @ExcelColumn("物料描述") + private String describe; + + /** + * 重量 + */ + @ExcelColumn("*重量") + private String weight; + + /** + * 长度 + */ + @ExcelColumn("*长度") + private String length; + + /** + * 宽度 + */ + @ExcelColumn("*宽度") + private String width; + + /** + * 高度 + */ + @ExcelColumn("*高度") + private String height; + + /** + * 图片URL + */ + @ExcelColumn("图片URL") + private String image; + + /** + * 错误信息 + */ + @ExcelColumn("错误信息") + private String error; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelTemplateExportDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelTemplateExportDTO.java new file mode 100644 index 00000000..9b3d40c4 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/ShipmentMaterialExcelTemplateExportDTO.java @@ -0,0 +1,41 @@ +package com.nflg.wms.common.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; +import org.ttzero.excel.annotation.ExcelColumn; + +@Data +@Accessors(chain = true) +public class ShipmentMaterialExcelTemplateExportDTO { + + /** + * 物料编号 + */ + @ExcelColumn("*物料编号") + private String no; + + /** + * 重量 + */ + @ExcelColumn("*重量") + private String weight; + + /** + * 长度 + */ + @ExcelColumn("*长度") + private String length; + + /** + * 宽度 + */ + @ExcelColumn("*宽度") + private String width; + + /** + * 高度 + */ + @ExcelColumn("*高度") + private String height; + +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java index 5ebe1bc5..f4a5564c 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterialAddQO.java @@ -71,4 +71,9 @@ public class MaterialAddQO { */ @NotNull private Long supplierId; + + /** + * 版本号 + */ + private Integer version; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/PackageAddQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/PackageAddQO.java index bcaba7af..3117bfd3 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/PackageAddQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/PackageAddQO.java @@ -75,4 +75,14 @@ public class PackageAddQO { @Valid @NotEmpty private List materials; + + /** + * 托盘数量 + */ + private BigDecimal trayNum; + + /** + * 机型编号(多个,隔开) + */ + private String modelNos; } diff --git a/nflg-wms-gateway/src/main/java/com/nflg/wms/gateway/satoken/SaTokenConfigure.java b/nflg-wms-gateway/src/main/java/com/nflg/wms/gateway/satoken/SaTokenConfigure.java index d07f491f..a6bf9bf3 100644 --- a/nflg-wms-gateway/src/main/java/com/nflg/wms/gateway/satoken/SaTokenConfigure.java +++ b/nflg-wms-gateway/src/main/java/com/nflg/wms/gateway/satoken/SaTokenConfigure.java @@ -38,7 +38,9 @@ public class SaTokenConfigure { .setAuth(obj -> { // 登录校验 -- 拦截所有路由 SaRouter.match("/**") - .notMatch("/auth/**","/srm-receive/**", "/shipment/material/**","**/actuator/**") + .notMatch("/auth/**","/srm-receive/**", "/shipment/material/**","**/actuator/**" + // MPM 免登录接口 + , "/admin/material/mpm/**", "/admin/package/mpm/**") .check(r -> { String traceId = SaHolder.getRequest().getHeader(Constant.TRACE_ID_HEADER, IdUtil.getSnowflakeNextIdStr()); MDC.put(Constant.TRACE_ID, traceId); diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java index 8e1afb0a..5377793e 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsMaterial.java @@ -122,4 +122,9 @@ public class WmsMaterial implements Serializable { public Boolean getComplete() { return StrUtil.isNotBlank(getImage()) && Objects.nonNull(getWeight()); } + + /** + * 是否来自MPM + */ + private Boolean fromMpm; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackage.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackage.java index 5e4a9573..137a2fef 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackage.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackage.java @@ -116,4 +116,14 @@ public class WmsStructuralPackage implements Serializable { * 最新版本 */ private Boolean latest; + + /** + * 托盘数量 + */ + private BigDecimal trayNum; + + /** + * 是否来自MPM + */ + private Boolean fromMpm; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentMaterialCodeItemQrMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentMaterialCodeItemQrMapper.java index aab075f9..1428c760 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentMaterialCodeItemQrMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsShipmentMaterialCodeItemQrMapper.java @@ -3,6 +3,7 @@ package com.nflg.wms.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; import com.nflg.wms.repository.entity.WmsShipmentMaterialCodeItemQr; +import com.nflg.wms.repository.mapper.dto.GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO; import java.util.List; import java.util.Set; @@ -17,6 +18,8 @@ import java.util.Set; */ public interface WmsShipmentMaterialCodeItemQrMapper extends BaseMapper { + String getQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatus(GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO params); + ShipmentMaterialCodeQRVO getInfoByQRCode(String code); List getListVOByItemIds(List ids); diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/dto/GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/dto/GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO.java new file mode 100644 index 00000000..401be769 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/dto/GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO.java @@ -0,0 +1,11 @@ +package com.nflg.wms.repository.mapper.dto; + +import lombok.Data; + +@Data +public class GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO { + private String materialNo; + private String deviceNo; + private String productionOrderNumber; + private Integer status; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentMaterialCodeItemQrService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentMaterialCodeItemQrService.java index c01ff95a..0c114393 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentMaterialCodeItemQrService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsShipmentMaterialCodeItemQrService.java @@ -1,9 +1,9 @@ package com.nflg.wms.repository.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; import com.nflg.wms.repository.entity.WmsShipmentMaterialCodeItemQr; -import com.baomidou.mybatisplus.extension.service.IService; -import jakarta.validation.constraints.NotEmpty; +import com.nflg.wms.repository.mapper.dto.GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO; import java.util.List; import java.util.Set; @@ -18,6 +18,8 @@ import java.util.Set; */ public interface IWmsShipmentMaterialCodeItemQrService extends IService { + String getQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatus(GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO params); + ShipmentMaterialCodeQRVO getInfoByQRCode(String code); List getListVOByItemIds(List ids); diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentMaterialCodeItemQrServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentMaterialCodeItemQrServiceImpl.java index eb2315bf..bd15e710 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentMaterialCodeItemQrServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsShipmentMaterialCodeItemQrServiceImpl.java @@ -3,6 +3,7 @@ package com.nflg.wms.repository.service.impl; import com.nflg.wms.common.pojo.vo.ShipmentMaterialCodeQRVO; import com.nflg.wms.repository.entity.WmsShipmentMaterialCodeItemQr; import com.nflg.wms.repository.mapper.WmsShipmentMaterialCodeItemQrMapper; +import com.nflg.wms.repository.mapper.dto.GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO; import com.nflg.wms.repository.service.IWmsShipmentMaterialCodeItemQrService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; @@ -21,6 +22,11 @@ import java.util.Set; @Service public class WmsShipmentMaterialCodeItemQrServiceImpl extends ServiceImpl implements IWmsShipmentMaterialCodeItemQrService { + @Override + public String getQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatus(GetQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatusParamsDTO params) { + return baseMapper.getQRCodeByMaterialNoAndDeviceNoAndProductionOrderNumberAndStatus(params); + } + @Override public ShipmentMaterialCodeQRVO getInfoByQRCode(String code) { return baseMapper.getInfoByQRCode(code); diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentMaterialCodeItemQrMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentMaterialCodeItemQrMapper.xml index bc7cab8e..c17f5cea 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsShipmentMaterialCodeItemQrMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsShipmentMaterialCodeItemQrMapper.xml @@ -2,6 +2,27 @@ + +