From 0b714bd4979e605ee6c384e040568d0128975a06 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 24 八月 2023 20:29:11 +0800
Subject: [PATCH] 代码提交
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/DockingSystemConfigServiceImpl.java | 682 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 673 insertions(+), 9 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 2341b7d..c4ace0a 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,23 +1,687 @@
package com.vci.ubcs.code.service.impl;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+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.entity.DockingSystemConfig;
-import com.vci.ubcs.code.mapper.DockingSystemConfigMapper;
-import com.vci.ubcs.code.service.IDockingSystemConfigService;
-import org.springframework.stereotype.Service;
+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 java.util.Collection;
-import java.util.Map;
-import java.util.function.Function;
+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.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.code.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.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;
/***
* 绯荤粺鎺ュ彛绠$悊-鎺ュ彛閰嶇疆鏈嶅姟
* @author xiejun
* @date 2023-06-01
*/
+@Slf4j
@Service
public class DockingSystemConfigServiceImpl extends ServiceImpl<DockingSystemConfigMapper, DockingSystemConfig> implements IDockingSystemConfigService{
+ @Value("${dataSyncPush.dataParamName:xmlData}")
+ public String DATA_PARAM_NAME;
+ /***
+ * 闆嗘垚绯荤粺绠$悊鏈嶅姟
+ */
+ @Autowired(required = false)
+ private DockingSystemConfigMapper dockingSystemConfigMapper;
+
+ /***
+ * 闆嗘垚鎺ュ彛-闆嗘垚鎺ュ彛绠$悊鍙傛暟鏈嶅姟
+ */
+ @Autowired(required = false)
+ private IDockingSysIntParamService dockingSysIntParamService;
+
+ /***
+ * 闆嗘垚鎺ュ彛-闆嗘垚鎺ュ彛绠$悊鍙傛暟鏈嶅姟
+ */
+ @Autowired(required = false)
+ 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(DockingSystemConfig DockingSystemConfig, Query query) {
+
+ IPage<DockingSystemConfig> pages = page(Condition.getPage(query), Condition.getQueryWrapper(DockingSystemConfig));
+ 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 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
+ * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
+ log.info(" 澧炲姞绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�:"+dockingSystemConfigDTO.toString());
+ VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
+ checkColumnNotNull(dockingSystemConfigDTO);
+ String systemOid ="";
+ if(dockingSystemConfigDTO.getDataFlowType().equals(SysIntegrationDataFlowTypeEnum.ACCEPT.getValue())) {
+ systemOid = dockingSystemConfigDTO.getTargetSystemOid();
+ }else{
+ systemOid = dockingSystemConfigDTO.getSourceSystemOid();
+ }
+ DockingSystem dockingSystem = dockingSystemMapper.selectById(systemOid);
+ 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);
+
+ return true;
+
+ }
+
+ /**
+ * 淇敼 绯荤粺闆嗘垚鐨勬帴鍙g鐞嗕俊鎭�
+ * @param dockingSystemConfigDTO 绯荤粺闆嗘垚鐨勭郴缁熶俊鎭暟鎹紶杈撳璞�
+ * @return 鎵ц缁撴灉锛宻uccess涓簍rue琛ㄧず鎴愬姛锛宮sg鏄け璐ョ殑鎻愮ず淇℃伅锛宱bj鏄坊鍔犲畬鎴愬悗鐨勬樉绀哄璞�
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public boolean editSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
+ VciBaseUtil.alertNotNull(dockingSystemConfigDTO,"鏁版嵁瀵硅薄",dockingSystemConfigDTO.getOid(),"绯荤粺闆嗘垚鍩虹淇℃伅涓婚敭");
+ String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();//.getSourcesystemoid();
+ DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
+ dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
+ dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
+ dockingSystemConfigDTO.setBtmname(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);
+ //return changeoDckingSystemEntityVOs(dockingSystemConfig,dockingSysIntHeaderList,dockingSysIntParamList);
+ 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;
+ }
+
+ /**
+ * 绯荤粺闆嗘垚鎺ュ彛鍩虹淇℃伅Null瀛楁妫�楠�
+ * @param dockingSystemConfigDTO 绯荤粺闆嗘垚鍩虹淇℃伅鏁版嵁浼犺緭瀵硅薄
+ * @throws VciBaseException 鍙傛暟涓虹┖锛屽敮涓�椤癸紝蹇呰緭椤逛笉閫氳繃鏃朵細鎶涘嚭寮傚父
+ */
+ private void checkColumnNotNull(DockingSystemConfigDTO dockingSystemConfigDTO) throws VciBaseException {
+ if (SysIntegrationRequestTypeEnum.HTTP.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
+ VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getRequestUrl(),"HTTP鎺ュ彛鐨勮姹傚湴鍧�",dockingSystemConfigDTO.getRequestMethod(),"HTTP鎺ュ彛鐨勮姹傛柟寮�");
+ }
+ if (SysIntegrationRequestTypeEnum.WEB_SERVICE.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
+ VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getInterfaceFunction(),"WebService鐨勬帴鍙e嚱鏁�");
+ }
+ if (SysIntegrationRequestTypeEnum.CLASSPATH.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
+ 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.setOid(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.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