From 6138318ebe15d251d6ae6e3e1ec57c8af94216d7 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期四, 18 五月 2023 10:53:27 +0800
Subject: [PATCH] 以及发布webservice接口功能搭建,将通通用接口移植过来

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java             |   81 ++++---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java  |  307 +++++++++++++--------------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java    |  178 +++++++++-------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java         |   16 +
 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml                          |   37 +++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java |   22 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java            |   11 +
 7 files changed, 381 insertions(+), 271 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
index 49e31bd..ea1d998 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CodeClassifyMapper.java
@@ -88,4 +88,15 @@
 	@MapKey("OID")
 	List<Map<String,Object>> selectByFieldPath(@Param("fieldPath") String fieldPath);
 
+
+	/**
+	 * 鏌ユ牴鎹甶d灞傜骇鑾峰彇瀵硅薄
+	 *
+	 * @param fieldPath 鍒嗙被鐨勪富閿�
+	 *  @param fieldName 鍒嗙被鐨勪富閿�
+	 * @return 鏁版嵁闆嗗悎
+	 */
+	List<CodeClassify> selectByFieldNamePath(@Param("fieldPath") String fieldPath,@Param("fieldName") String fieldName);
+
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
index ac972bf..68ccf7a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java
@@ -228,4 +228,20 @@
 	 * @return 鍒嗙被涓婄骇锛屼笅绾х殑淇℃伅
 	 */
 	CodeClassifyFullInfoBO getClassifyFullInfo(String codeClassifyOid);
+
+
+	/**
+	 * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
+	 * @param clsfNamePath 鍒嗙被鍚嶇О鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱
+	 * @return 鍒嗙被鐨勬樉绀哄璞�
+	 */
+	CodeClassifyVO getObjectByClsfNamePath(String clsfNamePath);
+
+	/***
+	 * 鏍规嵁涓婄骇鑺傜偣鑾峰彇涓嬬骇鑺傜偣浠e彿璺緞鍜屽悕绉拌矾寰�
+	 * @param classifyId
+	 * @param enable
+	 * @return
+	 */
+	public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId,boolean enable);
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
index 76250db..908dc2f 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmEngineService.java
@@ -1,39 +1,46 @@
-//package com.vci.ubcs.code.service;
-//
-//
-//import com.baomidou.mybatisplus.extension.service.IService;
-//import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
-//import com.vci.ubcs.code.dto.CodeOrderDTO;
-//import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
-//import com.vci.ubcs.code.entity.CodeAllCode;
-//import com.vci.ubcs.code.vo.CodeClstemplateVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
-//import com.vci.ubcs.starter.web.pagemodel.KeyValue;
-//
-//import java.util.List;
-//
-///**
-// * 涓绘暟鎹紩鎿庢湇鍔�
-// * @author weidy
-// * @date 2022-2-21
-// */
-//public interface MdmEngineService extends IService<CodeAllCode> {
-////	/**
-////	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
-////	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
-////	 * @return 妯℃澘鐨勬樉绀哄璞�
-////	 */
-////	CodeClstemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid);
-////
-////	/**
-////	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
-////	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
-////	 * @param hasAttr 鍖呭惈灞炴��
-////	 * @return 妯℃澘鐨勬樉绀哄璞�
-////	 */
-////	CodeClstemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr);
+package com.vci.ubcs.code.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
+import com.vci.ubcs.code.entity.CodeAllCode;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+
+import java.util.List;
+
+/**
+ * 涓绘暟鎹紩鎿庢湇鍔�
+ * @author weidy
+ * @date 2022-2-21
+ */
+public interface MdmEngineService extends IService<CodeAllCode> {
+
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @return 妯℃澘鐨勬樉绀哄璞�
+	 */
+	CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid);
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param hasAttr 鍖呭惈灞炴��
+	 * @return 妯℃澘鐨勬樉绀哄璞�
+	 */
+	CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr);
+
+
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勫叏閮ㄤ俊鎭幏鍙栫紪鐮佽鍒�
+	 * @param fullInfoBO 鍒嗙被鐨勫叏閮ㄤ俊鎭�
+	 * @return 瑙勫垯鐨勫唴瀹�
+	 */
+	CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO);
+
 ////
 ////	/**
 ////	 * 鑾峰彇鏋氫妇鐨勪笅鎷夐�夐」
