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

---
 Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/QueryData.java |   16 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java           |  120 +++++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java        |   78 +++++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java                          |   31 ++
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java                 |  521 +++++++++------------------------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/update.json                           |  108 ------
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/ICodeClassifyService.java                  |    8 
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeClassifyServiceImpl.java          |   13 
 8 files changed, 412 insertions(+), 483 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/QueryData.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/QueryData.java
index d73a4eb..a1c9eb2 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/QueryData.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/vo/webserviceModel/classify/QueryData.java
@@ -8,7 +8,7 @@
 public class QueryData {
     @XStreamAsAttribute
     private String systemId;
-    private UserVO userVo;
+    private UserVO user;
     private QueryLibraryVO library ;
     public QueryLibraryVO getLibrary() {
         return library;
@@ -26,15 +26,15 @@
         this.systemId = systemId;
     }
 
-    public UserVO getUserVo() {
-        return userVo;
-    }
+	public UserVO getUser() {
+		return user;
+	}
 
-    public void setUserVo(UserVO userVo) {
-        this.userVo = userVo;
-    }
+	public void setUser(UserVO user) {
+		this.user = user;
+	}
 
-    @Override
+	@Override
     public String toString() {
         return "QueryData{" +
                 "systemId='" + systemId + '\'' +
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
index ea037a8..92b611c 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/controller/CodeSyncUniversalController.java
@@ -46,4 +46,82 @@
 		}
 		return result;
 	}
+
+	/****
+	 * 鏇存柊/鍒犻櫎/鐘舵�佹帴鍙�
+	 * @param dataString 灞炴�т俊鎭�
+	 * @param dataType 鏁版嵁鏍煎紡绫诲瀷
+	 * @return
+	 * @throws Throwable
+	 */
+	@PostMapping("/syncData")
+	public String syncData(@RequestParam("dataString")String dataString,@RequestParam("dataType")String dataType)  {
+		String result="";
+		try {
+			result= universalInterfaceI.syncEditData(dataString,dataType);
+		}catch (Throwable e){
+			e.printStackTrace();;
+			logger.error("syncData->"+e.getMessage());
+		}
+		return result;
+	}
+
+
+	/****
+	 * 鏌ヨ鍒嗙被鍙�
+	 * @param dataString 灞炴�т俊鎭�
+	 * @param dataType 鏁版嵁鏍煎紡绫诲瀷
+	 * @return
+	 * @throws Throwable
+	 */
+	@PostMapping("/queryClassify")
+	public String queryClassify(@RequestParam("dataString")String dataString,@RequestParam("dataType")String dataType) throws Throwable {
+		String result="";
+		try {
+			result = universalInterfaceI.queryClassify(dataString, dataType);
+		}catch (Throwable e){
+			e.printStackTrace();
+			logger.error("queryClassify->"+e.getMessage());
+		}
+		return result;
+	}
+
+	/****
+	 * 鏌ヨ鍒嗙被鍙�
+	 * @param dataString 灞炴�т俊鎭�
+	 * @param dataType 鏁版嵁鏍煎紡绫诲瀷
+	 * @return
+	 * @throws Throwable
+	 */
+	@PostMapping("/queryData")
+	public String queryData(@RequestParam("dataString")String dataString,@RequestParam("dataType")String dataType) throws Throwable {
+		String result="";
+		try {
+			result= universalInterfaceI.queryData(dataString,dataType);
+		}catch (Throwable e){
+			e.printStackTrace();
+			logger.error("queryData->"+e.getMessage());
+		}
+		return result;
+	}
+
+	/****
+	 * 鏌ヨ瑙勫垯
+	 * @param dataString 灞炴�т俊鎭�
+	 * @param dataType 鏁版嵁鏍煎紡绫诲瀷
+	 * @return
+	 * @throws Throwable
+	 */
+	@PostMapping("/queryClassifyRule")
+	public String queryClassifyRule(@RequestParam("dataString")String dataString,@RequestParam("dataType")String dataType) throws Throwable {
+		String result="";
+		try {
+			result= universalInterfaceI.queryClassifyRule(dataString,dataType);
+		}catch (Throwable e){
+			e.printStackTrace();
+			logger.error("queryData->"+e.getMessage());
+		}
+		return result;
+	}
+
 }
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 68ccf7a..50c64a0 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
@@ -244,4 +244,12 @@
 	 * @return
 	 */
 	public List<CodeClassifyVO> getIdPathToNamePathByParentId(String classifyId,boolean enable);
+	/**
+	 * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
+     *
+		 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+     * @return 鏌ヨ缁撴灉,鏁版嵁瀵硅薄
+     */
+	List<CodeClassifyVO> selectCodeClassifyDOByTree(TreeQueryObject treeQueryObject);
+
 }
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
index db55109..848ee01 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/MdmIOService.java
@@ -1,11 +1,42 @@
 package com.vci.ubcs.code.service;
 
 import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
 import com.vci.ubcs.code.vo.pagemodel.CodeImProtRusultVO;
+import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO;
+import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
 
 import java.io.File;
+import java.util.LinkedList;
 
 public interface MdmIOService {
+
+
+
+
+	/**
+	 * 闆嗘垚鎵归噺鐢宠鏁版嵁
+	 * @param orderDTO 鍒嗙被鐨勪富閿�
+	 * @param dataObjectVO 鏁版嵁淇℃伅
+	 * @param resultDataObjectDetailDOs 閿欒淇℃伅
+	 * @return 鏈夐敊璇俊鎭殑excel
+	 */
+	void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs);
+	/**
+	 * 闆嗘垚鎵归噺鏇存敼鏁版嵁
+	 * @param codeClassifyVO;
+	 * @param dataObjectVO 鏁版嵁淇℃伅
+	 * @param resultDataObjectDetailDOs 閿欒淇℃伅
+	 * @return 鏈夐敊璇俊鎭殑excel
+	 */
+	void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO>  resultDataObjectDetailDOs);
+
+
+
+
+
+
+
 //
 //	/**
 //	 * 鐢熸垚瀵煎叆鐨勬枃浠�
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 4ac87c0..dd2c40c 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,19 @@
 		}
 		return tree;
 	}
