From d54fbc9d4f8981fa0f7f613b33a28a8cd4f764ea Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期日, 25 十月 2026 16:29:53 +0800
Subject: [PATCH] feat(system): 优化用户搜索功能并完善ERP和MES模块验证逻辑
---
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 53 insertions(+), 0 deletions(-)
diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java
index 7f197ad..1b411b0 100644
--- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java
+++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java
@@ -1,9 +1,14 @@
package cn.iocoder.yudao.module.system.service.dict;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeImportExcelVO;
+import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeImportReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeImportRespVO;
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.dict.vo.type.DictTypeSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
@@ -13,9 +18,12 @@
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
/**
@@ -107,6 +115,51 @@
return dictTypeMapper.selectList();
}
+ @Override
+ public DictTypeImportRespVO importDictTypeList(List<DictTypeImportExcelVO> importDictTypes, DictTypeImportReqVO importReqVO) {
+ importDictTypes = filterList(importDictTypes, item -> StrUtil.isNotBlank(item.getType()));
+ if (CollUtil.isEmpty(importDictTypes)) {
+ throw exception(DICT_TYPE_IMPORT_LIST_IS_EMPTY);
+ }
+ DictTypeImportRespVO respVO = DictTypeImportRespVO.builder()
+ .createDictTypeNames(new ArrayList<>())
+ .updateDictTypeNames(new ArrayList<>())
+ .failureDictTypeNames(new LinkedHashMap<>())
+ .build();
+ importDictTypes.forEach(importDictType -> {
+ try {
+ // 1. 鍒ゆ柇鏄惁瀛樺湪锛堜紭鍏堟寜瀛楀吀绫诲瀷缂栫爜锛屽叾娆℃寜鍚嶇О锛�
+ DictTypeDO existDictType = dictTypeMapper.selectByType(importDictType.getType());
+ if (existDictType == null && StrUtil.isNotBlank(importDictType.getName())) {
+ existDictType = dictTypeMapper.selectByName(importDictType.getName());
+ }
+ if (existDictType == null) {
+ // 2.1 鏂板
+ validateDictTypeNameUnique(null, importDictType.getName());
+ validateDictTypeUnique(null, importDictType.getType());
+ DictTypeDO dictType = BeanUtils.toBean(importDictType, DictTypeDO.class);
+ dictType.setDeletedTime(LocalDateTimeUtils.EMPTY); // 鍞竴绱㈠紩锛岄伩鍏� null 鍊�
+ dictTypeMapper.insert(dictType);
+ respVO.getCreateDictTypeNames().add(importDictType.getType());
+ return;
+ }
+ // 2.2 宸插瓨鍦紝鍒ゆ柇鏄惁鍏佽鏇存柊
+ if (!importReqVO.getUpdateSupport()) {
+ respVO.getFailureDictTypeNames().put(importDictType.getType(),
+ StrUtil.format(DICT_TYPE_TYPE_DUPLICATE.getMsg(), importDictType.getType()));
+ return;
+ }
+ DictTypeDO updateDictType = BeanUtils.toBean(importDictType, DictTypeDO.class)
+ .setId(existDictType.getId());
+ dictTypeMapper.updateById(updateDictType);
+ respVO.getUpdateDictTypeNames().add(importDictType.getType());
+ } catch (ServiceException ex) {
+ respVO.getFailureDictTypeNames().put(importDictType.getType(), ex.getMessage());
+ }
+ });
+ return respVO;
+ }
+
@VisibleForTesting
void validateDictTypeNameUnique(Long id, String name) {
DictTypeDO dictType = dictTypeMapper.selectByName(name);
--
Gitblit v1.9.3