xiejun
2023-06-15 694374bb1c6c08e3e79a65f575922e61c5c971fc
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -2,40 +2,35 @@
import com.alibaba.cloud.commons.lang.StringUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
import com.vci.ubcs.code.dto.CodeOrderDTO;
import com.vci.ubcs.code.dto.CodeOrderSecDTO;
import com.vci.ubcs.code.entity.CodeBasicSec;
import com.vci.ubcs.code.entity.CodeClassify;
import com.vci.ubcs.code.entity.DockingLog;
import com.vci.ubcs.code.entity.*;
import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
import com.vci.ubcs.code.service.*;
import com.vci.ubcs.code.util.gennerAttrMapUtil;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.code.vo.webserviceModel.apply.*;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.*;
import com.vci.ubcs.code.vo.webserviceModel.classify.*;
import com.vci.ubcs.code.vo.webserviceModel.result.json.*;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultClassfyVO;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultSystemVO;
import com.vci.ubcs.code.webService.annotation.VciWebservice;
import com.vci.ubcs.code.webService.config.AttributeMapConfig;
import com.vci.ubcs.starter.revision.model.TreeQueryObject;
import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
import com.vci.ubcs.starter.web.util.VciBaseUtil;
import com.vci.ubcs.webservice.annotation.VciWebservice;
import com.vci.ubcs.webservice.config.AttributeMapConfig;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import javax.jws.WebService;
import java.util.*;
import java.util.stream.Collectors;
@@ -48,11 +43,6 @@
@Slf4j
@VciWebservice(path = "/universalInterface")
public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
   /**
    * 日志
    */
   private Logger logger = LoggerFactory.getLogger(getClass());
   @Autowired(required = false)
   private AttributeMapConfig attributeMapConfig;
