From 27cddefb0cb28da699954ba1a1756d6bcabafbbe Mon Sep 17 00:00:00 2001
From: ludc <ludc@vci-tech.com>
Date: 星期三, 05 三月 2025 17:41:29 +0800
Subject: [PATCH] 集成申码接口调整:当码值按照约定传表名为空的业务场景下传null校验问题和码值组装问题。

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java |  664 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 605 insertions(+), 59 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
index 4d9af0a..53fa337 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java
@@ -1,36 +1,64 @@
 package com.vci.ubcs.code.service.impl;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
+import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant;
+
 import com.vci.ubcs.code.dto.DockingSysIntHeaderDTO;
 import com.vci.ubcs.code.dto.DockingSystemConfigDTO;
 import com.vci.ubcs.code.dto.DockingSysIntParamDTO;
-import com.vci.ubcs.code.entity.DockingSysIntHeader;
-import com.vci.ubcs.code.entity.DockingSysIntParam;
-import com.vci.ubcs.code.entity.DockingSystem;
-import com.vci.ubcs.code.entity.DockingSystemConfig;
-import com.vci.ubcs.code.enumpack.SysIntegrationRequestTypeEnum;
-import com.vci.ubcs.code.mapper.DockingSysIntHeaderMapper;
-import com.vci.ubcs.code.mapper.DockingSysIntParamMapper;
-import com.vci.ubcs.code.mapper.DockingSystemConfigMapper;
-import com.vci.ubcs.code.mapper.DockingSystemMapper;
-import com.vci.ubcs.code.service.IDockingSysIntHeaderService;
-import com.vci.ubcs.code.service.IDockingSysIntParamService;
-import com.vci.ubcs.code.service.IDockingSystemConfigService;
-import com.vci.ubcs.code.vo.pagemodel.DockingSysIntHeaderVO;
-import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
+import com.vci.ubcs.code.dto.UpdateSysInfoStatusDTO;
+import com.vci.ubcs.code.dto.datapush.classify.JsonRootDataDTO;
+import com.vci.ubcs.code.dto.datapush.classify.NodeClassifyDTO;
+import com.vci.ubcs.code.dto.datapush.classify.NodeDataDTO;
+import com.vci.ubcs.code.dto.datapush.classify.NodeLibraryDTO;
+import com.vci.ubcs.code.dto.datapush.result.ResultJsonDTO;
+import com.vci.ubcs.code.dto.datapush.result.ResultNodeDataDTO;
+import com.vci.ubcs.code.dto.datapush.result.ResultNodeObjectDTO;
+import com.vci.ubcs.code.entity.*;
+import com.vci.ubcs.code.enumpack.*;
+import com.vci.ubcs.code.mapper.*;
+import com.vci.ubcs.code.service.*;
+import com.vci.ubcs.starter.util.HttpUtils;
+import com.vci.ubcs.code.util.WsErpClientUtil;
+import com.vci.ubcs.code.vo.pagemodel.*;
+import com.vci.ubcs.code.wrapper.DockingSysIntHeaderWrapper;
+import com.vci.ubcs.code.wrapper.DockingSysIntParamWrapper;
+import com.vci.ubcs.code.wrapper.DockingSystemConfigWrapper;
 import com.vci.ubcs.starter.exception.VciBaseException;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
 import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
+import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
+import com.vci.ubcs.starter.util.UBCSSqlKeyword;
+import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
+import com.vci.ubcs.starter.web.pagemodel.PageHelper;
 import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.util.VciDateUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
 
+import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.vci.ubcs.code.constant.MdmDuckingConstant.*;
+import static com.vci.ubcs.starter.util.MdmBtmTypeConstant.CODE_CLASSIFY_OID_FIELD;
 
 /***
  * 绯荤粺鎺ュ彛绠$悊-鎺ュ彛閰嶇疆鏈嶅姟
@@ -41,6 +69,8 @@
 @Service
 public class DockingSystemConfigServiceImpl extends ServiceImpl<DockingSystemConfigMapper, DockingSystemConfig> implements IDockingSystemConfigService{
 
+	@Value("${dataSyncPush.dataParamName:xmlData}")
+	public String DATA_PARAM_NAME;
 	/***
 	 * 闆嗘垚绯荤粺绠$悊鏈嶅姟
 	 */
@@ -53,8 +83,6 @@
 	@Autowired(required = false)
 	private IDockingSysIntParamService dockingSysIntParamService;
 
-
-
 	/***
 	 * 闆嗘垚鎺ュ彛-闆嗘垚鎺ュ彛绠$悊鍙傛暟鏈嶅姟
 	 */
@@ -62,17 +90,70 @@
 	private IDockingSysIntHeaderService dockingSysIntHeaderService;
 
 
+
+
 	/***
 	 * 闆嗘垚鎺ュ彛-闆嗘垚绯荤粺鏈嶅姟
 	 */
 	@Autowired(required = false)
 	private DockingSystemMapper dockingSystemMapper;
