From 1a0bfdfde3df69c67f71a77a72e40ed816655c26 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期六, 15 六月 2024 14:48:51 +0800 Subject: [PATCH] 电池充放电数据查询 --- src/main/java/com/whyc/mapper/BattTestInfDataMapper.java | 6 + src/main/java/com/whyc/service/SubTableService.java | 51 ++++++++ src/main/java/com/whyc/service/MybatisSqlExecuteService.java | 142 +++++++++++++++++++++++ src/main/java/com/whyc/service/BattTestInfDataService.java | 25 ++++ src/main/java/com/whyc/service/BattTestInfService.java | 29 ++++ src/main/java/com/whyc/mapper/BattTestInfMapper.java | 6 + src/main/java/com/whyc/pojo/BattAlarmHis.java | 50 ++++++++ src/main/java/com/whyc/controller/BattTestInfController.java | 37 ++++++ src/main/java/com/whyc/mapper/CallBack.java | 10 + 9 files changed, 356 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/whyc/controller/BattTestInfController.java b/src/main/java/com/whyc/controller/BattTestInfController.java new file mode 100644 index 0000000..94b17ca --- /dev/null +++ b/src/main/java/com/whyc/controller/BattTestInfController.java @@ -0,0 +1,37 @@ +package com.whyc.controller; + +import com.whyc.dto.Response; +import com.whyc.service.BattTestInfDataService; +import com.whyc.service.BattTestInfService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +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; + +@RestController +@Api(tags = "鐢垫睜缁勫厖鏀剧數璁板綍") +@RequestMapping("tinf") +public class BattTestInfController { + @Autowired + private BattTestInfService service; + @Autowired + private BattTestInfDataService dataService; + + @ApiOperation("鏌ヨ鍏呮斁鐢佃褰�") + @GetMapping("getTinfHis") + public Response getTinfHis(@RequestParam int binfId + , @RequestParam int pageNum, @RequestParam int pageSize){ + Response res=service.getTinfHis(binfId,pageNum,pageSize); + return res; + } + + @ApiOperation("鏍规嵁鍏呮斁鐢佃褰曟煡璇㈠崟浣撴斁鐢靛巻鍙茶鎯�") + @GetMapping("getTDataHis") + public Response getTDataHis(@RequestParam int binfId,@RequestParam int testRecordCount){ + Response res=dataService.getTDataHis(binfId,testRecordCount); + return res; + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattTestInfDataMapper.java b/src/main/java/com/whyc/mapper/BattTestInfDataMapper.java new file mode 100644 index 0000000..e3433a3 --- /dev/null +++ b/src/main/java/com/whyc/mapper/BattTestInfDataMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.BattTestInfData; + +public interface BattTestInfDataMapper extends CustomMapper<BattTestInfData>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattTestInfMapper.java b/src/main/java/com/whyc/mapper/BattTestInfMapper.java new file mode 100644 index 0000000..c4750f5 --- /dev/null +++ b/src/main/java/com/whyc/mapper/BattTestInfMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.BattTestInf; + +public interface BattTestInfMapper extends CustomMapper<BattTestInf>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/CallBack.java b/src/main/java/com/whyc/mapper/CallBack.java new file mode 100644 index 0000000..b1efdd4 --- /dev/null +++ b/src/main/java/com/whyc/mapper/CallBack.java @@ -0,0 +1,10 @@ +package com.whyc.mapper; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +public interface CallBack<T> { + + public abstract List<T> getResults(ResultSet rs) throws SQLException; +} diff --git a/src/main/java/com/whyc/pojo/BattAlarmHis.java b/src/main/java/com/whyc/pojo/BattAlarmHis.java new file mode 100644 index 0000000..fc2ef64 --- /dev/null +++ b/src/main/java/com/whyc/pojo/BattAlarmHis.java @@ -0,0 +1,50 @@ +package com.whyc.pojo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString +@ApiModel(value="鍛婅鍘嗗彶璁板綍", description="") +public class BattAlarmHis { + @TableField("num") + @ApiModelProperty("涓婚敭缂栧彿") + private Integer num; + + @TableField("binf_id") + @ApiModelProperty("鐢垫睜缁刬d") + private String binfId; + + @TableField("alm_start_time") + @ApiModelProperty("鍛婅寮�濮嬫椂闂�") + private Date almStartTime; + @TableField("alm_end_time") + @ApiModelProperty("鍛婅寮�濮嬫椂闂�") + private Date almEndTime; + + @TableField("mon_num") + @ApiModelProperty("鍛婅鍗曚綋缂栧彿") + private Integer monNum; + + @TableField("alm_id") + @ApiModelProperty("鍛婅绫诲瀷") + private Integer almId; + + @TableField("alm_level") + @ApiModelProperty("鍛婅绛夌骇") + private Integer almLevel; + + + @TableField(exist = false) + @ApiModelProperty("鐢垫睜缁勫悕绉�") + private String binfName; +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattTestInfDataService.java b/src/main/java/com/whyc/service/BattTestInfDataService.java new file mode 100644 index 0000000..94e945b --- /dev/null +++ b/src/main/java/com/whyc/service/BattTestInfDataService.java @@ -0,0 +1,25 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.BattTestInfDataMapper; +import com.whyc.pojo.BattTestInfData; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BattTestInfDataService { + @Autowired(required = false) + private BattTestInfDataMapper mapper; + + @Autowired + private SubTableService service; + + //鏍规嵁鍏呮斁鐢佃褰曟煡璇㈠崟浣撴斁鐢靛巻鍙茶鎯� + public Response getTDataHis(int binfId, int testRecordCount) { + List<BattTestInfData> list=service.getTDataHis(binfId,testRecordCount); + return new Response().setII(1,list!=null,list,"鏍规嵁鍏呮斁鐢佃褰曟煡璇㈠崟浣撴斁鐢靛巻鍙茶鎯�"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattTestInfService.java b/src/main/java/com/whyc/service/BattTestInfService.java new file mode 100644 index 0000000..05a4a89 --- /dev/null +++ b/src/main/java/com/whyc/service/BattTestInfService.java @@ -0,0 +1,29 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.whyc.dto.Response; +import com.whyc.mapper.BattTestInfMapper; +import com.whyc.pojo.BattTestInf; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BattTestInfService { + @Autowired(required = false) + private BattTestInfMapper mapper; + + //鏌ヨ鍏呮斁鐢佃褰� + public Response getTinfHis(int binfId, int pageNum, int pageSize) { + PageHelper.startPage(pageNum,pageSize); + QueryWrapper wrapper= Wrappers.query(); + wrapper.eq("binf_id",binfId); + List<BattTestInf> list=mapper.selectList(wrapper); + PageInfo pageInfo=new PageInfo(list); + return new Response().setII(1,list!=null,pageInfo,"鏌ヨ鍏呮斁鐢佃褰�"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/MybatisSqlExecuteService.java b/src/main/java/com/whyc/service/MybatisSqlExecuteService.java new file mode 100644 index 0000000..dafc52e --- /dev/null +++ b/src/main/java/com/whyc/service/MybatisSqlExecuteService.java @@ -0,0 +1,142 @@ +package com.whyc.service; + +import com.whyc.mapper.CallBack; +import com.whyc.util.ThreadLocalUtil; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.List; + +@Service +public class MybatisSqlExecuteService { + @Autowired + private SqlSessionTemplate sqlSessionTemplate; + + // 鑷畾涔夋墽琛孲QL + public JSONArray executeQuery(String sql){ + PreparedStatement ps = null; + ResultSet rs = null; + SqlSession sqlSession = openSession(); + JSONArray jsonArray = new JSONArray(); + try { + ps=sqlSession.getConnection().prepareStatement(sql); + rs=ps.executeQuery(); + ResultSetMetaData metaData = rs.getMetaData(); + int colCnt = metaData.getColumnCount(); + while (rs.next()) { + JSONObject jsonObject = new JSONObject(); + for(int i=1;i<=colCnt;i++){ + String property=metaData.getColumnName(i); + Object obj=rs.getObject(i); + if(obj instanceof java.util.Date ){ + //jsonObject.put(property, ActionUtil.sdf.format(obj)); + jsonObject.put(property, ThreadLocalUtil.format((java.util.Date) obj,1)); + }else{ + jsonObject.put(property,obj); + } + } + JSONObject.toBean(jsonObject,Object.class); + jsonArray.add(jsonObject); + } + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeSession(rs,ps,sqlSession); + } + return jsonArray; + } + + // 鑷畾涔夋墽琛孲QL + public List executeQuery_call(String sql, CallBack call){ + PreparedStatement ps = null; + ResultSet rs = null; + SqlSession sqlSession = openSession(); + try { + ps=sqlSession.getConnection().prepareStatement(sql); + rs=ps.executeQuery(); + return call.getResults(rs); + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeSession(rs,ps,sqlSession); + } + return null; + } + + /** + * 灏佽鎵�鏈夋洿鏂扮殑鎿嶄綔(娣诲姞,鍒犻櫎,淇敼) + * @param sql + * @param values + * @return + */ + public int executeUpdate(String sql, Object[] values){ + PreparedStatement ps = null; + ResultSet rs = null; + SqlSession sqlSession = openSession(); + int flag=0; + try { + ps = sqlSession.getConnection().prepareStatement(sql); + if(values != null){ + for (int i = 0; i < values.length; i++) { + ps.setObject(i+1, values[i]); + } + } + flag = ps.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + }finally{ + closeSession(rs,ps,sqlSession); + } + return flag; + } + //鎵цsql璇彞 + public boolean execute(String sql){ + PreparedStatement ps = null; + SqlSession sqlSession = openSession(); + boolean rest = true; + try{ + ps = sqlSession.getConnection().prepareStatement(sql); + ps.execute(); + + }catch(SQLException ex) { + ex.printStackTrace(); + rest = false; + }finally { + closeSession(null,ps,sqlSession); + } + + return rest; + } + // 寮�鍚摼鎺� + private SqlSession openSession() { + SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory(); + return sqlSessionFactory.openSession(); + } + + // 鍏抽棴閾炬帴 + private void closeSession(ResultSet rs,PreparedStatement ps,SqlSession sqlSession) { + try { + if(rs!=null){ + rs.close(); + } + if(ps!=null){ + ps.close(); + } + if(sqlSession!=null){ + sqlSession.close(); + } + + } catch (SQLException throwables) { + throwables.printStackTrace(); + } + } +} diff --git a/src/main/java/com/whyc/service/SubTableService.java b/src/main/java/com/whyc/service/SubTableService.java new file mode 100644 index 0000000..61a33c3 --- /dev/null +++ b/src/main/java/com/whyc/service/SubTableService.java @@ -0,0 +1,51 @@ +package com.whyc.service; + +import com.whyc.mapper.CallBack; +import com.whyc.pojo.BattTestInfData; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +@Service +public class SubTableService { + @Autowired + private MybatisSqlExecuteService sqlExecuteService; + //鏍规嵁鍏呮斁鐢佃褰曟煡璇㈠崟浣撴斁鐢靛巻鍙茶鎯� + public List<BattTestInfData> getTDataHis(int binfId, int testRecordCount) { + String sql="select * from db_dis_batt.batt_test_inf_"+binfId+" " + + " where binf_id="+binfId+" " + + " and test_record_count="+testRecordCount+ + " order by test_starttime asc "; + List<BattTestInfData> list=sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list=new ArrayList(); + while (rs.next()){ + BattTestInfData data=new BattTestInfData(); + data.setNum(rs.getInt("num")); + data.setBinfId(rs.getInt("binf_id")); + data.setTestRecordCount(rs.getInt("test_record_count")); + data.setTestStarttime(rs.getTimestamp("test_starttime")); + data.setRecordTime(rs.getTimestamp("record_time")); + data.setTestType(rs.getInt("test_type")); + data.setRecordNum(rs.getInt("record_num")); + data.setTestTimelong(rs.getInt("test_timelong")); + data.setOnlineVol(rs.getFloat("online_vol")); + data.setGroupVol(rs.getFloat("group_vol")); + data.setTestCurr(rs.getFloat("test_curr")); + data.setTestCap(rs.getFloat("test_cap")); + data.setMonNum(rs.getInt("mon_num")); + data.setMonVol(rs.getFloat("mon_vol")); + data.setMonTmp(rs.getFloat("mon_tmp")); + list.add(data); + } + return list; + } + }); + return list; + } +} \ No newline at end of file -- Gitblit v1.9.1