package com.yeejoin.amos.boot.module.jxiop.biz.service.impl;

import com.yeejoin.amos.boot.module.jxiop.api.entity.StationBasic;
import com.yeejoin.amos.boot.module.jxiop.biz.entity.SjglZsjZsbtz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.component.cache.Redis;

import java.util.ArrayList;
import java.util.List;

@Service
public class DataSynchronizationImpl {
    //缓存的热工院数据
    private  static  final String RedisKey = "RGYZJB_CACHE";
    /**
     * 场站信息service
     */
    @Autowired
    StationBasicServiceImpl stationBasicServiceImpl;
    /**
     * 中间表service
     */
    @Autowired
    SjglZsjZsbtzServiceImpl sjglZsjZsbtzServiceImpl;




    public void dataSync(){
//        1: 场站 list
        List<StationBasic> stationBasicList = getStationBasicList();
        stationBasicList.forEach(stationBasic -> {
            getSjglZsjZsbtz(stationBasic);
        });
//        2：异步  每个场站
//        3: 风机list 同步
//        4：查询单个分机 异步
//        5：时序库    lidt
//        size(),
//                List<List<Map<String ,Object>>>  lidtd= Lists.partition(lidt,1000);
//
//        异步：
//        mysql
    }

    /**@deprecated 获取所有的场站列表
     *
     * @return 场站列表list
     */
    public List<StationBasic> getStationBasicList(){
        List<StationBasic> stationBasicList =  new ArrayList<>();
        stationBasicList = stationBasicServiceImpl.list();
        return  stationBasicList;
    }

    /**
     * @deprecated 获取场站下的所有设备信
     * @param stationBasic 场站信息
     * @return 设备基础信息
     */
    public List<SjglZsjZsbtz> getSjglZsjZsbtz(StationBasic stationBasic){
        List<SjglZsjZsbtz> sjglZsjZsbtzList  = new ArrayList<>();
        sjglZsjZsbtzList = sjglZsjZsbtzServiceImpl.getSjglZsjZsbtzListByWerks(stationBasic.getStationNumber());
        return sjglZsjZsbtzList;
    }
    /**
     * @deprecated 获取场站下的所有设备信
     * @return 设备基础信息
     */
    public List<SjglZsjZsbtz> cacheSjglZsjZsbtz(){
        List cacheParams = new ArrayList();
        cacheParams = Redis.getRedisTemplate().opsForList().range(RedisKey, 0, -1);
        List<SjglZsjZsbtz> sjglZsjZsbtzList  = sjglZsjZsbtzServiceImpl.getSjglZsjZsbtzList();
        if(cacheParams.size() != sjglZsjZsbtzList.size()){
            Redis.getRedisTemplate().delete(RedisKey);
            Redis.getRedisTemplate().opsForList().leftPushAll(RedisKey,sjglZsjZsbtzList);
        }
        return sjglZsjZsbtzList;
    }

}
