whycxzp
2021-03-19 f1e17a9502159b837dc53a2b76590aa0882c0416
更新userId传参
4个文件已修改
6个文件已添加
308 ■■■■ 已修改文件
src/main/java/com/whyc/controller/BatteryAlarmController.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BatteryDataController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BatteryRTController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BatteryDataMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/BatteryEndurance.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/BatteryRTState.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatteryDataService.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatteryRTService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/CommonUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BatteryDataMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BatteryAlarmController.java
@@ -8,6 +8,7 @@
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.servlet.http.HttpServletRequest;
@@ -18,7 +19,7 @@
 */
@RestController
@RequestMapping("batteryAlarm")
@Api(tags = "电池告警")
@Api(tags = "电池告警统计")
public class BatteryAlarmController {
    @Autowired
@@ -26,68 +27,43 @@
    @GetMapping("monCapacity")
    @ApiOperation(value = "单体容量告警低统计")
    public Response<Map> getMonCapacityLowAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
    public Response<Map> getMonCapacityLowAnalysis(@RequestParam Integer userId) {
        return service.getMonCapacityLowAnalysis(userId);
    }
    /**
     * 内阻测试数量、故障数量
     *
     * @param request
     * @return
     */
    @GetMapping("onlinegroupVolAnalysis")
    @ApiOperation(value = "在线电压和组端电压")
    public Response<Map> getOnlineAndGroupVolAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
    @ApiOperation(value = "在线电压和组端电压告警")
    public Response<Map> getOnlineAndGroupVolAnalysis(@RequestParam Integer userId) {
        return service.getOnlineAndGroupVolAnalysis(userId);
    }
    /**
     * BTS 设备状态
     *
     * @param request
     * @return
     */
    @GetMapping("btsStatus")
    @ApiOperation(value = "BTS设备状态")
    public Response<Map> getBTSEquipStatus(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
    public Response<Map> getBTSEquipStatus(@RequestParam Integer userId) {
        return service.getBTSEquipStatus(userId);
    }
    @GetMapping("dischargeAnalysis")
    @ApiOperation(value = "放电电流")
    public Response<Map> getDischargeAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
    @ApiOperation(value = "放电电流告警")
    public Response<Map> getDischargeAnalysis(@RequestParam Integer userId) {
        return service.getDischargeAnalysis(userId);
    }
    @GetMapping("chargeAnalysis")
    @ApiOperation(value = "放电和 充电电流")
    public Response<Map> getChargeAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
    @ApiOperation(value = "放电和充电电流告警")
    public Response<Map> getChargeAnalysis(@RequestParam Integer userId) {
        return service.getChargeAnalysis(userId);
    }
    @GetMapping("monVRTAnalysis")
    @ApiOperation(value = "单体电压、内阻和温度状态")
    public Response<Map> getMonVRTAnalysis(HttpServletRequest request) {
        int userId = CommonUtil.getUser(request).getId();
    @ApiOperation(value = "单体电压/内阻/温度告警")
    public Response<Map> getMonVRTAnalysis(@RequestParam Integer userId) {
        return service.getMonVRTAnalysis(userId);
    }
src/main/java/com/whyc/controller/BatteryDataController.java
New file
@@ -0,0 +1,37 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.service.BatteryDataService;
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
@RequestMapping("batteryData")
@Api(tags = "电池数据统计")
public class BatteryDataController {
    @Autowired
    private BatteryDataService service;
    @GetMapping("endurance")
    @ApiOperation(value="设备续航")
    public Response getEndurance(@RequestParam Integer userId){
        return service.getEndurance(userId);
    }
    @GetMapping("batteryCap")
    @ApiOperation(value = "电池组容量")
    public Response getBatteryCap(@RequestParam Integer userId){
        return service.getBatteryCap(userId);
    }
}
src/main/java/com/whyc/controller/BatteryRTController.java
@@ -8,6 +8,7 @@
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;
@@ -19,7 +20,7 @@
 */
@RestController
@RequestMapping("battery")
@Api(tags = "电池实时")
@Api(tags = "电池实时统计")
public class BatteryRTController {
    @Autowired
@@ -34,8 +35,7 @@
     */
    @GetMapping("status")
    @ApiOperation(value = "电池状态")
    public Response<Map> getStatus(HttpServletRequest request){
        int userId = CommonUtil.getUser(request).getId();
    public Response<Map> getStatus(@RequestParam Integer userId){
        Response<Map> response = service.getStatus(userId);
        return response;
    }
src/main/java/com/whyc/mapper/BatteryDataMapper.java
New file
@@ -0,0 +1,10 @@
package com.whyc.mapper;
import com.whyc.pojo.BatteryEndurance;
import java.util.List;
public interface BatteryDataMapper {
    List<BatteryEndurance> endurance(Integer userId);
}
src/main/java/com/whyc/pojo/BatteryEndurance.java
New file
@@ -0,0 +1,40 @@
package com.whyc.pojo;
import io.swagger.annotations.ApiOperation;
import org.apache.ibatis.type.Alias;
/**
 * 电池续航,以设备/站点为单位
 */
@Alias("BatteryEndurance")
public class BatteryEndurance {
    private Integer deviceId;
    private Integer stationId;
    /**续航实际时长*/
    private double enduranceActualTime;
    public Integer getDeviceId() {
        return deviceId;
    }
    public void setDeviceId(Integer deviceId) {
        this.deviceId = deviceId;
    }
    public Integer getStationId() {
        return stationId;
    }
    public void setStationId(Integer stationId) {
        this.stationId = stationId;
    }
    public double getEnduranceActualTime() {
        return enduranceActualTime;
    }
    public void setEnduranceActualTime(double enduranceActualTime) {
        this.enduranceActualTime = enduranceActualTime;
    }
}
src/main/java/com/whyc/pojo/BatteryRTState.java
New file
@@ -0,0 +1,50 @@
package com.whyc.pojo;
import java.beans.Transient;
/**
 * 电池状态
 */
public class BatteryRTState {
    private Integer batteryGroupId;
    /**电池状态*/
    private Integer batteryState;
    /**电池实际容量*/
    private Float batteryRealCap;
    /**单体电池容量标准*/
    private Float monCapStd;
    public Integer getBatteryGroupId() {
        return batteryGroupId;
    }
    public void setBatteryGroupId(Integer batteryGroupId) {
        this.batteryGroupId = batteryGroupId;
    }
    public Integer getBatteryState() {
        return batteryState;
    }
    public void setBatteryState(Integer batteryState) {
        this.batteryState = batteryState;
    }
    public Float getBatteryRealCap() {
        return batteryRealCap;
    }
    public void setBatteryRealCap(Float batteryRealCap) {
        this.batteryRealCap = batteryRealCap;
    }
    @Transient
    public Float getMonCapStd() {
        return monCapStd;
    }
    public void setMonCapStd(Float monCapStd) {
        this.monCapStd = monCapStd;
    }
}
src/main/java/com/whyc/service/BatteryDataService.java
New file
@@ -0,0 +1,84 @@
package com.whyc.service;
import com.whyc.dto.Response;
import com.whyc.mapper.BatteryDataMapper;
import com.whyc.pojo.BatteryEndurance;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
@Service
public class BatteryDataService {
    @Resource
    private BatteryDataMapper mapper;
    public Response getEndurance(Integer userId) {
        List<BatteryEndurance> enduranceList = mapper.endurance(userId);
        List<Integer> times = Arrays.asList(1, 2, 3);
        Map resultMap = enduranceAnalysis(enduranceList,times);
        return new Response<Map>().set(1,resultMap);
    }
    /**按时间阶段统计续航*/
    private static Map enduranceAnalysis(List<BatteryEndurance> enduranceList, List<Integer> times) {
        Map<String,Integer> map = new HashMap<>();
        for (int i = 0; i < enduranceList.size(); i++) {
            //每一个具体的续航进行分组
            if(enduranceList.get(i).getEnduranceActualTime()<times.get(0)){
                map.put("续航"+times.get(0)+"小时内",Optional.ofNullable(map.get("续航"+times.get(0)+"小时内")).orElse(0)+1);
            }
            else if(enduranceList.get(i).getEnduranceActualTime()>times.get(times.size()-1)){
                map.put("续航"+times.get(times.size()-1)+"小时以上",Optional.ofNullable(map.get("续航"+times.get(times.size()-1)+"小时以上")).orElse(0)+1);
            }else {
                for (int j = 0; j < times.size(); j++) {
                    if (enduranceList.get(i).getEnduranceActualTime() <= times.get(j)) {
                        map.put("续航" + times.get(j - 1) + "小时到" + times.get(j) + "小时", Optional.ofNullable(map.get("续航" + times.get(j - 1) + "小时到" + times.get(j) + "小时")).orElse(0) + 1);
                        break;
                    }
                }
            }
        }
        //排序
        TreeMap<String, Integer> maps = new TreeMap<>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        maps.putAll(map);
        map.clear();
        return maps;
    }
    public Response getBatteryCap(Integer userId) {
        return null;
    }
    public static void main(String[] args) {
        BatteryEndurance endurance = new BatteryEndurance();
        endurance.setEnduranceActualTime(1.5);
        BatteryEndurance endurance2 = new BatteryEndurance();
        endurance2.setEnduranceActualTime(1.5);
        BatteryEndurance endurance3 = new BatteryEndurance();
        endurance3.setEnduranceActualTime(2.5);
        BatteryEndurance endurance4 = new BatteryEndurance();
        endurance4.setEnduranceActualTime(3.5);
        List<BatteryEndurance> batteryEnduranceList = Arrays.asList(endurance, endurance2, endurance3, endurance4);
        List<Integer> timeList = Arrays.asList(1, 2, 3);
        Map map = enduranceAnalysis(batteryEnduranceList, timeList);
    }
}
src/main/java/com/whyc/service/BatteryRTService.java
@@ -31,6 +31,9 @@
            switch (item.getBatteryStatus()){
                case BatteryConstant.STATUS_NONE:
                    break;
                case BatteryConstant.STATUS_CHARGE_FLOAT:
                    resultMap.put("浮充",item.getCount());
                    break;
                case BatteryConstant.STATUS_CHARGE:
                    resultMap.put("充电",item.getCount());
                    break;
src/main/java/com/whyc/util/CommonUtil.java
@@ -15,7 +15,7 @@
        //调试专用!
        User user = new User();
        user.setId(1002);
        user.setId(1001);
        return user;
    }
}
src/main/resources/mapper/BatteryDataMapper.xml
New file
@@ -0,0 +1,28 @@
<?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.BatteryDataMapper" >
    <resultMap id="BatteryEnduranceResult" type="BatteryEndurance">
        <result property="enduranceActualTime" column="endurance_actual_timelong" />
    </resultMap>
    <select id="endurance" resultMap="BatteryEnduranceResult">
        SELECT DISTINCT
            endurance_actual_timelong
        FROM
            web_site.tb_batt_endurance
        WHERE
            tb_batt_endurance.stationid IN (
                SELECT DISTINCT
                    db_battinf.tb_battinf.stationid
                FROM
                    db_battinf.tb_battinf
                    LEFT OUTER JOIN db_user.tb_user_battgroup_baojigroup_battgroup ON db_user.tb_user_battgroup_baojigroup_battgroup.stationid = db_battinf.tb_battinf.stationid
                    LEFT OUTER JOIN db_user.tb_user_battgroup_baojigroup_usr ON db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id = db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
                    LEFT OUTER JOIN db_user.tb_user_inf ON tb_user_inf.uid = db_user.tb_user_battgroup_baojigroup_usr.uid
                WHERE
                    db_user.tb_user_inf.uid =#{userId}
                    AND db_battinf.tb_battinf.station_install = 1
                )
    </select>
</mapper>