src/main/java/com/whyc/controller/PowerInfController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/BattInfMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/PowerInfMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/PowerInf.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattInfService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/PowerInfService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/task/AccountLockStrategyTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/task/PreventTryTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/webSocket/ScreenSocket.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BattInfMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/PowerInfMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>