From 1b6949baf871c8f94b3074cbfb59181fa702b9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E9=94=8B?= Date: Sat, 15 Nov 2025 23:54:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BA=A7=E5=93=81=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../front/dto/SaleOrderEntryItemDTO.java | 6 +++ .../productinfo/ProductInfoServiceImpl.java | 47 ++++++++++++------- .../saleorder/SaleOrderServiceImpl.java | 2 + hangtag-ui/hangtag-ui-front/src/locales/en.ts | 1 + .../hangtag-ui-front/src/locales/zh-CN.ts | 1 + .../src/views/oms/order/createorder/index.vue | 2 +- 6 files changed, 40 insertions(+), 19 deletions(-) diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderEntryItemDTO.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderEntryItemDTO.java index c7f23ce..eed258b 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderEntryItemDTO.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderEntryItemDTO.java @@ -43,6 +43,12 @@ public class SaleOrderEntryItemDTO implements Serializable { * 产品名称 */ private String productName; + + /** + * 产品类型名称 + */ + private String productTypeName; + /** * 产品封面 */ diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/productinfo/ProductInfoServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/productinfo/ProductInfoServiceImpl.java index ad3ef46..2b27f26 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/productinfo/ProductInfoServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/productinfo/ProductInfoServiceImpl.java @@ -23,6 +23,7 @@ import cn.hangtag.module.oms.dal.mysql.productprocess.ProductProcessMapper; import cn.hangtag.module.oms.serialnumber.CodingRulesUtils; import cn.hangtag.module.oms.service.brand.BrandService; import cn.hangtag.module.oms.service.draftdesigndata.DraftDesignDataService; +import cn.hangtag.module.oms.service.productprocess.ProductProcessService; import cn.hutool.cache.CacheUtil; import cn.hutool.cache.impl.LFUCache; import cn.hutool.core.bean.BeanUtil; @@ -69,6 +70,8 @@ public class ProductInfoServiceImpl implements ProductInfoService { private final BrandService brandService; private final DraftDesignDataService draftDesignDataService; private final DraftDesignDataMapper draftDesignDataMapper; + + private static final int TMP_CACHE_TIME = 1000 * 60 * 10; @Override @Transactional(rollbackFor = Exception.class) public Long createProductInfo(ProductInfoSaveReqVO createReqVO) { @@ -173,7 +176,12 @@ public class ProductInfoServiceImpl implements ProductInfoService { @Override public ProductInfoDO getProductInfo(Long id) { - return productInfoMapper.selectById(id); + ProductInfoDO productInfoDO = productInfoMapper.selectById(id); + if(FuncUtil.isNotEmpty(productInfoDO)){ + productInfoDO.setProductTypeName(togProductTypeName(productInfoDO.getProductTypeId())); + } + + return productInfoDO; } @Override public ProductInfoRespVO getFrontProductInfo(Long id) { @@ -507,7 +515,7 @@ public class ProductInfoServiceImpl implements ProductInfoService { } return vo; } - private static LFUCache CustomerGroupNameCache = CacheUtil.newLFUCache(10000, 1000 * 60 * 60); + private static LFUCache CustomerGroupNameCache = CacheUtil.newLFUCache(10000, TMP_CACHE_TIME); private ProductInfoRespVO wrapperCustomerGroupName(ProductInfoRespVO vo){ if(FuncUtil.isNotEmpty(vo)){ @@ -564,26 +572,29 @@ public class ProductInfoServiceImpl implements ProductInfoService { } - private static LFUCache ProductTypeNameCache = CacheUtil.newLFUCache(10000, 1000 * 60 * 60); + private static LFUCache ProductTypeNameCache = CacheUtil.newLFUCache(10000, TMP_CACHE_TIME); private ProductInfoRespVO wrapperProductTypeName(ProductInfoRespVO vo){ if(FuncUtil.isNotEmpty(vo)){ - if(FuncUtil.isNotEmpty(vo.getProductTypeId())){ - String s = ProductTypeNameCache.get(vo.getProductTypeId()); - if (FuncUtil.isNotEmpty(s)){ - vo.setProductTypeName(s); - }else { - ProductTypeDO productTypeDO = productTypeMapper.selectById(vo.getProductTypeId()); - if(FuncUtil.isNotEmpty(productTypeDO)){ - vo.setProductTypeName(productTypeDO.getLabel()); - ProductTypeNameCache.put(vo.getProductTypeId(), vo.getProductTypeName()); - } - } - - } + vo.setProductTypeName(togProductTypeName(vo.getProductTypeId())); } return vo; } - private static LFUCache ProductTypeIdCache = CacheUtil.newLFUCache(10000, 1000 * 60 * 60); + private String togProductTypeName(Long productTypeId){ + if(FuncUtil.isNotEmpty(productTypeId)){ + String s = ProductTypeNameCache.get(productTypeId); + if (FuncUtil.isNotEmpty(s)){ + return s; + }else { + ProductTypeDO productTypeDO = productTypeMapper.selectById(productTypeId); + if(FuncUtil.isNotEmpty(productTypeDO)){ + ProductTypeNameCache.put(productTypeId, productTypeDO.getLabel()); + return productTypeDO.getLabel(); + } + } + } + return ""; + } + private static LFUCache ProductTypeIdCache = CacheUtil.newLFUCache(10000, TMP_CACHE_TIME); private Long toProductTypeId(String name){ if(FuncUtil.isEmpty(name)){ @@ -612,7 +623,7 @@ public class ProductInfoServiceImpl implements ProductInfoService { } - private static LFUCache brandNameCache = CacheUtil.newLFUCache(10000, 1000 * 60 * 60); + private static LFUCache brandNameCache = CacheUtil.newLFUCache(10000, TMP_CACHE_TIME); private ProductInfoRespVO wrapperBrandName(ProductInfoRespVO vo){ if(FuncUtil.isNotEmpty(vo)){ if(FuncUtil.isNotEmpty(vo.getBrandId())){ diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java index a1f2e49..b1f1b5a 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java @@ -1199,6 +1199,8 @@ public class SaleOrderServiceImpl implements SaleOrderService { SaleOrderSkuDTO toSaleOrderSkuDTO = new SaleOrderSkuDTO(saleOrderSkuDO); skus.add(toSaleOrderSkuDTO); } + + dto.setProductTypeName( productInfo.getProductTypeName()); dto.setProductSkuList(skus); saleOrderEntry.add(dto); } diff --git a/hangtag-ui/hangtag-ui-front/src/locales/en.ts b/hangtag-ui/hangtag-ui-front/src/locales/en.ts index f8f1b85..3bb96fe 100644 --- a/hangtag-ui/hangtag-ui-front/src/locales/en.ts +++ b/hangtag-ui/hangtag-ui-front/src/locales/en.ts @@ -674,6 +674,7 @@ export default { "btnDel": "Delete", "labelColProductCode": "Product Code", "labelColProductName": "Product Name", + "labelColProductTypeName": 'Product Type', "labelColProducer": "Producer", "labelColProductDetails": "Product Description", "labelColProductPicture": "Product Picture", diff --git a/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts b/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts index acb58e1..1c17332 100644 --- a/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts +++ b/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts @@ -670,6 +670,7 @@ export default { btnDel: '删除', labelColProductCode: '产品编码', labelColProductName: '产品名称', + labelColProductTypeName: '产品类型', labelColProducer: '生产者', labelColProductDetails: '产品描述', labelColProductPicture: '产品图片', diff --git a/hangtag-ui/hangtag-ui-front/src/views/oms/order/createorder/index.vue b/hangtag-ui/hangtag-ui-front/src/views/oms/order/createorder/index.vue index 2ffc49b..19ddf13 100644 --- a/hangtag-ui/hangtag-ui-front/src/views/oms/order/createorder/index.vue +++ b/hangtag-ui/hangtag-ui-front/src/views/oms/order/createorder/index.vue @@ -688,7 +688,7 @@ const submitPreHandler = (showMsg = true) => { item.productSkuList.forEach((item2, i2) => { console.log("item2",item2) if (item2.productTemplateType === '1' && !item2.previewImage) { - const t = `${("createOrder.tipsSkuError3")} ${index + 1} ‘${item.productName}’SKU ${i2 + 1}`; + const t = `${t("createOrder.tipsSkuError3")} ${index + 1} ‘${item.productName}’SKU ${i2 + 1}`; if (showMsg) { useMessage().warning(t) }