whycxzp
2023-12-22 6320368558f548b4a3a07228e52d5ebed4818401
核容设备设置
6个文件已修改
114 ■■■■ 已修改文件
src/main/java/com/whyc/controller/CKPowerDevBattRtStateSetController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/BattRtSetDto.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/CKPowerDevBattRtDataService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/CKPowerDevBattRtStateService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/CKPowerDevBattRtStateSetService.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/websocket/CKRtAndSignalAndHrSocket.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/CKPowerDevBattRtStateSetController.java
@@ -22,10 +22,16 @@
    @Autowired
    private CKPowerDevBattRtStateSetService service;
    @ApiOperation("设置")
    @ApiOperation("设置单体")
    @PostMapping("update")
    public Response update(@RequestBody BattRtSetDto set){
        return service.update(set);
    public Response updateMon(@RequestBody BattRtSetDto set){
        return service.updateMon(set);
    }
    @ApiOperation("设置组端")
    @PostMapping("updateGroup")
    public Response updateGroup(@RequestBody CKPowerDevBattRtStateSet set){
        return service.updateGroup(set);
    }
src/main/java/com/whyc/dto/BattRtSetDto.java
@@ -8,16 +8,16 @@
public class BattRtSetDto {
    private CKPowerDevBattRtDataSet dataSet;
    private List<CKPowerDevBattRtDataSet> dataSetList;
    private CKPowerDevBattRtStateSet stateSet;
    private List<CKPowerDevBattSetLog> logList;
    public CKPowerDevBattRtDataSet getDataSet() {
        return dataSet;
    public List<CKPowerDevBattRtDataSet> getDataSetList() {
        return dataSetList;
    }
    public void setDataSet(CKPowerDevBattRtDataSet dataSet) {
        this.dataSet = dataSet;
    public void setDataSetList(List<CKPowerDevBattRtDataSet> dataSetList) {
        this.dataSetList = dataSetList;
    }
    public CKPowerDevBattRtStateSet getStateSet() {
src/main/java/com/whyc/service/CKPowerDevBattRtDataService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.mapper.CKPowerDevBattRtDataMapper;
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevBattRtData;
import com.whyc.pojo.db_ckpwrdev_data_rt.CKPowerDevBattRtState;
import com.whyc.pojo.db_ckpwrdev_inf.CKPwrDevInf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -40,4 +41,19 @@
        query.le("mon_num",ckPwrDevInf.getBattMonCount());
        return mapper.selectList(query);
    }
    /**单体列表查询*/
    public List<CKPowerDevBattRtData> getMonList(Integer battIndex, List<Integer> monNumList) {
        QueryWrapper<CKPowerDevBattRtData> query = Wrappers.query();
        if(battIndex!=null) {
            if(battIndex == -1) { //首页上使用,默认只查组1
                query.eq("batt_index", 0);
            }else{
                query.eq("batt_index", battIndex);
            }
        }
        query.in("mon_num",monNumList);
        return mapper.selectList(query);
    }
}
src/main/java/com/whyc/service/CKPowerDevBattRtStateService.java
@@ -15,9 +15,15 @@
    @Resource
    private CKPowerDevBattRtStateMapper mapper;
    public CKPowerDevBattRtState get() {
    public CKPowerDevBattRtState get(Integer battIndex) {
        QueryWrapper<CKPowerDevBattRtState> query = Wrappers.query();
        query.eq("batt_index",0);
        if(battIndex!=null) {
            if(battIndex == -1) { //首页上使用,默认只查组1
                query.eq("batt_index", 0);
            }else{
                query.eq("batt_index", battIndex);
            }
        }
        query.last(" limit 1");
        return mapper.selectOne(query);
    }
src/main/java/com/whyc/service/CKPowerDevBattRtStateSetService.java
@@ -1,6 +1,8 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.constant.CMD_Constant;
import com.whyc.dto.BattRtSetDto;
@@ -17,6 +19,9 @@
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
import static com.baomidou.mybatisplus.core.toolkit.Wrappers.update;
@Service
public class CKPowerDevBattRtStateSetService {
@@ -39,10 +44,11 @@
    @Autowired
    private CKPowerDevBattRtStateService stateService;
    public Response update(BattRtSetDto set) {
        CKPowerDevBattRtDataSet dataSet = set.getDataSet();
    public Response updateMon(BattRtSetDto set) {
        List<CKPowerDevBattRtDataSet> dataSetList = set.getDataSetList();
        CKPowerDevBattRtStateSet stateSet = set.getStateSet();
        updateDataFromDataAndStateToSet(dataSet.getBattIndex());
        //查询data和state表数据并设置到对应的set表
        updateDataFromDataAndStateToSet(dataSetList);
        //设置state_set表,与李军沟通确定,组端和单体设置,都采用设置下面这个cmd值.因为单体和组端会一起设置
        if(stateSet.getBattIndex() == 0) {
            stateSet.setOpCmd(CMD_Constant.CMD_SetBatt1MonData);
@@ -51,9 +57,9 @@
        }else{
            return new Response().set(0,"未指定具体的电池组或电池组超出2组,无法设置");
        }
        mapper.update(stateSet,null);
        //设置data_set表 TODO 待确定是设置单体时 所有单体还是某个单体
        dataSetService.update(dataSet);
        update(stateSet);
        //设置data_set表
        dataSetService.updateBatch(dataSetList);
        //读取opCmd返回是否成功
        QueryWrapper<CKPowerDevBattRtStateSet> query = Wrappers.query();
        Response opStatus =OpCmdUtil.getOpStatus(mapper, query, stateSet.getOpCmd(),20,set.getStateSet().getBattIndex());
@@ -74,9 +80,38 @@
        return opStatus;
    }
    private void updateDataFromDataAndStateToSet(Integer battIndex) {
        List<CKPowerDevBattRtData> rtDataList = dataService.getList(battIndex);
        CKPowerDevBattRtState state = stateService.get();
    public Response updateGroup(CKPowerDevBattRtStateSet stateSet) {
        //查询state表数据并设置到对应的set表
        updateDataFromStateToSet(stateSet.getBattIndex());
        //设置state_set表,与李军沟通确定,组端和单体设置,都采用设置下面这个cmd值.因为单体和组端会一起设置
        if(stateSet.getBattIndex() == 0) {
            stateSet.setOpCmd(CMD_Constant.CMD_SetBatt1MonData);
        }else if(stateSet.getBattIndex() == 1){
            stateSet.setOpCmd(CMD_Constant.CMD_SetBatt2MonData);
        }else{
            return new Response().set(0,"未指定具体的电池组或电池组超出2组,无法设置");
        }
        update(stateSet);
        //读取opCmd返回是否成功
        QueryWrapper<CKPowerDevBattRtStateSet> query = Wrappers.query();
        Response opStatus =OpCmdUtil.getOpStatus(mapper, query, stateSet.getOpCmd(),20,stateSet.getBattIndex());
        return opStatus;
    }
    private void updateDataFromStateToSet(Integer battIndex) {
        CKPowerDevBattRtState state = stateService.get(battIndex);
        CKPowerDevBattRtStateSet stateSet = new CKPowerDevBattRtStateSet();
        BeanUtils.copyProperties(state,stateSet);
        update(stateSet);
    }
    private void updateDataFromDataAndStateToSet(List<CKPowerDevBattRtDataSet> dataSetList) {
        Integer battIndex = dataSetList.get(0).getBattIndex();
        List<Integer> monNumList = dataSetList.stream().map(CKPowerDevBattRtDataSet::getMonNum).collect(Collectors.toList());
        //获取实时表数据并写入set表
        List<CKPowerDevBattRtData> rtDataList = dataService.getMonList(battIndex,monNumList);
        CKPowerDevBattRtState state = stateService.get(battIndex);
        //属性迁移
        List<CKPowerDevBattRtDataSet> rtSetDataList = new LinkedList<>();
@@ -87,8 +122,15 @@
            rtSetDataList.add(set);
        }
        BeanUtils.copyProperties(state,stateSet);
        //rt表数据更新到set表中 TODO 待确定是设置单体时 所有单体还是某个单体
        //dataSetService.update();
        //rt表数据更新到set表中
        dataSetService.updateBatch(rtSetDataList);
        update(stateSet);
    }
    private void update(CKPowerDevBattRtStateSet stateSet) {
        UpdateWrapper<CKPowerDevBattRtStateSet> update = Wrappers.update();
        update.eq("batt_index",stateSet.getBattIndex());
        mapper.update(stateSet,update);
    }
}
src/main/java/com/whyc/websocket/CKRtAndSignalAndHrSocket.java
@@ -70,7 +70,7 @@
                    while (!currentThread().isInterrupted()) {
                        CKPowerDevRt ckPowerDevRt = ckPowerDevRtService.get();
                        CKPowerDevSignal ckPowerDevSignal = ckPowerDevSignalService.get();
                        CKPowerDevBattRtState ckPowerDevBattRtState = ckPowerDevBattRtStateService.get();
                        CKPowerDevBattRtState ckPowerDevBattRtState = ckPowerDevBattRtStateService.get(-1);
                        List<CKPowerDevBattRtData> ckPowerDevBattRtData = ckPowerDevBattRtDataService.getList(-1);
                        session.getBasicRemote().sendObject(new Response<>().setV(1,ckPowerDevRt,ckPowerDevSignal,ckPowerDevBattRtState,ckPowerDevBattRtData,new Date(),"查询完成"));
                        sleep(4000);