6 changed files with 122 additions and 4 deletions
			
			
		@ -0,0 +1,64 @@
					 | 
				
			||||
package com.mh.quartz.task; | 
				
			||||
 | 
				
			||||
import com.mh.common.core.domain.entity.CollectionParamsManage; | 
				
			||||
import com.mh.common.core.redis.RedisCache; | 
				
			||||
import com.mh.framework.dealdata.DataProcessService; | 
				
			||||
import lombok.extern.slf4j.Slf4j; | 
				
			||||
import org.springframework.beans.factory.annotation.Autowired; | 
				
			||||
import org.springframework.stereotype.Component; | 
				
			||||
 | 
				
			||||
import java.time.Duration; | 
				
			||||
import java.time.LocalDateTime; | 
				
			||||
import java.time.format.DateTimeFormatter; | 
				
			||||
import java.util.*; | 
				
			||||
import java.util.stream.Collectors; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @author LJF | 
				
			||||
 * @version 1.0 | 
				
			||||
 * @project EEMCS | 
				
			||||
 * @description 处理上来的数据报文 | 
				
			||||
 * @date 2025-02-10 14:19:36 | 
				
			||||
 */ | 
				
			||||
@Slf4j | 
				
			||||
@Component("dealDataTask") | 
				
			||||
public class DealDataTask { | 
				
			||||
 | 
				
			||||
    private final RedisCache redisCache; | 
				
			||||
 | 
				
			||||
    private final DataProcessService dataProcessService; | 
				
			||||
 | 
				
			||||
    @Autowired | 
				
			||||
    public DealDataTask(RedisCache redisCache, DataProcessService dataProcessService) { | 
				
			||||
        this.redisCache = redisCache; | 
				
			||||
        this.dataProcessService = dataProcessService; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
 | 
				
			||||
    public void dealDeviceData() { | 
				
			||||
        List<CollectionParamsManage> cacheList = redisCache.getCacheList("CHILLERS", CollectionParamsManage.class); | 
				
			||||
        if (null == cacheList || cacheList.isEmpty()) { | 
				
			||||
            return; | 
				
			||||
        } | 
				
			||||
        //清空redis
 | 
				
			||||
        redisCache.deleteObject("CHILLERS"); | 
				
			||||
        //处理chillers数据
 | 
				
			||||
        try { | 
				
			||||
            //todo 处理没有对象curValue和curTime的异常
 | 
				
			||||
            dealChillersCollect(cacheList); | 
				
			||||
        } catch (Exception e) { | 
				
			||||
            log.error("处理主机参数异常:{}", e); | 
				
			||||
        } | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 处理主机秒级数据,再计算主机运行时间 | 
				
			||||
     * | 
				
			||||
     * @param cacheList | 
				
			||||
     */ | 
				
			||||
    private void dealChillersCollect(List<CollectionParamsManage> cacheList) throws Exception { | 
				
			||||
        //插入报表,将历史数据插入chillers_data_min
 | 
				
			||||
        //1.插入register_id,当前值,当前时间,名字
 | 
				
			||||
        dataProcessService.insertChillerReport(cacheList); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,30 @@
					 | 
				
			||||
package com.mh.system.mapper.device; | 
				
			||||
 | 
				
			||||
import com.mh.common.core.domain.entity.CollectionParamsManage; | 
				
			||||
import org.apache.ibatis.annotations.*; | 
				
			||||
 | 
				
			||||
import java.util.List; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @Author : ljf | 
				
			||||
 * @date : 2025-02-10 | 
				
			||||
 */ | 
				
			||||
@Mapper | 
				
			||||
public interface DataProcessMapper { | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * 批量插入冷水机组分钟记录保存表 | 
				
			||||
     * | 
				
			||||
     * @param batchList | 
				
			||||
     * @param tableName | 
				
			||||
     */ | 
				
			||||
    @Select("<script>" + | 
				
			||||
            "insert into ${tableName}(device_num, device_code, register_address,register_name, cur_value,cur_time,grade,register_id)" + | 
				
			||||
            "values " + | 
				
			||||
            "<foreach collection='batchList' item='item' index='index' separator=','>" + | 
				
			||||
            "(#{item.mtNum},#{item.mtCode},#{item.registerAddr},#{item.otherName},#{item.curValue},#{item.curTime},#{item.grade},#{item.id})" + | 
				
			||||
            "</foreach>" + | 
				
			||||
            "</script>") | 
				
			||||
    void batchInsertChiller(@Param("batchList") List<CollectionParamsManage> batchList, @Param("tableName") String tableName); | 
				
			||||
 | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue