package com.moral.api.service.impl; 
 | 
  
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.data.redis.core.RedisTemplate; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import java.util.Date; 
 | 
import java.util.HashMap; 
 | 
import java.util.Map; 
 | 
  
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.moral.api.mapper.HistoryMinutelyMapper; 
 | 
import com.moral.api.service.DeviceService; 
 | 
import com.moral.api.service.HistoryMinutelyService; 
 | 
import com.moral.constant.Constants; 
 | 
import com.moral.constant.RedisConstants; 
 | 
import com.moral.util.DateUtils; 
 | 
  
 | 
@Service 
 | 
public class HistoryMinutelyServiceImpl implements HistoryMinutelyService { 
 | 
  
 | 
    @Autowired 
 | 
    private HistoryMinutelyMapper historyMinutelyMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private DeviceService deviceService; 
 | 
  
 | 
    @Autowired 
 | 
    private RedisTemplate redisTemplate; 
 | 
  
 | 
    @Override 
 | 
    @Transactional 
 | 
    public void insertHistoryMinutely(Map<String, Object> data) { 
 | 
        Map<String, Object> result = new HashMap<>(); 
 | 
        Map<String, Object> dataAdjust = new HashMap<>(data); 
 | 
        String mac = data.remove("mac").toString(); 
 | 
        //根据mac获取型号 
 | 
        Map<String, Object> deviceInfo = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE, mac); 
 | 
        Map<String, Object> versionInfo = (Map<String, Object>) deviceInfo.get("version"); 
 | 
        Integer version = (Integer) versionInfo.get("id"); 
 | 
  
 | 
        result.put("mac", mac); 
 | 
        result.put("version", version); 
 | 
  
 | 
        Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN); 
 | 
        result.put("time", DateUtils.getDateOfMin(time, -1)); 
 | 
        result.put("value", JSONObject.toJSONString(data)); 
 | 
        String timeUnits = DateUtils.dateToDateString(DateUtils.getDateOfMin(time, -1), DateUtils.yyyyMM_EN); 
 | 
        result.put("timeUnits", timeUnits + "_" + Constants.UN_ADJUST); 
 | 
  
 | 
        //原始数据(未校准) 
 | 
        historyMinutelyMapper.insertHistoryMinutely(result); 
 | 
  
 | 
        //数据校准 
 | 
        dataAdjust = deviceService.adjustDeviceData(dataAdjust,"1"); 
 | 
        result.put("timeUnits", timeUnits); 
 | 
        result.put("value", JSONObject.toJSONString(dataAdjust)); 
 | 
        historyMinutelyMapper.insertHistoryMinutely(result); 
 | 
    } 
 | 
} 
 |