+
+	/**
+	 * 鏍规嵁鏍戝舰鏌ヨ瀵硅薄鏉ユ煡璇㈡暟鎹璞�
+	 *
+	 * @param treeQueryObject 鏍戝舰鏌ヨ瀵硅薄
+	 * @return 鏌ヨ缁撴灉,鏁版嵁瀵硅薄
+	 */
+	@Override
+	public List<CodeClassifyVO> selectCodeClassifyDOByTree(TreeQueryObject treeQueryObject) {
+		List<CodeClassify> doList =codeClassifyMapper.selectCodeClassifyVOByTree(treeQueryObject.getParentOid());
+		List<CodeClassifyVO> voList = codeClassifyDO2VOs(doList);
+		return voList;
+	}
 	/**
 	 * 浣跨敤缂栧彿鐨勮矾寰勮幏鍙栧璞�
 	 *
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index 71a98c8..92eca05 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -1,381 +1,158 @@
 package com.vci.ubcs.code.service.impl;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
+import com.vci.ubcs.code.dto.CodeOrderDTO;
+import com.vci.ubcs.code.service.ICodeClassifyService;
+import com.vci.ubcs.code.service.MdmEngineService;
 import com.vci.ubcs.code.service.MdmIOService;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateAttrVO;
+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.code.vo.webserviceModel.attrmap.DataObjectVO;
+import com.vci.ubcs.code.vo.webserviceModel.attrmap.RowDatas;
+import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.vci.ubcs.code.constant.MdmEngineConstant.*;
+import static com.vci.ubcs.starter.poi.util.ExcelUtil.KEY_ATTR_CHAR;
+import static com.vci.ubcs.starter.poi.util.ExcelUtil.REQUIRED_CHAR;
 
 @Service
+@Slf4j
 public class MdmIOServiceImpl implements MdmIOService {
+	/**
+	 * 鍒嗙被鏈嶅姟灞�
+	 */
+	@Resource
+	@Lazy
+	private ICodeClassifyService classifyService;
 
