whyclxw
6 天以前 5720a0b6cb13fcecc7fb810c7a7f0ad124ce6048
src/main/java/com/whyc/service/BaojigroupService.java
@@ -3,6 +3,7 @@
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.dto.Response;
import com.whyc.mapper.*;
import com.whyc.pojo.db_station.PowerInf;
@@ -15,10 +16,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@@ -43,7 +41,7 @@
    public void insertNeiZhi(Integer baojiId){
        List<BaojigroupUsr> list=new ArrayList<>();
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.lt("uid",99);
        wrapper.lt("id",99);
        List<User> uList=UserMapper.selectList(wrapper);
        for (User uinf:uList) {
            BaojigroupUsr baojiusr=new BaojigroupUsr();
@@ -59,7 +57,7 @@
        //验证包机组名是否重复
        //将内置用户加入到包机组下
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("baoji_name",baojiName);
        wrapper.eq("baoji_group_name",baojiName);
        wrapper.last("limit 1");
        Baojigroup baoji=mapper.selectOne(wrapper);
        if(baoji!=null){
@@ -68,14 +66,14 @@
            baoji=new Baojigroup();
            baoji.setBaojiGroupName(baojiName);
            int bl=mapper.insert(baoji);
            if(bl>0){
            /*if(bl>0){
                //将内置用户加入到包机组下
                QueryWrapper wrapper1=new QueryWrapper();
                wrapper1.eq("baoji_name",baojiName);
                wrapper1.eq("baoji_group_name",baojiName);
                wrapper1.last("limit 1");
                baoji=mapper.selectOne(wrapper1);
                insertNeiZhi(baoji.getBaojiGroupId());
            }
            }*/
            return new Response().set(1,bl>0,"添加包机组成功");
        }
@@ -83,8 +81,8 @@
    //编辑包机组
    public Response updateBaoji(Integer id, String baojiName) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("id",id);
        wrapper.set("baoji_name",baojiName);
        wrapper.eq("baoji_group_id",id);
        wrapper.set("baoji_group_name",baojiName);
        int bl=mapper.update((Baojigroup) ActionUtil.objeNull,wrapper);
        return new Response().set(1,bl>0,"编辑包机组成功");
    }
@@ -93,22 +91,22 @@
    public Response delBaoji(Integer id) {
        //先删除包机组对应人下的记录
        UpdateWrapper wrapper1=new UpdateWrapper();
        wrapper1.eq("baoji_id",id);
        wrapper1.eq("baoji_group_id",id);
        bjUsrmapper.delete(wrapper1);
        //再删除包机组对应下的机房和锁
        //再删除包机组对应下的机房和电源
        UpdateWrapper wrapper2=new UpdateWrapper();
        wrapper2.eq("baoji_id",id);
        wrapper2.eq("baoji_group_id",id);
        bjPowermapper.delete(wrapper2);
        //最后删除包机组
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("id",id);
        wrapper.eq("baoji_group_id",id);
        int bl=mapper.delete(wrapper);
        return new Response().set(1,bl>0,"删除包机组成功");
    }
    //查询包机组及包机组对应的用户和对应机房和锁
    public Response getAllBaojiInf() {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.orderByAsc("id");
        wrapper.orderByAsc("baoji_group_id");
        List<Baojigroup> baojiList=mapper.selectList(wrapper);
        for (Baojigroup bj:baojiList) {
            //查询包机组对应的用户信息
@@ -120,15 +118,42 @@
        }
        return new Response().setII(1,baojiList!=null,baojiList,"查询包机组及包机组对应的用户和对应机房和锁");
    }
    //包机组添加机房和锁|移除机房和锁
    //包机组添加机房和电源|移除机房和电源
    //②)将电源添加到班组包机组中时需检查该电源是否在其他包机组中存在,若存在则提示当前电源已在其他班组(可提示存在的班组名称)中存在,若不存在则执行添加逻辑。
    @Transactional
    public void updateStationAndLockList(List<BaojigroupPower> BaojigroupPowerList, int operationFlag) {
    public Response updateStationAndLockList(List<BaojigroupPower> BaojigroupPowerList, int operationFlag) {
        if(operationFlag==1){
            bjPowermapper.insertBatchSomeColumn(BaojigroupPowerList);
            List<BaojigroupPower> addList=new ArrayList<>();
            List<BaojigroupPower> unaddList=new ArrayList<>();
            for (BaojigroupPower bjp:BaojigroupPowerList) {
                //检测否在其他包机组中存在,若存在则提示当前电源已在其他班组(可提示存在的班组名称)中存在
                int flag=checkPowerIsInBanzu(bjp.getPowerId());
                if(flag==1){
                    unaddList.add(bjp);
                    return new Response().setII(1,false,unaddList,"存在电源已添加过班组");
                }
            }
            bjPowermapper.insertBatchSomeColumn(addList);
            return new Response().set(1, true,"添加成功");
        }else{
            bjPowermapper.deleteStationAndLockList(BaojigroupPowerList);
            return new Response().set(1,true,"移除成功");
        }
    }
    //检测否在其他包机组中存在,若存在则提示当前电源已在其他班组(可提示存在的班组名称)中存在
    private int checkPowerIsInBanzu(Integer powerId) {
        int flag=0;
        List<BaojigroupPower> List=bjPowermapper.checkPower(powerId);
        if(List!=null&&List.size()>0){
            List<Integer> flagList=List.stream().map(BaojigroupPower::getTeamFlag).collect(Collectors.toList());
            if (flagList != null && flagList.contains(1)) {
                flag=1;
            }
        }
        return flag;
    }
    //包机组添加用户|移除用户
    @Transactional
    public void updateUserList(List<BaojigroupUsr> baoJiGroupUserList, int operationFlag) {
@@ -150,8 +175,8 @@
        List<User> relatedUserList = bjUsrmapper.getUserList(id);
        //查询包机组未添加的用户信息
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.select("uid", "uname");
        wrapper.gt("uid",100);
        wrapper.select("id", "name");
        wrapper.gt("id",100);
        List<User> allUserList = UserMapper.selectList(wrapper);
        List<User> notRelatedUserList = allUserList.stream().filter(User -> !relatedUserList.contains(User)).collect(Collectors.toList());
@@ -177,7 +202,7 @@
    public Response getBaojiUserByUid(Integer uid) {
        //查询当前人所在包机组
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.select("baoji_id");
        wrapper.select("baoji_group_id");
        if(uid>100){
            wrapper.eq("uid",uid);
        }
@@ -199,6 +224,56 @@
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("uid",id);
        List<BaojigroupUsr> list=bjUsrmapper.selectList(wrapper);
        return list == null?0:1 ;
        return list.size()>0?1:0 ;
    }
    /*设置包机组标记
    * ①将包机组设置成班组时,判断当前包机组内的电源是否在其他设置成班组的包机组内,若在则提示当前电源已在其他班组中。否则执行设置班组逻辑。
    *
    * */
    public Response updateTeamFlag(Integer baoJiGroupId, Integer flag) {
        if(flag==1){
            //1检测当前包机组下的电源是否在其他包机组中存在,则查看该包机组是否为班组
            List<BaojigroupPower> powerList=bjPowermapper.checkPwrIsInBanzu(baoJiGroupId);
            //2.若存在一条则返回,若不存在修改为班组
            if(powerList!=null&&powerList.size()>0){
                List<Integer> flagList=powerList.stream().map(BaojigroupPower::getTeamFlag).collect(Collectors.toList());
                if (flagList != null && flagList.contains(1)) {
                    return new Response().set(1,false,"当前包组下电源已存在班组中");
                }
            }
        }
        UpdateWrapper wrapper = new UpdateWrapper();
        wrapper.set("team_flag",flag);
        wrapper.eq("baoji_group_id",baoJiGroupId);
        mapper.update(null,wrapper);
        return new Response().set(1,true,"设置完成");
    }
    //删除包机组下的电源
    public void delPowerInBaoji(Integer pid) {
        UpdateWrapper<BaojigroupPower> update = Wrappers.update();
        update.eq("power_id",pid);
        bjPowermapper.delete(update);
    }
    //删除包机组下的机房
    public void delStationInBaoji(Integer sid) {
        UpdateWrapper<BaojigroupPower> update = Wrappers.update();
        update.eq("station_id",sid);
        bjPowermapper.delete(update);
    }
    //查询机房所在的班组
    public String getGroupName(Integer powerId) {
        String groupName = powerInfMapper.getGroupName(powerId);
        if(groupName==null||groupName.length()<0){
            groupName="none";
        }
        return  groupName;
    }
    //查询所有的包机组名集合(班组)
    public List<Baojigroup> getGroupList() {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("team_flag",1);
        List<Baojigroup> list=mapper.selectList(wrapper);
        return list;
    }
}