田源
2024-12-27 d5894106a09ea9bc900bad176c177763a1df0568
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
@@ -1,6 +1,7 @@
package com.vci.web.service.impl;
import com.alibaba.fastjson.JSON;
import com.vci.constant.EnumIdConstant;
import com.vci.corba.common.PLException;
import com.vci.corba.omd.data.BusinessObject;
import com.vci.corba.omd.etm.EnumItem;
@@ -8,7 +9,10 @@
import com.vci.dto.OsEnumDTO;
import com.vci.dto.OsEnumItemDTO;
import com.vci.omd.utils.ObjectTool;
import com.vci.pagemodel.*;
import com.vci.pagemodel.KeyValue;
import com.vci.pagemodel.OsEnumItemVO;
import com.vci.pagemodel.OsEnumVO;
import com.vci.pagemodel.OsStatusVO;
import com.vci.po.OsEnumPO;
import com.vci.starter.poi.bo.ReadExcelOption;
import com.vci.starter.poi.bo.WriteExcelData;
@@ -22,11 +26,11 @@
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.util.*;
import com.vci.constant.EnumIdConstant;
import com.vci.web.other.AllOsEnumVOMapThreadLocal;
import com.vci.web.service.OsEnumServiceI;
import com.vci.web.service.OsLifeCycleServiceI;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.util.Func;
import com.vci.starter.web.util.Lcm.Func;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.WebUtil;
import org.apache.commons.lang3.StringUtils;
@@ -194,7 +198,10 @@
      if(StringUtils.isBlank(enumCode)){
         return  null;
      }
      Map<String, OsEnumVO> enumVOMap = self.selectAllEnumMap();
      Map<String, OsEnumVO> enumVOMap = AllOsEnumVOMapThreadLocal.get();
      if(enumVOMap == null){
         enumVOMap = self.selectAllEnumMap();
      }
      if(MY_DATA_SECRET.equalsIgnoreCase(enumCode)){
         //当前用户
         OsEnumVO enumVO = enumVOMap.getOrDefault(EnumIdConstant.DATASECRET_ENUMNAME, null);
@@ -605,7 +612,7 @@
         }
         //当前excel中是否重复用的判重Map:(key:判重属性,value:行号)
         Map<String, String> excelReapeat = new HashMap<>();
         //判断必填属性是否为空,用户是否已存在,以及部门是否填错等校验逻辑
         //判断必填属性是否为空等等
         List<String> finalRepeatEnumId = repeatEnumId;
         newPOList.stream().forEach(osEnumPO -> {
            if(Func.isBlank(osEnumPO.getId())){//枚举名
@@ -618,7 +625,7 @@
               throw new VciBaseException("第【"+osEnumPO.getRowIndex()+"】行数据,枚举名称只能为英文字母");
            }else if(excelReapeat.containsKey(osEnumPO.getId())){//枚举名表格中判重
               throw new VciBaseException("第【"+excelReapeat.get(osEnumPO.getId())+"】行和第【"+osEnumPO.getRowIndex()+"】行数据,枚举名重复");
            }else if (Func.isNotEmpty(osEnumVOList) && finalRepeatEnumId.contains(osEnumPO.getId())){//2、判断枚举名是否与系统中重复
            }else if (Func.isNotEmpty(finalRepeatEnumId) && finalRepeatEnumId.contains(osEnumPO.getId())){//2、判断枚举名是否与系统中重复
               throw new VciBaseException("第【"+osEnumPO.getRowIndex()+"】行,枚举名在系统中已经存在,请修改!");
            }
            //先对枚举名excel中需要判重处理
@@ -642,7 +649,7 @@
         }
      }catch (Exception e){
         if(logger.isErrorEnabled()){
            logger.error("读取excel内容时或保存用户信息时出现了错误,具体原因:",VciBaseUtil.getExceptionMessage(e));
            logger.error("读取excel内容时或保存枚举时出现了错误,具体原因:",VciBaseUtil.getExceptionMessage(e));
         }
         e.printStackTrace();
         return BaseResult.fail(VciBaseUtil.getExceptionMessage(e),new String[]{},e);
@@ -698,8 +705,7 @@
   private EnumType osEnumDTO2EnumType(OsEnumDTO osEnumDTO){
      EnumType enumType = new EnumType();
      enumType.oid = osEnumDTO.getOid();
      //枚举名统一转成小写,避免后期出现其他问题
      enumType.name = osEnumDTO.getId().toLowerCase(Locale.ROOT);
      enumType.name = osEnumDTO.getId();//osEnumDTO.getId().toLowerCase(Locale.ROOT);
      enumType.label = osEnumDTO.getName();
      enumType.length = osEnumDTO.getLength();
      enumType.creator = osEnumDTO.getCreator();