whyczh
2021-03-31 305c7b36ac9e92df0e9d8f998067fcd640106e37
添加试验数据接口
6个文件已修改
1个文件已删除
2个文件已添加
145 ■■■■ 已修改文件
src/main/java/com/whyc/controller/TestDataController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/TestPlanController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/MotorStateMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/TestPlanMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/MotorState.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/TestPlan.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/MotorStateService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MotorState.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/MotorStateMapper.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/TestDataController.java
New file
@@ -0,0 +1,52 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.MotorState;
import com.whyc.pojo.TestPlan;
import com.whyc.service.MotorStateService;
import com.whyc.service.TestPlanService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping("testData")
@Api(tags = "实验数据")
@Slf4j
public class TestDataController {
    @Autowired
    private TestPlanService testPlanService;
    @Resource
    private MotorStateService motorStateService;
    @GetMapping()
    @ApiOperation("获取历史数据")
    public Response getHistoryData(@RequestParam Integer testPlanId){
        //获取试验计划数据
        TestPlan testPlan = testPlanService.getOneById(testPlanId);
        //获取试验参试设备
        String devices = testPlan.getDevices();
        String[] devIds = devices.split(",");
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String startTime = dateFormat.format(testPlan.getStartTime());
        String endTime = dateFormat.format(testPlan.getEndTime());
        //通过设备和开始结束时间来获取对应的数据
        Map<String,List<MotorState>> map = new HashMap<>();
        for (String deviceId: devIds) {
            List<MotorState> historyData =  motorStateService.getHistoryData(deviceId,startTime,endTime);
            map.put(deviceId,historyData);
        }
        return new Response().set(1,map);
    }
}
src/main/java/com/whyc/controller/TestPlanController.java
@@ -30,6 +30,10 @@
        return service.getPageByCondition(pageNum,pageSize,testPlan);
    }
    @GetMapping
    @ApiOperation(value = "查看详情")
    public Response getOne(@RequestParam Integer num){
@@ -64,4 +68,8 @@
        return service.stopPlan(num);
    }
}
src/main/java/com/whyc/mapper/MotorStateMapper.java
@@ -1,6 +1,14 @@
package com.whyc.mapper;
import com.whyc.pojo.MotorState;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface MotorStateMapper extends CustomMapper<MotorState>{
    List<MotorState> getHistoryData(@Param("tableName") String tableName);
    List<MotorState> getDataByTime(@Param("tableName") String tableName, @Param("startTime")String startTime,@Param("endTime")String endTime);
}
src/main/java/com/whyc/mapper/TestPlanMapper.java
@@ -2,9 +2,6 @@
import com.whyc.pojo.TestPlan;
import java.util.List;
public interface TestPlanMapper extends CustomMapper<TestPlan> {
    List<TestPlan> getAllByCondition(TestPlan testPlan);
}
src/main/java/com/whyc/pojo/MotorState.java
@@ -12,7 +12,7 @@
@Alias("MotorState")
@TableName(schema = "`db_experiment`",value = "`tb_motor_state`")
public class MotorState {
    private Integer num;
    private Long num;
    /**设备id**/
    private Integer deviceId;
    /**记录时间**/
@@ -56,11 +56,11 @@
                '}';
    }
    public Integer getNum() {
    public Long getNum() {
        return num;
    }
    public void setNum(Integer num) {
    public void setNum(Long num) {
        this.num = num;
    }
src/main/java/com/whyc/pojo/TestPlan.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.ibatis.type.Alias;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -21,16 +22,19 @@
    private String proName;//所属项目名称
    private String testType;//试验类别:普通
    private String testAddress;//试验场地:1号实验室
    @JsonFormat(locale = "zh",timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "Asia/Shanghai",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;//试验开始时间
    @JsonFormat(locale = "zh",timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "Asia/Shanghai",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;//试验结束时间
    private String testers;//参与人员
    private String devices;//参试设备
    private String testWay;//试验方式:手动加载、自动加载
    private Float testDuration;//加载时长
    private String note;//注意事项
    @JsonFormat(locale = "zh",timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "Asia/Shanghai",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;//创建时间
    private String creator;//创建人
    private Integer state;//状态:0:未开始,1:进行中,2:已结束,3:作废;审核状态:2(已结束时):未审核,6:已审核,8:已归档
src/main/java/com/whyc/service/MotorStateService.java
@@ -13,6 +13,10 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Service
@@ -67,4 +71,20 @@
    public boolean delete(int deviceId){
        return motorStateMapper.deleteById(deviceId)>0;
    }
    /**
     * 通过设备id,开始结束时间获取设备历史数据
     * @param deviceId
     * @param startTime
     * @param endTime
     * @return
     */
    public List<MotorState> getHistoryData(String deviceId,String startTime,String endTime){
        //获取时间拼接数据表名
        String dateStr = startTime.substring(0,10).replace('-','_');
        String tableName="tb_motor_state_realdata_"+deviceId+"_"+dateStr;
        List<MotorState> data = motorStateMapper.getDataByTime(tableName,startTime,endTime);
        return data;
    }
}
src/main/resources/mapper/MotorState.xml
File was deleted
src/main/resources/mapper/MotorStateMapper.xml
New file
@@ -0,0 +1,32 @@
<?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.whyc.mapper.MotorStateMapper" >
    <resultMap id="MotorStateResultMap" type="com.whyc.pojo.MotorState">
        <id column="num" jdbcType="INTEGER" property="num" />
        <result column="device_id" jdbcType="INTEGER" property="deviceId" />
        <result column="record_time" jdbcType="TIMESTAMP" property="recordTime" />
        <result column="motor_curr" jdbcType="FLOAT" property="motorCurr" />
        <result column="motor_power" jdbcType="FLOAT" property="motorPower" />
        <result column="motor_speed" jdbcType="FLOAT" property="motorSpeed" />
        <result column="motor_vol" jdbcType="FLOAT" property="motorVol" />
        <result column="motor_out_tmp" jdbcType="FLOAT" property="motorOutTmp" />
        <result column="motor_into_tmp" jdbcType="FLOAT" property="motorIntoTmp" />
        <result column="motor_torque" jdbcType="FLOAT" property="motorTorque" />
        <result column="motor_state" jdbcType="INTEGER" property="motorState" />
    </resultMap>
    <sql id="Base_Column_List">
        num, device_id, date_format(record_time,'%Y-%m-%d %H:%i:%s') as record_time, motor_curr, motor_power, motor_speed, motor_vol, motor_out_tmp,
    motor_into_tmp, motor_torque, motor_state
    </sql>
    <select id="getHistoryData" parameterType="String" resultMap="MotorStateResultMap" statementType="STATEMENT">
        select
        <include refid="Base_Column_List"/>
        from db_experiment_history.${tableName}
    </select>
    <select id="getDataByTime" resultMap="MotorStateResultMap" statementType="STATEMENT">
        select <include refid="Base_Column_List"/>
        from db_experiment_history.${tableName}
        where record_time between '${startTime}' and '${endTime}'
    </select>
</mapper>