南昌市物联网技防平台-后台
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
@@ -9,6 +9,7 @@
import org.springblade.jfpt.Netty.service.nettyService;
import org.springblade.jfpt.alarm.entity.Alarm;
import org.springblade.jfpt.alarm.service.IAlarmService;
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springblade.jfpt.animalheat.service.AnimalHeatService;
import org.springblade.jfpt.catalog.service.catalogService;
import org.springblade.jfpt.equipment.service.IEquipmentService;
@@ -17,6 +18,7 @@
import org.springblade.jfpt.operation.service.IOperationService;
import org.springblade.jfpt.operation.vo.OperationVO;
import org.springblade.jfpt.webscoket.service.IPushMsgService;
import org.springblade.system.user.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -44,6 +46,7 @@
   @Autowired
   private org.springblade.jfpt.Netty.service.nettyService nettyService;
   @Autowired
   private  IMessageService messageService;
@@ -136,12 +139,6 @@
         }
      } else {
         String ChannelName = content.substring(10, 22);//设备编码
         //报文内容保存
         Message message = new Message();
         message.setEnumber(ChannelName);
         message.setContent(body);
         message.setTime(df.format(day));
         serverHandler.messageService.save(message);
         String sub = content.substring(23, 27);
         ConcurrentHashMap<String, Channel> channelHashMap = ChannelMap.getChannelHashMap();
         if (channelHashMap == null) {
@@ -183,6 +180,8 @@
               alarm.setWd((String) list.get(0).get("wd"));//纬度
               alarm.setCid(String.valueOf(a));//警情代码
               alarm.setJtype("0");
               //修改设备状态
               serverHandler.equipmentService.updateExstate("一键报警",null,(String) list.get(0).get("deviceNumber"));
               switch (num) {
                  case "00":
                     if (fqbm.equals("0")) {
@@ -1728,18 +1727,24 @@
                     break;
               }
               //报文内容保存
               Message message = new Message();
               message.setEnumber(ChannelName);
               message.setContent(body);
               message.setTime(df.format(day));
               serverHandler.messageService.save(message);
               if(alarm.getWaringType().equals("紧急求救")){
                  //警情分发测试代码
                  //查询所有闲置的接警员
                  List<Map<String, Object>> policeList = serverHandler.alarmService.queryPolice();
                  List<Map<String, Object>> online_police = new ArrayList<>();
                  List<Map<String, Object>> zx_police = new ArrayList<>();
                  List<User> policeList = serverHandler.alarmService.queryPolice();
                  List<User> online_police = new ArrayList<>();
                  List<User> zx_police = new ArrayList<>();
                  for (int i = 0; i < policeList.size(); i++) {
                     //System.out.println(policeList.get(i).get("real_name"));
                     if(policeList.get(i).get("online_status").equals(1)){
                     if(policeList.get(i).getOnline_status().equals("1")){
                           zx_police.add(policeList.get(i));
                        if (policeList.get(i).get("work_status").equals(0)){
                        if (policeList.get(i).getWork_status().equals("0")){
                           online_police.add(policeList.get(i));
                        }
                     }
@@ -1764,28 +1769,30 @@
                  //将闲置状态的人员id存入数组
                  for (int i = 0; i < online_police.size(); i++) {
                     policeIdArr.add(online_police.get(i).get("id"));
                     policeIdArr.add(online_police.get(i).getId());
                  }
                  //通过id计算接警员最后一次接警时间,倒序返回闲置最久的人员,派发任务
                  List<Map<String, Object>> police = serverHandler.alarmService.queryPoliceTime(policeIdArr);
                  List<AlarmVO> police = serverHandler.alarmService.queryPoliceTime(policeIdArr);
                  if (police.size() != 0){
                     alarm.setAlarmId( police.get(0).get("alarmId").toString());
                     alarm.setAlarmPeople( police.get(0).get("alarmPeople").toString());
                     alarm.setAlarmId( police.get(0).getAlarmId().toString());
                     alarm.setAlarmPeople( police.get(0).getAlarmPeople().toString());
                     alarm.setPhoneNumber( police.get(0).getPhoneNumber().toString());
                     Date date = new Date();
                     SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     alarm.setJjTime(dateFormat.format(date));
                     serverHandler.alarmService.updatePoliceStatus( police.get(0).get("alarmId").toString(),"1");
                     serverHandler.alarmService.updatePoliceStatus( police.get(0).getAlarmId().toString(),"1");
                  }else {
                     alarm.setAlarmId( online_police.get(0).get("id").toString());
                     alarm.setAlarmPeople(online_police.get(0).get("name").toString());
                     alarm.setAlarmId( online_police.get(0).getId().toString());
                     alarm.setAlarmPeople(online_police.get(0).getName().toString());
                     alarm.setPhoneNumber(online_police.get(0).getPhone().toString());
                     Date date = new Date();
                     SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                     alarm.setJjTime(dateFormat.format(date));
                     serverHandler.alarmService.updatePoliceStatus(online_police.get(0).get("id").toString(),"1");
                     serverHandler.alarmService.updatePoliceStatus(online_police.get(0).getId().toString(),"1");
                  }
               }