From 05ab6e3f69a5e73624b2573db043f5923e8f7d8b Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 05 十一月 2026 14:17:19 +0800
Subject: [PATCH] fix 修复bug
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java | 84 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 83 insertions(+), 1 deletions(-)
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 26de072..0ad9119 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
@@ -2,8 +2,11 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemImportExcelVO;
+import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemImportRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemSaveReqVO;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
@@ -12,6 +15,7 @@
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.controller.admin.md.item.vo.type.MesMdItemTypeListReqVO;
import cn.iocoder.yudao.module.mes.enums.md.MesMdItemTypeEnum;
import cn.iocoder.yudao.module.mes.enums.wm.BarcodeBizTypeEnum;
@@ -408,4 +412,82 @@
return item;
}
-}
\ No newline at end of file
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public MesMdItemImportRespVO importItemList(List<MesMdItemImportExcelVO> importList, Boolean updateSupport) {
+ MesMdItemImportRespVO respVO = MesMdItemImportRespVO.empty();
+ if (CollUtil.isEmpty(importList)) {
+ return respVO;
+ }
+ // 棰勫姞杞借閲忓崟浣嶃�佺墿鏂欏垎绫伙紝鎸夊悕绉板缓绱㈠紩锛岄伩鍏嶉�愯鏌ュ簱
+ Map<String, Long> unitMeasureMap = new HashMap<>();
+ unitMeasureService.getUnitMeasureListByStatus(CommonStatusEnum.ENABLE.getStatus())
+ .forEach(unit -> unitMeasureMap.put(unit.getName().trim(), unit.getId()));
+ Map<String, Long> itemTypeMap = new HashMap<>();
+ itemTypeService.getItemTypeList(new MesMdItemTypeListReqVO())
+ .forEach(type -> itemTypeMap.put(type.getName().trim(), type.getId()));
+
+ int index = 0;
+ for (MesMdItemImportExcelVO row : importList) {
+ index++;
+ String key = StrUtil.isNotBlank(row.getCode()) ? row.getCode().trim() : "绗� " + index + " 琛�";
+ // 1. 鍩虹鏍¢獙
+ if (StrUtil.isBlank(row.getCode())) {
+ respVO.getFailureCodes().put(key, "鐗╂枡缂栫爜涓嶈兘涓虹┖");
+ continue;
+ }
+ if (StrUtil.isBlank(row.getName())) {
+ respVO.getFailureCodes().put(key, "鐗╂枡鍚嶇О涓嶈兘涓虹┖");
+ continue;
+ }
+ String code = row.getCode().trim();
+ String unitName = StrUtil.trim(row.getUnitMeasureName());
+ Long unitMeasureId = unitName == null ? null : unitMeasureMap.get(unitName);
+ if (unitMeasureId == null) {
+ respVO.getFailureCodes().put(key, "璁¢噺鍗曚綅[" + unitName + "]涓嶅瓨鍦�");
+ continue;
+ }
+ String typeName = StrUtil.trim(row.getItemTypeName());
+ Long itemTypeId = typeName == null ? null : itemTypeMap.get(typeName);
+ if (itemTypeId == null) {
+ respVO.getFailureCodes().put(key, "鐗╂枡鍒嗙被[" + typeName + "]涓嶅瓨鍦�");
+ continue;
+ }
+
+ // 2. 缁勮淇濆瓨瀵硅薄锛堥鑹蹭竴骞跺啓鍏ワ級
+ MesMdItemSaveReqVO saveReqVO = new MesMdItemSaveReqVO();
+ saveReqVO.setCode(code);
+ saveReqVO.setName(row.getName().trim());
+ saveReqVO.setSpecification(StrUtil.trim(row.getSpecification()));
+ saveReqVO.setColor(StrUtil.trim(row.getColor()));
+ saveReqVO.setUnitMeasureId(unitMeasureId);
+ saveReqVO.setItemTypeId(itemTypeId);
+ saveReqVO.setSafeStockFlag(row.getSafeStockFlag());
+ saveReqVO.setMinStock(row.getMinStock());
+ saveReqVO.setMaxStock(row.getMaxStock());
+ saveReqVO.setHighValue(row.getHighValue());
+ saveReqVO.setBatchFlag(row.getBatchFlag());
+ saveReqVO.setRemark(StrUtil.trim(row.getRemark()));
+
+ // 3. 鏂板鎴栨洿鏂帮紝鍗曡澶辫触涓嶅奖鍝嶆暣鎵�
+ MesMdItemDO existItem = itemMapper.selectByCode(code);
+ try {
+ if (existItem == null) {
+ createItem(saveReqVO);
+ respVO.getCreateCodes().add(code);
+ } else if (!Boolean.TRUE.equals(updateSupport)) {
+ respVO.getFailureCodes().put(key, "鐗╂枡缂栫爜宸插瓨鍦紙鍕鹃�夈�屾槸鍚﹁鐩栥�嶅彲鏇存柊锛�");
+ } else {
+ saveReqVO.setId(existItem.getId());
+ saveReqVO.setMdmItemId(existItem.getMdmItemId());
+ updateItem(saveReqVO);
+ respVO.getUpdateCodes().add(code);
+ }
+ } catch (Exception e) {
+ respVO.getFailureCodes().put(key, e.getMessage() == null ? "瀵煎叆澶辫触" : e.getMessage());
+ }
+ }
+ return respVO;
+ }
+
+}
--
Gitblit v1.9.3