+//	/***
+//	 * 浠诲姟鐢熸垚鏈嶅姟
+//	 */
+//	@Resource
+//	private IDockingTaskService dockingTaskService;
 
+
+	/**
+	 * 涓绘暟鎹紩鎿庣殑鏈嶅姟
+	 */
+	@Resource
+	private MdmEngineService engineService;
+
+
+	/**
+	 * 涓婚搴撳垎绫荤殑鏈嶅姟
+	 */
+	@Resource
+	private ICodeClassifyService classifyService;
 	/**
 	 * 瀵硅薄鐨勬搷浣�
 	 */
 	@Autowired
 	private RevisionModelUtil revisionModelUtil;
+
+	/**
+	 * 閫氱敤鏌ヨ
+	 */
+	@Resource
+	private CommonsMapper commonsMapper;
+
+
+	/**
+	 * 鏃ュ織鏂囦欢鏈嶅姟
+	 */
+	@Resource
+	private IDockingLogeService dockingLogeService;
+
+	@Override
+	public IPage<DockingSystemConfigVO> page(Map<String,String>codtionMap, Query query) {
+		IPage<DockingSystemConfig> pages = page(Condition.getPage(query), UBCSSqlKeyword.buildConditionByMapString(codtionMap));
+		List<DockingSystemConfig>  dockingSystemConfigList= pages.getRecords();
+		dockingSystemConfigList.stream().forEach(dockingSystemConfig -> {
+			dockingSystemConfig.setDataFlowTypeText(SysIntegrationDataFlowTypeEnum.getTextByValue(dockingSystemConfig.getDataFlowType()));
+			dockingSystemConfig.setAuthorityTypeText(SysIntegrationAuthorityTypeEnum.getTextByValue(dockingSystemConfig.getAuthorityType()));
+			dockingSystemConfig.setParamTypeText(SysIntegrationParamAndReturnTypeEnum.getTextByValue(dockingSystemConfig.getParamType()));
+			dockingSystemConfig.setReturnTypeText(SysIntegrationParamAndReturnTypeEnum.getTextByValue(dockingSystemConfig.getReturnType()));
+			dockingSystemConfig.setInterfaceTypeText(SysIntegrationRequestTypeEnum.getValueByText(dockingSystemConfig.getInterfaceType()));
+			dockingSystemConfig.setPushTypeText(sysIntegrationPushTypeEnum.getTextByValue(dockingSystemConfig.getPushType()));
+			dockingSystemConfig.setRequestMethodText(SysIntegrationRequestMethodEnum.getTextByValue(dockingSystemConfig.getRequestMethod()));
+			//dockingSystemConfig.setSysBaseName("");
+		//	dockingSystemConfig.setSourceSysName("");
+			//dockingSystemConfig.setTargetSysName("");
+		});
+		return DockingSystemConfigWrapper.build().pageVO(pages);
+	}
+
 	/**
 	 * 澧炲姞绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�
 	 * @param dockingSystemConfigDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
@@ -80,61 +161,225 @@
 	 */
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
+	public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable {
 		log.info(" 澧炲姞绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�:"+dockingSystemConfigDTO.toString());
 		VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
 		checkColumnNotNull(dockingSystemConfigDTO);
-		String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();
-		DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
-		dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
-		dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
-		dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
-		dockingSystemConfigDTO.setUsedFlag("true");//璁剧疆榛樿鍚敤鐘舵��
-
-		//灏咲TO杞崲涓篋O
-		DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
-		revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
-
-
-		List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
-		List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
-		if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
-			sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
-				DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
-				sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
-				BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
-				DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO,MdmBtmTypeConstant.SYS_INT_PARAMTERY);
-				sysIntParamList.add(sysIntParamDO);
-			});
+		String systemOid ="";
+		if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.PUSH.getValue())) {
+			systemOid = dockingSystemConfigDTO.getTargetSystemOid();
+		}else{
+			systemOid = dockingSystemConfigDTO.getSourceSystemOid();
 		}
-		List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
-		List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
-		if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
-			sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
-				DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
-				sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
-				BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
-				DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
-				sysIntHeaderList.add(dockingSysIntHeader);
-			});
-		}
-		dockingSysIntParamService.saveBatch(sysIntParamList);
-		dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
-		DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
-		dockingSystemConfigMapper.insert(dockingSystemConfig);
+		DockingSystem dockingSystem = dockingSystemMapper.selectById(systemOid);
+		if(dockingSystem!=null) {
+			dockingSystemConfigDTO.setSysBaseOid(systemOid);
+			dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
+			dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
+			dockingSystemConfigDTO.setUsedFlag("true");//璁剧疆榛樿鍚敤鐘舵��
 
+			//灏咲TO杞崲涓篋O
+			DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
+			revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
+
+
+			List<DockingSysIntParamDTO> sysIntParamDTOList=  dockingSystemConfigDTO.getSysIntParamDTOS();
+			List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
+			if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
+				sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
+					DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
+					sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
+					BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO, MdmBtmTypeConstant.SYS_INT_PARAMTERY);
+					sysIntParamList.add(sysIntParamDO);
+				});
+			}
+			List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
+			List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
+			if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
+				sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
+					DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
+					sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
+					BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
+					DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
+					sysIntHeaderList.add(dockingSysIntHeader);
+				});
+			}
+			dockingSysIntParamService.saveBatch(sysIntParamList);
+			dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
+			DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
+			dockingSystemConfigMapper.insert(dockingSystemConfig);
+		}else{
+			throw new Throwable("鏍规嵁閫夋嫨鐨勯泦鎴愮郴缁熸湭鏍¢獙鍒扮郴缁熶腑瀛樺湪姝ら泦鎴愮郴缁燂紝璇锋牳瀵癸紒");
+		}
 		return true;
