whyclxw
2024-04-28 b25b814a949d2065a61fd3167206ffb51a57af65
src/main/java/com/whyc/service/Fbs9100StateService.java
@@ -2,9 +2,11 @@
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.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.constant.DeviceConstant;
import com.whyc.dto.BattTestData;
import com.whyc.dto.Response;
import com.whyc.dto.paramter.FbsStatePar;
import com.whyc.dto.result.DischargeState;
@@ -14,14 +16,12 @@
import com.whyc.pojo.Battinf;
import com.whyc.pojo.Fbs9100State;
import com.whyc.util.ActionUtil;
import com.whyc.util.DateUtil;
import com.whyc.util.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -54,9 +54,8 @@
        Fbs9100State fbs9100State = mapper.selectOne(wrapper);
        if (fbs9100State != null) {
            fbs9100State.setNote(new SimpleDateFormat(ActionUtil.time_yyyyMMddHHmmss).format(new Date()));
            fbs9100State.setDevLastCaptestStopTypeReason(BattTestData.getStopType_9612(fbs9100State.getDevLastCaptestStopType()));
        }
        /*Random random = new Random();
        fbs9100State.setFbo4830IsOnline(random.nextInt(2));*/
        return new Response().setII(1, fbs9100State == null ? false : true, fbs9100State, "");
    }
@@ -77,7 +76,7 @@
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.set("dev_res_test_state",0);
        wrapper.eq("dev_id",devId);
        int flag=mapper.update(null,wrapper);
        int flag=mapper.update((Fbs9100State) ActionUtil.objeNull,wrapper);
        return  new Response().set(1,flag>0?true:false);
    }
    //一体机界面弹出框确认操作
@@ -91,7 +90,7 @@
            dev_alarmstat=2;
            wrapper.set("dev_alarmstate",dev_alarmstat);
            wrapper.eq("dev_id",devId);
            flag=mapper.update(null,wrapper);
            flag=mapper.update((Fbs9100State) ActionUtil.objeNull,wrapper);
            if(flag>0){
                boolean b=service.sendCmdToFBS9100Dev(35,0, devId);
                if(b){
@@ -109,7 +108,7 @@
            dev_alarmstat=3;
            wrapper.set("dev_alarmstate",dev_alarmstat);
            wrapper.eq("dev_id",devId);
            flag=mapper.update(null,wrapper);
            flag=mapper.update((Fbs9100State) ActionUtil.objeNull,wrapper);
            if(flag>0){
                bl=true;
                msg="修改成功!";
@@ -184,7 +183,7 @@
            /*QueryWrapper<Fbs9100State> wrapper = Wrappers.query();
            wrapper.select("record_datetime", "dev_workstate");
            List<Fbs9100State> fbs9100StateList = mapper.selectList(wrapper);*/
            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2(userId);
            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2(userId, 1);
            //首先查看是否通讯故障,时间大于1分钟为通讯故障
            for (int i = 0; i < fbs9100StateList.size(); i++) {
                Calendar instance = Calendar.getInstance();
@@ -211,7 +210,7 @@
                }
            }
            return response.setII(1, true, resultMap, null);
            return response.setII(1, true, resultMap, "");
        } catch (Exception e) {
            return response.set(1, false, "发生异常:" + e.getCause());
        }
@@ -222,9 +221,11 @@
     * 通讯故障>核容放电>充电>内阻>浮充,
     * 如果一拖二的设备,有两个不同状态,实现状态优先级覆盖
     * @param userId
     * @param type 1-太原排除蓄电池设备一拖二的第二组状态统计
     * @param type 2-统计所有设备ip的状态
     * @return
     */
    public Response getBTSEquipStatus2(int userId){
    public Response getBTSEquipStatus2(int userId,int type){
        Response response = new Response();
        try {
@@ -235,7 +236,7 @@
            resultMap.put("内阻测试数量", 0);
            resultMap.put("通讯故障数量", 0);
            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2(userId);
            List<Fbs9100State> fbs9100StateList = mapper.getListWithoutZJDYBTSE2(userId,type);
            Map<String, List<Fbs9100State>> deviceMap = fbs9100StateList.stream().collect(Collectors.groupingBy(Fbs9100State::getDevIp));
            Set<String> deviceSet = deviceMap.keySet();
            Calendar instance = Calendar.getInstance();
@@ -298,7 +299,7 @@
                }
            }*/
            return response.setII(1, true, resultMap, null);
            return response.setII(1, true, resultMap, "");
        } catch (Exception e) {
            return response.set(1, false, "发生异常:" + e.getCause());
        }
@@ -368,4 +369,26 @@
        res.put("ld9state",ld9stateRes);
        return new Response().set(1, res);
    }
    public void addOrUpdate(List<Fbs9100State> deviceStateList) {
        List<Long> devIdList = deviceStateList.stream().map(Fbs9100State::getDevId).collect(Collectors.toList());
        QueryWrapper<Fbs9100State> query = Wrappers.query();
        query.in("dev_id",devIdList);
        List<Fbs9100State> fbs9100StateListInDB = mapper.selectList(query);
        List<Long> devIdListInDB = fbs9100StateListInDB.stream().map(Fbs9100State::getDevId).collect(Collectors.toList());
        for (Fbs9100State fbs9100State : deviceStateList) {
            if(devIdListInDB.contains(fbs9100State.getDevId())){ //更新
                UpdateWrapper<Fbs9100State> update = Wrappers.update();
                update.set("dev_workstate",fbs9100State.getDevWorkstate())
                        .set("dev_last_captest_stop_type",fbs9100State.getDevLastCaptestStopType())
                        .set("record_datetime",fbs9100State.getRecordDatetime())
                        .eq("dev_id",fbs9100State.getDevId());
                mapper.update(null,update);
            }else{ //新增
                mapper.insert(fbs9100State);
            }
        }
    }
}