diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductDO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductDO.java index b375b7bf7..0b9e2c4fe 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductDO.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductDO.java @@ -66,6 +66,11 @@ public class ErpProductDO extends BaseDO { */ private Long unitId; + /** + * 单位名称 + */ + private String unitName; + /** * 采购单位编号 * diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java index fb47ca113..257974ff4 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/product/ErpProductServiceImpl.java @@ -370,6 +370,15 @@ public class ErpProductServiceImpl implements ErpProductService { } private void fillProductUnitName(ErpProductDO product) { + if (product.getUnitId() == null) { + product.setUnitName(null); + } else { + ErpProductUnitDO unit = productUnitService.getProductUnit(product.getUnitId()); + if (unit == null) { + throw exception(PRODUCT_UNIT_NOT_EXISTS); + } + product.setUnitName(unit.getName()); + } if (product.getPurchaseUnitId() == null) { product.setPurchaseUnitName(null); return; @@ -662,10 +671,14 @@ public class ErpProductServiceImpl implements ErpProductService { product.setSubCategoryName(subCategory.getName()); product.setCategoryType(subCategory.getType()); }); - MapUtils.findAndThen(unitMap, product.getUnitId(), - unit -> product.setUnitName(unit.getName())); - MapUtils.findAndThen(purchaseUnitMap, product.getPurchaseUnitId(), - unit -> product.setPurchaseUnitName(unit.getName())); + if (StrUtil.isBlank(product.getUnitName())) { + MapUtils.findAndThen(unitMap, product.getUnitId(), + unit -> product.setUnitName(unit.getName())); + } + if (StrUtil.isBlank(product.getPurchaseUnitName())) { + MapUtils.findAndThen(purchaseUnitMap, product.getPurchaseUnitId(), + unit -> product.setPurchaseUnitName(unit.getName())); + } product.setPackagingSchemes(packagingSchemeMap.getOrDefault(product.getId(), Collections.emptyList())); product.setSuppliers(supplierMap.getOrDefault(product.getId(), Collections.emptyList())); product.setDefaultSupplierId(defaultSupplierMap.get(product.getId())); @@ -836,6 +849,7 @@ public class ErpProductServiceImpl implements ErpProductService { ErpProductUnitDO unitDO = productUnitService.getProductUnitByName(importProduct.getUnitName()); if (unitDO != null) { productDO.setUnitId(unitDO.getId()); + productDO.setUnitName(unitDO.getName()); } } diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/resources/mapper/product/ErpProductMapper.xml b/yudao-module-erp/yudao-module-erp-biz/src/main/resources/mapper/product/ErpProductMapper.xml index 74b3362c4..68d1605cf 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/resources/mapper/product/ErpProductMapper.xml +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/resources/mapper/product/ErpProductMapper.xml @@ -9,7 +9,7 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ -->