whyclxw
2024-09-02 f56f93430cdc8d46a11fbd79c52c63005bc61b30
src/main/java/com/whyc/service/DevInfService.java
@@ -1,19 +1,26 @@
package com.whyc.service;
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.dto.Page;
import com.whyc.dto.DevInfDto;
import com.whyc.dto.Response;
import com.whyc.mapper.A200RealstateMapper;
import com.whyc.mapper.ActmRealstateMapper;
import com.whyc.mapper.BattgroupBaojigroupMapper;
import com.whyc.mapper.DevInfMapper;
import com.whyc.pojo.db_lithium_ram_db.A200Realstate;
import com.whyc.pojo.db_lithium_ram_db.ActmRealstate;
import com.whyc.pojo.db_lithium_ram_db.DevInf;
import com.whyc.util.RSAUtil;
import com.whyc.pojo.db_user.BattgroupBaojigroup;
import com.whyc.pojo.db_user.UserInf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -21,13 +28,37 @@
    @Autowired(required = false)
    private DevInfMapper mapper;
    @Autowired(required = false)
    private A200RealstateMapper a200Mapper;
    @Autowired(required = false)
    private ActmRealstateMapper actmMapper;
    @Autowired(required = false)
    private BattgroupBaojigroupMapper battBjmapper;
    //添加设备
    @Transactional
    public Response addDev(DevInf devInf) {
        QueryWrapper wrapper=new QueryWrapper();
        //判断设备类型生成devId
        int devId=getDevId(devInf.getDevType());
        devInf.setDevId(devId);
        devInf.setCreateTime(new Date());
        int bl=mapper.insert(devInf);
        if(bl>0){
            if(devInf.getBaojiIdList()!=null){
                List<BattgroupBaojigroup> listBj=new ArrayList<>();
                for (int baojiId:devInf.getBaojiIdList()) {
                    BattgroupBaojigroup baojigroup=new BattgroupBaojigroup();
                    baojigroup.setDevId(devId);
                    baojigroup.setBaojiGroupId(baojiId);
                    listBj.add(baojigroup);
                }
                //将设备添加进指定的包机组
                battBjmapper.insertBatchSomeColumn(listBj);
            }
        }
        return new Response().set(1,bl>0);
    }
   //判断设备类型生成devId
@@ -44,11 +75,14 @@
    }
    //获取所有的设备信息
    public Response getAllInf(Integer uid, Page page) {
    public Response getAllInf(Integer uid, DevInfDto devInfDto) {
        Map<String, Object> allMap = new HashMap<>();
        PageHelper.startPage(page.getPageNum(),page.getPageSize());
        List<DevInf> list=mapper.getAllInf(uid);
        PageHelper.startPage(devInfDto.getPageNum(), devInfDto.getPageSize());
        devInfDto.setUid(uid);
        List<DevInf> listype=mapper.getAllInf(devInfDto);
        PageInfo pageInfo=new PageInfo(listype);
        List<DevInf> list=mapper.getLine(uid);
        Map<Integer, List<DevInf>> typeDevMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevType));
        Map<Integer, List<DevInf>> onlineDevMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevOnline));
        Map<Integer, Object> typeMap = new HashMap<>();
@@ -64,12 +98,84 @@
        for (Integer online : onlineDevMap.keySet()) {
            onlineMap.put(online, onlineDevMap.get(online).size());
        }
        PageInfo pageInfo=new PageInfo(list);
        allMap.put("type",typeMap);
        allMap.put("onlineMap",onlineMap);
        allMap.put("devSum",devSum);
        allMap.put("pageInfo",pageInfo);
        return new Response().setII(1,list!=null,allMap,"获取所有的设备信息");
        return new Response().setII(1,listype!=null,allMap,"获取所有的设备信息");
    }
    //获取左侧列表
    public Response getDevBytype(Integer devType) {
        QueryWrapper wrapper=new QueryWrapper();
        if (devType!=null){
            wrapper.eq("dev_type",devType);
        }
        wrapper.orderByAsc("dev_id");
        List<DevInf> list=mapper.selectList(wrapper);
        return new Response().setII(1,list!=null,list,"获取左侧列表");
    }
   //获取左侧泪飙
    public Response getDevType(int uid) {
        Map<String, Object> allMap = new HashMap<>();
        List<DevInf> a200List=mapper.getDevType(uid,1);
        for (DevInf a200:a200List) {
            QueryWrapper a200wrapper= Wrappers.query();
            a200wrapper.eq("dev_id",a200.getDevId());
            a200wrapper.last("limit 1");
            A200Realstate a200state=a200Mapper.selectOne(a200wrapper);
            //a200.setA200sTate(a200state);
            a200.setState(a200state!=null?a200state:null);
        }
        List<DevInf> actmList=mapper.getDevType(uid,2);
        for (DevInf actm:actmList) {
            QueryWrapper actmwrapper= Wrappers.query();
            actmwrapper.eq("dev_id",actm.getDevId());
            actmwrapper.last("limit 1");
            ActmRealstate actmstate=actmMapper.selectOne(actmwrapper);
            //actm.setActmsTate(actmstate);
            actm.setState(actmstate!=null?actmstate:null);
        }
        allMap.put("a200List",a200List);
        allMap.put("actmList",actmList);
        return new Response().setII(1,allMap.size()>0,allMap,"获取左侧列表");
    }
    //编辑设备信息
    public Response updateInf(DevInf dinf) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("dev_id",dinf.getDevId());
        int flag=mapper.update(dinf,wrapper);
        return new Response().set(1,flag>0,"编辑设备信息");
    }
    //获取设备信息(不分页用于包机组)
    public Response getDinf() {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.orderByAsc("dev_id");
        List<UserInf> list=mapper.selectList(wrapper);
        return new Response().setII(1,list!=null,list,"获取设备信息(不分页用于包机组)");
    }
    //删除设备(同时删除实时和包机组信息)
    @Transactional
    public Response delDinf(Integer devId) {
        //先删除包机组信息
        UpdateWrapper baojiWrapper=new UpdateWrapper();
        baojiWrapper.eq("dev_id",devId);
        battBjmapper.delete(baojiWrapper);
        //再删除实时信息
        if(devId/100000000==1){
            UpdateWrapper a200Wrapper=new UpdateWrapper();
            a200Wrapper.eq("dev_id",devId);
            a200Mapper.delete(a200Wrapper);
        }else{
            UpdateWrapper actmWrapper=new UpdateWrapper();
            actmWrapper.eq("dev_id",devId);
            actmMapper.delete(actmWrapper);
        }
        //最后删除设备信息
        UpdateWrapper dinfWrapper=new UpdateWrapper();
        dinfWrapper.eq("dev_id",devId);
        mapper.delete(dinfWrapper);
        return new Response().set(1,true,"删除设备(同时删除实时和包机组信息)");
    }
}