From 89a21c0eecacd040e8189faeda6f73f69167cdc9 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期一, 19 六月 2023 14:51:33 +0800 Subject: [PATCH] 合并 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 673 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 673 insertions(+), 0 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java new file mode 100644 index 0000000..08af97d --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java @@ -0,0 +1,673 @@ +/* +package com.vci.ubcs.code.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.thoughtworks.xstream.XStream; +import com.thoughtworks.xstream.io.xml.DomDriver; +import com.vci.mdm.constant.MdmDuckingConstant; +import com.vci.mdm.dao.*; +import com.vci.mdm.dto.datapush.classify.JsonRootDataDTO; +import com.vci.mdm.dto.datapush.classify.NodeClassifyDTO; +import com.vci.mdm.dto.datapush.classify.NodeDataDTO; +import com.vci.mdm.dto.datapush.classify.NodeLibraryDTO; +import com.vci.mdm.dto.datapush.data.NodeJosnDTO; +import com.vci.mdm.dto.datapush.data.NodeObjectDTO; +import com.vci.mdm.dto.datapush.data.NodeProDTO; +import com.vci.mdm.dto.datapush.data.NodedataDTO; +import com.vci.mdm.dto.datapush.result.ResultJsonDTO; +import com.vci.mdm.dto.datapush.result.ResultNodeDataDTO; +import com.vci.mdm.dto.datapush.result.ResultNodeObjectDTO; +import com.vci.mdm.model.*; +import com.vci.mdm.pagemodel.CodeClassifyTemplateAttrVO; +import com.vci.mdm.pagemodel.CodeClassifyTemplateVO; +import com.vci.mdm.pagemodel.SysIntInfoVO; +import com.vci.mdm.service.*; +import com.vci.mdm.utils.*; +import com.vci.starter.web.constant.QueryOptionConstant; +import com.vci.starter.web.enumpck.UserSecretEnum; +import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.starter.web.pagemodel.SessionInfo; +import com.vci.starter.web.util.VciBaseUtil; +import com.vci.starter.web.wrapper.VciQueryWrapperForDO; +import com.vci.web.pageModel.BatchCBO; +import com.vci.web.redis.RedisService; +import com.vci.web.service.WebBoServiceI; +import com.vci.web.util.PlatformClientUtil; +import com.vci.web.util.WebUtil; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +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.mdm.constant.MdmDuckingConstant.*; + + +*/ +/** + * 涓婚搴撻泦鎴愭湇鍔� + * @author wangyi + * @date 2022-03-20 + *//* + +@Service +public class CodeDuckingSyncServiceImpl implements CodeDuckingSyncServiceI { + + */ +/** + * 鏃ュ織 + *//* + + private Logger logger = LoggerFactory.getLogger(getClass()); + + */ +/** + * 闆嗘垚鎺ㄩ�佷换鍔℃暟鎹搷浣滃眰 + *//* + + @Resource + private DockingTaskDaoI dockingTaskDaoI; + + */ +/** + * 闆嗘垚鎺ㄩ�佷换鍔℃暟鎹搷浣滃眰 + *//* + + @Resource + private DockingDataDaoI dockingDataDaoI; + + */ +/** + * 闆嗘垚鏃ュ織鏁版嵁鎿嶄綔灞� + *//* + + @Resource + private DockingLogeDaoI dockingLogeDaoI; + + */ +/** + * 妯℃澘灞炴�ф暟鎹搷浣滃眰 + *//* + + @Resource + private CodeClassifyDaoI codeClassifyDaoI; + + */ +/** + * 涓氬姟绫诲瀷鎿嶄綔鐨勬湇鍔� + *//* + + @Autowired + private WebBoServiceI boService; + + */ +/** + * 缂撳瓨鏈嶅姟 + *//* + + @Autowired + private RedisService redisService; + + */ +/** + * 鏁版嵁鏈嶅姟 + *//* + + @Autowired(required = false) + @Lazy + private MdmEngineServiceI mdmEngineServiceI; + + + */ +/** + * 瑕佹帹閫佺郴缁熺殑鏈嶅姟 + *//* + + @Autowired + private SysIntInfoServiceI sysIntInfoServiceI; + + @Value("${dataSyncPush.dataParamName:xmlData}") + public String DATA_PARAM_NAME; + + */ +/** + * 瀹氭椂浠诲姟鎺ㄩ�� + *//* + + @Override + public void DockingDataSyncScheduing(){ + // insertCache2(); + initPushDataTaks(1); + sendpushDataForService(); + } + + */ +/** + * 鍒嗙被瀹氭椂浠诲姟鎺ㄩ�� + *//* + + @Override + public void DockingClassSyncScheduing(){ + initPushDataTaks(2);//鍒嗙被鎺ㄩ�� + sendpushClsfForService(); + } + + */ +/** + * 鎵嬪姩鎺ㄩ�佷负瀹屾垚鐨勬暟鎹� + * @param oids + * @return + *//* + + @Override + public BaseResult sendData(String oids) { + VciBaseUtil.alertNotNull(oids,"绯荤粺闆嗘垚鍩虹淇℃伅鏁版嵁瀵硅薄",oids,"绯荤粺闆嗘垚鍩虹淇℃伅鐨勪富閿�"); + List<String> dockingTaskOidList=new ArrayList<>(); + dockingTaskOidList= VciBaseUtil.str2List(oids); + List<DockingTaskDO> newDockingTaskDOs= this.dockingTaskDaoI.selectByPrimaryKeyCollection(dockingTaskOidList); + Map<String,List<DockingTaskDO>> typeDockingTaskDOMap=new HashMap<>(); + newDockingTaskDOs.stream().forEach(newDockingTaskDO->{ + String btmId=newDockingTaskDO.getBtmid(); + if(btmId.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){ + List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)); + if(CollectionUtils.isEmpty(dockingTaskDOList)){ + dockingTaskDOList=new ArrayList<>(); + } + dockingTaskDOList.add(newDockingTaskDO); + typeDockingTaskDOMap.put(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT),dockingTaskDOList); + }else{ + List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get("data"); + if(CollectionUtils.isEmpty(dockingTaskDOList)){ + dockingTaskDOList=new ArrayList<>(); + } + dockingTaskDOList.add(newDockingTaskDO); + typeDockingTaskDOMap.put("data",dockingTaskDOList); + } + }); + typeDockingTaskDOMap.keySet().forEach(type->{ + List<DockingTaskDO> DockingTaskDO=typeDockingTaskDOMap.get(type); + if(!CollectionUtils.isEmpty(DockingTaskDO)){ + if(type.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){ + this.sendpushClsfForService(DockingTaskDO); + }else{ + this.sendpushDataForService(DockingTaskDO); + } + } + }); + return BaseResult.successMsg("鎵嬪姩鎺ㄩ�佸畬鎴�,璇锋牳瀵规槸鍚︽帹閫佹垚鍔�"); + } + */ +/*** + * 鏌ヨredis涓暟鎹紝瀵规瘮鍚庢彃鍏ockingtask + * @param type + *//* + + private void initPushDataTaks(int type){ + initSysadmin(); + //sysintinfo鏌ヨ瑕佹帹閫佺殑涓婚搴撳拰鐩稿叧绯荤粺淇℃伅 + Map<String, String> conditionMap = new HashMap<>(); + conditionMap.put("usedflag","true"); + conditionMap.put("pushType",type==2?"2":"1") ;//2鏄唬琛ㄥ垎绫绘帹閫侊紝1鏄唬琛ㄦ暟鎹帹閫� + + List<SysIntInfoDO> sysIntInfoVOList = sysIntInfoServiceI.selectAll(conditionMap); + if(CollectionUtils.isEmpty(sysIntInfoVOList)){ + String title=type==2?"鍒嗙被鎺ㄩ��":"鏁版嵁鎺ㄩ��"; + logger.info("info->鎵�鏈夐泦鎴愮郴缁燂紝鏈煡璇㈠埌鐩稿叧鐨勩��"+title+"銆戠殑鎺ュ彛閰嶇疆淇℃伅锛岄厤缃�"); + return; + } + Map<String ,List<SysIntInfoDO>> sysIntInfoDOMap = new HashMap<String ,List<SysIntInfoDO>>();//key=classifyoid,value=list<map> + for (SysIntInfoDO sysIntInfoVOi:sysIntInfoVOList){ + List<SysIntInfoDO> SysIntInfoVOListi = sysIntInfoDOMap.get(sysIntInfoVOi.getClassifyoid()); + if(SysIntInfoVOListi==null){ + SysIntInfoVOListi = new ArrayList<SysIntInfoDO>(); + } + SysIntInfoVOListi.add(sysIntInfoVOi); + sysIntInfoDOMap.put(sysIntInfoVOi.getClassifyoid(),SysIntInfoVOListi); + } + //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹� + VciQueryWrapperForDO queryWrapperForDO = new VciQueryWrapperForDO(DockingDataDO.class); + queryWrapperForDO.addQueryMap("sendflag","false"); + if(type==2){ + queryWrapperForDO.addQueryMap("btmTypeId",DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)); + }else { + queryWrapperForDO.addQueryMap("btmTypeId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)) + ")"); + } + List<DockingDataDO> dataList = dockingDataDaoI.selectByWrapper(queryWrapperForDO); + + for (DockingDataDO mapi:dataList){ + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String dataoid = mapi.getOid();//data瀵硅薄鐨刼id + String classifyoid = mapi.getClassifyoid(); + String id = mapi.getId(); + String uniquecode = mapi.getUniquecode(); + String btmid = mapi.getBtmid(); + String btmoid = mapi.getBtmoid(); + String sendtype = mapi.getSendtype(); + String classifyid = mapi.getClassifyid(); + String classifyname = mapi.getClassifyname(); + String curentClassOid=null; + if(type==2){ + curentClassOid=btmoid; + }else{ + curentClassOid=classifyoid; + } + List<SysIntInfoDO> effectiveSysIntInfoVOs=new ArrayList<>(); + //鏍规嵁褰撳墠鏁版嵁鐨刬d锛屾煡璇㈣幏鍙栧摢浜涚郴缁熼渶瑕佸仛闆嗘垚 + List<CodeClassifyDO> parentLeveDO= codeClassifyDaoI.selectAllLevelParentByOid(curentClassOid); + if(CollectionUtils.isEmpty(parentLeveDO)){ + continue;//璇存槑杩欎釜鍒嗙被琚垹鎺変簡锛屼笉鍋氬鐞� + } + Map<String, CodeClassifyDO> oidCodeclassifyDOMap = parentLeveDO.stream().filter(codeClassifyDO -> codeClassifyDO != null && StringUtils.isNotBlank(codeClassifyDO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); + + oidCodeclassifyDOMap.keySet().forEach(oid->{ + if(sysIntInfoDOMap.containsKey(oid)){ + List<SysIntInfoDO> sysIntInfoDOS= sysIntInfoDOMap.get(oid); + effectiveSysIntInfoVOs.addAll(sysIntInfoDOS); + } + }); + //濡傛灉鏍¢獙鐨勭郴缁熸帴鍙d俊鎭笉瀛樺湪锛屽垯鏁版嵁涓嶄笉寰�淇℃伅閲屾帹閫� + if(CollectionUtils.isEmpty(effectiveSysIntInfoVOs)){ + continue; + } + List<DockingTaskDO> dockingTaskDO_insert = new ArrayList<DockingTaskDO>(); + for (SysIntInfoDO sysIntInfoVOi:effectiveSysIntInfoVOs){ + DockingTaskDO dockingTaskDO = new DockingTaskDO(); + dockingTaskDO.setOid(redisService.getUUIDEveryDay()); + dockingTaskDO.setSendflag(SEND_FLAG_FALSE); + dockingTaskDO.setId(id);//缂栫爜 + dockingTaskDO.setUniquecode(uniquecode); + dockingTaskDO.setBtmoid(btmoid);//鏁版嵁oid + dockingTaskDO.setBtmid(btmid);//鏁版嵁涓氬姟绫诲瀷id + dockingTaskDO.setClassifyid(classifyid);//鏁版嵁鍦ㄥ垎绫籭d + dockingTaskDO.setClassifyoid(classifyoid);//鏁版嵁鎵�鍦ㄥ垎绫籵id + dockingTaskDO.setClassifyname(classifyname);//鏁版嵁鎵�鍦ㄥ垎绫诲悕绉� + dockingTaskDO.setSendtype(sendtype);//鏁版嵁鎺ㄩ�佺被鍨� + dockingTaskDO.setDataoid(dataoid); + + //intinfo + dockingTaskDO.setSysinfooid(sysIntInfoVOi.getOid());//intinfo鐨刼id + dockingTaskDO.setSystemoid(sysIntInfoVOi.getSysbaseoid());//绯荤粺oid + dockingTaskDO.setSystemcode(sysIntInfoVOi.getSysbaseid());//绯荤粺缂栫爜 + dockingTaskDO.setSystemname(sysIntInfoVOi.getSysbasename());//绯荤粺name + dockingTaskDO_insert.add(dockingTaskDO); + } + + BatchCBO bi = null; + if(dockingTaskDO_insert.size()!=0) { + bi = dockingTaskDaoI.batchInsert(dockingTaskDO_insert); + batchCBO.copyFromOther(bi); + } + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + //dockingTaskDaoI.updateByPrimaryKey鏂规硶鎶ラ敊浜嗭紝鎵�浠ユ墜鍐欎簡杩欎釜 + boolean u = updateDockingDatasSendFlag(dataoid,SEND_FLAG_TRUE); + if(!u){ + logger.error("闆嗘垚data鍒嗚В浠诲姟澶辫触锛乨ataoid:"+dataoid); + continue; + } + + } + } + private void sendpushDataForService (){ + initSysadmin(); + //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); + queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); + queryWrapper.addQueryMap("btmId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)) + ")"); + List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper); + sendpushDataForService(dockingTaskDOS); + } + */ +/*** + * 鍙戦�佺紪鐮佷富鏁版嵁 + *//* + + private void sendpushDataForService (List<DockingTaskDO> dockingTaskDOS){ + + //姣忎釜task渚濇鎵ц鎺ㄩ�� + for (DockingTaskDO dockingTaskDO:dockingTaskDOS){ + //姣忎釜task涓�涓簨鍔★紝寮�鍚� + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String paramString=""; + String sendString=""; + String backString=""; + try { + //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType + String systeminfooid = dockingTaskDO.getSysinfooid();//sysininfo 鐨刼id + String classifyoid = dockingTaskDO.getClassifyoid(); + //鏌ヨ瑕佹帹閫佺殑鏁版嵁 + String btmoid = dockingTaskDO.getBtmoid();//鏁版嵁btmid + //琛ㄧず鏄富鏁版嵁 + CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid); + BaseResult<Map<String, String>> baseResult = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid()); + List<CodeClassifyTemplateAttrVO> attrVOS = codeClassifyTemplateVO.getAttributes(); + Map<String*/ +/**鑻辨枃鍚嶇О**//* +, String*/ +/**涓枃鍚嶇О**//* +> attrIdNameMap = attrVOS.stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t.getName(), (o1, o2) -> o2)); + Map<String, String> data = new HashMap<>(); + if (baseResult == null) { + JSONObject josni = redisService.getCacheObject(DOCKING_CACHE2_DELETE + btmoid); + data = (Map) josni; + } else { + data = baseResult.getObj(); + } + List<NodeProDTO> nodeProDTOS = new ArrayList<>(); + Map<String, String> finalData = data; + attrIdNameMap.keySet().forEach(field -> { + String outName = attrIdNameMap.get(field); + if (finalData.containsKey(field)) { + String Value = finalData.get(field); + NodeProDTO nodeProDTO = new NodeProDTO(); + nodeProDTO.setFiledName(field); + nodeProDTO.setOutname(outName); + nodeProDTO.setFiledValue(Value); + nodeProDTOS.add(nodeProDTO); + } + }); + + String[] classCodeLeves = dockingTaskDO.getClassifyid().split(","); + NodeJosnDTO nodeJosnDTO = new NodeJosnDTO(); + NodedataDTO nodeDataDTO = new NodedataDTO(); + NodeObjectDTO nodeObjectDTO = new NodeObjectDTO(); + nodeObjectDTO.setCode(dockingTaskDO.getId());//璁剧疆缂栫爜 + nodeObjectDTO.setClassCode(classCodeLeves[0]); + nodeObjectDTO.setStatus(data.get("lcstatus")); + nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]); + nodeObjectDTO.setPro(nodeProDTOS); + List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>(); + nodeObjectDTOS.add(nodeObjectDTO); + nodeDataDTO.setObject(nodeObjectDTOS); + nodeJosnDTO.setData(nodeDataDTO); + //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁� + SysIntInfoVO sysIntInfoVO = sysIntInfoServiceI.getObjectByOid(systeminfooid); + String paramType = sysIntInfoVO.getParamtype();//xml/json + if (paramType.equals(DATATYPE_JSON)) { + Object object = JSONObject.toJSON(nodeJosnDTO); + 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,sysIntInfoVO, dockingTaskDO, batchCBO); + }catch (Throwable e){ + e.printStackTrace(); + }finally { + //姣忎竴涓猼ask涓�涓簨鐗� + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + } + } + } + public void sendpushClsfForService(){ + initSysadmin(); + //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴� + VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class); + queryWrapper.addQueryMap("sendFlag",MdmDuckingConstant.SEND_FLAG_FALSE); + queryWrapper.addQueryMap("btmId",DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)); + List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper); + sendpushClsfForService(dockingTaskDOS); + } + */ +/*** + * 鍙戦�佸垎绫绘暟鎹� + *//* + + private void sendpushClsfForService(List<DockingTaskDO> dockingTaskDOS){ + //姣忎釜task渚濇鎵ц鎺ㄩ�� + for (DockingTaskDO dockingTaskDO:dockingTaskDOS){ + //姣忎釜task涓�涓簨鍔★紝寮�鍚� + WebUtil.setPersistence(false); + BatchCBO batchCBO = new BatchCBO(); + String paramString=""; + String sendString=""; + String backString=""; + //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType + String systeminfooid = dockingTaskDO.getSysinfooid();//sysininfo 鐨刼id + try { + //鏌ヨ瑕佹帹閫佺殑鏁版嵁 + String btmoid = dockingTaskDO.getBtmoid();//鏁版嵁btmid + JsonRootDataDTO jsonRootDataDTO=new JsonRootDataDTO(); + CodeClassifyDO codeClassifyDO=codeClassifyDaoI.selectByPrimaryKey(btmoid); + List<NodeClassifyDTO>nodeClassifyDTOList=new ArrayList<>(); + NodeClassifyDTO nodeClassifyDTO=new NodeClassifyDTO(); + nodeClassifyDTO.setClassCode(codeClassifyDO.getId());//鍒嗙被浠e彿 + nodeClassifyDTO.setDescription(codeClassifyDO.getDescription());//鍒嗙被鎻忚堪 + nodeClassifyDTO.setFullPathName(codeClassifyDO.getPath());//鍏ㄨ矾寰� + nodeClassifyDTO.setLcStatus(codeClassifyDO.getLcStatus());//鐘舵�� + // CodeClassifyDO parentClassDo=codeClassifyDaoI.selectByPrimaryKey(codeClassifyDO.getParentCodeClassifyOid()); + nodeClassifyDTO.setPid(codeClassifyDO.getParentCodeClassifyOid());//鐖秈d鑺傜偣 + nodeClassifyDTO.setId(codeClassifyDO.getOid());//鍒嗙被oid + nodeClassifyDTO.setName(codeClassifyDO.getName());//鍒嗙被鍚嶇О + nodeClassifyDTOList.add(nodeClassifyDTO); + NodeLibraryDTO nodeLibraryDTO=new NodeLibraryDTO(); + CodeClassifyDO rootClassify=codeClassifyDaoI.getRootClassify(btmoid); + nodeLibraryDTO.setClassify(nodeClassifyDTOList); + nodeLibraryDTO.setId(rootClassify.getOid()); + nodeLibraryDTO.setName(rootClassify.getName()); + nodeLibraryDTO.setClassCode(rootClassify.getId()); + NodeDataDTO nodeDataDTO=new NodeDataDTO(); + nodeDataDTO.setLibrary(nodeLibraryDTO); + jsonRootDataDTO.setData(nodeDataDTO); + + //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁� + SysIntInfoVO sysIntInfoVO = sysIntInfoServiceI.getObjectByOid(systeminfooid); + String paramType = sysIntInfoVO.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,sysIntInfoVO,dockingTaskDO,batchCBO); + }catch (Throwable e){ + e.printStackTrace(); + }finally { + //姣忎竴涓猼ask涓�涓簨鐗� + WebUtil.setPersistence(true); + boService.persistenceBatch(batchCBO); + } + } + } + + */ +/*** + * 璋冪敤鎺ュ彛 + * @param sysIntInfoVO + * @throws Throwable + *//* + + private void callInterface(String sendString , SysIntInfoVO sysIntInfoVO,DockingTaskDO dockingTaskDO,BatchCBO batchCBO) throws Throwable{ + String paramString = ""; + + String backString = ""; + String msg=""; + String url = sysIntInfoVO.getRequesturl();//url + List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>(); + try { + + String type = sysIntInfoVO.getInterfacetype().toLowerCase(Locale.ROOT);//get/post/webserver/corba + String paramType = sysIntInfoVO.getParamtype();//xml/json + String returnType = sysIntInfoVO.getReturntype();//xml/json + String requestmethod= sysIntInfoVO.getRequestmethod(); + String interfaceFunction = sysIntInfoVO.getInterfaceFunction();//涓昏鏄痺ebservice鐨勬柟娉曞悕 + String namespace = sysIntInfoVO.getNamespace();//namespace + String soapaction = sysIntInfoVO.getSoapaction();//soapaction + String targName = sysIntInfoVO.getTargName();//targName + String cxfaxis = sysIntInfoVO.getCxfaxis();//webservice鏄痗xf/axis + //鏌ヨparam + List<SysIntParamDO> sysIntParamDOList = sysIntInfoServiceI.getParamsBySystemInfoOid(sysIntInfoVO.getOid()); + //鏌ヨheader + List<SysIntHeaderDO> sysIntHeaderDOList = sysIntInfoServiceI.getHeadersBySystemInfoOid(sysIntInfoVO.getOid()); + if(type.equals(URLTYPE_HTTP)) { + if (requestmethod.equals(URLTYPE_GET)) {//GET璇锋眰 + String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString; + //鎷兼帴param + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + sendurl = sendurl + "&" + sysIntParamDO.getParamkey() + "=" + sysIntParamDO.getParamvalue(); + } + paramString = sendurl; + backString = HttpUtils.get(sendurl); + } else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰 + MultiValueMap<String, String> params = new LinkedMultiValueMap<>(); + for (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + params.add(sysIntParamDO.getParamkey(), sysIntParamDO.getParamvalue()); + } + params.add(DATA_PARAM_NAME,sendString); + paramString = params.toString(); + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + for (SysIntHeaderDO sysIntHeaderDO : sysIntHeaderDOList) { + headers.add(sysIntHeaderDO.getHeaderkey(), sysIntHeaderDO.getHeaderalue()); + } + 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 (SysIntParamDO sysIntParamDO : sysIntParamDOList) { + params.add(sysIntParamDO.getParamkey(), sysIntParamDO.getParamvalue()); + } + paramString = sendString; + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + for (SysIntHeaderDO sysIntHeaderDO : sysIntHeaderDOList) { + headers.add(sysIntHeaderDO.getHeaderkey(), sysIntHeaderDO.getHeaderalue()); + } + 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(sysIntInfoVO.getPushType().equalsIgnoreCase("2")?dockingTaskDO.getClassifyid():dockingTaskDO.getId()); + resultNodeObjectDTO.setOid(dockingTaskDO.getBtmoid()); + resultNodeObjectDTOS.add(resultNodeObjectDTO); + }finally { + boolean isSend = false; + 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; + } + DockingLogeDO dockingLogeDO = new DockingLogeDO(); + String oid=redisService.getUUIDEveryDay(); + dockingLogeDO.setOid(oid); + dockingLogeDO.setSystemcode(dockingTaskDO.getSystemcode()); + dockingLogeDO.setSystemname(dockingTaskDO.getSystemname()); + dockingLogeDO.setSystemoid(dockingTaskDO.getSystemoid()); + dockingLogeDO.setClassifyoid(dockingTaskDO.getClassifyoid()); + dockingLogeDO.setClassifyid(dockingTaskDO.getClassifyid()); + dockingLogeDO.setClassifyname(dockingTaskDO.getClassifyname()); + dockingLogeDO.setId(dockingTaskDO.getId()); + dockingLogeDO.setUniquecode(dockingTaskDO.getUniquecode()); + dockingLogeDO.setParamstring(paramString); + dockingLogeDO.setReturnstring(backString); + dockingLogeDO.setInterfacestatus(isSend?"true":"false"); + dockingLogeDO.setType(DATA_LOGE_OUT); + dockingLogeDO.setMsg(msg); + logger.error("闆嗘垚鎺ㄩ�佹暟鎹�,systemcode:"+dockingTaskDO.getSystemcode()+",systemname:"+dockingTaskDO.getSystemname()+",url:"+url+",param:"+paramString+",e:"+msg); + BatchCBO dockingLogeDOBo = dockingLogeDaoI.insert(dockingLogeDO); + batchCBO.copyFromOther(dockingLogeDOBo); + } + //鍏ㄩ兘鎺ユ敹鎴愬姛鐨勬儏鍐典笅,淇敼dockingtask sendflag涓哄凡鍙戦�� + if(isSend) { + dockingTaskDO.setSendflag(MdmDuckingConstant.SEND_FLAG_TRUE); + BatchCBO updateTask = dockingTaskDaoI.updateByPrimaryKey(dockingTaskDO); + batchCBO.copyFromOther(updateTask); + } + } + } + public void initSysadmin(){ + SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setUserId("sysAdmin"); + sessionInfo.setUserName("绯荤粺绠$悊鍛�"); + sessionInfo.setIp(WebUtil.getLocalIp()); + sessionInfo.setUserOid("193C026F-7DB8-27B4-F383-4E8BE083FB07"); + sessionInfo.setUserSecret(UserSecretEnum.PRIVACY.getValue()+""); + WebUtil.setSessionInfo(sessionInfo); + } + + @Autowired + private PlatformClientUtil platformClientUtil; + */ +/** + * dockingdata鏍规嵁oid淇敼sendflag + * @param oid + * @param sendflag + * @return + *//* + + public boolean updateDockingDatasSendFlag(String oid,String sendflag){ + boolean u=false; + String sql = "update PLATFORMBTM_codedockingdata set sendFlag = '"+sendflag+"' where oid='"+oid+"'"; + try { + u=platformClientUtil.getBOFactoryService().executeUpdateSql(sql); + }catch (Exception e){ + + } + return u; + } +} + +*/ -- Gitblit v1.9.3