@@ -133,4 +140,4 @@
 ////	 * @param orderDTO 鏁版嵁鐨勫唴瀹癸紝涓嶇敤鍖呭惈鐮佹鐨勫唴瀹逛簡
 ////	 */
 ////	void editSaveCode(CodeOrderDTO orderDTO);
-//}
+}
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
index 7533870..5bc3366 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java
@@ -468,6 +468,28 @@
 		}
 		return tree;
 	}
+	/**
+	 * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
+	 *
+	 * @param fieldPath 缂栧彿鐨勮矾寰勶紝涓�瀹氳浠庢渶椤跺眰鑺傜偣寮�濮嬶紝鏍煎紡涓簒xx/yyy/zz 杩欐牱
+	 * @return 鍒嗙被鐨勬樉绀哄璞�
+	 */
+	@Override
+	public CodeClassifyVO getObjectByClsfNamePath(String fieldPath){
+
+		CodeClassify classify = (CodeClassify) codeClassifyMapper.selectByFieldNamePath(fieldPath, "name");
+		return codeClassifyDO2VO(classify);
+	}
+	/***
+	 * 鏍规嵁涓婄骇鑺傜偣鑾峰彇涓嬬骇鑺傜偣浠e彿璺緞鍜屽悕绉拌矾寰�
+	 * @param classifyId
+	 * @param enable
+	 * @return
+	 */
+	@Override
+	public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId, boolean enable) {
+		return null;
+	}
 
 
 //	/**
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index e63b287..f631260 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -1,60 +1,34 @@
-//package com.vci.ubcs.code.service.impl;
+package com.vci.ubcs.code.service.impl;
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
+import com.vci.ubcs.code.entity.CodeAllCode;
+import com.vci.ubcs.code.mapper.CodeAllCodeMapper;
+import com.vci.ubcs.code.service.*;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 //
-//import com.alibaba.fastjson.JSONObject;
-//import com.alibaba.nacos.common.utils.StringUtils;
-//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-//import com.baomidou.mybatisplus.extension.service.IService;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.sun.corba.se.impl.orbutil.ObjectUtility;
-//import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
-//import com.vci.ubcs.code.dto.CodeOrderDTO;
-//import com.vci.ubcs.code.dto.datapush.BaseModelDTO;
-//import com.vci.ubcs.code.entity.CodeAllCode;
-//import com.vci.ubcs.code.entity.CodeOsbtmtypeEntity;
-//import com.vci.ubcs.code.entity.CodeRule;
-//import com.vci.ubcs.code.entity.CodeWupinEntity;
-//import com.vci.ubcs.code.enumpack.CodeDefaultLC;
-//import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum;
-//import com.vci.ubcs.code.enumpack.CodeSecTypeEnum;
-//import com.vci.ubcs.code.mapper.CodeAllCodeMapper;
-//import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper;
-//import com.vci.ubcs.code.mapper.CodeRuleMapper;
-//import com.vci.ubcs.code.service.*;
-//import com.vci.ubcs.code.vo.CodeClstemplateVO;
-//import com.vci.ubcs.code.vo.CodeKeyattrrepeatVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeBasicSecVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
-//import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO;
-//import com.vci.ubcs.omd.entity.Dict;
-//import com.vci.ubcs.starter.exception.VciBaseException;
-//import com.vci.ubcs.starter.revision.model.BaseModel;
-//import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
-//import com.vci.ubcs.starter.web.pagemodel.KeyValue;
-//import com.vci.ubcs.starter.web.toolmodel.DateConverter;
-//import com.vci.ubcs.starter.web.util.VciBaseUtil;
-//import com.vci.ubcs.starter.web.util.VciDateUtil;
-//import com.vci.ubcs.starter.web.util.VciQueryWrapperForDO;
-//import com.vci.ubcs.starter.web.util.WebUtil;
-//import com.vci.ubcs.system.entity.DictBiz;
-//import com.vci.ubcs.system.feign.IDictBizClient;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//import org.springblade.core.mp.support.Query;
-//import org.springblade.core.secure.utils.AuthUtil;
-//import org.springblade.core.tool.api.R;
-//import org.springframework.beans.BeanUtils;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Service;
-//
-///**
-// * 涓绘暟鎹紩鎿庢湇鍔�
-// *
-// * @author weidy
-// * @date 2022-2-22
-// */
-//@Service
-//public class MdmEngineServiceImpl extends ServiceImpl<CodeAllCodeMapper, CodeAllCode> implements MdmEngineService {
+
+
+/**
+ * 涓绘暟鎹紩鎿庢湇鍔�
+ *
+ * @author weidy
+ * @date 2022-2-22
+ */
+@Slf4j
+@Service
+public class MdmEngineServiceImpl extends ServiceImpl<CodeAllCodeMapper, CodeAllCode> implements MdmEngineService {
 //
 //
 //	/**
@@ -76,29 +50,75 @@
 //	//	@Autowired
 //	//	private CodeOsbtmtypeMapper codeOsbtmtypeMapper;
 //
-//	/**
-//	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
-//	 *
-//	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
-//	 * @return 妯℃澘鐨勬樉绀哄璞�
-//	 */
-//	@Override
-//	public CodeClstemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid) {
-//		return getUsedTemplateByClassifyOid(codeClassifyOid, true);
-//	}
+	/**
+	 * 妯℃澘鐨勬湇鍔�
+	 */
+	@Autowired(required = false)
+	private ICodeClassifyTemplateAttrService codeClassifyTemplateAttrService;
+
+	/***
+	 * 缂栫爜瑙勫垯鏈嶅姟
+	 */
+	@Autowired(required = false)
+	private ICodeRuleService codeRuleService;
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
+	 *
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @return 妯℃澘鐨勬樉绀哄璞�
+	 */
+	@Override
+	public CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid) {
+		return getUsedTemplateByClassifyOid(codeClassifyOid, true);
+	}
 //