@@ -69,8 +59,8 @@
   /**
    * 主数据引擎的服务
    */
   //@Resource
   //private MdmEngineService engineService;
   @Resource
   private MdmEngineService engineService;
   /**
    * 密级的服务
@@ -99,152 +89,152 @@
   @Override
   public String applyCode(String data, String dataType) throws Throwable {
      {
//         String resultStr = "";
//         String errorid="0";
//         msg="成功";
//         objerrorCode="0";
//         objerrorMsg="成功";
//         logger.info("申请编码的数据参数:->"+data);
//         logger.info("申请编码的数据类型:->"+dataType);
//         String systemId="";
//         List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>();
//         try {
//            if(StringUtils.isBlank(data)) {
//               errorid="101";
//               throw new Throwable("接口参数:传递为空");
//            }
//            InterParameterVO interParameterVO  =new InterParameterVO();
//            //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
//            try {
//               if ("xml".equals(dataType)) {
//                  XStream xStream = new XStream(new DomDriver());
//                  xStream.processAnnotations(RootDataVO.class);
//                  xStream.autodetectAnnotations(true);
//                  RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data);
//                  interParameterVO.setData(rootDataVO);
//               } else {
//                  interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class);
//               }
//            }catch (Throwable e){
//               errorid="101";
//               throw new Throwable("接口参数:传入数据参数解析失败");
//            }
//            ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
//            systemId = interParameterVO.getData().getSystemId();
//            UserVO userVo = interParameterVO.getData().getUser();
//            List<ClassfyVO> classVOList = classfysVO.getClassify();
//            InterParameterVO finalInterParameterVO = interParameterVO;
//
//            //这是账号信息
//            SessionInfo sessionInfo = new SessionInfo();
//            sessionInfo.setUserId(userVo.getUserName());
//            sessionInfo.setUserName(userVo.getTrueName());
//            sessionInfo.setIp(userVo.getIp());
//            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
//
//            String finalSystemId = systemId;
//            classVOList.stream().forEach(classVO -> {
//               logger.info("参数:分类COde:" + classVO.getClassCode());
//               LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
//               //获取分类信息
//               try {
//                  String libray = classVO.getLibrary();
//                  CodeClassifyVO codeClassifyVO = getClassfy(classVO);
//                  logger.info("end:分类查询完毕");
//                  //获取分类模板信息
//                  if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
//                     objerrorCode="100";
//                     throw  new  Throwable ("根据传输的分类,未获取到分类信息");
//                  }
//                  CodeClstemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
//                  if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
//                     objerrorCode="1";
//                     throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
//                  }
//                  logger.info("end:模板查询完毕");
//                  ApplyDatasVO applyDatasVO = classVO.getObjects();
//                  DataObjectVO dataObjectVO = new DataObjectVO();
//                  List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
//                  ).collect(Collectors.toList());
//                  this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
//                  logger.info("end:数据组织完毕");
//                  //规则的主键需要去获取
//                  CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
//                  if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
//                     objerrorCode="1";
//                     logger.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
//                     throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
//                  }
//                  CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
//                  if(ruleVO==null|| StringUtils.isBlank(ruleVO.getOid())){
//                     objerrorCode="102";
//                     throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
//                  }
//                  logger.info("end:规则获取完毕");
//                  List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO);
//                  logger.info("end:码段获取完毕");
//                  CodeOrderDTO orderDTO = new CodeOrderDTO();
//                  orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
//                  orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
//                  mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs);
//                  logger.info("end:申请获取完毕");
//               } catch (Throwable e) {
//                  XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
//                  xmlResultDataObjectDetailDO.setCode("");
//                  xmlResultDataObjectDetailDO.setId("");
//                  xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
//                  xmlResultDataObjectDetailDO.setMsg("编码申请失败:"+e.getMessage());
//                  resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
//                  e.printStackTrace();
//               }finally {
//                  XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
//                  resultClassfyVO.setClassCode(classVO.getClassCode());
//                  resultClassfyVO.setLibrary(classVO.getLibrary());
//                  resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath());
//                  resultClassfyVO.setObjects(resultDataObjectDetailDOs);
//                  resultClassfyVOList.add(resultClassfyVO);
//               }
//            });
//            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
//            xmlResultSystemVO.setClassifys(resultClassfyVOList);
//            xmlResultSystemVO.setMsg(msg);
//            xmlResultSystemVO.setErrorid(errorid);
//            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
//         }catch (Throwable e){
//            e.printStackTrace();;
//            msg="申请编码失败:"+e.getMessage();
//         }finally {
//            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
//            xmlResultSystemVO.setClassifys(resultClassfyVOList);
//            xmlResultSystemVO.setMsg(msg);
//            xmlResultSystemVO.setErrorid(errorid);
//            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
//            final boolean[] issucess = {true};
//            if(!errorid.equals("0")) {
//               issucess[0] = false;
//            }else {
//               if(!CollectionUtils.isEmpty(resultClassfyVOList)) {
//                  resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> {
//                     xMLResultClassfyVO.getObjects().stream().forEach(objec -> {
//                        if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) {
//                           issucess[0] = false;
//                           msg=objec.getMsg();
//                        }
//                     });
//                  });
//               }
//
//            }
//            try {
//               //记录日志
//               this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode");
//            }catch (Throwable e){
//               e.printStackTrace();
//            }
//         }
//         logger.info("返回参数:"+resultStr);
         String resultStr = "";
         String errorid="0";
         msg="成功";
         objerrorCode="0";
         objerrorMsg="成功";
         log.info("申请编码的数据参数:->"+data);
         log.info("申请编码的数据类型:->"+dataType);
         String systemId="";
         List<XMLResultClassfyVO> resultClassfyVOList = new ArrayList<>();
         try {
            if(StringUtils.isBlank(data)) {
               errorid="101";
               throw new Throwable("接口参数:传递为空");
            }
            InterParameterVO interParameterVO  =new InterParameterVO();
            //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
            try {
               if ("xml".equals(dataType)) {
                  XStream xStream = new XStream(new DomDriver());
                  xStream.processAnnotations(RootDataVO.class);
                  xStream.autodetectAnnotations(true);
                  RootDataVO rootDataVO = (RootDataVO) xStream.fromXML(data);
                  interParameterVO.setData(rootDataVO);
               } else {
                  interParameterVO = JSONObject.toJavaObject(JSONObject.parseObject(data), InterParameterVO.class);
               }
            }catch (Throwable e){
               errorid="101";
               throw new Throwable("接口参数:传入数据参数解析失败");
            }
            ClassfysVO classfysVO = interParameterVO.getData().getClassifys();
            systemId = interParameterVO.getData().getSystemId();
            UserVO userVo = interParameterVO.getData().getUser();
            List<ClassfyVO> classVOList = classfysVO.getClassify();
            InterParameterVO finalInterParameterVO = interParameterVO;
         return "";
            //这是账号信息
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
            String finalSystemId = systemId;
            classVOList.stream().forEach(classVO -> {
               log.info("参数:分类COde:" + classVO.getClassCode());
               LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs = new LinkedList<>();
               //获取分类信息
               try {
                  String libray = classVO.getLibrary();
                  CodeClassifyVO codeClassifyVO = getClassfy(classVO);
                  log.info("end:分类查询完毕");
                  //获取分类模板信息
                  if(codeClassifyVO==null || StringUtils.isBlank(codeClassifyVO.getOid())){
                     objerrorCode="100";
                     throw  new  Throwable ("根据传输的分类,未获取到分类信息");
                  }
                  CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyVO.getOid());
                  if(templateVO==null||StringUtils.isBlank(templateVO.getOid())){
                     objerrorCode="1";
                     throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应模板");
                  }
                  log.info("end:模板查询完毕");
                  ApplyDatasVO applyDatasVO = classVO.getObjects();
                  DataObjectVO dataObjectVO = new DataObjectVO();
                  List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s -> !DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
                  ).collect(Collectors.toList());
                  this.getConfigDatas(finalSystemId, libray, applyDatasVO, attrVOS, dataObjectVO);
                  log.info("end:数据组织完毕");
                  //规则的主键需要去获取
                  CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(codeClassifyVO.getOid());
                  if(classifyFullInfo==null ||classifyFullInfo.getCurrentClassifyVO()==null || StringUtils.isBlank(classifyFullInfo.getCurrentClassifyVO().getOid())){
                     objerrorCode="1";
                     log.info("classifyFullInfo:"+"根据传输的分类,未获取分类相关信息");
                     throw  new  Throwable ("根据传输的分类,未获取分类相关信息");
                  }
                  CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
                  if(ruleVO==null|| StringUtils.isBlank(ruleVO.getOid())){
                     objerrorCode="102";
                     throw  new  Throwable ("根据传输的分类,未获取MDM系统中对应规则");
                  }
                  log.info("end:规则获取完毕");
                  List<CodeOrderSecDTO> codeOrderSecDTOList = getRuleCodeOrderSecDTOs(classVO.getSections().getSection(), ruleVO);
                  log.info("end:码段获取完毕");
                  CodeOrderDTO orderDTO = new CodeOrderDTO();
                  orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                  orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
                  mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs);
                  log.info("end:申请获取完毕");
               } catch (Throwable e) {
                  XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
                  xmlResultDataObjectDetailDO.setCode("");
                  xmlResultDataObjectDetailDO.setId("");
                  xmlResultDataObjectDetailDO.setErrorid(objerrorCode);
                  xmlResultDataObjectDetailDO.setMsg("编码申请失败:"+e.getMessage());
                  resultDataObjectDetailDOs.add(xmlResultDataObjectDetailDO);
                  e.printStackTrace();
               }finally {
                  XMLResultClassfyVO resultClassfyVO = new XMLResultClassfyVO();
                  resultClassfyVO.setClassCode(classVO.getClassCode());
                  resultClassfyVO.setLibrary(classVO.getLibrary());
                  resultClassfyVO.setFullclsfNamePath(classVO.getFullclsfNamePath());
                  resultClassfyVO.setObjects(resultDataObjectDetailDOs);
                  resultClassfyVOList.add(resultClassfyVO);
               }
            });
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
            xmlResultSystemVO.setClassifys(resultClassfyVOList);
            xmlResultSystemVO.setMsg(msg);
            xmlResultSystemVO.setErrorid(errorid);
            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
         }catch (Throwable e){
            e.printStackTrace();;
            msg="申请编码失败:"+e.getMessage();
         }finally {
            XMLResultSystemVO xmlResultSystemVO=new XMLResultSystemVO();
            xmlResultSystemVO.setClassifys(resultClassfyVOList);
            xmlResultSystemVO.setMsg(msg);
            xmlResultSystemVO.setErrorid(errorid);
            resultStr= transferResultXMl(xmlResultSystemVO,dataType);
            final boolean[] issucess = {true};
            if(!errorid.equals("0")) {
               issucess[0] = false;
            }else {
               if(!CollectionUtils.isEmpty(resultClassfyVOList)) {
                  resultClassfyVOList.stream().forEach(xMLResultClassfyVO -> {
                     xMLResultClassfyVO.getObjects().stream().forEach(objec -> {
                        if (!(objec.getErrorid().equals("0") || objec.getErrorid().equals("204"))) {
                           issucess[0] = false;
                           msg=objec.getMsg();
                        }
                     });
                  });
               }
            }
            try {
               //记录日志
               this.saveLogs(systemId, systemId, data, resultStr, issucess[0], msg, "applyCode");
            }catch (Throwable e){
               e.printStackTrace();
            }
         }
         log.info("返回参数:"+resultStr);
         return resultStr;
      }
   }
@@ -270,7 +260,121 @@
    */
   @Override
   public String queryClassify(String data, String dataType) throws Throwable {
      return null;
      boolean issucess=false;
      String resultStr = "";
      String errorid="0";
      msg="成功";
      String systemId="";
      log.info("查询分类的数据参数:->"+data);
      log.info("查询分类的数据类型:->"+dataType);
      ResultClassifyVO resultClassifyVO =new ResultClassifyVO();
      List<ClassifyVO> classifyVOList=new ArrayList<>();
      ResultData resultData=new ResultData();
      try {
         if (StringUtils.isBlank(data)) {
            errorid = "101";
            throw new Throwable("接口参数:传递为空");
         }
         QueryClassifyVO queryClassifyVO = new QueryClassifyVO();
         //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
         try {
            if ("xml".equals(dataType)) {
               XStream xStream = new XStream(new DomDriver());
               xStream.processAnnotations(QueryData.class);
               xStream.autodetectAnnotations(true);
               QueryData queryData = (QueryData) xStream.fromXML(data);
               queryClassifyVO.setData(queryData);
            } else {
               queryClassifyVO = JSONObject.toJavaObject(JSONObject.parseObject(data), QueryClassifyVO.class);
            }
         } catch (Throwable e) {
            errorid = "101";
            msg="接口参数:传入数据参数解析失败";
            e.printStackTrace();
            throw new Throwable("接口参数:传入数据参数解析失败");
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         systemId=queryData.getSystemId();
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
         List<String> classifyIdList=  libraryVO.getClassifyid();
         List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
         //这是账号信息
         //这是账号信息
         if(userVo!=null) {
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
         }else{
            errorid = "101";
            throw new Throwable("接口参数:账号信息获取失败");
         }
         if(!CollectionUtils.isEmpty(classifyIdList)){
            //先简称是否有关联模板,有模板要先删除
            List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList));
            codeClassifyVOS=classifyService.codeClassifyDO2VOs(libIdDos);
         }else {
            List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, libId));
            String oid= libIdDos.get(0).getOid();
            TreeQueryObject treeQueryObject=new TreeQueryObject();
            treeQueryObject.setParentOid(oid);
            treeQueryObject.setQueryAllLevel(true);
            codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
         }
         LibraryVO libraryVo=new LibraryVO();
         libraryVo.setId(libId);
         libraryVo.setName("");
         if(!CollectionUtils.isEmpty(codeClassifyVOS)){
            errorid = "0";
            msg="成功!";
            codeClassifyVOS.stream().forEach(codeClassifyDO -> {
               ClassifyVO classifyVO=new ClassifyVO();
               classifyVO.setId(codeClassifyDO.getOid());
               classifyVO.setLcStatus(codeClassifyDO.getLcStatus());
               classifyVO.setClassCode(codeClassifyDO.getId());
               classifyVO.setDescription(codeClassifyDO.getDescription());
               classifyVO.setName(codeClassifyDO.getName());
               classifyVO.setPid(codeClassifyDO.getParentcodeclassifyoid());
               classifyVO.setFullPathName(codeClassifyDO.getPath());
               classifyVOList.add(classifyVO);
            });
            libraryVo.setClassify(classifyVOList);
         }else{
            errorid = "100";
            msg="未查询到相关的分类信息";
         }
         issucess=true;
         resultData.setLibrary(libraryVo);
      }catch (Throwable e){
         e.printStackTrace();;
         msg="查询分类失败:"+e.getMessage();
      }finally {
         resultData.setErrorid(errorid);
         resultData.setMsg(msg);
         resultClassifyVO.setResultData(resultData);
      }
      if(dataType.equals("xml")){
         //组织返回接口信息
         XStream xStream = new XStream(new DomDriver());
         xStream.processAnnotations(XMLResultSystemVO.class);
         xStream.autodetectAnnotations(true);
         resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData);
      }else{
         Object object = JSONObject.toJSON(resultClassifyVO);
         resultStr = object.toString();
      }
      try {
         //记录日志
         this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify");
      }catch (Throwable e){
         e.printStackTrace();
      }
      log.info("返回参数:"+resultStr);
      return resultStr;
   }
   /***
@@ -286,8 +390,99 @@
   }
   @Override
   public String queryClassifyRule(String data, String datatype) throws Throwable {
      return null;
   public String queryClassifyRule(String data, String dataType) throws Throwable {
      boolean issucess=false;
      String resultStr = "";
      String errorid="0";
      msg="成功";
      String systemId="";
      log.info("查询分类的数据参数:->"+data);
      log.info("查询分类的数据类型:->"+dataType);
      ResultClassifyVO resultClassifyVO =new ResultClassifyVO();
      List<ClassifyVO> classifyVOList=new ArrayList<>();
      try {
         if (StringUtils.isBlank(data)) {
            errorid = "101";
            throw new Throwable("接口参数:传递为空");
         }
         QueryClassifyVO queryClassifyVO = new QueryClassifyVO();
         //如果dataType是xml则,通过xml序列化成对象形式,如果是json则通过json转换成对象格式
         try {
            if ("xml".equals(dataType)) {
               XStream xStream = new XStream(new DomDriver());
               xStream.processAnnotations(QueryData.class);
               xStream.autodetectAnnotations(true);
               QueryData queryData = (QueryData) xStream.fromXML(data);
               queryClassifyVO.setData(queryData);
            } else {
               queryClassifyVO = JSONObject.toJavaObject(JSONObject.parseObject(data), QueryClassifyVO.class);
            }
         } catch (Throwable e) {
            errorid = "101";
            msg = "接口参数:传入数据参数解析失败";
            e.printStackTrace();
            throw new Throwable("接口参数:传入数据参数解析失败");
         }
         QueryData queryData=queryClassifyVO.getData();
         UserVO userVo=queryData.getUser();
         systemId=queryData.getSystemId();
         QueryLibraryVO libraryVO= queryData.getLibrary();
         String libId= libraryVO.getId();
         List<String> classifyIdList=  libraryVO.getClassifyid();
         List<CodeClassifyVO> codeClassifyVOS =new ArrayList<>();
         //这是账号信息
         //这是账号信息
         if(userVo!=null) {
            SessionInfo sessionInfo = new SessionInfo();
            sessionInfo.setUserId(userVo.getUserName());
            sessionInfo.setUserName(userVo.getTrueName());
            sessionInfo.setIp(userVo.getIp());
            VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
         }else{
            errorid = "101";
            throw new Throwable("接口参数:账号信息获取失败");
         }
         if(!CollectionUtils.isEmpty(classifyIdList)){
            //先简称是否有关联模板,有模板要先删除
            List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().in(CodeClassify::getId, classifyIdList));
            codeClassifyVOS=classifyService.codeClassifyDO2VOs(libIdDos);
         }else {
            List<CodeClassify> libIdDos = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, libId));
            String oid= libIdDos.get(0).getOid();
            TreeQueryObject treeQueryObject=new TreeQueryObject();
            treeQueryObject.setParentOid(oid);
            treeQueryObject.setQueryAllLevel(true);
            codeClassifyVOS=classifyService.selectCodeClassifyDOByTree(treeQueryObject);
         }
      }catch (Throwable e){
         e.printStackTrace();;
         msg="查询分类失败:"+e.getMessage();
      }finally {
      //   resultData.setErrorid(errorid);
      //   resultData.setMsg(msg);
      //   resultClassifyVO.setResultData(resultData);
      }
      if(dataType.equals("xml")){
         //组织返回接口信息
         XStream xStream = new XStream(new DomDriver());
         xStream.processAnnotations(XMLResultSystemVO.class);
         xStream.autodetectAnnotations(true);
         //resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultData);
      }else{
         Object object = JSONObject.toJSON(resultClassifyVO);
         resultStr = object.toString();
      }
      try {
         //记录日志
         this.saveLogs(systemId, systemId, data, resultStr, issucess, msg, "queryClassify");
      }catch (Throwable e){
         e.printStackTrace();
      }
      log.info("返回参数:"+resultStr);
      return resultStr;
   }
   /***
@@ -315,10 +510,10 @@
               throw new  Throwable("根据分类代号未查询到相应的分类信息");
            }
         } else {
            //classifyVO = classifyService.getObjectByClsfNamePath(className.replace(separator, "/"));
            //if(StringUtils.isBlank(classifyVO.getOid())){
            //   throw new  Throwable("根据分类名称路径未查询到相应的分类信息");
            //}
            classifyVO = classifyService.getObjectByClsfNamePath(className.replace(separator, "/"));
            if(StringUtils.isBlank(classifyVO.getOid())){
               throw new  Throwable("根据分类名称路径未查询到相应的分类信息");
            }
         }
      }catch (Throwable e){
         objerrorCode="100";
@@ -341,13 +536,13 @@
         if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
            String name = codeBasicSecVO.getName();
            String sectypeText = codeBasicSecVO.getSecTypeText();
            logger.info("码段名称:"+name);
            logger.info("描述:"+sectypeText);
            log.info("码段名称:"+name);
            log.info("描述:"+sectypeText);
            CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
            if (sectionVOMap.containsKey(name)) {
               CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
               String sectypeValue = sectionVOMap.get(name);
               logger.info("码段值:"+sectypeValue);
               log.info("码段值:"+sectypeValue);
               CodeOrderSecDTO.setSecValue(sectypeValue);
               codeOrderSecDTOList.add(CodeOrderSecDTO);
            } else {
@@ -478,7 +673,7 @@
         dockingLoge.setInterfaceStatus("false");//接口集成状态
      }
      dockingLogeService.save(dockingLoge);
      logger.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
      log.info("集成推送数据成功,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
   }
   /***