From fd2f31c79972bf1fc5f500a6f36b96546b2768d6 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期五, 02 六月 2023 16:34:24 +0800
Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |  541 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 368 insertions(+), 173 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
index 402f6bb..f43debb 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
+++ b/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鏄痻ml鍒欙紝閫氳繃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("鍙傛暟锛氬垎绫籆Ode:" + 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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
-//						}
-//						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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�");
-//						}
-//						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鏄痻ml鍒欙紝閫氳繃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("鍙傛暟锛氬垎绫籆Ode:" + 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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旀ā鏉�");
+						}
+						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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙朚DM绯荤粺涓搴旇鍒�");
+						}
+						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鏄痻ml鍒欙紝閫氳繃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鏄痻ml鍒欙紝閫氳繃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("鏍规嵁鍒嗙被浠e彿鏈煡璇㈠埌鐩稿簲鐨勫垎绫讳俊鎭�");
 				}
 			} 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);
 	}
 
 	/***

--
Gitblit v1.9.3