package com.moral.api.service.impl; import com.alibaba.fastjson.JSONObject; import com.moral.api.entity.HistoryHourly; import com.moral.api.mapper.HistoryHourlyMapper; import com.moral.api.service.DeviceService; import com.moral.api.service.HistoryHourlyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; import com.moral.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.Map; /** *

* 小时表 服务实现类 *

* * @author moral * @since 2021-06-04 */ @Service public class HistoryHourlyServiceImpl extends ServiceImpl implements HistoryHourlyService { @Autowired private HistoryHourlyMapper historyHourlyMapper; @Autowired private DeviceService deviceService; @Override @Transactional public void insertHistoryHourly(Map data) { Map dataAdjust = new HashMap<>(data); String mac = data.remove("mac").toString(); Date time = DateUtils.getDate((String) data.remove("DataTime"), DateUtils.yyyyMMddHHmmss_EN); Integer version = (Integer) data.remove("ver"); Map result = new HashMap<>(); result.put("mac", mac); result.put("time", time); result.put("version", version); result.put("timeUnits", Constants.UN_ADJUST); result.put("value", JSONObject.toJSONString(data)); //原始数据(未校准) historyHourlyMapper.insertHistoryHourlyUnAdjust(result); //数据校准 dataAdjust = deviceService.adjustDeviceData(dataAdjust); dataAdjust.remove("mac"); dataAdjust.remove("DataTime"); dataAdjust.remove("ver"); int count = historyHourlyMapper.getCountByMacAndTime(mac, DateUtils.dateToDateString(time)); //判断中间表有没有该mac,该小时的数据,有就更新,没有就新增 if (count == 0) { //小时数据校准后存入小时中间表 result.put("value", JSONObject.toJSONString(dataAdjust)); //新增 historyHourlyMapper.insertHistoryHourlyTransition(result); } else { //更新 historyHourlyMapper.updateHistoryTransition(mac, DateUtils.dateToDateString(time)); } } }