package com.vci.ubcs.code.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.vci.ubcs.code.entity.DockingSystem; import com.vci.ubcs.code.service.ICodeDuckingSyncService; import com.vci.ubcs.code.service.IDockingSystemService; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; /* * 主题库集成服务 * @author xiejun * @date 2023-06-19 **/ @Service @Slf4j public class CodeDuckingSyncServiceImpl implements ICodeDuckingSyncService { @Resource private IDockingSystemService dockingSystemService; @Override public void DockingDataSyncScheduing() { // insertCache2(); initPushDataTaks(1); //sendpushDataForService(); } @Override public void DockingClassSyncScheduing() { } @Override public R sendData(String oids) { return null; } /*** * 查询redis中数据,对比后插入dockingtask * @param type */ private void initPushDataTaks(int type){ // //initSysadmin(); // //sysintinfo查询要推送的主题库和相关系统信息 // Map conditionMap = new HashMap<>(); // conditionMap.put("usedflag","true"); // conditionMap.put("pushType",type==2?"2":"1") ;//2是代表分类推送,1是代表数据推送 // // Wrappers wrappers=new Wrappers(); // // List sysIntInfoVOList = dockingSystemService.list(Wrappers.query().lambda().eq()); // if(CollectionUtils.isEmpty(sysIntInfoVOList)){ // String title=type==2?"分类推送":"数据推送"; // log.info("info->所有集成系统,未查询到相关的【"+title+"】的接口配置信息,配置"); // return; // } // Map> sysIntInfoDOMap = new HashMap>();//key=classifyoid,value=list // for (SysIntInfoDO sysIntInfoVOi:sysIntInfoVOList){ // List SysIntInfoVOListi = sysIntInfoDOMap.get(sysIntInfoVOi.getClassifyoid()); // if(SysIntInfoVOListi==null){ // SysIntInfoVOListi = new ArrayList(); // } // 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 dataList = dockingDataDaoI.selectByWrapper(queryWrapperForDO); // // for (DockingDataDO mapi:dataList){ // WebUtil.setPersistence(false); // BatchCBO batchCBO = new BatchCBO(); // String dataoid = mapi.getOid();//data对象的oid // 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 effectiveSysIntInfoVOs=new ArrayList<>(); // //根据当前数据的id,查询获取哪些系统需要做集成 // List parentLeveDO= codeClassifyDaoI.selectAllLevelParentByOid(curentClassOid); // if(CollectionUtils.isEmpty(parentLeveDO)){ // continue;//说明这个分类被删掉了,不做处理 // } // Map 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 sysIntInfoDOS= sysIntInfoDOMap.get(oid); // effectiveSysIntInfoVOs.addAll(sysIntInfoDOS); // } // }); // //如果校验的系统接口信息不存在,则数据不不往信息里推送 // if(CollectionUtils.isEmpty(effectiveSysIntInfoVOs)){ // continue; // } // List dockingTaskDO_insert = new ArrayList(); // 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);//数据在分类id // dockingTaskDO.setClassifyoid(classifyoid);//数据所在分类oid // dockingTaskDO.setClassifyname(classifyname);//数据所在分类名称 // dockingTaskDO.setSendtype(sendtype);//数据推送类型 // dockingTaskDO.setDataoid(dataoid); // // //intinfo // dockingTaskDO.setSysinfooid(sysIntInfoVOi.getOid());//intinfo的oid // 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){ // log.error("集成data分解任务失败!dataoid:"+dataoid); // continue; // } // // } } }