ludc
2023-05-18 9cacfb217b2dbf58c7efd1d96e818798a97d9382
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -15,10 +15,12 @@
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.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;
@@ -174,7 +176,7 @@
                  CodeOrderDTO orderDTO = new CodeOrderDTO();
                  orderDTO.setCodeClassifyOid(codeClassifyVO.getOid());//分类主键
                  orderDTO.setSecDTOList(codeOrderSecDTOList);//分类码段
                  //mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs);
                  mdmIOService.batchSyncApplyCode(orderDTO, dataObjectVO, resultDataObjectDetailDOs);
                  log.info("end:申请获取完毕");
               } catch (Throwable e) {
                  XMLResultDataObjectDetailDO xmlResultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
@@ -258,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;
   }
   /***