whyclxw
2024-06-15 1a0bfdfde3df69c67f71a77a72e40ed816655c26
电池充放电数据查询
9个文件已添加
356 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/BattTestInfController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattTestInfDataMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattTestInfMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/CallBack.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/BattAlarmHis.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattTestInfDataService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattTestInfService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/MybatisSqlExecuteService.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/SubTableService.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BattTestInfController.java
New file
@@ -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;
    }
}
src/main/java/com/whyc/mapper/BattTestInfDataMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.BattTestInfData;
public interface BattTestInfDataMapper extends CustomMapper<BattTestInfData>{
}
src/main/java/com/whyc/mapper/BattTestInfMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.BattTestInf;
public interface BattTestInfMapper extends CustomMapper<BattTestInf>{
}
src/main/java/com/whyc/mapper/CallBack.java
New file
@@ -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;
}
src/main/java/com/whyc/pojo/BattAlarmHis.java
New file
@@ -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("电池组id")
    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;
}
src/main/java/com/whyc/service/BattTestInfDataService.java
New file
@@ -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,"根据充放电记录查询单体放电历史详情");
    }
}
src/main/java/com/whyc/service/BattTestInfService.java
New file
@@ -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,"查询充放电记录");
    }
}
src/main/java/com/whyc/service/MybatisSqlExecuteService.java
New file
@@ -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;
    //    自定义执行SQL
    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;
    }
    //    自定义执行SQL
    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();
        }
    }
}
src/main/java/com/whyc/service/SubTableService.java
New file
@@ -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;
    }
}