xiejun
2023-07-05 b04005e136d7de620bb66660cc268f5750ca7b42
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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<String, String> conditionMap = new HashMap<>();
//        conditionMap.put("usedflag","true");
//        conditionMap.put("pushType",type==2?"2":"1") ;//2是代表分类推送,1是代表数据推送
//
//        Wrappers wrappers=new Wrappers();
//
//        List<DockingSystem> sysIntInfoVOList = dockingSystemService.list(Wrappers.query().lambda().eq());
//        if(CollectionUtils.isEmpty(sysIntInfoVOList)){
//            String title=type==2?"分类推送":"数据推送";
//            log.info("info->所有集成系统,未查询到相关的【"+title+"】的接口配置信息,配置");
//            return;
//        }
//        Map<String ,List<DockingSystem>> sysIntInfoDOMap = new HashMap<String ,List<DockingSystem>>();//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对象的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<SysIntInfoDO> effectiveSysIntInfoVOs=new ArrayList<>();
//            //根据当前数据的id,查询获取哪些系统需要做集成
//            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);
//                }
//            });
//            //如果校验的系统接口信息不存在,则数据不不往信息里推送
//            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);//数据在分类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;
//            }
//
//        }
    }
 
 
}