lizijie
2020-11-06 a613ae7c3165602fc8927c1ba6bb13edb25649c7
定时校准值插入
4 files added
1 files modified
142 ■■■■■ changed files
src/main/java/com/moral/controller/ScreenController.java 46 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/DeviceAdjustValueTimingMapper.java 17 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/DeviceAdjustValueTimingService.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/DeviceAdjustValueTimingServiceImpl.java 38 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/DeviceAdjustValueTimingMapper.xml 29 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/ScreenController.java
@@ -2,6 +2,7 @@
import java.io.*;
import java.lang.reflect.Array;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
@@ -166,6 +167,9 @@
    @Resource
    private ScreenVersionService screenVersionService;
    @Resource
    private DeviceAdjustValueTimingService deviceAdjustValueTimingService;
    /**
     * Screen login. 大屏登录
@@ -2550,4 +2554,46 @@
        List<Map<String, Object>> list = historyMinutelyService.getAllDeviceDataToExcel(parameters);
        return new ResultBean<List<Map<String, Object>>>(list);
    }
    /*@PostMapping("insertAdjustValue")
    @ApiOperation(value = "所有设备多因子数据报表", notes = "所有设备多因子数据报表")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "id", value = "设备id", required = true, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "time", value = "时间(格式08:30:00)", required = true, paramType = "query", dataType = "String"),
            @ApiImplicitParam(name = "dataArray", value = "公式", required = false, paramType = "query", dataType = "String")})
    public void insertAdjustValue(HttpServletRequest request) throws Exception {
        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
        int device_id = Integer.parseInt(parameters.get("id").toString());
        String hour_minute_second = parameters.get("time").toString();
        String[] arr = hour_minute_second.split(":");
        int seconds = Integer.parseInt(arr[0])*3600+Integer.parseInt(arr[1])*60+Integer.parseInt(arr[2]);
        String value = parameters.get("dataArray").toString();
        deviceAdjustValueTimingService.insertData(device_id,seconds,value);;
    }*/
    @PostMapping("insertAdjustValue")
    public  int insertAdjustValue(@RequestBody HashMap map){
        try{
            int device_id = Integer.parseInt(map.get("id").toString());
            String time = map.get("time").toString();
            String[] arr = time.split(":");
            int seconds = Integer.parseInt(arr[0])*3600+Integer.parseInt(arr[1])*60+Integer.parseInt(arr[2]);
            //String t = URLEncoder.encode(参数,"UTF-8")
            List list = (List) map.get("dataArray");
            String val="";
            for (int i = 0; i <list.size() ; i++) {
                if (i==0){
                    val=val+list.get(i);
                }else {
                    val=val+","+list.get(i);
                }
            }
            String value = "{"+val+"}";
            deviceAdjustValueTimingService.insertData(device_id,seconds,value);
            return 1;
        }catch (Exception e){
            log.warn(e);
        }
        return 0;
    }
}
src/main/java/com/moral/mapper/DeviceAdjustValueTimingMapper.java
New file
@@ -0,0 +1,17 @@
package com.moral.mapper;
import com.moral.common.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
public interface DeviceAdjustValueTimingMapper{
    Map<String, Object> selectAllByDeviceid(@Param("device_id")Integer device_id);
    Map<String, Object> selectAllByDeviceidAndSeconds(@Param("device_id")Integer device_id,@Param("seconds")Integer seconds);
    void insertData(@Param("device_id")Integer device_id,@Param("seconds")Integer seconds,@Param("value")String value,@Param("create_time")String create_time);
    void upDataByDeviceid(@Param("value")String value,@Param("update_time")String update_time,@Param("device_id")Integer device_id);
}
src/main/java/com/moral/service/DeviceAdjustValueTimingService.java
New file
@@ -0,0 +1,12 @@
package com.moral.service;
import com.moral.common.bean.PageBean;
import com.moral.entity.DeviceAdjustValue;
import java.util.Map;
public interface DeviceAdjustValueTimingService {
    Map<String, Object> getDataByDeviceid(Integer device_id);
    void insertData(int device_id,int seconds,String value);
}
src/main/java/com/moral/service/impl/DeviceAdjustValueTimingServiceImpl.java
New file
@@ -0,0 +1,38 @@
package com.moral.service.impl;
import com.moral.mapper.DeviceAdjustValueTimingMapper;
import com.moral.service.DeviceAdjustValueTimingService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
@Service
public class DeviceAdjustValueTimingServiceImpl implements DeviceAdjustValueTimingService {
    @Resource
    private DeviceAdjustValueTimingMapper deviceAdjustValueTimingMapper;
    @Override
    public Map<String, Object> getDataByDeviceid(Integer device_id) {
        Map<String, Object> result = deviceAdjustValueTimingMapper.selectAllByDeviceid(device_id);
        return result;
    }
    @Override
    public void insertData(int device_id, int seconds, String value) {
        //获取当前时间作为更新时间
        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime time = LocalDateTime.now();
        String nowTime = df.format(time);
        //先根据device_id查询数据库,看表中是否有相同设备、相同时间的数据
        Map<String,Object> deviceAdjustValueTimingMap = deviceAdjustValueTimingMapper.selectAllByDeviceidAndSeconds(device_id,seconds);
        //判断是否为空,如果为空才可以插入,如果不为空则进行更新
        if (deviceAdjustValueTimingMap == null){
            deviceAdjustValueTimingMapper.insertData(device_id,seconds,value,nowTime);
        }else {
            deviceAdjustValueTimingMapper.upDataByDeviceid(value,nowTime,device_id);
        }
    }
}
src/main/resources/mapper/DeviceAdjustValueTimingMapper.xml
New file
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.moral.mapper.DeviceAdjustValueTimingMapper">
    <select id="selectAllByDeviceid" resultType="java.util.Map">
        SELECT * FROM device_adjust_value_timing
        WHERE device_id = #{device_id}
    </select>
    <!--根据device_id和seconds查询-->
    <select id="selectAllByDeviceidAndSeconds" resultType="java.util.Map">
        SELECT * FROM device_adjust_value_timing
        WHERE device_id = #{device_id}
        AND seconds = #{seconds}
    </select>
    <!--插入数据-->
    <insert id="insertData">
        INSERT INTO device_adjust_value_timing (device_id,seconds,value,create_time)
        VALUES(#{device_id},#{seconds},#{value},#{create_time})
    </insert>
    <!--更新数据-->
    <update id="upDataByDeviceid">
        UPDATE device_adjust_value_timing
        SET value = #{value},update_time = #{update_time}
        WHERE device_id = #{device_id}
    </update>
</mapper>