/**
 * Copyright
 * All right reserved.
 * 项目名称:
 * 创建日期:2022/5/22
 */
package org.springblade.etl;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.ConcurrentDateFormat;
import org.springblade.core.tool.utils.Func;
import org.springblade.etl.entity.EtlMvAttStBaseEntity;
import org.springblade.etl.entity.EtlRainDataEntity;
import org.springblade.etl.service.IEtlMvAttStBaseService;
import org.springblade.etl.service.IEtlRainDataService;
import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
import org.springblade.modules.business.rtu.data.entity.RtuDataRainEntity;
import org.springblade.modules.business.rtu.data.service.IRtuDataRainService;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.Date;
import java.util.List;
import java.util.concurrent.Callable;

/***
 * Date:2022/5/22
 * Title: 环境辐射与气象监测系统(KRS) 模块
 * Description：MODBUS TCP 协议传输 ,读取任务
 * @author swp
 * @version 1.0
 * Remark：认为有必要的其他信息
 */
@Slf4j
public class EtlMvAttStBaseDataTask implements Callable<Integer> {

	private IEtlMvAttStBaseService etlMvAttStBaseService;
	private IMvAttStBaseService mvAttStBaseService;

	EtlMvAttStBaseDataTask(IEtlMvAttStBaseService etlMvAttStBaseService, IMvAttStBaseService mvAttStBaseService) {
		this.etlMvAttStBaseService = etlMvAttStBaseService;
		this.mvAttStBaseService = mvAttStBaseService;
	}

	@Override
	public Integer call() {
		try {

			List<EtlMvAttStBaseEntity> list = etlMvAttStBaseService.selectList();
			if (list != null && list.size() > 0) {
				for (int i = 0; i < list.size(); i++) {
					EtlMvAttStBaseEntity entity = list.get(i);
					LambdaQueryWrapper<MvAttStBaseEntity> dataWrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
					dataWrapper.eq(MvAttStBaseEntity::getStCode, entity.getStCode());
					MvAttStBaseEntity baseEntity = mvAttStBaseService.getOne(dataWrapper);
					if (null == baseEntity) {
						baseEntity = new MvAttStBaseEntity();
						baseEntity.setCreateTime(new Date());
						baseEntity.setStatus(1);
						baseEntity.setIsDeleted(0);
					}
					baseEntity.setStCode(entity.getStCode());
					baseEntity.setStName(entity.getStName());
					baseEntity.setAdCode(entity.getAdCode());
					baseEntity.setAdName(entity.getAdName());
					baseEntity.setUpdateTime(new Date());

					mvAttStBaseService.saveOrUpdate(baseEntity);
				}
			}
		} catch (Exception e) {
			log.error("实时数据统计任务异常 {}", e.getMessage());
		}
		return 0;
	}
}