-//	/**
-//	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
-//	 *
-//	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
-//	 * @param hasAttr         鍖呭惈灞炴��
-//	 * @return 妯℃澘鐨勬樉绀哄璞�
-//	 */
-//	@Override
-//	public CodeClstemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr) {
-//		List<CodeClstemplateVO> templateVOs = templateService.listReleaseTemplateByClassifyOid(codeClassifyOid, hasAttr);
-//		return templateVOs.get(templateVOs.size() - 1);
-//	}
+	/**
+	 * 浣跨敤鍒嗙被鐨勪富閿幏鍙栧彲浠ヤ娇鐢ㄧ殑妯℃澘瀵硅薄
+	 *
+	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
+	 * @param hasAttr         鍖呭惈灞炴��
+	 * @return 妯℃澘鐨勬樉绀哄璞�
+	 */
+	@Override
+	public CodeClassifyTemplateVO getUsedTemplateByClassifyOid(String codeClassifyOid, boolean hasAttr) {
+		List<CodeClassifyTemplateVO> templateVOs=new ArrayList<>();
+		//templateVOs = codeClassifyTemplateAttrService.listReleaseTemplateByClassifyOid(codeClassifyOid, hasAttr);
+		return templateVOs.get(templateVOs.size() - 1);
+	}
+
+
+	/**
+	 * 浣跨敤鍒嗙被鐨勫叏閮ㄤ俊鎭幏鍙栫紪鐮佽鍒�
+	 *
+	 * @param fullInfoBO 鍒嗙被鐨勫叏閮ㄤ俊鎭�
+	 * @return 瑙勫垯鐨勫唴瀹�
+	 */
+	@Override
+	public CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO) {
+		//寰�涓婃壘
+		String codeRuleOid = "";
+		if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCoderuleoid())) {
+			codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCoderuleoid();
+		} else {
+			if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
+				//璇存槑宸茬粡鏄渶楂樺眰绾�,
+				throw new VciBaseException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
+			}
+			List<CodeClassifyVO> parentClassifyVOList = fullInfoBO.getParentClassifyVOs().stream().sorted((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel())).collect(Collectors.toList());
+			//浠庢渶楂樼殑level寮�濮嬭幏鍙�
+			for (int i = 0; i < parentClassifyVOList.size(); i++) {
+				CodeClassifyVO record = parentClassifyVOList.get(i);
+				if (StringUtils.isNotBlank(record.getCoderuleoid())) {
+					codeRuleOid = record.getCoderuleoid();
+					break;
+				}
+			}
+			if (StringUtils.isBlank(codeRuleOid)) {
+				throw new VciBaseException("褰撳墠涓婚搴撳垎绫伙紝浠ュ強瀹冪殑鎵�鏈夌殑涓婄骇鍒嗙被閮芥病鏈夎缃紪鐮佽鍒�");
+			}
+		}
+		return codeRuleService.getObjectHasSecByOid(codeRuleOid);
+	}
 //
 //	/**
 //	 * 鑾峰彇鏋氫妇鐨勪笅鎷夐�夐」