-
 	}
 
+	/**
+	 * 淇敼 绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�
+	 * @param dockingSystemConfigDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
+	 * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+	 */
+	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public DockingSystemVO editSave(DockingSystemConfigDTO dockingSystemDTO) {
-		return null;
+	public boolean editSave(DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable {
+		VciBaseUtil.alertNotNull(dockingSystemConfigDTO,"鏁版嵁瀵硅薄",dockingSystemConfigDTO.getOid(),"绯荤粺闆嗘垚鍩虹淇℃伅涓婚敭");
+		String systemOid ="";
+		if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.PUSH.getValue())) {
+			systemOid = dockingSystemConfigDTO.getTargetSystemOid();
+		}else{
+			systemOid = dockingSystemConfigDTO.getSourceSystemOid();
+		}
+		DockingSystem dockingSystem = dockingSystemMapper.selectById(systemOid);
+		if(dockingSystem!=null) {
+			dockingSystemConfigDTO.setSysBaseOid(dockingSystem.getOid());
+			dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
+			dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
+			//灏咲TO杞崲涓篋O
+			DockingSystemConfig dockingSystemConfig = dockingSystemConfigMapper.selectById(dockingSystemConfigDTO.getOid());
+			revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO, dockingSystemConfig);
+			String sysInfoOid = dockingSystemConfigDTO.getOid();
+			List<DockingSysIntParamDTO> dockingSysIntParamDTOS = dockingSystemConfigDTO.getSysIntParamDTOS();
+			List<DockingSysIntParam> dockingSysIntParamList = new ArrayList<>();
+			if (!CollectionUtils.isEmpty(dockingSysIntParamDTOS)) {
+				dockingSysIntParamDTOS.stream().forEach(dockingSysIntParamDTO -> {
+					DockingSysIntParam dockingSysIntParam = new DockingSysIntParam();
+					BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSysIntParamDTO, dockingSysIntParam);
+					dockingSysIntParamList.add(dockingSysIntParam);
+				});
+			}
+			List<DockingSysIntHeaderDTO> dockingSysIntHeaderDTOS = dockingSystemConfigDTO.getSysIntHeaderDTOS();
+			List<DockingSysIntHeader> dockingSysIntHeaderList = new ArrayList<>();
+			if (!CollectionUtils.isEmpty(dockingSysIntHeaderDTOS)) {
+				dockingSysIntHeaderDTOS.stream().forEach(dockingSysIntHeaderDTO -> {
+					DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
+					BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSysIntHeaderDTO, dockingSysIntHeader);
+					dockingSysIntHeaderList.add(dockingSysIntHeader);
+				});
+			}
+
+			//鎵归噺澶勭悊淇濆瓨header瀵硅薄
+			if (!CollectionUtils.isEmpty(dockingSysIntHeaderList)) {
+				List<String> idList = new ArrayList<>();
+				List<DockingSysIntHeader> headers_old = this.dockingSysIntHeaderService.list(Wrappers.<DockingSysIntHeader>query().lambda().eq(DockingSysIntHeader::getInfoOid, sysInfoOid));
+				;
+				for (DockingSysIntHeader sysIntHeader : headers_old) {
+					sysIntHeader.setUsedFlag(FLAG_FAIL);
+					idList.add(sysIntHeader.getOid());
+				}
+				if (idList.size() != 0) {
+					boolean res = dockingSysIntHeaderService.removeBatchByIds(idList);
+				}
+				//鍐嶆柊澧瀐eaders
+				for (DockingSysIntHeader sysIntHeader : dockingSysIntHeaderList) {
+					sysIntHeader.setUsedFlag(FLAG_TRUE);
+					sysIntHeader.setInfoOid(dockingSystemConfig.getOid());
+
+				}
+				boolean res = dockingSysIntHeaderService.saveBatch(dockingSysIntHeaderList);
+			}
+			//鎵归噺澶勭悊淇濆瓨Param瀵硅薄
+			if (!CollectionUtils.isEmpty(dockingSysIntParamList)) {
+				//鍏堝垹闄arams_old
+				List<String> idList = new ArrayList<>();
+				List<DockingSysIntParam> params_old = this.dockingSysIntParamService.list(Wrappers.<DockingSysIntParam>query().lambda().eq(DockingSysIntParam::getInfoOid, sysInfoOid));
+				for (DockingSysIntParam sysIntParamDO : params_old) {
+					sysIntParamDO.setUsedFlag(FLAG_FAIL);
+					idList.add(sysIntParamDO.getOid());
+				}
+				if (idList.size() != 0) {
+					boolean res = dockingSysIntParamService.removeBatchByIds(idList);
+				}
+				//鍐嶆柊澧瀙arams
+				for (DockingSysIntParam sysIntParamDOi : dockingSysIntParamList) {
+					sysIntParamDOi.setUsedFlag(FLAG_TRUE);
+					sysIntParamDOi.setInfoOid(dockingSystemConfig.getOid());
+				}
+				dockingSysIntParamService.saveBatch(dockingSysIntParamList);
+			}
+			this.dockingSystemConfigMapper.updateById(dockingSystemConfig);
+		}else{
+			throw new Throwable("鏍规嵁閫夋嫨鐨勯泦鎴愮郴缁熸湭鏍¢獙鍒扮郴缁熶腑瀛樺湪姝ら泦鎴愮郴缁燂紝璇锋牳瀵癸紒");
+		}
+		return true;
+	}
+	/***
+	 * 鏇存柊鎺ュ彛閰嶇疆淇℃伅鐘舵��
+	 * @param sysInfoStatusDTO
+	 * @return
+	 */
+	@Override
+	public R updateStatus(UpdateSysInfoStatusDTO sysInfoStatusDTO) {
+		VciBaseUtil.alertNotNull(sysInfoStatusDTO.getOid(),"鏁版嵁瀵硅薄",sysInfoStatusDTO.getOid(),"绯荤粺闆嗘垚鍩虹淇℃伅涓婚敭");
+		DockingSystemConfig dockingSystemConfig = this.dockingSystemConfigMapper.selectById(sysInfoStatusDTO.getOid());
+		try {
+			dockingSystemConfig.setTs(VciDateUtil.str2Date(sysInfoStatusDTO.getTs(), VciDateUtil.DateTimeFormat));
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		if(sysInfoStatusDTO.getUpdate().equals("disable")) {
+			dockingSystemConfig.setUsedFlag("false");
+		}else{
+			dockingSystemConfig.setUsedFlag("true");
+		}
+		dockingSystemConfigMapper.updateById(dockingSystemConfig);
+		return R.status(true);
+	}
+
+	/***
+	 * 鎵嬪姩鍚屾鎺ュ彛锛屽彧鏈夋帹閫佺殑鎵嶄細
+	 * @param dockingSystemConfigDTO
+	 * @return
+	 * @throws VciBaseException
+	 */
+	@Transactional(rollbackFor = Exception.class)
+	@Override
+	public R pushData(DockingSystemConfigDTO dockingSystemConfigDTO) throws VciBaseException {
+		VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getOid(),"鏁版嵁瀵硅薄",dockingSystemConfigDTO.getOid(),"绯荤粺闆嗘垚閰嶇疆淇℃伅涓婚敭");
+		if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.ACCEPT.getValue())){
+			throw new VciBaseException("浣犳墍閫夋嫨闆嗘垚閰嶇疆淇℃伅涓嶅睘浜庢帹閫佺被鍨嬬殑鎺ュ彛閰嶇疆锛�");
+		}
+		boolean issuccess=false;
+		String type="鏁版嵁鎺ㄩ��";
+		if(dockingSystemConfigDTO.getPushType().equalsIgnoreCase("1")){//鎺ㄩ�佹暟鎹�
+			pushDockingTasks(dockingSystemConfigDTO);
+		}else if(dockingSystemConfigDTO.getPushType().equalsIgnoreCase("2")){//鎺ㄩ�佸垎绫�
+			issuccess= pushClsfDatas(dockingSystemConfigDTO);
+			type="鍒嗙被鎺ㄩ��";
+		}
+		return issuccess?R.success(type+"鎴愬姛锛�"):R.fail(type+"澶辫触锛�");
+	}
+
+	/**
+	 *
+	 * @param dockingSystemConfig
+	 * @param dockingSysIntHeaderList
+	 * @param dockingSysIntParamList
+	 * @return
+	 */
+	private DockingSystemConfigVO changeoDckingSystemEntityVOs(DockingSystemConfig dockingSystemConfig , List<DockingSysIntHeader> dockingSysIntHeaderList , List<DockingSysIntParam> dockingSysIntParamList) {
+		DockingSystemConfigVO vo = new DockingSystemConfigVO();
+		if(dockingSystemConfig != null){
+			BeanUtilForVCI.copyPropertiesIgnoreCase(dockingSystemConfig,vo);
+			//濡傛灉鏈塴cstatus鐨勭被鐨勮瘽
+			if(!CollectionUtils.isEmpty(dockingSysIntParamList)) {
+				List<DockingSysIntParamVO> dockingSysIntParamVOList = DockingSysIntParamWrapper.build().entityVOs(dockingSysIntParamList);
+				vo.setSysIntParamVOs(dockingSysIntParamVOList);
+			}
+			if(!CollectionUtils.isEmpty(dockingSysIntHeaderList)){
+				List<DockingSysIntHeaderVO> dockingSysIntHeaderVOList=	DockingSysIntHeaderWrapper.build().entityVOs(dockingSysIntHeaderList);
+				vo.setSysIntHeaderVOs(dockingSysIntHeaderVOList);
+			}
+		}
+		return vo;
 	}
 
 	@Override
 	public boolean deleteDataById(String oids) {
-		return false;
+		VciBaseUtil.alertNotNull(oids, "鏁版嵁涓婚敭涓虹┖");
+		List<String> oidList=VciBaseUtil.str2List(oids);
+		int i=dockingSystemConfigMapper.deleteBatchIds(oidList);
+		return i>0?true:false;
 	}
 
 	/**
@@ -153,4 +398,305 @@
 			VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getClassPath(),"绫昏矾寰�");
 		}
 	}
+
+	private  R pushDockingTasks(DockingSystemConfigDTO dockingSystemConfigDTO) {
+		String msg="鏁版嵁鎺ㄩ�佸埌瀹氭椂浠诲姟鎴愬姛锛�";
+		try {
+			DockingSystemConfig dockingSystemConfig =dockingSystemConfigMapper.selectById(dockingSystemConfigDTO.getOid());
+			String codeClassifyOid = dockingSystemConfig.getClassifyOid();
+			CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(codeClassifyOid);
+			CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(codeClassifyOid);
+			String btmTypeId = topClassifyVO.getBtmTypeId();
+			if (StringUtils.isBlank(btmTypeId)) {
+				return R.fail("杩欎釜鍒嗙被鎵�灞為《灞傚垎绫绘病鏈夋坊鍔犱笟鍔$被鍨�");
+			}
+			List<CodeClassifyVO> codeClassifyIdPathVOS = classifyService.listChildrenClassify(topClassifyVO.getOid(), true, "id", false);
+			List<CodeClassifyVO> codeClassifynamePathVOS = classifyService.listChildrenClassify(topClassifyVO.getOid(), true, "name", false);
+			Map<String/**鍒嗙被oid**/, String/**鍒嗙被浠e彿閾炬帴绗�**/> clsfOidIdMap = codeClassifyIdPathVOS.stream().collect(Collectors.toMap(s -> s.getOid(), t -> reverseOrderByList(t.getPath(), topClassifyVO, 1).toLowerCase(Locale.ROOT), (o1, o2) -> o2));
+			Map<String/**鍒嗙被oid**/, String/**鍒嗙被鍚嶇О閾炬帴绗�**/> clsfOidNameMap = codeClassifynamePathVOS.stream().collect(Collectors.toMap(s -> s.getOid(), t -> reverseOrderByList(t.getPath(), topClassifyVO, 2).toLowerCase(Locale.ROOT), (o1, o2) -> o2));
+			PageHelper pageHelper = new PageHelper();
+			pageHelper.setPage(1);
+			pageHelper.setLimit(1000000);
+			pageHelper.setStart(0);
+
+			HashMap<String, String> conditionMap = new HashMap<>();
+			if (!classifyService.checkHasChild(codeClassifyOid)) {
+				conditionMap.put(CODE_CLASSIFY_OID_FIELD, codeClassifyOid);
+			} else {
+				conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
+					+ " where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED +
+					"' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
+			}
+			conditionMap.put("islastr", "1");
+			conditionMap.put("islastv", "1");
+			List<String> lcstatusList = new ArrayList<>(Arrays.asList(new String[]{"TakeBack", "Released", "Disabled"}));
+			conditionMap.put("lcstatus", QueryOptionConstant.IN + VciBaseUtil.toInSql(lcstatusList.toArray(new String[0])));
+
+			CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(btmTypeId, templateVO, conditionMap, pageHelper);
+			List<Map<String,String>> maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
+			List<DockingTask> dockingTaskDO_insert = new ArrayList<>();
+			if (!CollectionUtils.isEmpty(maps)) {
+				maps.stream().forEach(map -> {
+					String btmoid = map.get("oid".toUpperCase(Locale.ROOT)) == null ? "" : map.get("oid".toUpperCase(Locale.ROOT)).toString();//鏁版嵁oid
+					String sendtype = map.get("lcstatus".toUpperCase(Locale.ROOT)) == null ? "" : map.get("lcstatus".toUpperCase(Locale.ROOT)).toString();//鏁版嵁鎺ㄩ�佺被鍨�
+					String id = map.get("id".toUpperCase(Locale.ROOT)) == null ? "" : map.get("id".toUpperCase(Locale.ROOT)).toString();//缂栫爜
+					String btmid = topClassifyVO.getBtmTypeId();//鏁版嵁涓氬姟绫诲瀷
+					String classifyoid = map.get("codeclsfid".toUpperCase(Locale.ROOT)) == null ? "" : map.get("codeclsfid".toUpperCase(Locale.ROOT)).toString();//鏁版嵁鎵�鍦ㄧ殑鍒嗙被id
+					String date2Str = VciDateUtil.date2Str(new Date(), VciDateUtil.DateTimeFormatStr);
+					DockingTask dockingTaskDO = new DockingTask();
+					dockingTaskDO.setOid(date2Str +"_"+id);
+					dockingTaskDO.setSendFlag(SEND_FLAG_FALSE);
+					dockingTaskDO.setId(id);//缂栫爜
+					dockingTaskDO.setUniqueCode("");
+					dockingTaskDO.setBtmOid(btmoid);//鏁版嵁oid
+					dockingTaskDO.setBtmId(btmid);//鏁版嵁涓氬姟绫诲瀷id
+					if (clsfOidIdMap.containsKey(classifyoid)) {
+						String classifyid = clsfOidIdMap.get(classifyoid);
+						dockingTaskDO.setClassifyId(classifyid);//鏁版嵁鍦ㄥ垎绫籭d
+					}
+					dockingTaskDO.setClassifyOid(classifyoid);//鏁版嵁鎵�鍦ㄥ垎绫籵id
+					if (clsfOidNameMap.containsKey(classifyoid)) {
+						String classifyname = clsfOidNameMap.get(classifyoid);
+						dockingTaskDO.setClassifyName(classifyname);//鏁版嵁鎵�鍦ㄥ垎绫诲悕绉�
+					}
+					dockingTaskDO.setSendType(sendtype);//鏁版嵁鎺ㄩ�佺被鍨�
+					//String dataoid=redisService.getUUIDEveryDay();
+					dockingTaskDO.setDataOid(date2Str +"_"+ btmoid);
+					//intinfo
+					dockingTaskDO.setSysInfoOid(dockingSystemConfigDTO.getOid());//intinfo鐨刼id
+					dockingTaskDO.setSystemOid(dockingSystemConfigDTO.getSysBaseOid());//绯荤粺oid
+					dockingTaskDO.setSystemCode(dockingSystemConfigDTO.getSysBaseId());//绯荤粺缂栫爜
+					dockingTaskDO.setSystemName(dockingSystemConfigDTO.getSysBaseName());//绯荤粺name
+					dockingTaskDO_insert.add(dockingTaskDO);
+				});
+			}
+//			dockingTaskService.saveBatch(dockingTaskDO_insert);
+		}catch (Throwable e){
+			msg="鏁版嵁鎺ㄩ�佸埌瀹氭椂浠诲姟澶辫触!";
+			log.error("鏁版嵁鎺ㄩ�佸埌瀹氭椂浠诲姟澶辫触!"+e);
+			e.printStackTrace();
+		}finally {
+			log.info(msg);
+			return R.success("鏁版嵁鎺ㄩ�佸埌瀹氭椂浠诲姟鎴愬姛锛�");
+		}
+	}
+
+	/***
+	 * 鍒嗙被鎺ㄩ�侀泦鎴�
+	 * @param dockingSystemConfigDTO
+	 * @return
+	 */
+	private  boolean pushClsfDatas(DockingSystemConfigDTO dockingSystemConfigDTO){
+		DockingSystemConfig dockingSystemConfig= dockingSystemConfigMapper.selectById(dockingSystemConfigDTO.getOid());
+		String classOid= dockingSystemConfig.getClassifyOid();
+		List<CodeClassifyVO> listChildrenClassify=  classifyService.listChildrenClassify(classOid,true,"id",false);
+		List<NodeClassifyDTO>nodeClassifyDTOList=new ArrayList<>();
+		JsonRootDataDTO jsonRootDataDTO=new JsonRootDataDTO();
+		NodeDataDTO nodeDataDTO=new NodeDataDTO();
+		//姣忎釜task涓�涓簨鍔★紝寮�鍚�
+		boolean isSuccess=false;
+		try {
+			String sendString = "";
+			if (!CollectionUtils.isEmpty(listChildrenClassify)) {
+				listChildrenClassify.stream().forEach(codeClassifyVO -> {
+					NodeClassifyDTO nodeClassifyDTO = new NodeClassifyDTO();
+					nodeClassifyDTO.setClassCode(codeClassifyVO.getId());//鍒嗙被浠e彿
+					nodeClassifyDTO.setDescription(codeClassifyVO.getDescription());//鍒嗙被鎻忚堪
+					nodeClassifyDTO.setFullPathName(codeClassifyVO.getPath());//鍏ㄨ矾寰�
+					nodeClassifyDTO.setLcStatus(codeClassifyVO.getLcStatus());//鐘舵��
+					nodeClassifyDTO.setPid(codeClassifyVO.getId());//鐖秈d鑺傜偣
+					nodeClassifyDTO.setId(codeClassifyVO.getOid());//鍒嗙被oid
+					nodeClassifyDTO.setName(codeClassifyVO.getName());//鍒嗙被鍚嶇О
+					nodeClassifyDTOList.add(nodeClassifyDTO);
+				});
+				NodeLibraryDTO nodeLibraryDTO = new NodeLibraryDTO();
+				nodeLibraryDTO.setClassify(nodeClassifyDTOList);
+				CodeClassifyVO rootClassify = classifyService.getTopClassifyVO(classOid);
+				nodeLibraryDTO.setId(rootClassify.getOid());
+				nodeLibraryDTO.setName(rootClassify.getName());
+				nodeDataDTO.setLibrary(nodeLibraryDTO);
+				jsonRootDataDTO.setData(nodeDataDTO);
+				String paramType = dockingSystemConfigDTO.getParamType();//xml/json
+				if (paramType.equals(DATATYPE_JSON)) {
+					Object object = JSONObject.toJSON(jsonRootDataDTO);
+					sendString = object.toString();
+				} else {
+					//缁勭粐杩斿洖鎺ュ彛淇℃伅
+					XStream xStream = new XStream(new DomDriver());
+					xStream.processAnnotations(NodeDataDTO.class);
+					xStream.autodetectAnnotations(true);
+					sendString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xStream.toXML(nodeDataDTO);
+				}
+				//璋冪敤鎺ュ彛
+				callInterface(sendString, dockingSystemConfigDTO);
+				isSuccess=true;
+			}
+		}catch (Throwable e){
+			e.printStackTrace();
+			isSuccess=false;
+		}finally {
+			return true;
+		}
+	}
+
+	/***
+	 * 璋冪敤鎺ュ彛
+	 * @param dockingSystemConfigDTO
+	 * @throws Throwable
+	 */
+	private void callInterface(String  sendString , DockingSystemConfigDTO dockingSystemConfigDTO) throws Throwable{
+		String paramString = "";
+
+		String backString = "";
+		String msg="";
+		String url = dockingSystemConfigDTO.getRequestUrl();//url
+		List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>();
+		try {
+			String type = dockingSystemConfigDTO.getInterfaceType().toLowerCase(Locale.ROOT);//get/post/webserver/corba
+			String paramType = dockingSystemConfigDTO.getParamType();//xml/json
+			String returnType = dockingSystemConfigDTO.getReturnType();//xml/json
+			String requestmethod= dockingSystemConfigDTO.getRequestMethod();
+			String interfaceFunction = dockingSystemConfigDTO.getInterfaceFunction();//涓昏鏄痺ebservice鐨勬柟娉曞悕
+			String namespace = dockingSystemConfigDTO.getNamespace();//namespace
+			String soapaction = dockingSystemConfigDTO.getSoapAction();//soapaction
+			String targName = dockingSystemConfigDTO.getTargetName();//targName
+			String cxfaxis = dockingSystemConfigDTO.getCxfAxis();//webservice鏄痗xf/axis
+			//鏌ヨparam
+			List<DockingSysIntParamDTO> sysIntParamVOList = dockingSystemConfigDTO.getSysIntParamDTOS();
+			//鏌ヨheader
+			List<DockingSysIntHeaderDTO> sysIntHeaderVOList =dockingSystemConfigDTO.getSysIntHeaderDTOS();
+			if(type.equals(URLTYPE_HTTP)) {
+				if (requestmethod.equals(URLTYPE_GET)) {//GET璇锋眰
+					String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString;
+					//鎷兼帴param
+					for (DockingSysIntParamDTO sysIntParamVO : sysIntParamVOList) {
+						sendurl = sendurl + "&" + sysIntParamVO.getParamKey() + "=" + sysIntParamVO.getParamValue();
+					}
+					paramString = sendurl;
+					backString = HttpUtils.get(sendurl);
+				} else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰
+					MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+					if(!CollectionUtils.isEmpty(sysIntParamVOList)) {
+						for (DockingSysIntParamDTO sysIntParamVO : sysIntParamVOList) {
+							params.add(sysIntParamVO.getParamKey(), sysIntParamVO.getParamValue());
+						}
+					}
+					params.add(DATA_PARAM_NAME,sendString);
+					paramString = params.toString();
+					MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
+					if(!CollectionUtils.isEmpty(sysIntHeaderVOList)) {
+						for (DockingSysIntHeaderDTO sysIntHeaderVO : sysIntHeaderVOList) {
+							headers.add(sysIntHeaderVO.getHeaderKey(), sysIntHeaderVO.getHeaderValue());
+						}
+					}
+					backString = HttpUtils.post(url, params, headers);
+				}
+				if(backString.startsWith("\"")){
+					backString=backString.substring(backString.indexOf("\"")+1);
+				}
+				if(backString.endsWith("\"")){
+					backString=backString.substring(0,backString.lastIndexOf("\""));
+				}
+				if(backString.contains("\n")){
+					String res="\n";
+					backString=  backString.replaceAll(res,"");
+				}
+				if(backString.contains("\\")){
+					String res="\\\\\"";
+					backString=  backString.replaceAll(res,"\"").trim();
+				}
+			}else if (type.equals(URLTYPE_WEBSERVICE)) {//webserver璇锋眰
+				MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+				for (DockingSysIntParamDTO sysIntParamVO : sysIntParamVOList) {
+					params.add(sysIntParamVO.getParamKey(), sysIntParamVO.getParamValue());
+				}
+				paramString = sendString;
+				MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
+				for (DockingSysIntHeaderDTO sysIntHeaderVO : sysIntHeaderVOList) {
+					headers.add(sysIntHeaderVO.getHeaderKey(), sysIntHeaderVO.getHeaderValue());
+				}
+				backString = WsErpClientUtil.sendMsg(url, namespace, soapaction, interfaceFunction, targName, sendString, 10000);
+
+			} else {//corba鎺ュ彛
+				//paramString=sendString;
+				//  backString = jacorbClient.getBOFactoryService().sendCode(sendString);
+			}
+
+			ResultJsonDTO resultJsonDTO = new ResultJsonDTO();
+			if(returnType.equals(DATATYPE_JSON)){
+				resultJsonDTO =JSONObject.toJavaObject(JSONObject.parseObject(backString), ResultJsonDTO.class);
+			}else {
+				//缁勭粐杩斿洖鎺ュ彛淇℃伅
+				XStream xStream = new XStream(new DomDriver());
+				xStream.processAnnotations(ResultNodeDataDTO.class);
+				xStream.autodetectAnnotations(true);
+				ResultNodeDataDTO resultNodeDataDTO = (ResultNodeDataDTO) xStream.fromXML(backString);
+				resultJsonDTO.setData(resultNodeDataDTO);
+			}
+			ResultNodeDataDTO resultNodeDataDTO=resultJsonDTO.getData();
+			resultNodeObjectDTOS=resultNodeDataDTO.getObject();
+
+		}catch (Throwable e){
+			msg="璋冪敤鎺ュ彛澶辫触:"+e;
+			e.printStackTrace();
+			//   throw  new Throwable("璋冪敤鎺ュ彛澶辫触:"+e);
+			ResultNodeObjectDTO   resultNodeObjectDTO=new ResultNodeObjectDTO();
+			resultNodeObjectDTO.setErroid("1");
+			resultNodeObjectDTO.setMsg(msg);
+			resultNodeObjectDTO.setCode(dockingSystemConfigDTO.getClassifyId());
+			resultNodeObjectDTO.setItemid(dockingSystemConfigDTO.getClassifyOid());
+			resultNodeObjectDTOS.add(resultNodeObjectDTO);
+		}finally {
+			boolean isSend = false;
+			List<DockingLog> dockingLogList=new ArrayList<>();
+			for (ResultNodeObjectDTO resultNodeObjectDTO:resultNodeObjectDTOS){
+				String erroid = resultNodeObjectDTO.getErroid();
+				msg = resultNodeObjectDTO.getMsg();
+				if("0".equals(erroid)){
+					isSend = true;
+				}else if("1".equals(erroid)){
+					isSend=false;
+				}else{
+					isSend=false;
+				}
+				DockingLog dockingLog = new DockingLog();
+				String oid=VciBaseUtil.getPk();
+				dockingLog.setOid(oid);
+				dockingLog.setSystemCode(dockingSystemConfigDTO.getSysBaseId());
+				dockingLog.setSystemName(dockingSystemConfigDTO.getSysBaseName());
+				dockingLog.setSystemOid(dockingSystemConfigDTO.getSysBaseOid());
+				dockingLog.setClassifyOid(dockingSystemConfigDTO.getClassifyOid());
+				dockingLog.setClassifyId(dockingSystemConfigDTO.getClassifyId());
+				dockingLog.setClassifyName(dockingSystemConfigDTO.getClassifyName());
+				dockingLog.setId(dockingSystemConfigDTO.getId());
+				dockingLog.setUniqueCode("");
+				dockingLog.setCreateTime(new Date());
+				dockingLog.setInterfaceStatus(isSend?"true":"false");
+				dockingLog.setParamString(paramString);
+				dockingLog.setType(DATA_LOGE_OUT);
+				dockingLog.setReturnString(backString);
+				dockingLog.setMsg(msg);
+				dockingLogList.add(dockingLog);
+				log.info("闆嗘垚鎺ㄩ�佹暟鎹�,systemcode:"+dockingSystemConfigDTO.getSysBaseId()+",systemname:"+dockingSystemConfigDTO.getSysBaseName()+",url:"+url+",param:"+paramString+",e:"+msg);
+			}
+			dockingLogeService.saveBatch(dockingLogList);
+		}
+	}
+
+	private String reverseOrderByList(String StringValue, CodeClassifyVO topClassifyVO,int type){
+		String[] s=StringValue.split("#");
+		StringBuffer sb=new StringBuffer();
+		List<String> list=new ArrayList<>(Arrays.asList(s));
+		Collections.reverse(list);
+		System.out.println(list.toString());
+		for (String o:list){
+			if(StringUtils.isNotBlank(o)){
+				sb.append(o).append(",");
+			}
+		}
+		sb.append(type==1?topClassifyVO.getId():topClassifyVO.getName());
+		System.out.println(sb.toString());
+
+		return sb.toString();
+	}
 }

--
Gitblit v1.9.3