From 38f0f601c507fa9a7a27754e9f1a1bd10f913899 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期日, 03 十二月 2023 23:07:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeDuckingSyncServiceImpl.java | 1151 ++++++++++++++++++++++++++++----------------------------
1 files changed, 572 insertions(+), 579 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
index d24fc98..56b35b8 100644
--- 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
@@ -1,12 +1,13 @@
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.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
import com.vci.ubcs.code.constant.MdmDuckingConstant;
-import com.vci.ubcs.code.dao.CodeClassifyDaoI;
-import com.vci.ubcs.code.dao.DockingDataDaoI;
-import com.vci.ubcs.code.dao.DockingLogeDaoI;
-import com.vci.ubcs.code.dao.DockingTaskDaoI;
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;
@@ -18,619 +19,611 @@
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.code.model.*;
-import com.vci.ubcs.code.service.CodeDuckingSyncServiceI;
-import com.vci.ubcs.code.service.MdmEngineServiceI;
-import com.vci.ubcs.code.service.SysIntInfoServiceI;
-import com.vci.ubcs.code.utils.HttpUtils;
-import com.vci.ubcs.code.utils.WsErpClientUtil;
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.io.xml.DomDriver;
-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.ubcs.code.model.*;
-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.springblade.code.model.*;
+import com.vci.ubcs.code.entity.*;
+import com.vci.ubcs.code.enumpack.SysIntegrationDataFlowTypeEnum;
+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.CodeClassifyTemplateAttrVO;
import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO;
-import com.vci.ubcs.code.vo.pagemodel.SysIntInfoVO;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.vci.ubcs.code.vo.pagemodel.CodeClassifyVO;
+import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
+import com.vci.ubcs.starter.web.pagemodel.SessionInfo;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
+import com.vci.ubcs.starter.web.util.WebUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Lazy;
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.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
+import static com.vci.ubcs.code.constant.MdmDuckingConstant.*;
-/**
+
+/*
* 涓婚搴撻泦鎴愭湇鍔�
- * @author wangyi
- * @date 2022-03-20
- */
+ * @author xiejun
+ * @date 2023-06-19
+**/
+
@Service
-public class CodeDuckingSyncServiceImpl implements CodeDuckingSyncServiceI {
+@Slf4j
+public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService {
+ @Value("${dataSyncPush.dataParamName:xmlData}")
+ public String DATA_PARAM_NAME;
+ @Value("${dataSyncPush.dataId:itemid}")
+ private String itemId;
+ @Resource
+ private MdmEngineService mdmEngineServiceI;
- /**
- * 鏃ュ織
- */
- 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;
+ @Resource
+ private IDockingLogeService dockingLogeService;
+ @Resource
+ private IDockingDataService dockingDataService;
+ @Resource
+ private IDockingTaskService dockingTaskService;
+ @Resource
+ private IDockingSystemConfigService dockingSystemConfigService;
+ @Resource
+ private ICodeClassifyService codeClassifyService;
+ /***
+ * resdis缂撳瓨鏈嶅姟
+ */
+ @Resource
+ private BladeRedis bladeRedis;
+ @Resource
+ private IDockingSysIntParamService dockingSysIntParamService;
+ @Resource
+ private IDockingSysIntHeaderService dockingSysIntHeaderService;
- /**
- * 瑕佹帹閫佺郴缁熺殑鏈嶅姟
- */
- @Autowired
- private SysIntInfoServiceI sysIntInfoServiceI;
- @Value("${dataSyncPush.dataParamName:xmlData}")
- public String DATA_PARAM_NAME;
+ @Override
+ public void DockingDataSyncScheduing() {
- /**
- * 瀹氭椂浠诲姟鎺ㄩ��
- */
- @Override
- public void DockingDataSyncScheduing(){
- // insertCache2();
- initPushDataTaks(1);
- sendpushDataForService();
- }
+ // 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(MdmDuckingConstant.DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){
- List<DockingTaskDO> dockingTaskDOList= typeDockingTaskDOMap.get(MdmDuckingConstant.DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
- if(CollectionUtils.isEmpty(dockingTaskDOList)){
- dockingTaskDOList=new ArrayList<>();
- }
- dockingTaskDOList.add(newDockingTaskDO);
- typeDockingTaskDOMap.put(MdmDuckingConstant.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(MdmDuckingConstant.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鏄唬琛ㄦ暟鎹帹閫�
+ /***
+ *
+ */
+ @Override
+ public void DockingClassSyncScheduing() {
+ initPushDataTaks(2);//鍒嗙被鎺ㄩ��
+ sendpushClsfForService();
+ }
- 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", MdmDuckingConstant.DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
- }else {
- queryWrapperForDO.addQueryMap("btmTypeId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(MdmDuckingConstant.DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT)) + ")");
- }
- List<DockingDataDO> dataList = dockingDataDaoI.selectByWrapper(queryWrapperForDO);
+ /***
+ * 鎵嬪姩鍚屾
+ * @param oids
+ * @return
+ */
+ @Transactional(rollbackFor = Throwable.class)
+ @Override
+ public R sendData(String oids) {
+ VciBaseUtil.alertNotNull(oids,"绯荤粺闆嗘垚鍩虹淇℃伅鏁版嵁瀵硅薄",oids,"绯荤粺闆嗘垚鍩虹淇℃伅鐨勪富閿�");
+ List<String> dockingTaskOidList=new ArrayList<>();
+ dockingTaskOidList= VciBaseUtil.str2List(oids);
+ List<DockingTask> newDockingTasks= this.dockingTaskService.listByIds(dockingTaskOidList);
+ Map<String,List<DockingTask>> typeDockingTaskMap=new HashMap<>();
+ newDockingTasks.stream().forEach(newDockingTaskDO->{
+ String btmId=newDockingTaskDO.getBtmId();
+ if(btmId.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){
+ List<DockingTask> dockingTaskList= typeDockingTaskMap.get(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
+ if(CollectionUtils.isEmpty(dockingTaskList)){
+ dockingTaskList=new ArrayList<>();
+ }
+ dockingTaskList.add(newDockingTaskDO);
+ typeDockingTaskMap.put(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT),dockingTaskList);
+ }else{
+ List<DockingTask> dockingTaskDOList= typeDockingTaskMap.get("data");
+ if(CollectionUtils.isEmpty(dockingTaskDOList)){
+ dockingTaskDOList=new ArrayList<>();
+ }
+ dockingTaskDOList.add(newDockingTaskDO);
+ typeDockingTaskMap.put("data",dockingTaskDOList);
+ }
+ });
+ typeDockingTaskMap.keySet().forEach(type->{
+ List<DockingTask> DockingTaskList=typeDockingTaskMap.get(type);
+ if(!CollectionUtils.isEmpty(DockingTaskList)){
+ if(type.equalsIgnoreCase(DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT))){
+ this.sendpushClsfForService(DockingTaskList);
+ }else{
+ this.sendpushDataForService(DockingTaskList);
+ }
+ }
+ });
+ return R.success("鎵嬪姩鎺ㄩ�佸畬鎴�,璇锋牳瀵规槸鍚︽帹閫佹垚鍔�");
+ }
- 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(MdmDuckingConstant.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);
+ /***
+ * 鏌ヨredis涓暟鎹紝瀵规瘮鍚庢彃鍏ockingtask
+ * @param type
+ */
+ private void initPushDataTaks(int type){
+ initSysadmin();
+ List<DockingSystemConfig> dockingSystemConfigList = dockingSystemConfigService.list(
+ Wrappers.<DockingSystemConfig>query().lambda().eq(DockingSystemConfig::getUsedFlag,"true")
+ .eq(DockingSystemConfig::getPushType,type==2?"2":"1").eq(DockingSystemConfig::getDataFlowType, SysIntegrationDataFlowTypeEnum.PUSH.getValue()));//2鏄唬琛ㄥ垎绫绘帹閫侊紝1鏄唬琛ㄦ暟鎹帹閫�
- //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);
- }
+ if(CollectionUtils.isEmpty(dockingSystemConfigList)){
+ String title=type==2?"鍒嗙被鎺ㄩ��":"鏁版嵁鎺ㄩ��";
+ log.info("info->鎵�鏈夐泦鎴愮郴缁燂紝鏈煡璇㈠埌鐩稿叧鐨勩��"+title+"銆戠殑鎺ュ彛閰嶇疆淇℃伅锛岄厤缃�");
+ return;
+ }
+ Map<String ,List<DockingSystemConfig>> sysIntInfoDOMap = new HashMap<>();//key=classifyoid,value=list<map>
+ for (DockingSystemConfig dockingSystemConfig:dockingSystemConfigList){
+ List<DockingSystemConfig> dockingSystemList = sysIntInfoDOMap.get(dockingSystemConfig.getClassifyOid());
+ if(dockingSystemList==null){
+ dockingSystemList = new ArrayList<>();
+ }
+ dockingSystemList.add(dockingSystemConfig);
+ sysIntInfoDOMap.put(dockingSystemConfig.getClassifyOid(),dockingSystemList);
+ }
+ //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹�
+ LambdaQueryWrapper<DockingData> queryWrapper = Wrappers.<DockingData>lambdaQuery();
+ queryWrapper.eq(DockingData::getSendFlag,"false");
+ if(type==2){
+ queryWrapper.eq(DockingData::getBtmId,DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
+ }else {
+ queryWrapper.notIn(DockingData::getBtmId,DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
+ }
+ List<DockingData> dataList = dockingDataService.list(queryWrapper);
- 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, MdmDuckingConstant.SEND_FLAG_TRUE);
- if(!u){
- logger.error("闆嗘垚data鍒嗚В浠诲姟澶辫触锛乨ataoid:"+dataoid);
- continue;
- }
+ for (DockingData mapi:dataList){
+ WebUtil.setPersistence(false);
+ 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<DockingSystemConfig> effectiveSysIntInfoVOs=new ArrayList<>();
+ //鏍规嵁褰撳墠鏁版嵁鐨刬d锛屾煡璇㈣幏鍙栧摢浜涚郴缁熼渶瑕佸仛闆嗘垚
+ List<CodeClassify> parentLeveDO= codeClassifyService.selectAllLevelParentByOid(curentClassOid);
+ if(CollectionUtils.isEmpty(parentLeveDO)){
+ continue;//璇存槑杩欎釜鍒嗙被琚垹鎺変簡锛屼笉鍋氬鐞�
+ }
+ Map<String, CodeClassify> oidCodeclassifyDOMap = parentLeveDO.stream().filter(codeClassifyDO -> codeClassifyDO != null && StringUtils.isNotBlank(codeClassifyDO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
- }
- }
- private void sendpushDataForService (){
- initSysadmin();
- //鏌ヨ鍝簺浠诲姟杩樻病鏈夋墽琛屽畬鎴�
- VciQueryWrapperForDO queryWrapper = new VciQueryWrapperForDO(DockingTaskDO.class);
- queryWrapper.addQueryMap("sendFlag", MdmDuckingConstant.SEND_FLAG_FALSE);
- queryWrapper.addQueryMap("btmId", QueryOptionConstant.NOTIN + "(" + VciBaseUtil.toInSql(MdmDuckingConstant.DOCKING_DEFAULT_CLASSIFY.toUpperCase(Locale.ROOT)) + ")");
- List<DockingTaskDO> dockingTaskDOS = dockingTaskDaoI.selectByWrapper(queryWrapper);
- sendpushDataForService(dockingTaskDOS);
- }
- /***
- * 鍙戦�佺紪鐮佷富鏁版嵁
- */
- private void sendpushDataForService (List<DockingTaskDO> dockingTaskDOS){
+ oidCodeclassifyDOMap.keySet().forEach(oid->{
+ if(sysIntInfoDOMap.containsKey(oid)){
+ List<DockingSystemConfig> sysIntInfoDOS= sysIntInfoDOMap.get(oid);
+ effectiveSysIntInfoVOs.addAll(sysIntInfoDOS);
+ }
+ });
+ //濡傛灉鏍¢獙鐨勭郴缁熸帴鍙d俊鎭笉瀛樺湪锛屽垯鏁版嵁涓嶄笉寰�淇℃伅閲屾帹閫�
+ if(CollectionUtils.isEmpty(effectiveSysIntInfoVOs)){
+ continue;
+ }
+ List<DockingTask> dockingTask_insert = new ArrayList<>();
+ for (DockingSystemConfig sysIntInfoVOi:effectiveSysIntInfoVOs){
+ DockingTask dockingTask = new DockingTask();
+ dockingTask.setOid(VciBaseUtil.getPk());
+ dockingTask.setSendFlag(SEND_FLAG_FALSE);
+ dockingTask.setId(id);//缂栫爜
+ dockingTask.setUniqueCode(uniquecode);
+ dockingTask.setBtmOid(btmoid);//鏁版嵁oid
+ dockingTask.setBtmId(btmid);//鏁版嵁涓氬姟绫诲瀷id
+ dockingTask.setClassifyId(classifyid);//鏁版嵁鍦ㄥ垎绫籭d
+ dockingTask.setClassifyOid(classifyoid);//鏁版嵁鎵�鍦ㄥ垎绫籵id
+ dockingTask.setClassifyName(classifyname);//鏁版嵁鎵�鍦ㄥ垎绫诲悕绉�
+ dockingTask.setSendType(sendtype);//鏁版嵁鎺ㄩ�佺被鍨�
+ dockingTask.setDataOid(dataoid);
+ dockingTask.setCreateTime(new Date());
+ dockingTask.setLastModifyTime(new Date());
+ dockingTask.setCreator("sysAdmin");
+ dockingTask.setLastModifier("sysAdmin");
+ //intinfo
+ dockingTask.setSysInfoOid(sysIntInfoVOi.getOid());//intinfo鐨刼id
+ dockingTask.setSystemOid(sysIntInfoVOi.getSysBaseOid());//绯荤粺oid
+ dockingTask.setSystemCode(sysIntInfoVOi.getSysBaseId());//绯荤粺缂栫爜
+ dockingTask.setSystemName(sysIntInfoVOi.getSysBaseName());//绯荤粺name
+ dockingTask_insert.add(dockingTask);
+ }
- //姣忎釜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(MdmDuckingConstant.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);
- }
- });
+ if(dockingTask_insert.size()!=0) {
+ dockingTaskService.saveBatch(dockingTask_insert);
+ }
+ //dockingTaskDaoI.updateByPrimaryKey鏂规硶鎶ラ敊浜嗭紝鎵�浠ユ墜鍐欎簡杩欎釜
+ boolean u = updateDockingDatasSendFlag(dataoid,SEND_FLAG_TRUE);
+ if(!u){
+ log.error("闆嗘垚data鍒嗚В浠诲姟澶辫触锛乨ataoid:"+dataoid);
+ continue;
+ }
+ }
+ }
- 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(MdmDuckingConstant.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", MdmDuckingConstant.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.getId());//鐖秈d鑺傜偣
- nodeClassifyDTO.setId(codeClassifyDO.getOid());//鍒嗙被oid
- nodeClassifyDTO.setName(codeClassifyDO.getName());//鍒嗙被鍚嶇О
- nodeClassifyDTOList.add(nodeClassifyDTO);
- NodeLibraryDTO nodeLibraryDTO=new NodeLibraryDTO();
- nodeLibraryDTO.setClassify(nodeClassifyDTOList);
- CodeClassifyDO rootClassify=codeClassifyDaoI.getRootClassify(btmoid);
- nodeLibraryDTO.setId(rootClassify.getOid());
- nodeLibraryDTO.setName(rootClassify.getName());
- NodeDataDTO nodeDataDTO=new NodeDataDTO();
- nodeDataDTO.setLibrary(nodeLibraryDTO);
- jsonRootDataDTO.setData(nodeDataDTO);
+ /***
+ * 鍙戦�佸垎绫绘暟鎹�
+ */
+ private void sendpushClsfForService(List<DockingTask> dockingTaskList){
+ //姣忎釜task渚濇鎵ц鎺ㄩ��
+ for (DockingTask dockingTask:dockingTaskList){
+ //姣忎釜task涓�涓簨鍔★紝寮�鍚�
+ String paramString="";
+ String sendString="";
+ String backString="";
+ //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType
+ String systeminfooid = dockingTask.getSysInfoOid();//sysininfo 鐨刼id
+ try {
+ //鏌ヨ瑕佹帹閫佺殑鏁版嵁
+ String btmoid = dockingTask.getBtmOid();//鏁版嵁btmid
+ JsonRootDataDTO jsonRootDataDTO=new JsonRootDataDTO();
+ CodeClassify codeClassify=codeClassifyService.getById(btmoid);
+ List<NodeClassifyDTO>nodeClassifyDTOList=new ArrayList<>();
+ NodeClassifyDTO nodeClassifyDTO=new NodeClassifyDTO();
+ nodeClassifyDTO.setClassCode(codeClassify.getId());//鍒嗙被浠e彿
+ nodeClassifyDTO.setDescription(codeClassify.getDescription());//鍒嗙被鎻忚堪
+ nodeClassifyDTO.setFullPathName(codeClassify.getPath());//鍏ㄨ矾寰�
+ nodeClassifyDTO.setLcStatus(codeClassify.getLcStatus());//鐘舵��
+ // CodeClassifyDO parentClassDo=codeClassifyDaoI.selectByPrimaryKey(codeClassifyDO.getParentCodeClassifyOid());
+ nodeClassifyDTO.setPid(codeClassify.getParentCodeClassifyOid());//鐖秈d鑺傜偣
+ nodeClassifyDTO.setId(codeClassify.getOid());//鍒嗙被oid
+ nodeClassifyDTO.setName(codeClassify.getName());//鍒嗙被鍚嶇О
+ nodeClassifyDTOList.add(nodeClassifyDTO);
+ NodeLibraryDTO nodeLibraryDTO=new NodeLibraryDTO();
+ CodeClassifyVO rootClassify=codeClassifyService.getTopClassifyVO(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(MdmDuckingConstant.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);
- }
- }
- }
+ //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁�
+ DockingSystemConfig dockingSystemConfig = dockingSystemConfigService.getById(systeminfooid);
+ String paramType = dockingSystemConfig.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,dockingSystemConfig,dockingTask,"pushClassifyData");
+ }catch (Throwable e){
+ e.printStackTrace();
+ }finally {
+ //姣忎竴涓猼ask涓�涓簨鐗�
+ }
+ }
+ }
+ /***
+ * 鍙戦�佺紪鐮佷富鏁版嵁
+ */
+ private void sendpushDataForService (List<DockingTask> dockingTaskS){
+ //姣忎釜task渚濇鎵ц鎺ㄩ��
+ for (DockingTask dockingTask:dockingTaskS){
+ //姣忎釜task涓�涓簨鍔★紝寮�鍚�
+ String paramString="";
+ String sendString="";
+ String backString="";
+ try {
+ //鏌ヨ绯荤粺鎺ュ彛淇℃伅,ip method,dataType
+ String systeminfooid = dockingTask.getSysInfoOid();//sysininfo 鐨刼id
+ String classifyoid = dockingTask.getClassifyOid();
+ //鏌ヨ瑕佹帹閫佺殑鏁版嵁
+ String btmoid = dockingTask.getBtmOid();//鏁版嵁btmid
+ String code=dockingTask.getId();;
+ //琛ㄧず鏄富鏁版嵁
+ CodeClassifyTemplateVO codeClassifyTemplateVO = mdmEngineServiceI.getUsedTemplateByClassifyOid(classifyoid);
+ R<List<Map<String, String>>> r = mdmEngineServiceI.getDataByOid(btmoid, codeClassifyTemplateVO.getOid());
- /***
- * 璋冪敤鎺ュ彛
- * @param sysIntInfoVO
- * @throws Throwable
- */
- private void callInterface(String sendString , SysIntInfoVO sysIntInfoVO,DockingTaskDO dockingTaskDO,BatchCBO batchCBO) throws Throwable{
- String paramString = "";
+ 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 (r == null) {
+ JSONObject josni = bladeRedis.get(DOCKING_CACHE2_DELETE + btmoid);
+ data = (Map) josni;
+ } else {
+ data = r.getData().get(0);
+ }
+ List<NodeProDTO> nodeProDTOS = new ArrayList<>();
+ Map<String, String> finalData = data;
+ AtomicReference<String> newItemId= new AtomicReference<>("");
+ attrIdNameMap.keySet().forEach(field -> {
+ if(field.toLowerCase(Locale.ROOT).equals(itemId.toLowerCase(Locale.ROOT))){
+ String Value = finalData.get(field);
+ newItemId.set(Value);
+ }
+ 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);
+ }
+ });
+ //鏌ヨ鎺ㄩ�佹帴鍙e弬鏁�
+ DockingSystemConfig dockingSystemConfig = dockingSystemConfigService.getById(systeminfooid);
+ boolean isGroupCodeFlage=false;
+ if(dockingSystemConfig!=null) {
+ isGroupCodeFlage = StringUtils.isBlank(dockingSystemConfig.getIsGroupCodeFlag())?false: Boolean.getBoolean(dockingSystemConfig.getIsGroupCodeFlag());
+ }
+ if(isGroupCodeFlage){
+ code=data.getOrDefault("groupcode","");
+ if(StringUtils.isBlank(code)) {//濡傛灉鏄泦鍥㈢爜锛屾病鏈夐鍙栧埌闆嗗洟鐮佸垯浠诲姟涓嶇粨鏉熺瓑寰呴泦鍥㈢爜鐢宠鍚庡啀閫氳繃瀹氭椂鍣ㄨ皟鐢ㄩ泦鍥㈢爜娈�
+ dockingTask.setDescription("绛夊緟闆嗗洟鐢宠闆嗗洟鐮�");
+ dockingTask.setSendFlag(MdmDuckingConstant.SEND_FLAG_FALSE);
+ dockingTask.setLastModifyTime(new Date());
+ dockingTaskService.updateById(dockingTask);
+ continue;
+ }
+ }
+ String[] classCodeLeves = dockingTask.getClassifyId().split(",");
+ NodeJosnDTO nodeJosnDTO = new NodeJosnDTO();
+ NodedataDTO nodeDataDTO = new NodedataDTO();
+ NodeObjectDTO nodeObjectDTO = new NodeObjectDTO();
+ nodeObjectDTO.setCode(code);//璁剧疆缂栫爜
+ nodeObjectDTO.setClassCode(classCodeLeves[0]);
+ nodeObjectDTO.setStatus(data.get("lcstatus"));
+ nodeObjectDTO.setItemid(newItemId.get());
+ nodeObjectDTO.setLibrary(classCodeLeves[classCodeLeves.length - 1]);
+ nodeObjectDTO.setPro(nodeProDTOS);
+ List<NodeObjectDTO> nodeObjectDTOS = new ArrayList<>();
+ nodeObjectDTOS.add(nodeObjectDTO);
+ nodeDataDTO.setObject(nodeObjectDTOS);
+ nodeJosnDTO.setData(nodeDataDTO);
- String backString = "";
- String msg="";
- String url = sysIntInfoVO.getRequesturl();//url
- List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>();
- try {
+ String paramType = dockingSystemConfig.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,dockingSystemConfig, dockingTask,"pushData");
+ }catch (Throwable e){
+ e.printStackTrace();
+ }finally {
+ }
+ }
+ }
+ /***
+ * 璋冪敤鎺ュ彛
+ * @param sendString
+ * @param dockingSystemConfig
+ * @param dockingTask
+ * @throws Throwable
+ */
+ private void callInterface(String sendString , DockingSystemConfig dockingSystemConfig,DockingTask dockingTask,String operation) throws Throwable{
+ String paramString = "";
- 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(MdmDuckingConstant.URLTYPE_HTTP)) {
- if (requestmethod.equals(MdmDuckingConstant.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(MdmDuckingConstant.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(MdmDuckingConstant.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);
+ String backString = "";
+ String msg="";
+ String url = dockingSystemConfig.getRequestUrl();//url
+ List<ResultNodeObjectDTO> resultNodeObjectDTOS =new ArrayList<>();
+ try {
+ boolean usedFlag= dockingSystemConfig.getUsedFlag().equals("true")?true:false;
+ if(!usedFlag){
+ throw new Throwable("鎺ュ彛宸茬粡鍋滅敤锛�");
+ }
+ String type = dockingSystemConfig.getInterfaceType().toLowerCase(Locale.ROOT);//get/post/webserver/corba
+ String paramType = dockingSystemConfig.getParamType();//xml/json
+ String returnType = dockingSystemConfig.getReturnType();//xml/json
+ String requestmethod= dockingSystemConfig.getRequestMethod();
+ String interfaceFunction = dockingSystemConfig.getInterfaceFunction();//涓昏鏄痺ebservice鐨勬柟娉曞悕
+ String namespace = dockingSystemConfig.getNamespace();//namespace
+ String soapaction = dockingSystemConfig.getSoapAction();//soapaction
+ String targName = dockingSystemConfig.getTargetName();//targName
+ String cxfaxis = dockingSystemConfig.getCxfAxis();//webservice鏄痗xf/axis
+ //鏌ヨparam
+ List<DockingSysIntParam> dockingSysIntParamList = dockingSysIntParamService.list(Wrappers.<DockingSysIntParam>query().lambda().eq(DockingSysIntParam::getInfoOid,dockingSystemConfig.getOid()));
+ //鏌ヨheader
+ List<DockingSysIntHeader> dockingSysIntHeaderList = dockingSysIntHeaderService.list(Wrappers.<DockingSysIntHeader>query().lambda().eq(DockingSysIntHeader::getInfoOid,dockingSystemConfig.getOid()));
+ if(type.equals(URLTYPE_HTTP)) {
+ if (requestmethod.equals(URLTYPE_GET)) {//GET璇锋眰
+ String sendurl = url + "?" + DATA_PARAM_NAME + "=" + sendString;
+ //鎷兼帴param
+ for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) {
+ sendurl = sendurl + "&" + dockingSysIntParam.getParamKey() + "=" + dockingSysIntParam.getParamValue();
+ }
+ paramString = sendurl;
+ backString = HttpUtils.get(sendurl);
+ } else if (requestmethod.equals(URLTYPE_POST)) {//POST璇锋眰
+ MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+ for (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) {
+ params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue());
+ }
+ params.add(DATA_PARAM_NAME,sendString);
+ paramString = params.toString();
+ MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
+ for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) {
+ headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.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 (DockingSysIntParam dockingSysIntParam : dockingSysIntParamList) {
+ params.add(dockingSysIntParam.getParamKey(), dockingSysIntParam.getParamValue());
+ }
- } else {//corba鎺ュ彛
- //paramString=sendString;
- // backString = jacorbClient.getBOFactoryService().sendCode(sendString);
- }
+ paramString = sendString;
+ MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
+ for (DockingSysIntHeader dockingSysIntHeader : dockingSysIntHeaderList) {
+ headers.add(dockingSysIntHeader.getHeaderKey(), dockingSysIntHeader.getHeaderValue());
+ }
+ backString = WsErpClientUtil.sendMsg(url, namespace, soapaction, interfaceFunction, targName, sendString, 10000);
- ResultJsonDTO resultJsonDTO = new ResultJsonDTO();
- if(returnType.equals(MdmDuckingConstant.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();
+ } else {//corba鎺ュ彛
+ //paramString=sendString;
+ // backString = jacorbClient.getBOFactoryService().sendCode(sendString);
+ }
- }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(MdmDuckingConstant.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);
- }
+ 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.getMessage();
+ e.printStackTrace();
+ log.error("璋冪敤鎺ュ彛澶辫触:"+e);
+ // throw new Throwable("璋冪敤鎺ュ彛澶辫触:"+e);
+ ResultNodeObjectDTO resultNodeObjectDTO=new ResultNodeObjectDTO();
+ resultNodeObjectDTO.setErroid("1");
+ resultNodeObjectDTO.setMsg(msg);
+ resultNodeObjectDTO.setCode(dockingSystemConfig.getPushType().equalsIgnoreCase("2")?dockingTask.getClassifyId():dockingTask.getId());
+ resultNodeObjectDTO.setItemid(dockingTask.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;
+ }
+ DockingLog dockingLogeDO = new DockingLog();
+ String oid=VciBaseUtil.getPk();
+ dockingLogeDO.setOid(oid);
+ dockingLogeDO.setSystemCode(dockingTask.getSystemCode());
+ dockingLogeDO.setSystemName(dockingTask.getSystemName());
+ dockingLogeDO.setSystemOid(dockingTask.getSystemOid());
+ dockingLogeDO.setClassifyOid(dockingTask.getClassifyOid());
+ dockingLogeDO.setClassifyId(dockingTask.getClassifyId());
+ dockingLogeDO.setClassifyName(dockingTask.getClassifyName());
+ dockingLogeDO.setCreateTime(new Date());
+ dockingLogeDO.setId(dockingTask.getId());
+ dockingLogeDO.setUniqueCode(dockingTask.getUniqueCode());
+ dockingLogeDO.setParamString(paramString);
+ dockingLogeDO.setReturnString(backString);
+ dockingLogeDO.setInterfaceStatus(isSend?"true":"false");
+ dockingLogeDO.setType(operation);
+ dockingLogeDO.setMsg(msg);
+ log.error("闆嗘垚鎺ㄩ�佹暟鎹�,systemcode:"+dockingTask.getSystemCode()+",systemname:"+dockingTask.getSystemName()+",url:"+url+",param:"+paramString+",e:"+msg);
+ dockingLogeService.save(dockingLogeDO);
+ }
+ //鍏ㄩ兘鎺ユ敹鎴愬姛鐨勬儏鍐典笅,淇敼dockingtask sendflag涓哄凡鍙戦��
+ if(isSend) {
+ dockingTask.setSendFlag(MdmDuckingConstant.SEND_FLAG_TRUE);
+ dockingTask.setLastModifyTime(new Date());
+ dockingTaskService.updateById(dockingTask);
+ }
+ }
+ }
+ /***
+ * 鏌ヨ闇�瑕侀泦鎴愮殑涓氬姟鏁版嵁浠诲姟
+ */
+ 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)) + ")");
- @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){
+ //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹�
+ LambdaQueryWrapper<DockingTask> queryWrapper = Wrappers.<DockingTask>lambdaQuery();
+ queryWrapper.eq(DockingTask::getSendFlag,MdmDuckingConstant.SEND_FLAG_FALSE);
+ queryWrapper.notIn(DockingTask::getBtmId,DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
+ List<DockingTask> dockingTaskDOS = dockingTaskService.list(queryWrapper);
+ sendpushDataForService(dockingTaskDOS);
+ }
- }
- return u;
- }
+ /***
+ * 鏌ヨ闇�瑕侀泦鎴愮殑鐖跺垎绫讳换鍔�
+ */
+ private 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);*/
+
+ //鏍规嵁绫诲瀷鍘绘煡璇㈤渶瑕侀泦鎴愮殑鍒嗙被鎴栬�呮暟鎹�
+ LambdaQueryWrapper<DockingTask> queryWrapper = Wrappers.<DockingTask>lambdaQuery();
+ queryWrapper.eq(DockingTask::getSendFlag,MdmDuckingConstant.SEND_FLAG_FALSE);
+ queryWrapper.eq(DockingTask::getBtmId,DOCKING_DEFAULT_CLASSIFY.toLowerCase(Locale.ROOT));
+ List<DockingTask> dockingTaskDOS = dockingTaskService.list(queryWrapper);
+ sendpushClsfForService(dockingTaskDOS);
+ }
+ 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);
+ }
+ /**
+ * dockingdata鏍规嵁oid淇敼sendflag
+ * @param oid
+ * @param sendflag
+ * @return
+ */
+ public boolean updateDockingDatasSendFlag(String oid,String sendflag){
+ boolean u=false;
+ DockingData dockingData=dockingDataService.getById(oid);
+ if(dockingData!=null){
+ dockingData.setSendFlag(sendflag);
+ u= dockingDataService.updateById(dockingData);
+ }
+ return u;
+ }
}
--
Gitblit v1.9.3