From c600dfa58d08ad275aa9af765a47cf0a4b4243b6 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 9 Apr 2026 14:00:02 +0800 Subject: [PATCH] ✨ feat(mes): 新增客户和供应商信息字段 --- yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientImportExcelVO.java | 33 +++++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor/vo/MesMdVendorImportExcelVO.java | 33 +++++++++++++++++++++++++++++++++ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java | 1 + yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java | 15 ++++++++++++--- 5 files changed, 80 insertions(+), 3 deletions(-) diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientImportExcelVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientImportExcelVO.java index 64f5c12..ee99e1c 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientImportExcelVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/vo/MesMdClientImportExcelVO.java @@ -37,6 +37,39 @@ public class MesMdClientImportExcelVO { @ExcelProperty("客户邮箱地址") private String email; + @ExcelProperty("客户英文名称") + private String englishName; + + @ExcelProperty("客户简介") + private String description; + + @ExcelProperty("客户地址") + private String address; + + @ExcelProperty("客户官网地址") + private String website; + + @ExcelProperty("联系人1") + private String contact1Name; + + @ExcelProperty("联系人1-电话") + private String contact1Telephone; + + @ExcelProperty("联系人1-邮箱") + private String contact1Email; + + @ExcelProperty("联系人2") + private String contact2Name; + + @ExcelProperty("联系人2-电话") + private String contact2Telephone; + + @ExcelProperty("联系人2-邮箱") + private String contact2Email; + + @ExcelProperty("统一社会信用代码") + private String creditCode; + @ExcelProperty(value = "状态", converter = DictConvert.class) @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.COMMON_STATUS) private Integer status; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor/vo/MesMdVendorImportExcelVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor/vo/MesMdVendorImportExcelVO.java index 44aaa35..237e603 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor/vo/MesMdVendorImportExcelVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor/vo/MesMdVendorImportExcelVO.java @@ -37,6 +37,39 @@ public class MesMdVendorImportExcelVO { @ExcelProperty("供应商邮箱地址") private String email; + @ExcelProperty("供应商英文名称") + private String englishName; + + @ExcelProperty("供应商简介") + private String description; + + @ExcelProperty("供应商地址") + private String address; + + @ExcelProperty("供应商官网地址") + private String website; + + @ExcelProperty("联系人1") + private String contact1Name; + + @ExcelProperty("联系人1-电话") + private String contact1Telephone; + + @ExcelProperty("联系人1-邮箱") + private String contact1Email; + + @ExcelProperty("联系人2") + private String contact2Name; + + @ExcelProperty("联系人2-电话") + private String contact2Telephone; + + @ExcelProperty("联系人2-邮箱") + private String contact2Email; + + @ExcelProperty("统一社会信用代码") + private String creditCode; + @ExcelProperty(value = "状态", converter = DictConvert.class) @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.COMMON_STATUS) private Integer status; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java index 14a221b..69a3c7a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java @@ -18,6 +18,7 @@ public interface ErrorCodeConstants { ErrorCode MD_ITEM_TYPE_CODE_DUPLICATE = new ErrorCode(1_040_100_005, "同一父分类下已存在该编码的分类"); ErrorCode MD_ITEM_TYPE_PARENT_IS_CHILD = new ErrorCode(1_040_100_006, "不能设置自己的子分类为父分类"); ErrorCode MD_ITEM_TYPE_EXITS_ITEM = new ErrorCode(1_040_100_007, "该分类下存在物料,无法删除"); + ErrorCode MD_ITEM_TYPE_NOT_LEAF = new ErrorCode(1_040_100_008, "只能将物料挂载到叶子分类(该分类下存在子分类)"); // ========== MES 基础数据-计量单位(1-040-101-000) ========== ErrorCode MD_UNIT_MEASURE_NOT_EXISTS = new ErrorCode(1_040_101_000, "计量单位不存在"); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java index 698ec85..1b7b9bb 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java @@ -12,6 +12,7 @@ import lombok.Getter; @AllArgsConstructor public enum MesMdAutoCodeRuleCodeEnum { + MD_ITEM_TYPE_CODE("MD_ITEM_TYPE_CODE", "物料分类编码"), MD_ITEM_CODE("MD_ITEM_CODE", "物料编码"), MD_VENDOR_CODE("MD_VENDOR_CODE", "供应商编码"), MD_CLIENT_CODE("MD_CLIENT_CODE", "客户编码"), diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java index d3a6adf..72d1e22 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java @@ -17,8 +17,10 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper; import cn.iocoder.yudao.module.mes.enums.md.MesMdItemTypeEnum; +import cn.iocoder.yudao.module.mes.enums.md.autocode.MesMdAutoCodeRuleCodeEnum; import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum; import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; +import cn.iocoder.yudao.module.mes.service.md.autocode.MesMdAutoCodeRecordService; import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -59,6 +61,8 @@ public class MesMdItemServiceImpl implements MesMdItemService { private MesMdProductSipService productSipService; @Resource private MesWmBarcodeService barcodeService; + @Resource + private MesMdAutoCodeRecordService autoCodeRecordService; @Override public Long createItem(MesMdItemSaveReqVO createReqVO) { @@ -183,6 +187,11 @@ public class MesMdItemServiceImpl implements MesMdItemService { if (itemTypeService.getItemType(itemTypeId) == null) { throw exception(MD_ITEM_TYPE_NOT_EXISTS); } + // 校验必须是叶子分类(没有子分类) + List children = itemTypeService.getItemTypeChildrenList(itemTypeId); + if (CollUtil.isNotEmpty(children)) { + throw exception(MD_ITEM_TYPE_NOT_LEAF); + } } private void validateUnitMeasureExists(Long unitMeasureId) { @@ -276,11 +285,11 @@ public class MesMdItemServiceImpl implements MesMdItemService { importItems.forEach(importItem -> { int currentIndex = index.getAndIncrement(); // 2.1 校验字段 - String key = StrUtil.blankToDefault(importItem.getCode(), "第 " + currentIndex + " 行"); if (StrUtil.isBlank(importItem.getCode())) { - respVO.getFailureCodes().put(key, "物料编码不能为空"); - return; + // 空编码时自动生成 + importItem.setCode(autoCodeRecordService.generateAutoCode(MesMdAutoCodeRuleCodeEnum.MD_ITEM_CODE.getCode())); } + String key = importItem.getCode(); if (StrUtil.isBlank(importItem.getName())) { respVO.getFailureCodes().put(key, "物料名称不能为空"); return; -- libgit2 0.21.4