whycxzp
2024-07-30 0a6035ff02c1c064fcd85ff047f98c49661ad5a2
第三方蓄电池接口
4个文件已修改
99 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/InterFaceController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/BattCapFactory.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattEnduranceService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/InterfaceService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/InterFaceController.java
@@ -144,4 +144,14 @@
    public Response getBattHistoryDataList(@RequestBody BattRealdata data, @RequestParam String interfaceNumber) throws ParseException, InterruptedException {
        return service.getBattHistoryDataList(data, interfaceNumber);
    }
    /**
     * 1.电池基本信息:电池品牌、电池型号、投入使用时间、标称容量、电池组id
     * 2.运行数据:实际容量、电池组数、负载电流、续航时长
     */
    @GetMapping("/getBattGroupDataList")
    @ApiOperation("获取电池的数据信息,以上注释包含所有细节")
    public Response getBattGroupDataList(@RequestParam String stationId, @RequestParam String interfaceNumber){
        return service.getBattGroupDataList(stationId, interfaceNumber);
    }
}
src/main/java/com/whyc/dto/BattCapFactory.java
@@ -158,5 +158,15 @@
            
        }
        return flag;
 }
     }
    /**
     * 电池组的续航时长计算,单位:分钟
     */
    public static float getTheoryTime(float loadCurr, float battGroupCap, float battGroupCapStd){
        double realCurr = 53*loadCurr/45;
        double hourRate = N_TO_10H(GetHourRate((int) Math.floor(battGroupCapStd), realCurr));
        float theoryTimeHour = realCurr == 0?0: (float) (battGroupCap / hourRate / realCurr);
        return theoryTimeHour*60;
    }
}
src/main/java/com/whyc/service/BattEnduranceService.java
@@ -100,6 +100,12 @@
        return new Response().set(1,timeLong,"查询成功");
    }
    public List<BattEndurance>  getEnduranceInfoByStationId(String stationId){
        QueryWrapper<BattEndurance> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("stationid",stationId);
        return mapper.selectList(queryWrapper);
    }
    /**
     * 查询续航时间<n小时的
     */
src/main/java/com/whyc/service/InterfaceService.java
@@ -7,6 +7,7 @@
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.AlarmDaoFactory;
import com.whyc.dto.BattCapFactory;
import com.whyc.dto.InterfaceParam;
import com.whyc.dto.Response;
import com.whyc.dto.result.AlarmRes;
@@ -73,6 +74,12 @@
    @Autowired
    private BattRealdataService battRealdataService;
    @Autowired
    private BattInfService battInfService;
    @Autowired
    private BattEnduranceService battEnduranceService;
    public Response getBattinf(int pageNum, int pageSize, String interfaceNumber) {
        //先验证
@@ -621,4 +628,68 @@
            return new Response().set(1, "越权访问");
        }
    }
    /**
     * 1.电池基本信息:电池品牌、电池型号、投入使用时间、标称容量、电池组id
     * 2.运行数据:实际容量、电池组数、负载电流、续航时长
     */
    public Response getBattGroupDataList(String stationId, String interfaceNumber) {
        int flag = decryptInterface(interfaceNumber);
        if (flag == 1) {
           Map<String, Object> resultMap = new HashMap<>();
           //根据站点查询电池组列表及基础信息
            List<Battinf> battGroupList = battInfService.getBattListByStatoinId(stationId);
            resultMap.put("basicInfo",battGroupList);
            //根据站点查询运行数据
            List<BattEndurance> enduranceInfoList = battEnduranceService.getEnduranceInfoByStationId(stationId);
            if(battGroupList.size() != 0 && enduranceInfoList.size() != 0) { //存在电池组且存在电池组的续航信息记录
                //这里只考虑一个站点只有1台设备.
                BattEndurance battEndurance = enduranceInfoList.get(0);
                //运行数据
                List<BattEndurance> runDataList = new ArrayList<>();
                battGroupList.forEach(battinf -> {
                    Integer groupIndex = battinf.getGroupIndexInFBSDevice();
                    Float loadCurrFromDis = battinf.getLoadCurrFromDis();
                    Float capStd = battinf.getMonCapStd();
                    BattEndurance temp = new BattEndurance();
                    switch (groupIndex) {
                        case 0:
                            temp.setRealCap(battEndurance.getRealCapGroup1());
                            temp.setNum(0);
                            temp.setLoadCurr(String.valueOf(loadCurrFromDis));
                            temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup1(), capStd));
                            break;
                        case 1:
                            temp.setRealCap(battEndurance.getRealCapGroup2());
                            temp.setNum(1);
                            temp.setLoadCurr(String.valueOf(loadCurrFromDis));
                            temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup2(), capStd));
                            break;
                        case 2:
                            temp.setRealCap(battEndurance.getRealCapGroup3());
                            temp.setNum(2);
                            temp.setLoadCurr(String.valueOf(loadCurrFromDis));
                            temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup3(), capStd));
                            break;
                        case 3:
                            temp.setRealCap(battEndurance.getRealCapGroup4());
                            temp.setNum(3);
                            temp.setLoadCurr(String.valueOf(loadCurrFromDis));
                            temp.setEnduranceTheoryTimelong(BattCapFactory.getTheoryTime(loadCurrFromDis, battEndurance.getRealCapGroup4(), capStd));
                            break;
                    }
                    runDataList.add(temp);
                });
                resultMap.put("runData", runDataList);
            }else{
                resultMap.put("runData",null);
            }
            return new Response().set(1,resultMap);
        }else{
            return new Response().set(1, "越权访问");
        }
    }
}