Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeMdmInfaceImpl.java
@@ -56,6 +56,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ForkJoinPool;
@@ -158,6 +161,8 @@
            // webservice请求方式获取HttpServletRequest对象
            request = (HttpServletRequest)webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
         }catch (Exception e){
            e.printStackTrace();
            log.error("获取httpServletRequest失败,原因:***********:",e);
            throw new ServiceException("获取httpServletRequest失败,原因:"+e.getMessage());
         }
      }else {
@@ -173,7 +178,7 @@
      List<ResultMdMapping> resultMdMappingList=new ArrayList<>();
      String message="";
      AtomicBoolean success = new AtomicBoolean(true);
      List<Map<String,String>> masterDataList = new ArrayList<>();
      List<Map<String,Object>> masterDataList = new ArrayList<>();
      AtomicReference<ClassifyConfig> currentClassifyConfig = new AtomicReference<>(new ClassifyConfig());
      try {
         if (mdmParamData == null) {
@@ -213,12 +218,14 @@
            });
            masterDataList.stream().forEach(masterData -> {
                  masterData.forEach((field, vaule) -> {
                     String newValue="";
                     if (fieldClassifyConfigMap.containsKey(field)) {
                        vaule=StringUtils.isBlank(vaule) ? "" : vaule;
                        //vaule=StringUtils.isBlank(vaule) ? "" : vaule;
                        newValue=objectToStr(vaule);
                        List<ClassifyConfig> classifyConfigs = fieldClassifyConfigMap.get(field);
                        Map<String, ClassifyConfig> classifyConfigMap = classifyConfigs.stream().filter(classify -> classify != null && StringUtils.isNotBlank(classify.getSourceClassifyCode())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getSourceClassifyCode(), t -> t));
                        if (classifyConfigMap.containsKey(vaule)) {
                           currentClassifyConfig.set(classifyConfigMap.get(vaule));
                        if (classifyConfigMap.containsKey(newValue)) {
                           currentClassifyConfig.set(classifyConfigMap.get(newValue));
                        }
                     }
                  });
@@ -282,8 +289,9 @@
               /***
                * 根据配置文件获取枚举值
                */
               String newValue=objectToStr(vaule);
               if(fields.contains(field)){//如果是枚举,则需要转换枚举值
                  String enumFiled = masterData.get(field);
                  String enumFiled = newValue;
                  EnumerableData enumerableData = JSONObject.toJavaObject(JSONObject.parseObject(enumFiled), EnumerableData.class);
                  String enumCode = enumerableData.getCode();
                  //String enumCodeValue=enumerableData.getName();
@@ -294,7 +302,7 @@
               }else {
                  ProppertyVO proppertyVO = new ProppertyVO();
                  proppertyVO.setKey(field);
                  proppertyVO.setValue(vaule);
                  proppertyVO.setValue(newValue);
                  proppertyVOList.add(proppertyVO);
               }
@@ -434,6 +442,8 @@
                           });
                        }catch (Throwable e){
                           mesg="计算码段码值出现异常:"+e.getMessage();
                           e.printStackTrace();
                           log.error("计算码段码值出现异常,原因:***********:",e);
                           new Throwable("计算码段码值出现异常:"+e.getMessage());
                        }
                     }
@@ -469,6 +479,7 @@
                     }
                  }
               } catch (Exception e) {
                  log.error("集成系统:【"+systemCode+"】申请编码失败:,原因:***********:",e);
                  mesg="集成系统:【"+systemCode+"】申请编码失败:" + e.getMessage();
                  mesg = e.getMessage();
                  e.printStackTrace();
@@ -502,7 +513,7 @@
         }
      } catch (Throwable e) {
         e.printStackTrace();
         log.info("错误信息***********:"+e);
         log.error("集成系统:【"+systemCode+"】执行集成失败:",e);
         success.set(false);
         message = "集成系统:【"+systemCode+"】执行集成失败:" + e.getMessage();
         msg ="集成系统:【"+systemCode+"】执行集成失败" + e.getMessage();
@@ -531,6 +542,7 @@
         //记录日志
         this.saveLogs(systemCode, systemCode, data, resultStr, success.get(), msg, "syncDataForMDM");
      } catch (Throwable e) {
         log.error("保存日志出错,原因:",e);
         e.printStackTrace();
      }
      return mdmResultData;
@@ -588,6 +600,8 @@
         }
      }catch (Throwable e){
         objerrorCode="100";
         log.error("获取分类信息失败:",e);
         e.printStackTrace();
         throw    new  Throwable("获取分类信息失败:"+e.getMessage());
      }
      return classifyVO;
@@ -610,6 +624,7 @@
         } catch (Throwable e) {
            objerrorCode = "1";
            e.printStackTrace();
            log.error("集成系统标识为:【" + systemId + "】,分类库为:【" + libray + "】的集成属性配置文件读取失败",e);
            throw new Throwable("集成系统标识为:【" + systemId + "】,分类库为:【" + libray + "】的集成属性配置文件读取失败");
         }
         // String path = stringStringMap.get(systemId);
@@ -711,7 +726,8 @@
      }catch (Throwable e){
         objerrorCode="1";
         e.printStackTrace();
         throw new   Throwable("组织数据映射值失败");
         log.error("组织数据映射值失败",e);
         throw new   Throwable("组织数据映射值失败"+e);
      }
   }
   /*private void codeValueList(List<CodeBasicSecVO> secVOList,String codeseclengthfield ){
@@ -814,4 +830,66 @@
      dockingLogeService.save(dockingLoge);
      log.info("集成推送数据,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
   }
   /***
    * 属性类型转换
    * @param vaule
    * @return
    */
   private  String objectToStr(Object vaule) {
      String newValue="";
      if(vaule ==null||"".equals(vaule)||vaule==""){
         return "";
      }
      try {
         if (vaule instanceof Integer) {
            Integer intValue = (Integer) vaule;
            newValue = String.valueOf(intValue);
         } else if (vaule instanceof Boolean) {
            boolean boolValue = (Boolean) vaule;
            newValue = Boolean.toString(boolValue);
         } else if (vaule instanceof Timestamp) {
            Timestamp timestampValue = (Timestamp) vaule;
            newValue = timestamp2Str(timestampValue);
         } else if (vaule instanceof Date) {
            Date dataValue = (Date) vaule;
            newValue = date2Str(dataValue, "yyyy-MM-dd HH:mm:ss");
         }else if (vaule instanceof BigDecimal){
            BigDecimal bigDecimal=(BigDecimal)vaule;
            newValue =  bigDecimal.toString();
         } else {
            return vaule.toString();
         }
      }catch (Throwable e){
         //   log.error("属性类型转换错误",e);
         e.printStackTrace();
      }
      return newValue;
   }
   private String date2Str(Date date, String format) {
      if (null == date) {
         return null;
      } else {
         if (format == null || format.trim().length() == 0) {
            format = "yyyy-MM-dd HH:mm:ss.SSS";
         }
         SimpleDateFormat sdf = new SimpleDateFormat(format);
         return sdf.format(date);
      }
   }
   private  String timestamp2Str(Timestamp time) {
      Date date = null;
      if (null == time) {
         return null;
      } else {
         if (null != time) {
            date = new Date(time.getTime());
         }
         return date2Str(date, "yyyy-MM-dd HH:mm:ss.SSS");
      }
   }
}