From b7a96fdc87ba86a100cd8fddbd03080f72703089 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期三, 17 五月 2023 21:56:15 +0800
Subject: [PATCH] 以及发布webservice接口功能搭建,将通通用接口移植过来

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java |  534 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 534 insertions(+), 0 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 e69de29..402f6bb 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
@@ -0,0 +1,534 @@
+package com.vci.ubcs.code.service.impl;
+
+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.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.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.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;
+
+import static com.vci.ubcs.code.constant.MdmEngineConstant.DEFAULT_SYNC_ATTR_LIST;
+
+/***
+ * 缁熶竴鎺ュ彛
+ */
+@Service
+@Slf4j
+@VciWebservice(path = "/universalInterface")
+public class UniversalInterfaceImpl<IDockingLogeServiceing> implements UniversalInterfaceI {
+
+	/**
+	 * 鏃ュ織
+	 */
+	private Logger logger = LoggerFactory.getLogger(getClass());
+
+	@Autowired(required = false)
+	private AttributeMapConfig attributeMapConfig;
+	/**
+	 * 缂撳瓨鏈嶅姟
+	 */
+	//@Autowired
+	//private RedisService redisService;
+	/**
+	 * 涓婚搴撳垎绫荤殑鏈嶅姟
+	 */
+	@Autowired(required = false)
+	private ICodeClassifyService classifyService;
+	/**
+	 * 涓绘暟鎹紩鎿庣殑鏈嶅姟
+	 */
+	//@Resource
+	//private MdmEngineService engineService;
+
+	/**
+	 * 瀵嗙骇鐨勬湇鍔�
+	 */
+
+	@Resource
+	private MdmIOService mdmIOService;
+	/***
+	 * 闆嗘垚鎺ュ彛鏃ュ織鏈嶅姟鐨勯厤缃�
+	 */
+	@Resource
+	private IDockingLogeService dockingLogeService;
+
+	private  static String separator="##VCI##";
+	private  String errorid="0";
+	private String msg="鎴愬姛";
+	private  String objerrorCode="0";
+	private String objerrorMsg="鎴愬姛";
+	/***
+	 * 鐢宠缂栫爜鎺ュ彛
+	 * @param data 浼犻�掔殑鏁版嵁鍙傛暟
+	 * @param dataType 鏍囪瘑data鏄痻ml鏍煎紡杩樻槸json鏍煎紡锛屾帴鍙h繑鍥炴暟鎹篃鏄寜鐓ц繖涓牸寮忥紝浠ヤ笅鎺ュ彛绫诲悓
+	 * @return
+	 * @throws Throwable
+	 */
+	@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);
+
+			return "";
+		}
+	}
+
+	/***
+	 * 缁熶竴鏇存柊鎺ュ彛锛堟洿鏀圭姸鎬侊紝鏇存敼灞炴�т俊鎭級鎺ュ彛
+	 * @param data
+	 * @param dataType
+	 * @return
+	 * @throws Throwable
+	 */
+	@Override
+	public String syncEditData(String data, String dataType) throws Throwable {
+
+		return null;
+	}
+
+	/***
+	 * 鍒嗙被鏌ヨ
+	 * @param data
+	 * @param dataType
+	 * @return
+	 * @throws Throwable
+	 */
+	@Override
+	public String queryClassify(String data, String dataType) throws Throwable {
+		return null;
+	}
+
+	/***
+	 * 鏁版嵁鏌ヨ
+	 * @param data
+	 * @param dataType
+	 * @return
+	 * @throws Throwable
+	 */
+	@Override
+	public String queryData(String data, String dataType) throws Throwable {
+		return null;
+	}
+
+	@Override
+	public String queryClassifyRule(String data, String datatype) throws Throwable {
+		return null;
+	}
+
+	/***
+	 * 鏌ヨ鏍¢獙鍒嗙被淇℃伅
+	 * @param classfyVO
+	 */
+	private  CodeClassifyVO getClassfy(ClassfyVO classfyVO) throws Throwable{
+		CodeClassifyVO classifyVO = new CodeClassifyVO();
+		try {
+			String classCode = classfyVO.getClassCode();
+			String className = classfyVO.getFullclsfNamePath();
+			//鏍规嵁鍒嗙被浠e彿鏌ヨ鍒嗙被淇℃伅
+			if (StringUtils.isNotBlank(classfyVO.getClassCode())) {
+				Map<String, String> conditionMap = new HashMap<>();
+				List<CodeClassify> codeClassifyList = classifyService.selectByWrapper(Wrappers.<CodeClassify>query().lambda().eq(CodeClassify::getId, classCode));
+				if (!CollectionUtils.isEmpty(codeClassifyList)) {
+					CodeClassify classifyDO = codeClassifyList.get(0);
+					//灏咲TO杞崲涓篋O
+					classifyVO = new CodeClassifyVO();
+					BeanUtilForVCI.copyPropertiesIgnoreCase(classifyDO, classifyVO);
+					if(StringUtils.isBlank(classifyVO.getOid())){
+						throw new  Throwable("鏍规嵁鍒嗙被浠e彿鏈煡璇㈠埌鐩稿簲鐨勫垎绫讳俊鎭�");
+					}
+				}else{
+					throw new  Throwable("鏍规嵁鍒嗙被浠e彿鏈煡璇㈠埌鐩稿簲鐨勫垎绫讳俊鎭�");
+				}
+			} else {
+				//classifyVO = classifyService.getObjectByClsfNamePath(className.replace(separator, "/"));
+				//if(StringUtils.isBlank(classifyVO.getOid())){
+				//	throw new  Throwable("鏍规嵁鍒嗙被鍚嶇О璺緞鏈煡璇㈠埌鐩稿簲鐨勫垎绫讳俊鎭�");
+				//}
+			}
+		}catch (Throwable e){
+			objerrorCode="100";
+			new  Throwable("鑾峰彇鍒嗙被淇℃伅澶辫触:"+e.getMessage());
+		}
+		return classifyVO;
+	}
+	/***
+	 * 鏍规嵁绌垮叆鐨勫弬鏁颁俊鎭牎楠岀爜娈佃鍒�
+	 */
+	private List<CodeOrderSecDTO> getRuleCodeOrderSecDTOs(List<SectionVO> SectionVOList,CodeRuleVO ruleVO) throws Throwable{
+		List<CodeBasicSecVO>  codeBasicSecVOS= ruleVO.getSecVOList();
+		Map<String,String> sectionVOMap=new HashMap<>();
+		SectionVOList.stream().forEach(SectionVO->{
+			sectionVOMap.put(SectionVO.getName(),SectionVO.getValue());
+		});
+		List<CodeOrderSecDTO> codeOrderSecDTOList=new ArrayList<>();
+		for(CodeBasicSecVO codeBasicSecVO: codeBasicSecVOS) {
+			String sectype = codeBasicSecVO.getSecType();
+			if (!sectype.equals(CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())) {
+				String name = codeBasicSecVO.getName();
+				String sectypeText = codeBasicSecVO.getSecTypeText();
+				logger.info("鐮佹鍚嶇О:"+name);
+				logger.info("鎻忚堪:"+sectypeText);
+				CodeOrderSecDTO CodeOrderSecDTO = new CodeOrderSecDTO();
+				if (sectionVOMap.containsKey(name)) {
+					CodeOrderSecDTO.setSecOid(codeBasicSecVO.getOid());
+					String sectypeValue = sectionVOMap.get(name);
+					logger.info("鐮佹鍊�:"+sectypeValue);
+					CodeOrderSecDTO.setSecValue(sectypeValue);
+					codeOrderSecDTOList.add(CodeOrderSecDTO);
+				} else {
+					objerrorCode="101";
+					throw new Throwable("浼犲叆鐨勭爜娈佃鍒欑己灏�" + name + "鐮佹");
+				}
+			}
+		}
+		return codeOrderSecDTOList;
+	}
+	/***
+	 * 鏍规嵁灞炴�ф槧灏勮浆鎹㈢紪鐮佹墍闇�瀛楁
+	 */
+	public void getConfigDatas(String systemId,String libray, ApplyDatasVO applyDatasVO,List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList,DataObjectVO dataObjectVO) throws Throwable {
+		List<ApplyDataVO> applyDataVOList=applyDatasVO.getObject();
+		LinkedHashMap<String,LinkedHashMap<String,String>> dataKeyValueMap=new LinkedHashMap<>();
+		//濡傛灉灏嗘暟鎹浆鎹㈡垚鎵�闇�瑕佺殑鏁版嵁瀵硅薄
+		Map<String, String> attrMapConfigMap=new HashMap<>();
+		Map<String, String> propMaps=new HashMap<>();
+		try {
+			Map<String, String> stringStringMap=attributeMapConfig.getSystem_attrmap();
+			//stringStringMap.put("RLM","D:\\RLM.xml");
+			LibraryDO libraryDO= gennerAttrMapUtil.getNewInstance().gennerAttrMapBySystem(systemId,stringStringMap);
+			List<LibraryClsfDO> libraryClsfDOList=libraryDO.getClsf();
+			Map<String, List<ClsfAttrMappingDO>> libPropMaps = libraryClsfDOList.stream().collect(Collectors.toMap(LibraryClsfDO::getLibrary, LibraryClsfDO::getProp, (key1, key2) -> key2));
+			if(libPropMaps.containsKey(libray)){
+				List<ClsfAttrMappingDO> clsfAttrMappingDOList=libPropMaps.get(libray);
+				propMaps = clsfAttrMappingDOList.stream().collect(Collectors.toMap(ClsfAttrMappingDO::getSourceKey, ClsfAttrMappingDO::getTargetKey, (key1, key2) -> key2));
+			}
+		}catch (Throwable e){
+			objerrorCode="1";
+			throw new Throwable("MDM闆嗘垚灞炴�ч厤缃枃浠惰鍙栧け璐�");
+		}
+		LinkedList<String> rowNameList=new LinkedList<>();
+		LinkedHashMap<String,Integer> filedIndexMap=new LinkedHashMap<>();
+		//鏍规嵁鍒嗙被妯℃澘缁勭粐鏁版嵁
+		final int[] index = {0};
+		try {
+			codeClassifyTemplateAttrVOList.stream().forEach(codeClassifyTemplateAttrVO -> {
+				String attrName = codeClassifyTemplateAttrVO.getName();
+				String field = codeClassifyTemplateAttrVO.getId();
+				rowNameList.add(attrName);
+				filedIndexMap.put(field, index[0]++);
+			});
+			dataObjectVO.setColName(rowNameList);//鏀惧叆灞炴��
+			attrMapConfigMap.putAll(propMaps);
+			LinkedList<RowDatas> rowDataList = new LinkedList<>();
+			//Map<String, List<ProppertyVO>> dataPropMap = applyDataVOList.stream().collect(Collectors.toMap(ApplyDataVO::getId, ApplyDataVO::getProp, (key1, key2) -> key2));
+			final int[] rowIndex = {0};
+			applyDataVOList.stream().forEach(applyDataVO -> {
+				rowIndex[0]++;
+				RowDatas rowDatas = new RowDatas();
+				rowDatas.setOid(applyDataVO.getId());
+				rowDatas.setCreator(applyDataVO.getCreator());
+				rowDatas.setEditor(applyDataVO.getEditor());
+				rowDatas.setCode(applyDataVO.getCode());
+				rowDatas.setOperation(applyDataVO.getOperate());
+				rowDatas.setStatus(applyDataVO.getStatus());
+				rowDatas.setRowIndex(rowIndex[0] + "");
+				List<ProppertyVO> proppertyVOList = applyDataVO.getProp();
+
+				LinkedHashMap<Integer, String> integerValueMap = new LinkedHashMap<>();
+				Map<String, String> filedValueMap = new HashMap<>();
+				if (!CollectionUtils.isEmpty(proppertyVOList)) {
+					Map<String, String> sourceKeyValueMap = proppertyVOList.stream().collect(Collectors.toMap(ProppertyVO::getKey, ProppertyVO::getValue, (key1, key2) -> key2));
+					Map<String, String> keyValueMap = new HashMap<>();
+					//鍒ゆ柇attrMapConfigMap鏄惁鏈夊�硷紝濡傛灉娌℃湁鍒欒鏄庡熀纭�榛樿鐨勬槸缂栫爜绯荤粺瀛楁
+					if (!CollectionUtils.isEmpty(attrMapConfigMap)) {
+						sourceKeyValueMap.keySet().forEach(sourceKey -> {
+							String dataValue = sourceKeyValueMap.get(sourceKey);
+							if (attrMapConfigMap.containsKey(sourceKey)) {
+								String targetKey = attrMapConfigMap.get(sourceKey);
+								keyValueMap.put(targetKey, StringUtils.isBlank(dataValue)?"":dataValue);
+							}
+						});
+					} else {
+						sourceKeyValueMap.forEach((filed,value)->{
+							keyValueMap.put(filed,StringUtils.isBlank(value)?"":value) ;
+						});
+					}
+
+					filedIndexMap.forEach((attrKey, column) -> {
+						String keyValue = "";
+						if (keyValueMap.containsKey(attrKey)) {
+							keyValue =StringUtils.isBlank(keyValueMap.get(attrKey))?"":keyValueMap.get(attrKey);
+						}
+						integerValueMap.put(column, keyValue);
+						filedValueMap.put(attrKey, keyValue);
+					});
+				}
+				rowDatas.setData(integerValueMap);
+				rowDatas.setFiledValue(filedValueMap);
+				rowDataList.add(rowDatas);
+			});
+			dataObjectVO.setRowData(rowDataList);
+		}catch (Throwable e){
+			objerrorCode="1";
+			throw new   Throwable("缁勭粐鏁版嵁鏄犲皠鍊煎け璐�");
+		}
+	}
+	/***
+	 * 璁板綍鏃ュ織淇℃伅
+	 * @param systemId
+	 * @param parmaData
+	 * @param result
+	 * @return
+	 */
+	private  void saveLogs(String systemId,String systemName,String parmaData, String result,boolean isSucess,String msg,String operation){
+		//璁板綍鏃ュ織淇℃伅
+		DockingLog dockingLoge=new DockingLog();
+		//String oid=redisService.getUUIDEveryDay();
+		dockingLoge.setSystemCode(StringUtils.isBlank(systemId)?"-":systemId);//璁剧疆绯荤粺鏍囪瘑
+		dockingLoge.setSystemName(StringUtils.isBlank(systemName)?"-":systemName);
+		dockingLoge.setMsg(msg);//鏃ュ織娑堟伅
+		dockingLoge.setClassifyId("-");//鍒嗙被缂栧彿
+		dockingLoge.setClassifyName("-");//鍒嗙被鍚嶇О
+		dockingLoge.setClassifyOid("-");//鍒嗙被涓婚敭
+		dockingLoge.setUniqueCode("-");//鍞竴鏍囪瘑
+		dockingLoge.setSystemOid("-");//绯荤粺鏍囪瘑
+//        dockingLogeDO.setName(operation);
+		//dockingLogeDO.setOid(oid);//鏃ュ織涓婚敭
+		dockingLoge.setParamString(parmaData);//鍙傛暟淇℃伅
+		dockingLoge.setReturnString(result);//杩斿洖淇℃伅
+		dockingLoge.setType(operation);//鏃ュ織鎿嶄綔绫诲瀷
+		if(isSucess) {
+			dockingLoge.setInterfaceStatus("true");//鎺ュ彛闆嗘垚鐘舵��
+		}else{
+			dockingLoge.setInterfaceStatus("false");//鎺ュ彛闆嗘垚鐘舵��
+		}
+		dockingLogeService.save(dockingLoge);
+		logger.info("闆嗘垚鎺ㄩ�佹暟鎹垚鍔�,systemId:"+systemId+",systemname:"+systemName+",operation:"+operation+",param:"+parmaData);
+	}
+
+	/***
+	 * 鏁版嵁缁存姢涓庣紪鐮佺敵璇疯繑鍥�
+	 * @param resultSystemVO
+	 * @param dataType
+	 * @return
+	 */
+	private String transferResultXMl(XMLResultSystemVO resultSystemVO,String dataType){
+		String resultStr="";
+		if ("xml".equals(dataType)) {
+			//缁勭粐杩斿洖鎺ュ彛淇℃伅
+			XStream xStream = new XStream(new DomDriver());
+			xStream.processAnnotations(XMLResultSystemVO.class);
+			xStream.autodetectAnnotations(true);
+			resultStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(resultSystemVO);
+		} else {
+			List<XMLResultClassfyVO> resultClassfyVOList =resultSystemVO.getClassifys();
+			JSONResultDataVO resultDataVO = new JSONResultDataVO();
+			JSONResultSystemVO jsonResultSystemVO = new JSONResultSystemVO();
+			JSONResultClassfysVO jsonResultClassfysVO = new JSONResultClassfysVO();
+			List<JSONResultClassfyVO> jSONResultClassfyVOList = new ArrayList<>();
+			resultClassfyVOList.stream().forEach(resultClassfyVO -> {
+				List<XMLResultDataObjectDetailDO> xmlResultDataObjectDetailDOS = resultClassfyVO.getObjects();
+				List<JSONResultDataObjectDetailDO> JSONResultDataObjectDetailDOList = new ArrayList<>();
+				xmlResultDataObjectDetailDOS.stream().forEach(xmlResultDataObjectDetail -> {
+					JSONResultDataObjectDetailDO jsonResultDataObjectDetail = new JSONResultDataObjectDetailDO();
+					BeanUtilForVCI.copyPropertiesIgnoreCase(xmlResultDataObjectDetail, jsonResultDataObjectDetail);
+					JSONResultDataObjectDetailDOList.add(jsonResultDataObjectDetail);
+				});
+				JSONResultClassfyVO jsonResultClassfyVO = new JSONResultClassfyVO();
+				jsonResultClassfyVO.setClassCode(resultClassfyVO.getClassCode());
+				jsonResultClassfyVO.setLibrary(resultClassfyVO.getLibrary());
+				jsonResultClassfyVO.setFullclsfNamePath(resultClassfyVO.getFullclsfNamePath());
+				JSONResultDataObjectDO JSONResultDataObjectDO = new JSONResultDataObjectDO();
+				JSONResultDataObjectDO.setObject(JSONResultDataObjectDetailDOList);
+				jsonResultClassfyVO.setObjects(JSONResultDataObjectDO);
+				jSONResultClassfyVOList.add(jsonResultClassfyVO);
+			});
+			jsonResultClassfysVO.setClassify(jSONResultClassfyVOList);
+			jsonResultSystemVO.setClassifys(jsonResultClassfysVO);
+			jsonResultSystemVO.setErrorid(resultSystemVO.getErrorid());
+			jsonResultSystemVO.setMsg(resultSystemVO.getMsg());
+			resultDataVO.setData(jsonResultSystemVO);
+			Object object = JSONObject.toJSON(resultDataVO);
+			resultStr = object.toString();
+
+		}
+		return resultStr;
+	}
+
+
+}

--
Gitblit v1.9.3