@@ -1788,4 +1808,4 @@
 ////		batchSaveSelectChar(templateVO, cboList);
 ////	}
 //
-//}
+}
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..7ee87d7 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,16 +2,13 @@
 
 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;
@@ -69,8 +66,8 @@
 	/**
 	 * 涓绘暟鎹紩鎿庣殑鏈嶅姟
 	 */
-	//@Resource
-	//private MdmEngineService engineService;
+	@Resource
+	private MdmEngineService engineService;
 
 	/**
 	 * 瀵嗙骇鐨勬湇鍔�
@@ -99,152 +96,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="鎴愬姛";
+			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;
 
-			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 -> {
+					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 ("鏍规嵁浼犺緭鐨勫垎绫伙紝鏈幏鍙栧埌鍒嗙被淇℃伅");
+						}
+						CodeClassifyTemplateVO 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);
+
+			return resultStr;
 		}
 	}
 
@@ -315,10 +312,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";
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
index f1fa535..0533fb6 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CodeCLassifyMapper.xml
@@ -144,6 +144,43 @@
         select oid,level from pl_code_classify start with oid= #{oid} connect by prior PARENTCODECLASSIFYOID = oid
     </select>
 
+    <select id="selectByFieldNamePath"  resultMap="plCodeClassifyResultMap">
+        select codeclassify0.OWNER                 as owner,
+               codeclassify0.BTMTYPEID             as btmtypeid,
+               codeclassify0.CREATOR               as creator,
+               codeclassify0.CREATETIME            as createtime,
+               codeclassify0.LASTMODIFIER          as lastmodifier,
+               codeclassify0.DESCRIPTION           as description,
+               codeclassify0.ORDERNUM              as ordernum,
+               codeclassify0.CODERULEOID           as coderuleoid,
+               codeclassify0.OID                   as oid,
+               codeclassify0.BTMNAME               as btmname,
+               codeclassify0.BTMTYPENAME           as btmtypename,
+               codeclassify0.CODEKEYATTRREPEATOID  as codekeyattrrepeatoid,
+               codeclassify0.PARENTCODECLASSIFYOID as parentcodeclassifyoid,
+               codeclassify0.NAME                  as name,
+               codeclassify0.LASTMODIFYTIME        as lastmodifytime,
+               codeclassify0.ID                    as id,
+               codeclassify0.CODERESEMBLERULEOID   as coderesembleruleoid,
+               codeclassify0.LCSTATUS              as lcstatus,
+               codeclassify0.TS                    as ts,
+               codeclassify0.paths                 as paths
+        from (select plcodeclassify.*,
+                <choose>
+                     <when test="fieldName=='name'.tostring()">
+                        SYS_CONNECT_BY_PATH(name, '##') as paths
+                     </when>
+                    <otherwise>
+                        SYS_CONNECT_BY_PATH(id, '##') as paths
+                    </otherwise>
+                </choose>
+
+        from pl_code_classify  plcodeclassify
+                  START WITH parentCodeClassifyOid is null
+              CONNECT BY PRIOR OID = parentCodeClassifyOid) codeclassify0
+        where codeclassify0.paths =#{fieldPath}
+    </select>
+
     <select id="selectByFieldPath" resultType="java.util.HashMap">
         select *
         from (select oid, SYS_CONNECT_BY_PATH(id, '/') as paths

--
Gitblit v1.9.3