-//
-//	/**
-//	 * 涓婚搴撳垎绫荤殑鏈嶅姟
-//	 */
-//	@Resource
-//	private ICodeClassifyService classifyService;
-//
-//	/**
-//	 * 妯℃澘鐨勬湇鍔�
-//	 */
-//	@Resource
-//	private CodeClstemplateServiceImpl templateService;
-//
-//	/**
-//	 * 涓绘暟鎹紩鎿庣殑鏈嶅姟
-//	 */
-//	@Resource
-//	private MdmEngineService engineService;
-//
-//	/**
-//	 * 鐢熸垚瀵煎叆鐨勬枃浠�
-//	 *
-//	 * @param codeClassifyOid 鍒嗙被鐨勪富閿�
-//	 * @param isHistory 鏄惁鍘嗗彶鏁版嵁瀵煎叆
-//	 * @return excel鐨勬枃浠跺湴鍧�
-//	 */
-//	@Override
-//	public String createImportExcel(String codeClassifyOid, boolean isHistory) {
-//		List<CodeClstemplateVO> templateVOList=new ArrayList<>();
-//
-//		VciBaseUtil.alertNotNull("瀵煎嚭妯℃澘","瀵煎嚭鐨勯厤缃�",codeClassifyOid,"涓婚搴撳垎绫荤殑涓婚敭");
-//
-//		CodeClassifyVO codeClassifyVO = classifyService.getObjectByOid(codeClassifyOid);
-//
-//		if(isHistory){
-//			templateVOList= templateService.childTemplates(codeClassifyOid);
-//		}else{
-//			//鎵炬ā鏉�
-//			CodeClstemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyOid);
-//			templateVOList.add(templateVO);
-//		}
-//
-//		WriteExcelOption eo = new WriteExcelOption();
-//		eo.setAppend(true);
-//		//澧炲姞妯℃澘鐨勪俊鎭鍏�
-//		LinkedList<WriteExcelData> tempEDList = new LinkedList<>();
-//		tempEDList.add(new WriteExcelData(0,0,"妯℃澘涓婚敭"));
-//		tempEDList.add(new WriteExcelData(0,1,"妯℃澘浠e彿"));
-//		tempEDList.add(new WriteExcelData(0,2,"妯℃澘鍚嶇О"));
-//		for(int j=0;j<templateVOList.size();j++){
-//			CodeClstemplateVO  templateVO=templateVOList.get(j);
-//			CodeClassifyTemplateVO codeClassifyTemplateVO = new CodeClassifyTemplateVO();
-//			BeanUtils.copyProperties(templateVO,codeClassifyTemplateVO);
-//			//缁勫悎鏍煎紡鐨勪笉瀵煎叆锛�
-//			// 鏋氫妇鐨勬彁渚涘簭鍒楃殑閫夋嫨
-//			//鏃堕棿鍏ㄩ儴缁熶竴涓簓yyy-MM-dd HH:mm:ss
-//			//鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉�
-//			//鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑
-//			//缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏�
-//			List<CodeClassifyTemplateAttrVO> templateAttrVOS = codeClassifyTemplateVO.getAttributes().stream().filter(s ->
-//				!DEFAULT_ATTR_LIST.contains(s.getId())
-//					&& StringUtils.isBlank(s.getComponentRule())
-//					&& StringUtils.isBlank(s.getClassifyInvokeAttr())
-//					&& (isHistory || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
-//			).collect(Collectors.toList());
-//
-//			if(CollectionUtils.isEmpty(templateAttrVOS)){
-//				throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
-//			}
-//			List<CodeClassifyTemplateAttrVO> idAttrVOList = codeClassifyTemplateVO.getAttributes().stream().filter(s -> s.getId().equalsIgnoreCase(CODE_FIELD)).collect(Collectors.toList());
-//			LinkedList<WriteExcelData> excelDataList = new LinkedList<>();
-//			Workbook workbook = new HSSFWorkbook();
-//			if(isHistory){
-//				excelDataList.add(new WriteExcelData(0,0,"鍒嗙被璺緞"));
-//				excelDataList.add(new WriteExcelData(0,1,"鐮佹瀹藉害"));
-//				excelDataList.add(new WriteExcelData(0,2,!CollectionUtils.isEmpty(idAttrVOList)?idAttrVOList.get(0).getName():"浼佷笟缂栫爜"));
-//			}
-//			for (int i = 0; i < templateAttrVOS.size(); i++) {
-//				CodeClassifyTemplateAttrVO attrVO = templateAttrVOS.get(i);
-//
-//				Object text = attrVO.getName();
-//				text = exportKeyAndRequired(workbook,attrVO,text);
-//				int colIndex = (isHistory?3:0) + i;
-//				WriteExcelData excelData = new WriteExcelData(0, colIndex, text);
-//				if(StringUtils.isNotBlank(attrVO.getCodeDateFormat())
-//					|| VciFieldTypeEnum.VTDateTime.name().equalsIgnoreCase(attrVO.getAttributeDataType())
-//					|| VciFieldTypeEnum.VTDate.name().equalsIgnoreCase(attrVO.getAttributeDataType())
-//					||VciFieldTypeEnum.VTTime.name().equalsIgnoreCase(attrVO.getAttributeDataType())){
-//					excelData.setDateFormat(VciDateUtil.DateTimeFormat);
-//				}
-//				if(text instanceof RichTextString){
-//					excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex()));
-//				}
-//				excelDataList.add(excelData);
-//				if(StringUtils.isNotBlank(attrVO.getEnumString()) || StringUtils.isNotBlank(attrVO.getEnumId())){
-//					//娣诲姞鏁版嵁鏈夋晥鎬�
-//					List<String> enumValueList = new ArrayList<>();
-//					enumValueList.add("");
-//					List<KeyValue> valueList = engineService.listComboboxItems(attrVO);
-//					if(!CollectionUtils.isEmpty(valueList)){
-//						valueList.stream().forEach(kv->{
-//							enumValueList.add(kv.getValue());
-//						});
-//					}
-//					//榛樿鍔�1涓囨潯
-//					WriteExcelData ed = new WriteExcelData(1,colIndex,"");
-//					ed.setRowTo(100);
-//					ed.setColTo(colIndex);
-//					ed.setValidation(true);
-//					ed.setValidationDataList(enumValueList);
-//					ed.setValidationErrorMsg("璇峰湪搴忓垪涓�夋嫨姝g‘鐨勫��");
-//					excelDataList.add(ed);
-//				}
-//				if(VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributeDataType())){
-//					List<String> booleanList = new ArrayList<>();
-//
-//					booleanList.add("鏄�");
-//					booleanList.add("鍚�");
-//					//榛樿鍔�1涓囨潯
-//					WriteExcelData ed = new WriteExcelData(1,colIndex,"");
-//					ed.setRowTo(100);
-//					ed.setColTo(colIndex);
-//					ed.setValidation(true);
-//					ed.setValidationDataList(booleanList);
-//					ed.setValidationErrorMsg("璇峰湪搴忓垪涓�夋嫨姝g‘鐨勫��");
-//					excelDataList.add(ed);
-//				}
-//			}
-//			eo.addSheetDataList(j+templateVO.getName(),excelDataList);
-//			tempEDList.add(new WriteExcelData(j+1,0,templateVO.getOid()));
-//			tempEDList.add(new WriteExcelData(j+1,1,templateVO.getId()));
-//			tempEDList.add(new WriteExcelData(j+1,2,templateVO.getName()));
-//		}
-//		String excelName = LocalFileUtil.getDefaultTempFolder() + File.separator + codeClassifyVO.getName() + (isHistory?"_鍘嗗彶鏁版嵁瀵煎叆妯℃澘.xls": "_瀵煎叆妯℃澘.xls");
-//		eo.addSheetDataList(templateVOList.size()+"妯℃澘淇℃伅銆愯鍕垮垹闄ゆ垨绉诲姩銆�",tempEDList);
-//		ExcelUtil.writeDataToFile(excelName,eo);
-//		return excelName;
-//	}
-//
-//	/**
-//	 * 瀵煎嚭鐨勬椂鍊欏皝瑁呭繀杈撳拰鍏抽敭灞炴��
-//	 * @param attrVO 灞炴�х殑鏄剧ず瀵硅薄
-//	 * @param text 鍗曞厓鏍肩殑鍊�
-//	 */
-//	private Object exportKeyAndRequired(Workbook workbook,CodeClassifyTemplateAttrVO attrVO,Object text){
-//		//蹇呰緭鍔�*锛屽叧閿睘鎬т负钃濊壊
-//		if (VciBaseUtil.getBoolean(attrVO.getRequireFlag()) || VciBaseUtil.getBoolean(attrVO.getKeyAttrFlag())) {
-//			String value = text.toString();
-//			if(VciBaseUtil.getBoolean(attrVO.getRequireFlag())) {
-//				value += REQUIRED_CHAR;
-//			}
-//			if(VciBaseUtil.getBoolean(attrVO.getKeyAttrFlag())){
-//				value += KEY_ATTR_CHAR;
-//			}
-//			RichTextString ts = new HSSFRichTextString(value);
-//			if(VciBaseUtil.getBoolean(attrVO.getRequireFlag())){
-//				Font font =  workbook.createFont();
-//				font.setColor(HSSFColor.HSSFColorPredefined.RED.getIndex());
-//				ts.applyFont(font);
-//			}
-//
-//			if(VciBaseUtil.getBoolean(attrVO.getKeyAttrFlag())){
-//				Font font =  workbook.createFont();
-//				font.setColor(HSSFColor.HSSFColorPredefined.BLUE.getIndex());
-//				ts.applyFont(font);
-//			}
-//			return ts;
-//		}
-//		return text;
-//	}
-//
-//
-//	/**
-//	 * 鎵归噺鐢宠缂栫爜鏁版嵁
-//	 *
-//	 * @param orderDTO 缂栫爜鐢宠淇℃伅锛屽繀椤诲寘鍚垎绫讳富閿拰鐮佹鐨勪俊鎭�
-//	 * @param file     excel鏂囦欢鐨勪俊鎭�
-//	 * @return  鏈夐敊璇俊鎭殑excel鐨勬枃浠�
-//	 */
-//	@Override
-//	public CodeImProtRusultVO batchImportCode(CodeOrderDTO orderDTO, File file) {
-//		VciBaseUtil.alertNotNull(orderDTO,"缂栫爜鐢宠鐩稿叧鐨勬暟鎹�",orderDTO.getCodeClassifyOid(),"涓婚搴撳垎绫讳富閿�");
-//		ReadExcelOption reo = new ReadExcelOption();
-//		reo.setReadAllSheet(true);
-//		List<SheetDataSet> sheetDataSetList = ExcelUtil.readDataObjectFromExcel(file,null,reo);
-//		if(CollectionUtils.isEmpty(sheetDataSetList) || CollectionUtils.isEmpty(sheetDataSetList.get(0).getRowData())
-//			||sheetDataSetList.get(0).getRowData().size()<1){
-//			throw new VciBaseException("娌℃湁璇诲彇鍒颁换浣曠殑鏁版嵁");
-//		}
-//		if(sheetDataSetList.size()>LIMIT+1){
-//			throw new VciBaseException("涓轰簡淇濊瘉绯荤粺鐨勭ǔ瀹氭�э紝璇蜂竴娆′笉瑕佸鍏ヨ秴杩�1涓囨潯鐨勬暟鎹�");
-//		}
-//		//鍏堟壘鍒版瘡涓�琛岀殑鏍囬锛岀劧鍚庢牴鎹爣棰樻潵鑾峰彇瀵瑰簲鐨勫睘鎬�
-//		SheetDataSet dataSet = sheetDataSetList.get(0);
-//		//鎵剧涓�琛岋紝涓轰簡鎵炬爣棰�
-//		CodeClstemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid());
-//
-//		//鏍¢獙妯℃澘鏄笉鏄渶鏂扮殑
-//		checkTemplateSync(sheetDataSetList,templateVO,0);
-//		//鍏堜笉鐢ㄧ灞炴�ф槸鍚﹂兘瀛樺湪锛屽厛杞崲涓�涓嬫暟鎹�
-//		Map<String,String> errorMap = new HashMap<>();
-//		String redisUUid=batchImportCodes(orderDTO,templateVO,dataSet,errorMap,true);
-//		CodeImProtRusultVO codeImProtRusultVO = new CodeImProtRusultVO();
-//		List<String> needRowIndexList = new ArrayList<>();
-////		String filePath = returnErrorToExcel(dataSet.getRowData(), errorMap, needRowIndexList, dataSet.getColName());
-////		if(StringUtils.isNotBlank(filePath)) {
-////			codeImProtRusultVO.setFilePath(filePath);
-////		}
-////		if(StringUtils.isNotBlank(redisUUid)){
-////			codeImProtRusultVO.setRedisUuid(redisUUid);
-////		}
-//		return null;
-////		return codeImProtRusultVO;
-//	}
-//
-//	/**
-//	 * 鏍¢獙妯℃澘鏄惁涓哄悓姝ョ殑
-//	 * @param sheetDataSetList excel閲岀殑鍐呭
-//	 * @param templateVO 妯℃澘鐨勪俊鎭�
-//	 */
-//	private void checkTemplateSync(List<SheetDataSet> sheetDataSetList,CodeClstemplateVO templateVO,int i){
-//		String templateOidInExcel = "";
-//		String templateName="";
-//		if(!CollectionUtils.isEmpty(sheetDataSetList)
-//			&& sheetDataSetList.size()>1 && !CollectionUtils.isEmpty(sheetDataSetList.get(sheetDataSetList.size()-1).getColName())){
-//			List<SheetRowData>  rowData=  sheetDataSetList.get(sheetDataSetList.size()-1).getRowData();
-//			templateName=rowData.get(i).getData().get(2);
-//			templateOidInExcel=rowData.get(i).getData().get(0);
-//			//templateOidInExcel = sheetDataSetList.get(sheetDataSetList.size()-1).getColName().get(sheetDataSetList.size()-i);
-//		}
-//       /* if(!CollectionUtils.isEmpty(sheetDataSetList)
-//                && sheetDataSetList.size()>1 && !CollectionUtils.isEmpty(sheetDataSetList.get(sheetDataSetList.size()-1).getColName())){
-//            List<SheetRowData>  rowData=  sheetDataSetList.get(sheetDataSetList.size()-1).getRowData();
-//            templateOidInExcel=rowData.get(i).getData().get(0);
-//           //templateOidInExcel = sheetDataSetList.get(sheetDataSetList.size()-1).getColName().get(sheetDataSetList.size()-i);
-//        }*/
-//		if(StringUtils.isBlank(templateOidInExcel) || !templateOidInExcel.equalsIgnoreCase(templateVO.getOid())){
-//			throw new VciBaseException("妯℃澘銆�"+templateName+"銆戜腑鐨勬暟鎹幏鍙栫殑妯$増淇℃伅涓庡綋鍓嶆ā鏉夸笉鍖归厤锛岃纭繚excel鏂囦欢閲屾湁銆愭ā鏉夸俊鎭�-璇峰嬁绉诲姩鎴栧垹闄ゃ�戠殑宸ヤ綔琛紝涓旂‘淇濇瘡娆″鍏ラ兘鏄厛涓嬭浇鐨勫鍏ユā鏉垮悗娣诲姞鐨勬暟鎹�");
-//		}
-//
-//	}
-//
-//
-//	/***
-//	 * 鎵归噺澶勭悊鐢宠鏁版嵁
-//	 * @param orderDTO
-//	 * @param templateVO
-//	 * @param dataSet
-//	 * @return
-//	 */
-//	private String batchImportCodes(CodeOrderDTO orderDTO,CodeClstemplateVO templateVO,SheetDataSet dataSet,Map<String,String> errorMap,boolean isEnumType){
-//		List<String> codeList=new ArrayList<>();
-////		CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
-//		//瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇
-////		CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
-////		//1.鍒ゆ柇瑙勫垯涓櫎浜嗘祦姘寸爜娈碉紝鏄惁鏈夊叾浠栫爜娈�
-////		engineService.checkSecValueOnOrder(ruleVO,orderDTO);
-////		List<SheetRowData> rowDataList = dataSet.getRowData();
-////
-////		//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
-////		List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s ->
-////			!DEFAULT_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormdisplayflag())
-////		).collect(Collectors.toList());
-////		Map<Integer/**鍒楀彿**/,String/**瀛楁鐨勫悕绉�**/> fieldIndexMap = new HashMap<>();
-////		List<String> titleRowData = dataSet.getColName();
-////		Map<String/**涓枃鍚嶇О**/, String/**鑻辨枃鍚嶇О**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId().toLowerCase(Locale.ROOT),(o1, o2)->o2));
-////		getFieldIndexMap(titleRowData,attrNameIdMap,fieldIndexMap);
-////
-////		//闇�瑕佸垽鏂槸鍚︽墍鏈夌殑灞炴�ч兘鍦ㄦā鏉夸笂浜�
-////		List<CodeClassifyTemplateAttrVO> unExistAttrVOs = attrVOS.stream().filter(s -> !fieldIndexMap.containsValue(s.getId().toLowerCase(Locale.ROOT))
-////			&& StringUtils.isBlank(s.getComponentrule()) && StringUtils.isBlank(s.getClassifyinvokeattr())//缁勫悎瑙勫垯鍜屽垎绫绘敞鍏ョ‘瀹炴病缁欑敤鎴峰鍑哄幓
-////		).collect(Collectors.toList());
-////		if(!CollectionUtils.isEmpty(unExistAttrVOs)){
-////			throw new VciBaseException("銆�" + unExistAttrVOs.stream().map(CodeClassifyTemplateAttrVO::getName) + "銆戣繖浜涘睘鎬у湪鍒楄〃涓病鏈夋壘鍒�");
-////		}
-////		List<ClientBusinessObject> cboList = new ArrayList<>();
-////		String fullPath = getFullPath(classifyFullInfo);
-////		excelToCbo(classifyFullInfo,fieldIndexMap,rowDataList,templateVO,cboList,fullPath,true);
-////
-////		//閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌�
-////		//濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓�
-////		//2.鍒ゆ柇蹇呰緭椤广�傘�傞渶瑕佸叏閮ㄧ殑灞炴�э紝濡傛灉鏄繀杈擄紝浣嗘槸琛ㄥ崟閲岄潰涓嶆樉绀虹殑锛屽彧鑳芥槸鍒嗙被娉ㄥ叆鎴栬�呯粍鍚堣鍒�
-////		batchCheckRequiredAttrOnOrder(templateVO,cboList,errorMap);
-////		//3.鍒ゆ柇鍏抽敭灞炴��
-////		CodeImportResultVO keyResultVO = batchCheckKeyAttrOnOrder(classifyFullInfo, templateVO, cboList);
-////		Set<String> selfRepeatRowIndexList = keyResultVO.getSelfRepeatRowIndexList();
-////		Set<String> keyAttrRepeatRowIndexList = keyResultVO.getKeyAttrRepeatRowIndexList();
-////		if(!CollectionUtils.isEmpty(selfRepeatRowIndexList)){
-////			selfRepeatRowIndexList.stream().forEach(rowIndex->{
-////				errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍦ㄥ綋鍓嶅鐞嗙殑鏁版嵁鏂囦欢涓叧閿睘鎬ч噸澶�" );
-////			});
-////		}
-////		if(!CollectionUtils.isEmpty(keyAttrRepeatRowIndexList)){
-////			keyAttrRepeatRowIndexList.stream().forEach(rowIndex->{
-////				errorMap.put(rowIndex,errorMap.getOrDefault(rowIndex,"") + ";鍏抽敭灞炴�т笌绯荤粺涓殑閲嶅" );
-////			});
-////		}
-////		//鍒嗙被娉ㄥ叆
-////		batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,false);
-////		//boolean
-////		reSwitchBooleanAttrOnOrder(attrVOS,cboList);
-////		//4.鏍¢獙瑙勫垯
-////		batchCheckVerifyOnOrder(attrVOS, cboList,errorMap);
-////		if(isEnumType) {//鏄惁闇�瑕佹牎楠屾灇涓�/鍙傜収
-////			//5.鏍¢獙鏋氫妇鏄惁姝g‘
-////			batchSwitchEnumAttrOnOrder(attrVOS, cboList, errorMap);
-////			//7.澶勭悊鍙傜収鐨勬儏鍐�
-////			batchSwitchReferAttrOnOrder(attrVOS,cboList,errorMap);
-////		}
-////		//6.鏃堕棿鏍煎紡鐨勯獙璇�
-////		//6.鏃堕棿鐨勶紝蹇呴』缁熶竴涓簓yyy-MM-dd HH:mm:ss
-////		batchSwitchDateAttrOnOrder(attrVOS,cboList,errorMap);
-////		//鏈�鍚庡紕缁勫悎瑙勫垯
-////		batchSwitchComponentAttrOnOrder(attrVOS,cboList);
-////		String uuid=redisService.getUUIDEveryDay();
-////		Map<String, ClientBusinessObject> rowIndexCboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getAttributeValue((IMPORT_ROW_INDEX)), t -> t));
-////
-////		if(errorMap.size()>0) {
-////			createRedisDatas(uuid + "-error",templateVO, rowIndexCboMap, dataSet, fieldIndexMap, errorMap,false);
-////		}
-////		boolean isCreateUUid=false;
-////		List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> {
-////			String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
-////			return !errorMap.containsKey(rowIndex);
-////		}).collect(Collectors.toList());
-////		//鐩镐技鏍¢獙
-////		Map<String,String>resembleMap=new HashMap<>();
-////		List<DataResembleVO> dataResembleVOS=new ArrayList<>();
-////		String btmtypeid= classifyFullInfo.getTopClassifyVO().getBtmtypeid();
-////		bathcResembleQuery(orderDTO.getCodeClassifyOid(),templateVO,needSaveCboList,resembleMap,btmtypeid,dataResembleVOS);
-////		if(resembleMap.size()>0) {
-////			isCreateUUid=true;
-////			if(!CollectionUtils.isEmpty(dataResembleVOS)) {
-////				redisService.setCacheList(uuid + "-resemble-data", dataResembleVOS);
-////				createRedisDatas(uuid + "-resemble",templateVO, rowIndexCboMap, dataSet, fieldIndexMap, resembleMap, false);
-////			}
-////		}
-////		//鎺掗櫎閿欒鐨勶紝鍓╀笅姝g‘鐨�
-////		Map<String,String> newErrorMap=new HashMap<>();
-////		newErrorMap.putAll(resembleMap);
-////		newErrorMap.putAll(errorMap);
-////		needSaveCboList = cboList.stream().filter(cbo -> {
-////			String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
-////			return !newErrorMap.containsKey(rowIndex);
-////		}).collect(Collectors.toList());
-////		if((errorMap.size()>0&&needSaveCboList.size()>0)||resembleMap.size()>0){
-////			isCreateUUid=true;
-////		}
-////		createRedisByCodeClassify(uuid + "-class",templateVO,dataSet,fieldIndexMap,false);
-////		if(newErrorMap.size()>0) {
-////			createRedisDatas(uuid + "-ok",templateVO, rowIndexCboMap, dataSet, fieldIndexMap, newErrorMap,true);
-////		}else {
-////			uuid="";
-////			//瑕佹妸浠ヤ笂鐨勯敊璇殑閮芥姏鍑哄悗锛屽啀缁х画澶勭悊鏃堕棿鍜岀粍鍚堣鍒�
-////			needSaveCboList = cboList.stream().filter(cbo -> {
-////				String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
-////				return !newErrorMap.containsKey(rowIndex);
-////			}).collect(Collectors.toList());
-////			if (!CollectionUtils.isEmpty(needSaveCboList)) {
-////				//9.鎴戜滑澶勭悊涓氬姟鏁版嵁
-////				//鐢熸垚缂栫爜鐨勫唴瀹�
-////				codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), needSaveCboList);
-////				//濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰
-////				engineService.batchSaveSelectChar(templateVO, needSaveCboList);
-////			}
-////		}
-////		if(!isCreateUUid){
-////			return uuid="";
-////		}
-////		return uuid;
-//		return null;
-//	}
+	/**
+	 * 鍒嗙被鏈嶅姟灞�
+	 */
+	@Resource
+	@Lazy
+	private MdmEngineService engineService;
+
+	/**
+	 * 闆嗘垚鎵归噺鐢宠鏁版嵁
+	 * @param orderDTO 鍒嗙被鐨勪富閿�
+	 * @param dataObjectVO 鏁版嵁淇℃伅
+	 * @param resultDataObjectDetailDOs 閿欒淇℃伅
+	 * @return 鏈夐敊璇俊鎭殑excel
+	 */
+	@Override
+	public void batchSyncApplyCode(CodeOrderDTO orderDTO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
+		Map<String,String> errorMap=new HashMap<>();
+		VciBaseUtil.alertNotNull(orderDTO,"缂栫爜鐢宠鐩稿叧鐨勬暟鎹�",orderDTO.getCodeClassifyOid(),"涓婚搴撳垎绫讳富閿�");
+		CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
+		//瑙勫垯鐨勪富閿渶瑕佸幓鑾峰彇
+		CodeRuleVO ruleVO = engineService.getCodeRuleByClassifyFullInfo(classifyFullInfo);
+		//1.鍒ゆ柇瑙勫垯涓櫎浜嗘祦姘寸爜娈碉紝鏄惁鏈夊叾浠栫爜娈�
+		//engineService.checkSecValueOnOrder(ruleVO,orderDTO);
+		//鏌ヨ鍒嗙被鍜屾ā鏉�
+		//鍏堟壘鍒版瘡涓�琛岀殑鏍囬锛岀劧鍚庢牴鎹爣棰樻潵鑾峰彇瀵瑰簲鐨勫睘鎬�
+		List<RowDatas> rowDataList = dataObjectVO.getRowData();
+		Map<String , RowDatas>rowDataMap=new LinkedHashMap<>();
+		rowDataList.stream().forEach(rowData->{
+			rowDataMap.put(rowData.getRowIndex(),rowData);
+		});
+		//鎵剧涓�琛岋紝涓轰簡鎵炬爣棰�
+		CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid());
+
+		//鏍¢獙妯℃澘鏄笉鏄渶鏂扮殑
+		//checkTemplateSync(sheetDataSetList,templateVO);
+		//闄ゅ幓榛樿鐨勫睘鎬�.杩樻湁鍙湁琛ㄥ崟鏄剧ず鐨勫瓧娈垫墠瀵煎叆
+		List<CodeClassifyTemplateAttrVO> attrVOS = templateVO.getAttributes().stream().filter(s ->!DEFAULT_SYNC_ATTR_LIST.contains(s.getId()) && VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+		).collect(Collectors.toList());
+		Map<Integer/**鍒楀彿**/,String/**瀛楁鐨勫悕绉�**/> fieldIndexMap = new HashMap<>();
+		List<String> titleRowData = dataObjectVO.getColName();
+		Map<String/**涓枃鍚嶇О**/, String/**鑻辨枃鍚嶇О**/> attrNameIdMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getName(), t -> t.getId().toLowerCase(Locale.ROOT),(o1, o2)->o2));
+		getFieldIndexMap(titleRowData,attrNameIdMap,fieldIndexMap);
+
+		//闇�瑕佸垽鏂槸鍚︽墍鏈夌殑灞炴�ч兘鍦ㄦā鏉夸笂浜�
+		List<CodeClassifyTemplateAttrVO> unExistAttrVOs = attrVOS.stream().filter(s -> !fieldIndexMap.containsValue(s.getId().toLowerCase(Locale.ROOT))
+			&& StringUtils.isBlank(s.getComponentRule()) && StringUtils.isBlank(s.getClassifyInvokeAttr())//缁勫悎瑙勫垯鍜屽垎绫绘敞鍏ョ‘瀹炴病缁欑敤鎴峰鍑哄幓
+		).collect(Collectors.toList());
+		if(!CollectionUtils.isEmpty(unExistAttrVOs)){
+			throw new VciBaseException("銆�" + unExistAttrVOs.stream().map(CodeClassifyTemplateAttrVO::getName) + "銆戣繖浜涘睘鎬у湪excel涓病鏈夋壘鍒�");
+		}
+
+		String fullPath = getFullPath(classifyFullInfo);
+
+		// List<CodeClassifyProcessTempVO> codeClassifyProcessTempVOS=codeClassifyProcessTempService.listProcessTemplate(templateVO.getOid(),"code_cls_flow_use_order");
+		boolean isProcess=false;
+		//娉ㄩ噴鎺夋澶勪笅闈㈡墍鏈夐兘鎸夌収涓嶅垽鏂祦绋嬪瓨鍌ㄧ姸鎬佷簡
+		/** if(!CollectionUtils.isEmpty(codeClassifyProcessTempVOS)){
+		 isProcess=true;
+		 }***/
+		//List<ClientBusinessObject> cboList = new ArrayList<>();
+		//Map<String,String> codeOidToSystemOidMap=new HashMap<>();//瀛樺偍缂栫爜鏁版嵁鍜岄泦鎴愮郴缁熸暟鎹畂id瀵圭収鏄犲皠
+		//excelToCbo(classifyFullInfo,titleRowData,fieldIndexMap,rowDataList,templateVO,cboList,fullPath,isProcess,"create",errorMap,codeOidToSystemOidMap);
+
+		//閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌�
+		//濡傛灉鍑洪敊浜嗭紝鎴戜滑渚濈劧鎵ц鏈夋晥鐨勬暟鎹紝鏃犳晥鐨勬暟鎹啓鍥炲埌excel涓�
+		//2.鍒ゆ柇蹇呰緭椤广�傘�傞渶瑕佸叏閮ㄧ殑灞炴�э紝濡傛灉鏄繀杈擄紝浣嗘槸琛ㄥ崟閲岄潰涓嶆樉绀虹殑锛屽彧鑳芥槸鍒嗙被娉ㄥ叆鎴栬�呯粍鍚堣鍒�
+
+	}
+
+	@Override
+	public void batchSyncEditDatas(CodeClassifyVO codeClassifyVO, DataObjectVO dataObjectVO, LinkedList<XMLResultDataObjectDetailDO> resultDataObjectDetailDOs) {
+
+	}
+
+	/**
+	 * 鑾峰彇鍒嗙被鐨勫叏璺緞
+	 * @param classifyFullInfo 鍒嗙被鐨勫叏閮ㄤ俊鎭�
+	 * @return 鍏ㄨ矾寰�
+	 */
+	private String getFullPath(CodeClassifyFullInfoBO classifyFullInfo){
+		String fullPath = "";
+		if(!CollectionUtils.isEmpty(classifyFullInfo.getParentClassifyVOs())){
+			fullPath = classifyFullInfo.getParentClassifyVOs().stream().sorted(((o1, o2) -> o1.getDataLevel().compareTo(o2.getDataLevel())))
+				.map(CodeClassifyVO::getOid).collect(Collectors.joining("##"));
+		}else{
+			fullPath = classifyFullInfo.getCurrentClassifyVO().getOid();
+		}
+		return fullPath;
+	}
+
+	/**
+	 * excel鐨勬爣棰樹笂鑾峰彇瀛楁鎵�鍦ㄧ殑浣嶇疆
+	 * @param titleRowData 鏍囬鐨勫唴瀹�
+	 * @param attrNameIdMap 妯℃澘涓睘鎬у悕绉板拰鑻辨枃鐨勬槧灏�
+	 * @param fieldIndexMap 浣嶇疆鍜岃嫳鏂囧瓧娈电殑鏄犲皠
+	 */
+	private void getFieldIndexMap(List<String> titleRowData,Map<String/**鍚嶇О**/,String/**瀛楁鍚�**/> attrNameIdMap,Map<Integer/**浣嶇疆**/,String/**鑻辨枃鍚嶅瓧**/> fieldIndexMap){
+		for (int i = 0; i < titleRowData.size(); i++) {
+			String title = titleRowData.get(i);
+			String id = attrNameIdMap.getOrDefault(title.replace(KEY_ATTR_CHAR,"").replace(REQUIRED_CHAR
+				,""),"");
+			if(StringUtils.isBlank(id) && "鍒嗙被璺緞".equalsIgnoreCase(title)){
+				id = CODE_CLASSIFY_OID_FIELD;
+			}
+			if(StringUtils.isBlank(id) && "鐮佹瀹藉害".equalsIgnoreCase(title)){
+				id = CODE_SEC_LENGTH_FIELD;
+			}
+			if(StringUtils.isBlank(id) && "浼佷笟缂栫爜".equalsIgnoreCase(title)){
+				id = CODE_FIELD;
+			}
+			if(StringUtils.isNotBlank(id)){
+				fieldIndexMap.put(i,id);
+			}
+		}
+	}
+
+
 }
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 b94025b..6b06b57 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
@@ -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鏄痻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;
 	}
 
 	/***
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/update.json b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/update.json
index c771e52..967a1a2 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/update.json
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/update.json
@@ -1,111 +1,17 @@
 {
   "data": {
-    "systemId": "RLM",
+    "systemId": "MPM",
     "user": {
       "userName": "weidy",
       "trueName": "榄忓ぇ鍕�",
       "ip": "127.0.0.1"
     },
-    "classifys": {
-      "classify": [
-        {
-          "classCode": "020104",
-          "library": "StdLib",
-          "fullclsfNamePath": "鐗╁搧##VCI##鏍囧噯浠�##VCI##铻烘爴",
-          "objects": {
-            "object": [
-              {
-                "code": "0201040002",
-                "id": "0023401",
-                "status": "Released",
-                "operate": "update",
-                "editor": "weidy",
-                "prop": [
-                  {
-                    "key": "partNo",
-                    "text": "鐗屽彿",
-                    "value": "HB1-221"
-                  },
-                  {
-                    "key": "partName",
-                    "text": "鍚嶇О",
-                    "value": "鍗婂渾澶磋灪閽�1"
-                  },
-                  {
-                    "key": "PartNumber",
-                    "text": "",
-                    "value": "HB1-221-M4*6"
-                  },
-                  {
-                    "key": "鐗屽彿",
-                    "text": "",
-                    "value": "HB1-221"
-                  },
-                  {
-                    "key": "瑙勬牸",
-                    "text": "",
-                    "value": "M41"
-                  },
-                  {
-                    "key": "琛ㄩ潰澶勭悊",
-                    "text": "",
-                    "value": "鐢甸晙"
-                  },
-                  {
-                    "key": "淇濋櫓瀛斿瀷寮�",
-                    "text": "",
-                    "value": "鏃�1"
-                  }
-                ]
-              },
-              {
-                "code": "0201040003",
-                "id": "0023402",
-                "status": "Released",
-                "operate": "update",
-                "editor": "weidy",
-                "prop": [
-                  {
-                    "key": "partNo",
-                    "text": "鐗屽彿",
-                    "value": "HB1-221"
-                  },
-                  {
-                    "key": "partName",
-                    "text": "鍚嶇О",
-                    "value": "鍗婂渾澶磋灪閽�2"
-                  },
-                  {
-                    "key": "PartNumber",
-                    "text": "",
-                    "value": "HB1-221-M4*5"
-                  },
-                  {
-                    "key": "鐗屽彿",
-                    "text": "",
-                    "value": "HB1-221"
-                  },
-                  {
-                    "key": "瑙勬牸",
-                    "text": "",
-                    "value": "M43"
-                  },
-                  {
-                    "key": "琛ㄩ潰澶勭悊",
-                    "text": "",
-                    "value": "鐢甸晙"
-                  },
-                  {
-                    "key": "淇濋櫓瀛斿瀷寮�",
-                    "text": "",
-                    "value": "鏃�2"
-                  }
-                ]
-              }
-            ]
-          }
-        }
+    "library": {
+      "id": "wupin",
+      "classifyid":[
+        "020201",
+        "020202"
       ]
     }
   }
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3