src/main/java/com/whyc/controller/TestDataController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/TestPlanController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/MotorStateMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/TestPlanMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/MotorState.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/TestPlan.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/MotorStateService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/MotorState.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/MotorStateMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>