package com.moral.api.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSON; 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.util.DateUtils; @Service public class HistoryMinutelyServiceImpl implements HistoryMinutelyService { @Autowired private HistoryMinutelyMapper historyMinutelyMapper; @Autowired private DeviceService deviceService; @Override public void insertHistoryMinutely(Map deviceData) { Map result = new HashMap<>(); Object mac = deviceData.remove("mac"); result.put("mac", mac); result.put("version", deviceData.remove("ver")); Date time = new Date((Long) deviceData.remove("DataTime")); result.put("time", DateUtils.dateToDateString(time)); result.put("value", JSON.toJSONString(deviceData)); String timeUnits = DateUtils.dateToDateString(time, DateUtils.yyyyMM_EN); result.put("timeUnits", tableSuffix(timeUnits, Constants.UN_ADJUST)); //未校准 historyMinutelyMapper.insertHistoryMinutely(result); //设备信息 Map deviceInfo = deviceService.getDeviceByMac(mac.toString()); //设备数据校准,并存入数据库 result.put("timeUnits", timeUnits); deviceData = deviceService.adjustDeviceData(deviceData, deviceInfo); result.put("value", JSON.toJSONString(deviceData)); historyMinutelyMapper.insertHistoryMinutely(result); //判断设备状态 Map deviceState = deviceService.judgeDeviceState(deviceData, deviceInfo); } //表后缀 private String tableSuffix(String... keys) { StringBuilder key = new StringBuilder(keys[0]); for (int i = 1; i < keys.length; i++) { key.append("_"); key.append(keys[i]); } return key.toString(); } }