package com.moral.api.service.impl;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.moral.api.mapper.HistoryHourlyMapper;
|
import com.moral.api.service.DeviceService;
|
import com.moral.api.service.HistoryHourlyService;
|
import com.moral.constant.Constants;
|
import com.moral.constant.RedisConstants;
|
import com.moral.util.DateUtils;
|
|
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;
|
|
/**
|
* <p>
|
* 小时表 服务实现类
|
* </p>
|
*
|
* @author moral
|
* @since 2021-06-04
|
*/
|
@Service
|
public class HistoryHourlyServiceImpl implements HistoryHourlyService {
|
|
@Autowired
|
private HistoryHourlyMapper historyHourlyMapper;
|
|
@Autowired
|
private DeviceService deviceService;
|
|
@Autowired
|
private RedisTemplate redisTemplate;
|
|
@Override
|
@Transactional
|
public void insertHistoryHourly(Map<String, Object> data) {
|
//用来校准数据
|
Map<String, Object> dataAdjust = new HashMap<>(data);
|
//存入数据库对象
|
Map<String, Object> result = new HashMap<>();
|
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");
|
|
Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN);
|
String yearAndMonth = DateUtils.dateToDateString(time, DateUtils.yyyyMM_EN);
|
|
result.put("mac", mac);
|
result.put("time", time);
|
result.put("version", version);
|
result.put("timeUnits", yearAndMonth + "_" + Constants.UN_ADJUST);
|
result.put("value", JSONObject.toJSONString(data));
|
//未校准小时表insert
|
historyHourlyMapper.insertHistoryHourly(result);
|
|
//数据校准
|
dataAdjust = deviceService.adjustDeviceData(dataAdjust);
|
|
//校准后小时表insert
|
result.put("timeUnits", yearAndMonth);
|
result.put("value", JSONObject.toJSONString(dataAdjust));
|
historyHourlyMapper.insertHistoryHourly(result);
|
}
|
}
|