longyvfengyun
2023-02-28 8ba9295eef9d53f633aeb83e7cf5234da7713ac0
Merge branch 'master' of http://118.89.139.230:10101/r/fg_v2.0
11个文件已修改
157 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/PowerInfController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattInfMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/PowerInfMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/PowerInf.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattInfService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/PowerInfService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/task/AccountLockStrategyTask.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/task/PreventTryTask.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/ScreenSocket.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattInfMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PowerInfMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/PowerInfController.java
@@ -4,16 +4,19 @@
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.factory.BattinfGroupFactory;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.PowerInf;
import com.whyc.pojo.UserInf;
import com.whyc.service.BattInfService;
import com.whyc.service.PowerAppSysService;
import com.whyc.service.PowerInfService;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -34,14 +37,24 @@
    @PostMapping
    @ApiOperation(value = "添加电源")
    @Transactional
    public Response add(@RequestBody PowerInf powerInf){
        int userId = ((UserInf)ActionUtil.getSession().getAttribute("user")).getUId().intValue();
        Response res = new Response();
        if(StringUtils.isEmpty(powerInf.getStationId())){
            powerInf.setStationId(String.valueOf(battInfService.searchMaxId_zj()));
            //校验机房站点是否存在,存在则不需要新建StationId
            Battinf battinf = battInfService.judgeBattStationName3(powerInf);
            if (battinf!=null) {
                powerInf.setStationId(battinf.getStationId());
            }else {
                powerInf.setStationId(String.valueOf(battInfService.searchMaxId_zj()));
            }
        }
        int devId = battInfService.getPowerDeviceId(powerInf.getPowerDeviceType());
        powerInf.setPowerDeviceId(devId);
        if (service.add(powerInf)>0){
            //添加机房站点到用户对应的包机组
            battInfService.insertUserBattgroupBaojigroupBattgroupSelect(powerInf.getStationId(),0,userId);
            //添加电源站点时,更新ReInit字段为1,通讯程序监控变化重新初始化
            if(powerInf.getPowerDeviceType()==BattinfGroupFactory.DEVICE_POWER) {
                boolean flag = powerAppSysService.updateFlag("AppServer_Reinit_PowerData_EN");
src/main/java/com/whyc/mapper/BattInfMapper.java
@@ -84,4 +84,10 @@
    //第三方接口提供
    List<BattInfDTO> getBattInf();
    int getBattGroupNum(int userId);
    int getDevNum(int userId);
    List<Battinf> getBattGroupList(int userId);
}
src/main/java/com/whyc/mapper/PowerInfMapper.java
@@ -28,6 +28,6 @@
    List<PowerInf> getStations(@Param("uId")Long uId,@Param("stationName5")String stationName5);
    int getNum(int userId);
}
src/main/java/com/whyc/pojo/PowerInf.java
@@ -10,6 +10,11 @@
import org.apache.ibatis.type.Alias;
import java.util.Date;
/**
 * 电源属于后面追加的类型,与电池表会存在机房站点共享,特申明如下:
 * 电源和电池共用机房站点,其余不共用
 */
@Alias("PowerInf")
@Data
@TableName( schema = "`db_pwrdev_inf`",value = "tb_pwrdev_inf")
src/main/java/com/whyc/service/BattInfService.java
@@ -9,6 +9,7 @@
import com.whyc.dto.Response;
import com.whyc.mapper.BattInfMapper;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.PowerInf;
import com.whyc.util.ActionUtil;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.core.env.Environment;
@@ -19,10 +20,7 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.*;
import static com.whyc.util.ActionUtil.createFilefolderIFNotExist;
@@ -32,6 +30,8 @@
    private BattInfMapper battInfMapper;
    @Resource
    private Environment environment;
    @Resource
    private PowerInfService powerInfService;
    public int searchMaxBattgroupId_zj() {
        Integer id = battInfMapper.getMaxBattGroupId_zj();
@@ -162,6 +162,20 @@
        return new Response().set(1,battinf,"添加成功");
    }
    /**电源添加前校验是否站点存在,从电池表+电源表查询*/
    public Battinf judgeBattStationName3(PowerInf powerInf){
        Battinf battinf = new Battinf();
        battinf.setStationName1(powerInf.getStationName1());
        battinf.setStationName2(powerInf.getStationName2());
        battinf.setStationName3(powerInf.getStationName3());
        battinf.setStationName5(powerInf.getStationName5());
        return battInfMapper.judgeBattStationName3(battinf);
    }
    public void insertUserBattgroupBaojigroupBattgroupSelect(String stationId,int battGroupId,int userId){
        battInfMapper.insertUserBattgroupBaojigroupBattgroupSelect(stationId,battGroupId,userId);
    }
    //启动创建数据库的jar文件
    public void run_cmd() {
@@ -513,4 +527,24 @@
        battInfMapper.update(null,update);
        return new Response().setII(1,"修改完成");
    }
    /**
     * 获取电池,设备,电源,机房站点 计数
     * @param userId
     * @return
     */
    public Response<Map> getDevCountMap(int userId) {
        Map<String,Integer> map = new HashMap<>();
        int battGroupCount = battInfMapper.getBattGroupNum(userId);
        int devCount = battInfMapper.getDevNum(userId);
        int powerNum = powerInfService.getNum(userId);
        map.put("battGroupCount",battGroupCount);
        map.put("devCount",devCount);
        map.put("powerNum",powerNum);
        return new Response<Map>().set(1,map);
    }
    public List<Battinf> getBattGroupList(int userId) {
        return battInfMapper.getBattGroupList(userId);
    }
}
src/main/java/com/whyc/service/PowerInfService.java
@@ -125,4 +125,8 @@
        //acdcinfMapper.getInfo(powerDeviceId);
        return  new Response().set(1);
    }
    public int getNum(int userId) {
        return mapper.getNum(userId);
    }
}
src/main/java/com/whyc/task/AccountLockStrategyTask.java
@@ -1,10 +1,12 @@
package com.whyc.task;
import com.github.pagehelper.PageInfo;
import com.whyc.pojo.PageParam;
import com.whyc.service.PageParamService;
import com.whyc.service.UserService;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@@ -21,6 +23,7 @@
@Component
public class AccountLockStrategyTask extends TimerTask {
    @Autowired
    private ServletContext servletContext;
    @Resource
@@ -35,14 +38,14 @@
        userService.updateExpiredAccount();
        //查询账号解锁策略
        PageParam accountUnLock = (PageParam) ((List)pageParamService.findByCategoryId(9).getData()).get(1);
        PageParam accountUnLock = (PageParam) ((PageInfo)pageParamService.findByCategoryId(9).getData()).getList().get(1);
        if(accountUnLock.getStatus()==2){ //自动解锁策略
            //查询账号锁定时间,超过20分钟解锁
            userService.unLock();
        }
        //登录失败时间超过24小时记录,内存中application移除
        servletContext = ActionUtil.getApplication();
        //servletContext = ActionUtil.getApplication();
        Enumeration<String> attributeNames = servletContext.getAttributeNames();
        //24小时前的时间戳
        long oneDayBefore = System.currentTimeMillis()-24*60*60*1000;
src/main/java/com/whyc/task/PreventTryTask.java
@@ -1,6 +1,7 @@
package com.whyc.task;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.ServletContext;
@@ -13,11 +14,12 @@
@Component
public class PreventTryTask extends TimerTask {
    @Autowired
    private ServletContext servletContext;
    @Override
    public void run() {
        servletContext = ActionUtil.getApplication();
        //servletContext = ActionUtil.getApplication();
        //60秒前的记录,内存中application移除
        Enumeration<String> attributeNames = servletContext.getAttributeNames();
        long oneMinuteBefore = System.currentTimeMillis()-70*1000;
src/main/java/com/whyc/webSocket/ScreenSocket.java
@@ -2,6 +2,7 @@
import com.whyc.config.WebSocketConfig;
import com.whyc.dto.Response;
import com.whyc.pojo.Battinf;
import com.whyc.pojo.UserInf;
import com.whyc.service.*;
import org.springframework.beans.factory.annotation.Autowired;
@@ -12,7 +13,9 @@
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 大屏展示 Socket
@@ -32,9 +35,27 @@
    private static DevalarmDataService devAlarmDataService;
    private static BattInfService battInfService;
    @Autowired
    public void setPowerAlarmService(PwrdevAlarmService powerAlarmService) {
        ScreenSocket.powerAlarmService = powerAlarmService;
    }
    @Autowired
    public void setBattAlarmDataService(BattalarmDataService battAlarmDataService) {
        ScreenSocket.battAlarmDataService = battAlarmDataService;
    }
    @Autowired
    public void setFbs9100StateService(Fbs9100StateService fbs9100StateService) {
        ScreenSocket.fbs9100StateService = fbs9100StateService;
    }
    @Autowired
    public void setDevAlarmDataService(DevalarmDataService devAlarmDataService) {
        ScreenSocket.devAlarmDataService = devAlarmDataService;
    }
    @Autowired
    public void setBattInfService(BattInfService battInfService) {
        ScreenSocket.battInfService = battInfService;
    }
    @OnOpen
@@ -61,12 +82,19 @@
                        int battAlarmNum = battAlarmDataService.serchRealTime(userId).getCode();
                        int devAlarmNum = devAlarmDataService.getAlarmNum(userId);
                        int powerAlarmNum = (int) powerAlarmService.getAlarmNum().getData();
                        //一体   统计:电池品牌统计
                        //一体   统计:电池统计 分为品牌和标称电压
                        List<Battinf> battinfList = battInfService.getBattGroupList(userId);
                        Map<String, List<Battinf>> battProducerMap = battinfList.stream().collect(Collectors.groupingBy(Battinf::getBattProducer));
                        Map<Float, List<Battinf>> battMonVolStdMap = battinfList.stream().collect(Collectors.groupingBy(Battinf::getMonVolStd));
                        Map<String,Object> battGroupInfoMap = new HashMap<>();
                        for(String producer : battGroupInfoMap.keySet()){
                        }
                        //一体   统计:设备状态
                        Response<Map> res_devStates = fbs9100StateService.getBTSEquipStatus(userId);
                        //一体   统计:各种设备类型总数 电池 设备 电源 站点 TODO 需要添加电源验证下站点的变化逻辑
                        //一体   统计:各种设备类型总数 电池 设备 电源 站点
                        Response<Map> res_devCountMap = battInfService.getDevCountMap(userId);
                        //续航检测??? TODO
src/main/resources/mapper/BattInfMapper.xml
@@ -496,5 +496,29 @@
        from db_battinf.tb_battinf
    </select>
    <select id="getBattGroupNum" resultType="java.lang.Integer">
        select count(*) from db_battinf.tb_battinf where StationId in(select distinct db_battinf.tb_battinf.StationId
        from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf
        where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId
        and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
        and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid
        and db_user.tb_user_inf.uid=#{userId})
    </select>
    <select id="getDevNum" resultType="java.lang.Integer">
        select count(distinct fbsDeviceId) from db_battinf.tb_battinf where StationId in(select distinct db_battinf.tb_battinf.StationId
        from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf
        where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId
        and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
        and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid
        and db_user.tb_user_inf.uid=#{userId})
    </select>
    <select id="getBattGroupList" resultType="com.whyc.pojo.Battinf">
        select battProducer,monVolStd from db_battinf.tb_battinf where StationId in(select distinct db_battinf.tb_battinf.StationId
        from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf
        where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId
        and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
        and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid
        and db_user.tb_user_inf.uid=#{userId})
    </select>
</mapper>
src/main/resources/mapper/PowerInfMapper.xml
@@ -161,8 +161,18 @@
            </if>
        </where>
    </select>
    <select id="getNum" resultType="java.lang.Integer">
        select count(PowerDeviceId) from db_pwrdev_inf.tb_pwrdev_inf
        where StationId in ( select distinct inf.StationId from
        db_pwrdev_inf.tb_pwrdev_inf inf,
        db_user.tb_user_battgroup_baojigroup_battgroup,
        db_user.tb_user_battgroup_baojigroup_usr,
        db_user.tb_user_inf
        where db_user.tb_user_battgroup_baojigroup_battgroup.StationId=inf.StationId
        and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id
        and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid
        and db_user.tb_user_inf.uid=#{uId} )
    </select>
</mapper>