Просмотр исходного кода

Merge remote-tracking branch 'origin/CIS_V1.0' into CIS_V1.0

zhj 2 лет назад
Родитель
Сommit
3d7227ce25
94 измененных файлов с 1719 добавлено и 105 удалено
  1. 14 0
      src/main/java/com/welampiot/common/InterfaceResultEnum.java
  2. 0 2
      src/main/java/com/welampiot/controller/AcDeviceController.java
  3. 352 68
      src/main/java/com/welampiot/controller/AlarmController.java
  4. 368 0
      src/main/java/com/welampiot/controller/ArchiveManageController.java
  5. 0 2
      src/main/java/com/welampiot/controller/DataController.java
  6. 0 2
      src/main/java/com/welampiot/controller/SmartLockController.java
  7. 2 0
      src/main/java/com/welampiot/dao/AirSwitchInfoDao.java
  8. 2 0
      src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java
  9. 11 0
      src/main/java/com/welampiot/dao/ArchiveInfoAttachmentDao.java
  10. 14 0
      src/main/java/com/welampiot/dao/ArchiveManageDao.java
  11. 3 0
      src/main/java/com/welampiot/dao/ChargeDao.java
  12. 5 0
      src/main/java/com/welampiot/dao/EmergencyDao.java
  13. 1 0
      src/main/java/com/welampiot/dao/EmergencyVideoDao.java
  14. 3 0
      src/main/java/com/welampiot/dao/EnvmonitorDao.java
  15. 2 0
      src/main/java/com/welampiot/dao/GlobalLocationDao.java
  16. 2 0
      src/main/java/com/welampiot/dao/LampDao.java
  17. 2 0
      src/main/java/com/welampiot/dao/ManholeDao.java
  18. 2 0
      src/main/java/com/welampiot/dao/RepairPersonnelDao.java
  19. 9 0
      src/main/java/com/welampiot/dao/RfidDao.java
  20. 2 0
      src/main/java/com/welampiot/dao/ScreenDao.java
  21. 1 0
      src/main/java/com/welampiot/dao/SectionDao.java
  22. 4 0
      src/main/java/com/welampiot/dao/SendStatusDao.java
  23. 6 0
      src/main/java/com/welampiot/dao/VideoMonitorDao.java
  24. 2 0
      src/main/java/com/welampiot/dao/WaterImmersionDevInfoDao.java
  25. 2 0
      src/main/java/com/welampiot/dao/WifiDao.java
  26. 2 0
      src/main/java/com/welampiot/dto/AllAlarmInfoLogDTO.java
  27. 12 0
      src/main/java/com/welampiot/dto/ArchiveInfoAttachmentDTO.java
  28. 38 0
      src/main/java/com/welampiot/dto/ArchiveManageDTO.java
  29. 6 0
      src/main/java/com/welampiot/dto/EmergencyDTO.java
  30. 7 0
      src/main/java/com/welampiot/dto/RepairPersonnelDTO.java
  31. 16 0
      src/main/java/com/welampiot/dto/RfidDTO.java
  32. 1 1
      src/main/java/com/welampiot/dto/SendStatusDTO.java
  33. 2 0
      src/main/java/com/welampiot/service/AirSwitchInfoService.java
  34. 1 0
      src/main/java/com/welampiot/service/AllAlarmInfoLogService.java
  35. 11 0
      src/main/java/com/welampiot/service/ArchiveInfoAttachmentService.java
  36. 16 0
      src/main/java/com/welampiot/service/ArchiveManageService.java
  37. 2 0
      src/main/java/com/welampiot/service/ChargeService.java
  38. 5 0
      src/main/java/com/welampiot/service/EmergencyService.java
  39. 1 0
      src/main/java/com/welampiot/service/EmergencyVideoService.java
  40. 2 0
      src/main/java/com/welampiot/service/EnvmonitorService.java
  41. 2 0
      src/main/java/com/welampiot/service/GlobalLocationService.java
  42. 2 0
      src/main/java/com/welampiot/service/LampService.java
  43. 2 0
      src/main/java/com/welampiot/service/ManholeService.java
  44. 4 0
      src/main/java/com/welampiot/service/RepairPersonnelService.java
  45. 9 0
      src/main/java/com/welampiot/service/RfidService.java
  46. 2 1
      src/main/java/com/welampiot/service/ScreenService.java
  47. 1 0
      src/main/java/com/welampiot/service/SectionService.java
  48. 3 0
      src/main/java/com/welampiot/service/SendStatusService.java
  49. 4 0
      src/main/java/com/welampiot/service/VideoMonitorService.java
  50. 3 0
      src/main/java/com/welampiot/service/WaterImmersionDevInfoService.java
  51. 2 0
      src/main/java/com/welampiot/service/WifiService.java
  52. 5 0
      src/main/java/com/welampiot/service/impl/AirSwitchInfoServiceImpl.java
  53. 4 0
      src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java
  54. 29 0
      src/main/java/com/welampiot/service/impl/ArchiveInfoAttachmentServiceImpl.java
  55. 37 0
      src/main/java/com/welampiot/service/impl/ArchiveManageServiceImpl.java
  56. 5 0
      src/main/java/com/welampiot/service/impl/ChargeServiceImpl.java
  57. 13 0
      src/main/java/com/welampiot/service/impl/EmergencyServiceImpl.java
  58. 1 0
      src/main/java/com/welampiot/service/impl/EmergencyVideoServiceImpl.java
  59. 5 0
      src/main/java/com/welampiot/service/impl/EnvmonitorServiceImpl.java
  60. 5 0
      src/main/java/com/welampiot/service/impl/GlobalLocationServiceImpl.java
  61. 4 0
      src/main/java/com/welampiot/service/impl/LampServiceImpl.java
  62. 6 0
      src/main/java/com/welampiot/service/impl/ManholeServiceImpl.java
  63. 8 0
      src/main/java/com/welampiot/service/impl/RepairPersonnelServiceImpl.java
  64. 19 0
      src/main/java/com/welampiot/service/impl/RfidServiceImpl.java
  65. 4 0
      src/main/java/com/welampiot/service/impl/ScreenServiceImpl.java
  66. 3 0
      src/main/java/com/welampiot/service/impl/SectionServiceImpl.java
  67. 8 0
      src/main/java/com/welampiot/service/impl/SendStatusServiceImpl.java
  68. 12 0
      src/main/java/com/welampiot/service/impl/VideoMonitorServiceImpl.java
  69. 5 0
      src/main/java/com/welampiot/service/impl/WaterImmersionDevInfoServiceImpl.java
  70. 5 0
      src/main/java/com/welampiot/service/impl/WifiServiceImpl.java
  71. 3 3
      src/main/java/com/welampiot/utils/ExcelUtil.java
  72. 110 11
      src/main/java/com/welampiot/utils/ToolUtils.java
  73. 23 0
      src/main/java/com/welampiot/vo/ArchiveManageVO.java
  74. 17 0
      src/main/resources/mapper/AirSwitchInfoMapper.xml
  75. 5 0
      src/main/resources/mapper/AllAlarmInfoLogMapper.xml
  76. 27 0
      src/main/resources/mapper/ArchiveInfoAttachmentMapper.xml
  77. 113 0
      src/main/resources/mapper/ArchiveManageMapper.xml
  78. 17 0
      src/main/resources/mapper/ChargeMapper.xml
  79. 40 0
      src/main/resources/mapper/EmergencyMapper.xml
  80. 17 0
      src/main/resources/mapper/EnvmonitorMapper.xml
  81. 7 0
      src/main/resources/mapper/GlobalLocationMapper.xml
  82. 16 0
      src/main/resources/mapper/LampMapper.xml
  83. 16 0
      src/main/resources/mapper/ManholeMapper.xml
  84. 22 1
      src/main/resources/mapper/RepairPersonnelMapper.xml
  85. 23 0
      src/main/resources/mapper/RfidMapper.xml
  86. 17 0
      src/main/resources/mapper/ScreenMapper.xml
  87. 7 1
      src/main/resources/mapper/SectionMapper.xml
  88. 23 4
      src/main/resources/mapper/SendStatusMapper.xml
  89. 22 0
      src/main/resources/mapper/VideoMonitorMapper.xml
  90. 18 0
      src/main/resources/mapper/WaterImmersionDevInfoMapper.xml
  91. 19 0
      src/main/resources/mapper/WifiMapper.xml
  92. 7 0
      src/main/resources/prod/application.yml
  93. 6 0
      src/main/resources/test/application.yml
  94. 1 9
      src/test/java/com/welampiot/service/UserServiceTest.java

+ 14 - 0
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -243,6 +243,20 @@ public enum InterfaceResultEnum {
 
     // 告警维修 0800-0899
     REPAIR_INFOR_ERROR("0800","暂无维修信息","No maintenance information","Пока нет информации о ремонте"),
+    REPAIR_PARAM_EMPTY_ERROR("0801","编号与名字不能同时为空","Number and name cannot both be empty","Номер и имя не могут быть пустыми одновременно"),
+    CHECK_INFORMATION_ERROR("0802","无此设备,请检查相关输入信息","No such device, please check the relevant input information","Без этого устройства проверьте соответствующую входную информацию"),
+
+    //维修人员 0900-0999
+    PERSON_BIND_ERROR("0900","推送人员已经绑定了","The pusher is already bound","толкатель уже связал"),
+    PERSON_OVER_ERROR("0901","推送人员不能超过10个","No more than 10 people can be pushed","Численность персонала не должна превышать 10 человек"),
+
+    //档案管理 1000-1999
+    LACK_FILE_NAME_ERROR("0901","请输入名称","Please enter a name","Введите имя"),
+    LACK_FILE_NUMBER_ERROR("0902","请输入编号","Please enter the number","Пожалуйста, войдите в номер."),
+    REPEAT_FILE_NAME_ERROR("0903","文件名称已存在","File name already exists","Имя файла уже существует"),
+    LACK_FILE_ERROR("0904","缺少文件","Missing file","Отсутствие документов"),
+    FILE_TYPE_ERROR("0905","文件不支持","File type not supported","Тип файла не поддерживается "),
+    UNKNOW_FILE_ERROR("0906","文件未知错误","Unknown file error","Файл Неизвестная ошибка"),
 
     ;
     private String code;

+ 0 - 2
src/main/java/com/welampiot/controller/AcDeviceController.java

@@ -10,8 +10,6 @@ import com.welampiot.service.AcDevInfoService;
 import com.welampiot.utils.ExcelUtil;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.AcDevInfoVO;
-import jdk.nashorn.internal.runtime.Version;
-import org.apache.commons.collections4.Put;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.DigestUtils;
 import org.springframework.web.bind.annotation.CrossOrigin;

+ 352 - 68
src/main/java/com/welampiot/controller/AlarmController.java

@@ -4,6 +4,7 @@ import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.*;
 import com.welampiot.service.*;
+import com.welampiot.service.impl.WifiServiceImpl;
 import com.welampiot.utils.ExcelUtil;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.*;
@@ -70,6 +71,18 @@ public class AlarmController {
     private VideoMonitorService videoMonitorService;
     @Autowired
     private EmergencyVideoService emergencyVideoService;
+    @Autowired
+    private WifiServiceImpl WifiService;
+    @Autowired
+    private RfidService rfidService;
+    @Autowired
+    private ScreenService screenService;
+    @Autowired
+    private ChargeService chargeService;
+    @Autowired
+    private EnvmonitorService envmonitorService;
+    @Autowired
+    private AirSwitchInfoService airSwitchInfoService;
 
     /**
      * 获取告警列表
@@ -278,20 +291,19 @@ public class AlarmController {
     public BaseResult<?> data(HttpServletRequest request) {
         int version = (int) toolUtils.getRequestContent(request,"version",1);
         AllAlarmInfoLogVO allAlarmInfoLogVO = new AllAlarmInfoLogVO();
-        AllAlarmInfoLogVO allAlarmInfoLogVO1 = new AllAlarmInfoLogVO();
-        UserDTO user = toolUtils.getUser(request);
-        Integer role = user.getRole();
-        if (role != ToolUtils.SYSTEM_ADMIN){
-            //不是超级用户
-            allAlarmInfoLogVO.setSectionList(toolUtils.getSectionList(request));
-        }
+        AllAlarmInfoLogVO vo = new AllAlarmInfoLogVO();
+
+        List<String> sectionList = toolUtils.getSectionList(request);
+        allAlarmInfoLogVO.setSectionList(sectionList);
+        if (sectionList == null || sectionList.size() == 0) return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version);
+
 //        allAlarmInfoLogVO1.setUnTreatedCount(allAlarmInfoLogService.getUnTreatedCountByStatus(allAlarmInfoLogVO));
 //        allAlarmInfoLogVO1.setProcessingCount(allAlarmInfoLogService.getProcessingCountByStatus(allAlarmInfoLogVO));
-        allAlarmInfoLogVO1.setHandling(allAlarmInfoLogService.getProcessingCountByStatus(allAlarmInfoLogVO));
-        allAlarmInfoLogVO1.setUnAssigned(allAlarmInfoLogService.getUnTreatedCountByStatus(allAlarmInfoLogVO));
-        allAlarmInfoLogVO1.setHandleCount(allAlarmInfoLogService.getHandleCountByStatus(allAlarmInfoLogVO));
-        allAlarmInfoLogVO1.setTotal(allAlarmInfoLogService.getAlarmTotalByStatus(allAlarmInfoLogVO));
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,allAlarmInfoLogVO1);
+        vo.setHandling(allAlarmInfoLogService.getProcessingCountByStatus(allAlarmInfoLogVO));
+        vo.setUnAssigned(allAlarmInfoLogService.getUnTreatedCountByStatus(allAlarmInfoLogVO));
+        vo.setHandleCount(allAlarmInfoLogService.getHandleCountByStatus(allAlarmInfoLogVO));
+        vo.setTotal(allAlarmInfoLogService.getAlarmTotalByStatus(allAlarmInfoLogVO));
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
     }
 
     /**
@@ -497,19 +509,23 @@ public class AlarmController {
     @RequestMapping(value = "/alarmNav", method = RequestMethod.POST)
     public BaseResult<?> alarmNav(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
-        UserDTO user = toolUtils.getUser(request);
-        List<SectionDTO> allList = null;
+//        UserDTO user = toolUtils.getUser(request);
+//        List<SectionDTO> allList = null;
+//        SectionDTO sectionDTO = new SectionDTO();
+//        if (user.getRole() == ToolUtils.SYSTEM_ADMIN){
+//            //超级用户(id,pid)
+//             allList = sectionService.getAllList(sectionDTO);
+//        }else {
+//            List sectionList = toolUtils.getSectionList(request);
+//            sectionDTO.setSectionList(sectionList);
+//            allList = sectionService.getAllList(sectionDTO);
+//        }
         SectionDTO sectionDTO = new SectionDTO();
-        if (user.getRole() == ToolUtils.SYSTEM_ADMIN){
-            //超级用户(id,pid)
-             allList = sectionService.getAllList(sectionDTO);
-        }else {
-            List sectionList = toolUtils.getSectionList(request);
-            sectionDTO.setSectionList(sectionList);
-            allList = sectionService.getAllList(sectionDTO);
-        }
+        List sList = toolUtils.getSectionList(request);
+        sectionDTO.setSectionList(sList);
+        List<SectionDTO> allList = sectionService.getAllList(sectionDTO);
         List<GlobalLocationDTO> globalList = new ArrayList<>();
-        if (allList == null) return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,globalList);
+        if (allList == null || allList.size() == 0) return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,globalList);
 
         //获取pid,并去重
         Set<Integer> pidList = new HashSet<>();
@@ -545,17 +561,43 @@ public class AlarmController {
     public BaseResult<?> sendUserList(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
         Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
-        int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
-        int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
-        SendStatusVO sendStatusVO = new SendStatusVO();
-        sendStatusVO.setPage(count * (page - 1));
-        sendStatusVO.setCount(count);
-        sendStatusVO.setSectionList(toolUtils.getSectionList(request));
-        sendStatusVO.setSectionId(sectionId);
-        List<SendStatusDTO> sendPersonList = sendStatusService.getSendPersonList(sendStatusVO);
-        SendStatusVO vo = new SendStatusVO();
-        vo.setList(sendPersonList);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
+        if (sectionId == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+
+        RepairPersonnelDTO repairPersonnel = new RepairPersonnelDTO();
+
+        SectionDTO sectionDTO = new SectionDTO();
+        sectionDTO.setId(sectionId);
+        SectionDTO dataByVO = sectionService.getDataByVO(sectionDTO);
+        if (dataByVO == null || dataByVO.getAlarmUser() == null){
+            List<RepairPersonnelDTO>list = new ArrayList<>();
+            repairPersonnel.setList(list);
+            return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,repairPersonnel);
+        }
+        String[] userIdList = dataByVO.getAlarmUser().split(",");
+        List<RepairPersonnelDTO>list = repairPersonnelService.getRepairPersonnelByIds(userIdList);
+        SendStatusDTO dto = new SendStatusDTO();
+        dto.setSectionId(sectionId);
+        List<SendStatusDTO> sectionUsers = sendStatusService.getSectionUsers(dto);
+        for (RepairPersonnelDTO item:list) {
+            Integer isset = 0;
+            for (SendStatusDTO statusDTO:sectionUsers) {
+               if (item.getId().equals(statusDTO.getRepairUserId())){
+                   isset = 1;
+                    item.setIsPhone(statusDTO.getIsPhone());
+                    item.setIsEmail(statusDTO.getIsEmail());
+                    item.setStatus(statusDTO.getStatus());
+                    break;
+               }
+            }
+            if (isset == 0){
+                item.setIsPhone(0);
+                item.setIsEmail(0);
+                item.setStatus(0);
+            }
+        }
+        repairPersonnel.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,repairPersonnel);
     }
 
     /**
@@ -570,6 +612,29 @@ public class AlarmController {
         Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
         if (id == 0 || sectionId == 0)
             return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+
+        SectionDTO sectionDTO = new SectionDTO();
+        sectionDTO.setId(sectionId);
+        SectionDTO dataByVO = sectionService.getDataByVO(sectionDTO);
+        if (dataByVO == null){
+            return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+        }
+        String[] userIdList = dataByVO.getAlarmUser().split(",");
+        if (userIdList == null) return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version);
+
+        ArrayList<String> newList = new ArrayList<>();
+        for (String userId:userIdList) {
+            if (!userId.isEmpty() && !id.equals(Integer.parseInt(userId))){
+               newList.add(userId);
+            }
+        }
+        //更新section
+        String userJoin = "";
+        if (newList != null){
+            userJoin = String.join(",", newList);
+        }
+        sectionDTO.setAlarmUser(userJoin);
+        sectionService.updateSectionById(sectionDTO);
         sendStatusService.deleteSendStatusData(sectionId,id);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
@@ -586,10 +651,36 @@ public class AlarmController {
         Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
         if (id == 0 || sectionId == 0)
             return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
-        SendStatusDTO sendStatusDTO = new SendStatusDTO();
-        sendStatusDTO.setSectionId(sectionId);
-        sendStatusDTO.setRepairUserid(id);
-        sendStatusService.addSendStatusData(sendStatusDTO);
+
+        SectionDTO sectionDTO = new SectionDTO();
+        sectionDTO.setId(sectionId);
+        SectionDTO dataByVO = sectionService.getDataByVO(sectionDTO);
+        ArrayList<String> newList = new ArrayList<>();
+        Integer personCount = 0;
+        if (dataByVO != null && dataByVO.getAlarmUser() != null){
+            String[] userIdList = dataByVO.getAlarmUser().split(",");
+            newList.addAll(Arrays.asList(userIdList));
+            boolean contains = newList.contains(id);
+            if (contains == true) return toolUtils.response(InterfaceResultEnum.PERSON_BIND_ERROR, version);
+            personCount = repairPersonnelService.getCountRepairPersonnel(userIdList);
+        }
+        if (personCount >= 10)  return toolUtils.response(InterfaceResultEnum.PERSON_OVER_ERROR, version);
+        newList.add(id.toString());
+        //更新section
+        String userJoin = "";
+        if (newList != null){
+            userJoin = String.join(",", newList);
+        }
+        sectionDTO.setAlarmUser(userJoin);
+        sectionService.updateSectionById(sectionDTO);
+        SendStatusDTO statusDTO = new SendStatusDTO();
+        statusDTO.setSectionId(sectionId);
+        statusDTO.setRepairUserId(id);
+        statusDTO.setIsPhone(1);
+        statusDTO.setIsEmail(1);
+        statusDTO.setType(version);
+
+        sendStatusService.addSendStatusData(statusDTO);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
 
@@ -607,12 +698,20 @@ public class AlarmController {
         Integer isEmail = (Integer) toolUtils.getRequestContent(request,"isEmail",1);
         if (id == 0 || sectionId == 0)
             return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
-        SendStatusDTO sendStatusDTO = new SendStatusDTO();
-        sendStatusDTO.setSectionId(sectionId);
-        sendStatusDTO.setRepairUserid(id);
-        sendStatusDTO.setIsPhone(isPhone);
-        sendStatusDTO.setIsEmail(isEmail);
-        sendStatusService.updateSendStatusData(sendStatusDTO);
+        SendStatusDTO statusDTO = new SendStatusDTO();
+        statusDTO.setSectionId(sectionId);
+        statusDTO.setRepairUserId(id);
+        statusDTO.setIsPhone(isPhone);
+        statusDTO.setIsEmail(isEmail);
+        statusDTO.setType(version);
+       List<SendStatusDTO>list = sendStatusService.getSectionUsers(statusDTO);
+       if (list == null || list.get(0).getId() == null){
+           //添加
+           sendStatusService.addSendStatusData(statusDTO);
+       }else {
+           //更新
+           sendStatusService.updateSendStatusData(statusDTO);
+       }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
 
@@ -631,9 +730,16 @@ public class AlarmController {
             return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
         SendStatusDTO sendStatusDTO = new SendStatusDTO();
         sendStatusDTO.setSectionId(sectionId);
-        sendStatusDTO.setRepairUserid(id);
+        sendStatusDTO.setRepairUserId(id);
+        List<SendStatusDTO>list = sendStatusService.getSectionUsers(sendStatusDTO);
         sendStatusDTO.setStatus(status);
-        sendStatusService.updateCloseStatus(sendStatusDTO);
+        if (list == null || list.get(0).getId() == null){
+            //添加
+            sendStatusService.addCloseStatus(sendStatusDTO);
+        }else {
+            //更新
+            sendStatusService.updateCloseStatus(sendStatusDTO);
+        }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
 
@@ -645,11 +751,21 @@ public class AlarmController {
     @RequestMapping(value = "/emAlarmHistory", method = RequestMethod.POST)
     public BaseResult<?> emAlarmHistory(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
-        List<Integer> sectionList = toolUtils.getSectionList(request);
-        List<EmergencyInfoLogDTO> list = emergencyInfoLogService.getEmergencyInfoLogListBySectionList(sectionList);
-        EmergencyInfoLogVO emergencyInfoLogVO = new EmergencyInfoLogVO();
-        emergencyInfoLogVO.setList(list);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,emergencyInfoLogVO);
+//
+        EmergencyVO emergencyVO = new EmergencyVO();
+        List<EmergencyDTO> list = new ArrayList<>();
+        emergencyVO.setList(list);
+        List<String> sectionList = toolUtils.getSectionList(request);
+        if (sectionList == null || sectionList.size() == 0) return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, emergencyVO);
+
+        emergencyVO.setSectionList(sectionList);
+        List<EmergencyDTO> joinList = emergencyService.getEmergencyJoinList(emergencyVO);
+        for (EmergencyDTO dto:joinList) {
+            dto.setName(dto.getSection()+" "+dto.getModel());
+        }
+        emergencyVO.setSectionList(null);
+        emergencyVO.setList(joinList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,emergencyVO);
     }
 
     /**
@@ -663,27 +779,34 @@ public class AlarmController {
         Integer version = detailsVO.getVersion();
         Integer id = detailsVO.getId();
         if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
-        Integer sectionId = emergencyService.getEmergencySectionIdById(id);
-        List<EmergencyVideoDTO> emergencyVideoList = emergencyVideoService.getVideoIdByEmergencyId(id);
-        List<VideoMonitorDTO> videoList = videoMonitorService.getVideoListBySectionId(sectionId);
-        List<Integer> ids = new ArrayList<>();
-        emergencyVideoList.forEach(dto -> ids.add(dto.getVideoId()));
-        for (VideoMonitorDTO dto : videoList) {
-            boolean isFlag = false;
-            for (Integer integer : ids) {
-                if (dto.getId().equals(integer)) {
-                    dto.setSelect(1);
-                    isFlag = true;
-                    break;
+        List<EmergencyVideoDTO> videoIdList = emergencyVideoService.getVideoIdByEmergencyId(id);
+        EmergencyDTO sectionOne = emergencyService.getSectionOne(id);
+
+        VideoMonitorVO videoMonitor = new VideoMonitorVO();
+        ArrayList<VideoMonitorDTO> list = new ArrayList<>();
+        videoMonitor.setList(list);
+
+        if (sectionOne != null && sectionOne.getSectionId() != null){
+            List<VideoMonitorDTO> dataList = videoMonitorService.getDataList(sectionOne);
+            //取出videoIdList的videoId值再去重
+            HashSet<Integer> videoIds = new HashSet<>();
+            if (videoIdList != null){
+                for (EmergencyVideoDTO dto:videoIdList) {
+                    videoIds.add(dto.getVideoId());
                 }
             }
-            if (!isFlag) {
-                dto.setSelect(0);
+
+            for (VideoMonitorDTO dto:dataList) {
+                dto.setStatus(0);
+                if (videoIdList != null){
+                   if (videoIds.contains(dto.getId())){
+                       dto.setStatus(1);
+                   }
+                }
             }
+            videoMonitor.setList(dataList);
         }
-        VideoMonitorVO videoMonitorVO = new VideoMonitorVO();
-        videoMonitorVO.setList(videoList);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,videoMonitorVO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,videoMonitor);
     }
 
     /**
@@ -708,4 +831,165 @@ public class AlarmController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+    @RequestMapping(value = "/saveAlarmData", method = RequestMethod.POST)
+    public BaseResult<?> saveAlarmData(HttpServletRequest request) {
+        String number = request.getParameter("number");
+        String name = request.getParameter("name");
+        Integer areaId = request.getParameter("areaId") == null ? 0 : Integer.parseInt(request.getParameter("areaId"));
+        Integer sectionId = request.getParameter("sectionId") == null ? 0 : Integer.parseInt(request.getParameter("sectionId"));
+        String createTime = request.getParameter("createTime");
+        Integer devType = request.getParameter("devType") == null ? 0 : Integer.parseInt(request.getParameter("devType"));
+        Integer dType = request.getParameter("dType") == null ? 0 : Integer.parseInt(request.getParameter("dType"));
+        String alarmType = request.getParameter("alarmType");
+        Integer source = request.getParameter("source") == null ? 1 : Integer.parseInt(request.getParameter("source"));
+        Integer level = request.getParameter("level") == null ? 0 : Integer.parseInt(request.getParameter("level"));
+        Integer alarmStatus = request.getParameter("alarmStatus") == null ? 0 : Integer.parseInt(request.getParameter("alarmStatus"));
+        Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version"));
+
+        if (areaId == 0 || sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        if (number == null && name == null) return toolUtils.response(InterfaceResultEnum.REPAIR_PARAM_EMPTY_ERROR,version);
+        SectionDTO sectionDTO = new SectionDTO();
+        sectionDTO.setPid(areaId);
+        sectionDTO.setId(sectionId);
+        GlobalLocationDTO timeZoneData = globalLocationService.getTimeZoneData(sectionDTO);
+
+        HashMap<String,Object> where = new HashMap<>();
+        //HashMap<String,Object> where1 = new HashMap<>();
+        where.put("areaId",areaId);
+        where.put("sectionId",sectionId);
+        if (number != null){
+            String[] numberArr = number.split("_");
+            if (numberArr.length == 1 || (numberArr.length == 2 && numberArr[1].equals("1"))){
+                where.put("number",numberArr[0]);
+                where.put("mode",0);
+            }else {
+                where.put("number",numberArr[0]);
+                where.put("mode",1);
+            }
+        }
+        if (name != null){
+            where.put("name",name);
+        }
+        //设备类型(0 路灯,1 灯杆,2 井盖, 3 水浸,4配电柜)
+        Integer id = 0;
+        if (devType == 0){
+            //灯
+            LampInfoDTO oneLamp = lampService.getOneData(where);
+            if (oneLamp == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+            id = oneLamp.getId();
+        }else if (devType == 1){
+            //灯杆
+            //灯杆上的设备类型(0 路灯,1 摄像头,2 WIFI,3 RFID,4 LED屏,5 一键报警,6 充电桩,7 气象站,8 微基站,9 气象站)
+            if (dType == 0){
+                //灯
+                LampInfoDTO oneLamp = lampService.getOneData(where);
+                if (oneLamp == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneLamp.getId();
+            } else if (dType == 1) {
+                //1 摄像头
+                where.put("number",number);
+                where.put("name",name);
+
+                VideoMonitorDTO oneMonitor = videoMonitorService.getOneMonitor(where);
+                if (oneMonitor == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneMonitor.getId();
+            } else if (dType == 2) {
+                //2 WIFI  num
+                where.put("number",number);
+                where.put("name",name);
+                WifiDTO oneWifi = WifiService.getOneWifi(where);
+                if (oneWifi == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneWifi.getId();
+            } else if (dType == 3) {
+                //3 RFID  num
+                where.put("number",number);
+                where.put("name",name);
+                RfidDTO oneRifd = rfidService.getOneRifd(where);
+                if (oneRifd == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneRifd.getId();
+            } else if (dType == 4) {
+                //4 LED屏
+                where.put("number",number);
+                where.put("model",name);
+                ScreenDTO oneScreen = screenService.getOneScreen(where);
+                if (oneScreen == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneScreen.getId();
+            } else if (dType == 5) {
+                //5 一键报警,
+                where.put("number",number);
+                where.put("model",name);
+                EmergencyDTO oneEmergency = emergencyService.getOneEmergency(where);
+                if (oneEmergency == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneEmergency.getId();
+            } else if (dType == 6) {
+                //6 充电桩,
+                where.put("number",number);
+                where.put("model",name);
+                ChargeDTO oneCharge = chargeService.getOneCharge(where);
+                if (oneCharge == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneCharge.getId();
+            } else if (dType == 7) {
+                //7 气象站,8 微基站,9 音柱
+                where.put("number",number);
+                where.put("model",name);
+                EnvmonitorDTO oneEnvmonitor = envmonitorService.getOneEnvmonitor(where);
+                if (oneEnvmonitor == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+                id = oneEnvmonitor.getId();
+            }
+        } else if (devType == 2) {
+            //2 井盖, 3 水浸,4配电柜
+            where.put("number",number);
+            where.put("name",name);
+            ManholeDTO oneManhole = manholeService.getOneManhole(where);
+            if (oneManhole == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+            id = oneManhole.getId();
+        } else if (devType == 3) {
+            //3 水浸,4配电柜
+            where.put("number",number);
+            where.put("name",name);
+            WaterImmersionDevInfoDTO oneWaterImmersion = waterImmersionDevInfoService.getOneWaterImmersion(where);
+            if (oneWaterImmersion == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+            id = oneWaterImmersion.getId();
+        } else {
+            //4配电柜
+            where.put("address",number);
+            where.put("name",name);
+            AirSwitchInfoDTO oneAirSwitch = airSwitchInfoService.getOneAirSwitch(where);
+            if (oneAirSwitch == null) return toolUtils.response(InterfaceResultEnum.CHECK_INFORMATION_ERROR,version);
+            id = oneAirSwitch.getId();
+        }
+        AllAlarmInfoLogDTO allAlarmInfoLogDTO = new AllAlarmInfoLogDTO();
+        allAlarmInfoLogDTO.setLampId(id);
+        allAlarmInfoLogDTO.setStrAlarmType(alarmType);
+        Integer timezone = timeZoneData.getTimezone();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String newCreatetime = "";
+        Date parse = null;
+        if (timezone > 0){
+
+            try {
+                parse = dateFormat.parse(createTime);
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+            long stamp = parse.getTime() / 1000 - timezone * 3600;
+            newCreatetime = dateFormat.format(new Date(stamp));
+        }else if (timezone < 0){
+            try {
+                parse = dateFormat.parse(createTime);
+            } catch (ParseException e) {
+                throw new RuntimeException(e);
+            }
+            long stamp = parse.getTime() / 1000 + timezone * 3600;
+            newCreatetime = dateFormat.format(new Date(stamp));
+        }
+        allAlarmInfoLogDTO.setUpdateTime(newCreatetime);
+        allAlarmInfoLogDTO.setDevType(devType);
+        allAlarmInfoLogDTO.setDType(dType);
+        allAlarmInfoLogDTO.setSource(source);
+        allAlarmInfoLogDTO.setLevel(level);
+        allAlarmInfoLogDTO.setAlarmStatus(alarmStatus);
+        allAlarmInfoLogService.addAlarmData(allAlarmInfoLogDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 368 - 0
src/main/java/com/welampiot/controller/ArchiveManageController.java

@@ -0,0 +1,368 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.ArchiveInfoAttachmentDTO;
+import com.welampiot.dto.ArchiveManageDTO;
+import com.welampiot.service.ArchiveInfoAttachmentService;
+import com.welampiot.service.ArchiveManageService;
+import com.welampiot.utils.ExcelUtil;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.ArchiveManageVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+@CrossOrigin
+@RequestMapping("/archiveManage")
+public class ArchiveManageController {
+    @Autowired
+    private ToolUtils toolUtils;
+    @Autowired
+    private ArchiveManageService archiveManageService;
+    @Autowired
+    private ArchiveInfoAttachmentService archiveInfoAttachmentService;
+
+
+    @RequestMapping(value = "/save",method = RequestMethod.POST)
+    public BaseResult<?> save(HttpServletRequest request) {
+
+        Integer id = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id"));
+        Integer version = request.getParameter("versoin") == null ? 0 : Integer.parseInt(request.getParameter("versoin"));
+        Integer areaId = request.getParameter("areaId") == null ? 0 : Integer.parseInt(request.getParameter("areaId"));
+        Integer sectionId = request.getParameter("sectionId") == null ? 0 : Integer.parseInt(request.getParameter("sectionId"));
+        String name = request.getParameter("name");
+        Integer type = request.getParameter("type") == null ? 0 : Integer.parseInt(request.getParameter("type"));
+        String department = request.getParameter("department");
+        String number = request.getParameter("number");
+        if(areaId == 0) return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR, version);
+        if(sectionId == 0) return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR, version);
+        if (name == null || (name != null && name.isEmpty())) return toolUtils.response(InterfaceResultEnum.LACK_FILE_NAME_ERROR,version);
+        if (number == null || (number != null && number.isEmpty())) return toolUtils.response(InterfaceResultEnum.LACK_FILE_NUMBER_ERROR,version);
+
+        ArrayList<ArchiveInfoAttachmentDTO> list = new ArrayList<>();
+        ArchiveInfoAttachmentDTO dto = null;
+
+        Map<String, String[]> fileList = request.getParameterMap();
+        int i = 0; //每三个值都设置一次就会重设置
+        //set排序,从下标0开始
+        Set<String> setCollection = fileList.keySet();
+        Set<String> sortSet = new TreeSet<String>((o1, o2) -> o1.compareTo(o2));
+        sortSet.addAll(setCollection);
+        //查找相应的值 - 这里是二维数组
+        for (String key : sortSet) {//返回set类型,无序的
+            if (key.contains("fileList")) {
+                String[] values = fileList.get(key);
+                if (i == 0) {
+                    dto = new ArchiveInfoAttachmentDTO();
+                }
+                i++;
+                if (key.contains("name")) {
+                    dto.setName(values[0]);
+                }
+                if (key.contains("type")) {
+                    dto.setType(Integer.parseInt(values[0]));
+                }
+                if (key.contains("url")) {
+                    dto.setPath(values[0]);
+                }
+                if (i == 3) {
+                    if (dto.getName() != null && dto.getType() != null && dto.getPath() != null) {
+                        //三个必须都有值
+                        list.add(dto);
+                        i = 0;
+                    } else {
+                        //有一个没有值,返回
+                        return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
+                    }
+                }
+            }
+        }
+        if (i > 0 && i < 3) {
+            //有一个没有值,返回
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
+        }
+
+        //fileList
+        ArchiveManageDTO archiveManageDTO = new ArchiveManageDTO();
+        archiveManageDTO.setAreaId(areaId);
+        archiveManageDTO.setSectionId(sectionId);
+        archiveManageDTO.setName(name);
+        archiveManageDTO.setType(type);
+        archiveManageDTO.setDepartment(department);
+        archiveManageDTO.setNumber(number);
+        Date date = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String currentTime = dateFormat.format(date);
+        if (id == 0) {
+            //新建
+            Integer total = archiveManageService.chectCount(archiveManageDTO);
+            if (total > 0 ) toolUtils.response(InterfaceResultEnum.REPEAT_FILE_NAME_ERROR, 0);
+            archiveManageDTO.setCreateTime(currentTime);
+            archiveManageService.addData(archiveManageDTO);
+
+        } else {
+            //编辑
+            archiveManageDTO.setId(id);
+            Integer total = archiveManageService.chectCount(archiveManageDTO);
+            if (total > 0 ) toolUtils.response(InterfaceResultEnum.REPEAT_FILE_NAME_ERROR, 0);
+
+            archiveManageDTO.setUpdateTime(currentTime);
+            archiveManageService.updateData(archiveManageDTO);
+
+        }
+
+        if (list.size() != 0) {
+            ArchiveInfoAttachmentDTO archiveInfoAttachmentDTO = new ArchiveInfoAttachmentDTO();
+            archiveInfoAttachmentDTO.setArchiveInfoId(id);
+            archiveInfoAttachmentService.deleteData(archiveInfoAttachmentDTO);
+            for (ArchiveInfoAttachmentDTO item : list) {
+                item.setArchiveInfoId(archiveManageDTO.getId());
+                archiveInfoAttachmentService.addData(item);
+            }
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, 0);
+    }
+
+    @RequestMapping(value = "/getList",method = RequestMethod.POST)
+    public BaseResult<?> getList(HttpServletRequest request) {
+
+        Integer version = request.getParameter("versoin") == null ? 0 : Integer.parseInt(request.getParameter("versoin"));
+        Integer areaId = request.getParameter("areaId") == null ? 0 : Integer.parseInt(request.getParameter("areaId"));
+        Integer sectionId = request.getParameter("sectionId") == null ? 0 : Integer.parseInt(request.getParameter("sectionId"));
+        Integer page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
+        Integer count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
+        Integer type = request.getParameter("type") == null ? 0 : Integer.parseInt(request.getParameter("type"));
+        String keyword = request.getParameter("keyword");
+        String date = request.getParameter("date");
+        Integer download = request.getParameter("download") == null ? 0 : Integer.parseInt(request.getParameter("download"));
+
+        ArchiveManageVO vo = new ArchiveManageVO();
+        ArrayList<ArchiveManageDTO> list = new ArrayList<>();
+        vo.setList(list);
+        if (sectionId == 0){
+            List sectionList = toolUtils.getSectionList(request);
+            if (sectionList == null || sectionList.size() == 0) return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,vo);
+            vo.setSectionList(sectionList);
+        }
+        vo.setPage((page-1) * count);
+        vo.setCount(count);
+        vo.setType(type);
+        vo.setKeyword(keyword);
+        vo.setDate(date);
+        vo.setVersion(version);
+        vo.setAreaId(areaId);
+        vo.setSectionId(sectionId);
+        if (date != null){
+            String[] splits = date.split("/");
+            vo.setBeginTime(splits[0] + " 00:00:00");
+            if (splits.length == 1){
+                vo.setEndTime(splits[0] + " 23:59:59");
+            }else {
+                vo.setEndTime(splits[1] + " 23:59:59");
+            }
+        }
+        List<ArchiveManageDTO> joinList = archiveManageService.getJoinList(vo);
+        ArchiveInfoAttachmentDTO attachmentDTO = new ArchiveInfoAttachmentDTO();
+        ArchiveManageDTO archiveManageDTO = new ArchiveManageDTO();
+        if (download == 0){
+
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            for (ArchiveManageDTO item:joinList) {
+                ArrayList<ArchiveInfoAttachmentDTO> fileList0 = new ArrayList<>();
+                ArrayList<ArchiveInfoAttachmentDTO> fileList1 = new ArrayList<>();
+                ArrayList<ArchiveInfoAttachmentDTO> fileList2 = new ArrayList<>();
+                ArrayList<ArchiveInfoAttachmentDTO> fileList3 = new ArrayList<>();
+                ArrayList<ArchiveInfoAttachmentDTO> fileList4 = new ArrayList<>();
+
+                attachmentDTO.setArchiveInfoId(item.getId());
+                List<ArchiveInfoAttachmentDTO> dtos = archiveInfoAttachmentService.getOneData(attachmentDTO);
+
+                item.setCount0(0);
+                item.setCount1(0);
+                item.setCount2(0);
+                item.setCount3(0);
+                item.setCount4(0);
+
+                for (ArchiveInfoAttachmentDTO dto:dtos) {
+                    dto.setId(null);
+                    if(dto.getType() == 0){
+                        item.setCount0(item.getCount0() + 1);
+                        dto.setType(null);
+                        fileList0.add(dto);
+                    } else if (dto.getType() == 1) {
+                        item.setCount1(item.getCount1() + 1);
+                        dto.setType(null);
+                        fileList1.add(dto);
+                    }else if (dto.getType() == 2) {
+                        item.setCount2(item.getCount2() + 1);
+                        dto.setType(null);
+                        fileList2.add(dto);
+                    }else if (dto.getType() == 3) {
+                        item.setCount3(item.getCount3() + 1);
+                        dto.setType(null);
+                        fileList3.add(dto);
+                    }else if (dto.getType() == 4) {
+                        item.setCount4(item.getCount4() + 1);
+                        dto.setType(null);
+                        fileList4.add(dto);
+                    }
+                }
+                item.setFileList0(fileList0);
+                item.setFileList1(fileList1);
+                item.setFileList2(fileList2);
+                item.setFileList3(fileList3);
+                item.setFileList4(fileList4);
+                try {
+                    Date parse = dateFormat.parse(item.getCreateTime());
+                    item.setCreateTime(dateFormat.format(parse));
+                } catch (ParseException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+
+            Integer total = archiveManageService.getCount(vo);
+            archiveManageDTO.setList(joinList);
+            archiveManageDTO.setTotal(total);
+
+           // return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,archiveManageDTO);
+        }else {
+            String title;
+            if (version == 0) {
+                if (type == 0){
+                    title = "序号,项目名称,项目编号,立项档案,设计档案,验收档案,建档时间,归档情况";
+                } else if (type == 1) {
+                    title = "序号,设备名称,设备编号,档案,建档时间,归档情况";
+                }else {
+                    title = "序号,工单名称,工单号,档案,建档时间,归档情况";
+                }
+            } else if (version == 1) {
+                if (type == 0){
+                    title = "SN,Project Name,Project No.,Project Initiation File,Design File,Acceptance File,Filing Time,Filing Status";
+                }else if (type == 1) {
+                    title = "SN,Equipment Name,Equipment No.,File,File Creation Time,Archive Status";
+                }else{
+                    title = "SN,work order name,work order number,file,filing time,filing status";
+                }
+            } else {
+                if (type == 0){
+                    title = "Серийный номер,Название проекта,Номер проекта,Архив проекта,Архив проекта,Архив проекта,Архив приемки,Время архивирования,Архивное положение";
+                }else if (type == 1){
+                    title = "Серийный номер,название устройства,номер устройства,архив,время архивирования,архив ситуации";
+                }else{
+                    title = "Серийный номер,название рабочего листа,номер рабочего листа,архив,время архивирования,архивная ситуация";
+                }
+            }
+            List<String> titleList = Arrays.asList(title.split(","));
+            List<List<String>> contentList = new ArrayList<>();
+
+            int number = 1;//序号
+
+            for (ArchiveManageDTO item:joinList){
+                int index = 0; //下标
+                List<String> newString = new ArrayList<>();
+                newString.add(index++, String.valueOf(number));
+                newString.add(index++,item.getName());
+                newString.add(index++,item.getNumber());
+
+                attachmentDTO.setArchiveInfoId(item.getId());
+                List<ArchiveInfoAttachmentDTO> dtos = archiveInfoAttachmentService.getOneData(attachmentDTO);
+                if (dtos == null || dtos.size() == 0){
+                    newString.add(index++,"");
+                    if (type == 0){
+                        newString.add(index++,"");
+                        newString.add(index++,"");
+                    }
+                }else {
+                    int typeIndex = 0;
+                    for (ArchiveInfoAttachmentDTO dto:dtos) {
+                        if (dto.getType() == 2){
+                            //立项
+                            newString.add(index++,dto.getPath());
+                            typeIndex ++;
+                        } else if (dto.getType() == 1) {
+                            //设计
+                            newString.add(index++,dto.getPath());
+                            typeIndex ++;
+                        } else if (dto.getType() == 4) {
+                            //验收
+                            newString.add(index++,dto.getPath());
+                            typeIndex ++;
+                        }else {
+                            //其它
+                            newString.add(index++,dto.getPath());
+                        }
+                    }
+                    if (type == 0 && typeIndex < 3){
+                        for (int i = 3 - typeIndex; i >0; i -- ){
+                            newString.add(index++,"");
+                        }
+                    }
+                }
+                newString.add(index++,item.getCreateTime());
+                if (version == 0){
+                    if (item.getStatus() == 0){
+                        newString.add(index++,"未归档");
+                    } else if (item.getStatus() == 1) {
+                        newString.add(index++,"归档中");
+                    }else {
+                        newString.add(index++,"已归档");
+                    }
+                } else if (version == 1) {
+                    if (item.getStatus() == 0){
+                        newString.add(index++,"not archived");
+                    } else if (item.getStatus() == 1) {
+                        newString.add(index++,"being archived");
+                    }else {
+                        newString.add(index++,"archived");
+                    }
+                }else {
+                    if (item.getStatus() == 0){
+                        newString.add(index++,"Не архивировано");
+                    } else if (item.getStatus() == 1) {
+                        newString.add(index++,"Архивировано");
+                    }else {
+                        newString.add(index++,"Архивировано");
+                    }
+                }
+                contentList.add(joinList.indexOf(item),newString);
+                number ++;
+            }
+            String path = ExcelUtil.outExcel(titleList, contentList);
+            archiveManageDTO.setPath(path);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,archiveManageDTO);
+    }
+
+    @RequestMapping(value = "/updateFile",method = RequestMethod.POST)
+    public BaseResult<?> updateFile(HttpServletRequest request) throws Exception {
+        MultipartFile file = ((StandardMultipartHttpServletRequest) request).getFile("file");
+
+        String result = toolUtils.uploadFile(file, null, null,null);
+        if (result.equals("0001")){
+            //缺少文件
+            return toolUtils.response(InterfaceResultEnum.LACK_FILE_ERROR,0);
+        } else if (result.equals("0002")) {
+            //类型不对
+            return toolUtils.response(InterfaceResultEnum.FILE_TYPE_ERROR,0);
+        } else if (result.equals("0003")) {
+            //未知错误
+            return toolUtils.response(InterfaceResultEnum.UNKNOW_FILE_ERROR,0);
+        }
+        HashMap<String, String> hashMap = new HashMap<>();
+        hashMap.put("path",result);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,0,hashMap);
+
+    }
+
+}

+ 0 - 2
src/main/java/com/welampiot/controller/DataController.java

@@ -16,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;

+ 0 - 2
src/main/java/com/welampiot/controller/SmartLockController.java

@@ -3,9 +3,7 @@ package com.welampiot.controller;
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.SmartLockDevInfoDTO;
-import com.welampiot.dto.WifiDTO;
 import com.welampiot.service.SmartLockDevInfoService;
-import com.welampiot.service.WifiInfoLogService;
 import com.welampiot.service.WifiService;
 import com.welampiot.utils.ExcelUtil;
 import com.welampiot.utils.ToolUtils;

+ 2 - 0
src/main/java/com/welampiot/dao/AirSwitchInfoDao.java

@@ -3,6 +3,7 @@ package com.welampiot.dao;
 import com.welampiot.dto.AirSwitchInfoDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -37,4 +38,5 @@ public interface AirSwitchInfoDao {
     void updateAirSwitchStatusById(AirSwitchInfoDTO dto);
     List<AirSwitchInfoDTO> getAirSwitchAddressByEleBoxAddr(@Param("address") String address);
     Integer getAirSwitchCountByEleBoxAddr(@Param("address") String address);
+    AirSwitchInfoDTO getOneAirSwitch(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java

@@ -54,4 +54,6 @@ public interface AllAlarmInfoLogDao {
     Integer getOneLampPoleAlarmTotal(@Param("lampPoleId") Integer lampPoleId);
 
     List<AllAlarmInfoLogDTO> getOneLampPoleAlarmList(@Param("lampPoleId") Integer lampPoleId);
+
+    void addAlarmData(AllAlarmInfoLogDTO dto);
 }

+ 11 - 0
src/main/java/com/welampiot/dao/ArchiveInfoAttachmentDao.java

@@ -0,0 +1,11 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.ArchiveInfoAttachmentDTO;
+
+import java.util.List;
+
+public interface ArchiveInfoAttachmentDao {
+    void addData(ArchiveInfoAttachmentDTO dto);
+    void deleteData(ArchiveInfoAttachmentDTO dto);
+    List<ArchiveInfoAttachmentDTO> getOneData(ArchiveInfoAttachmentDTO dto);
+}

+ 14 - 0
src/main/java/com/welampiot/dao/ArchiveManageDao.java

@@ -0,0 +1,14 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.ArchiveManageDTO;
+import com.welampiot.vo.ArchiveManageVO;
+
+import java.util.List;
+
+public interface ArchiveManageDao {
+    void addData(ArchiveManageDTO dto);
+    void updateData(ArchiveManageDTO dto);
+    Integer chectCount(ArchiveManageDTO dto);
+    List<ArchiveManageDTO> getJoinList(ArchiveManageVO vo);
+    Integer getCount(ArchiveManageVO vo);
+}

+ 3 - 0
src/main/java/com/welampiot/dao/ChargeDao.java

@@ -3,6 +3,7 @@ package com.welampiot.dao;
 import com.welampiot.dto.ChargeDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -48,4 +49,6 @@ public interface ChargeDao {
     List<ChargeDTO> getChargeListByDTO(ChargeDTO dto);
 
     Integer getChargeTotalByDTO(ChargeDTO dto);
+
+    ChargeDTO getOneCharge(HashMap<String,Object> map);
 }

+ 5 - 0
src/main/java/com/welampiot/dao/EmergencyDao.java

@@ -4,6 +4,7 @@ import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.vo.EmergencyVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -37,4 +38,8 @@ public interface EmergencyDao {
     void updateEmergencyData(EmergencyDTO dto);
 
     List<EmergencyDTO> getEmergencyDevList(EmergencyVO vo);
+
+    List<EmergencyDTO> getEmergencyJoinList(EmergencyVO vo);
+    EmergencyDTO getSectionOne(Integer id);
+    EmergencyDTO getOneEmergency(HashMap<String,Object> map);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/EmergencyVideoDao.java

@@ -1,5 +1,6 @@
 package com.welampiot.dao;
 
+import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.dto.EmergencyVideoDTO;
 import org.apache.ibatis.annotations.Param;
 

+ 3 - 0
src/main/java/com/welampiot/dao/EnvmonitorDao.java

@@ -6,6 +6,7 @@ import com.welampiot.vo.EnvmonitorVO;
 import com.welampiot.vo.MapDataVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -69,4 +70,6 @@ public interface EnvmonitorDao {
 
     List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo);
     List<EnvmonitorDTO> getNewMapDataByVO(MapDataVO vo);
+    EnvmonitorDTO getOneEnvmonitor(HashMap<String,Object> map);
+
 }

+ 2 - 0
src/main/java/com/welampiot/dao/GlobalLocationDao.java

@@ -1,6 +1,7 @@
 package com.welampiot.dao;
 
 import com.welampiot.dto.GlobalLocationDTO;
+import com.welampiot.dto.SectionDTO;
 import com.welampiot.vo.GlobalLocationVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -50,4 +51,5 @@ public interface GlobalLocationDao {
     List<GlobalLocationDTO> getCityLampPoleCountList(GlobalLocationVO vo);
     GlobalLocationDTO getDataByDto(GlobalLocationDTO dto);
     List<GlobalLocationDTO> getAreaList(GlobalLocationDTO dto);
+    GlobalLocationDTO getTimeZoneData(SectionDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/LampDao.java

@@ -9,6 +9,7 @@ import com.welampiot.vo.LampLogVO;
 import com.welampiot.vo.LampVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 public interface LampDao {
@@ -66,4 +67,5 @@ public interface LampDao {
     List<LampInfoDTO> getListByDto(LampInfoDTO dto);
     void addByDto(LampInfoDTO dto);
     void updateById(LampInfoDTO dto);
+    LampInfoDTO getOneData(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/ManholeDao.java

@@ -3,6 +3,7 @@ package com.welampiot.dao;
 import com.welampiot.dto.ManholeDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -44,4 +45,5 @@ public interface ManholeDao {
     ManholeDTO getManholeDTOById(@Param("id") Integer id);
 
     ManholeDTO getTiltManholeByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+    ManholeDTO getOneManhole(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/RepairPersonnelDao.java

@@ -32,4 +32,6 @@ public interface RepairPersonnelDao {
     void deleteRepairPersonnelDataByDTO(@Param("id") Integer id);
 
     List<RepairPersonnelDTO> getRepairPersonnelDropDownListByDTO(@Param("id") Integer id);
+    List<RepairPersonnelDTO> getRepairPersonnelByIds(String[] ids);
+    Integer getCountRepairPersonnel(String[] ids);
 }

+ 9 - 0
src/main/java/com/welampiot/dao/RfidDao.java

@@ -0,0 +1,9 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.RfidDTO;
+
+import java.util.HashMap;
+
+public interface RfidDao {
+    RfidDTO getOneRifd(HashMap<String,Object> map);
+}

+ 2 - 0
src/main/java/com/welampiot/dao/ScreenDao.java

@@ -3,6 +3,7 @@ package com.welampiot.dao;
 import com.welampiot.dto.ScreenDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -40,4 +41,5 @@ public interface ScreenDao {
     Integer checkScreenData(ScreenDTO dto);
     ScreenDTO getScreenById(@Param("id")int id);
     void updateByDto(ScreenDTO dto);
+    ScreenDTO getOneScreen(HashMap<String,Object> map);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/SectionDao.java

@@ -23,4 +23,5 @@ public interface SectionDao {
     List<SectionDTO> getAllSectionList();
     List<SectionDTO> getAllSectionListByPid(@Param("id") Integer id);
     SectionDTO getDataByVO(SectionDTO dto);
+    void updateSectionById(SectionDTO dto);
 }

+ 4 - 0
src/main/java/com/welampiot/dao/SendStatusDao.java

@@ -25,4 +25,8 @@ public interface SendStatusDao {
     void updateSendStatusData(SendStatusDTO dto);
 
     void updateCloseStatus(SendStatusDTO dto);
+
+    List<SendStatusDTO>getSectionUsers(SendStatusDTO dto);
+
+    void addCloseStatus(SendStatusDTO dto);
 }

+ 6 - 0
src/main/java/com/welampiot/dao/VideoMonitorDao.java

@@ -1,9 +1,11 @@
 package com.welampiot.dao;
 
+import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.dto.VideoMonitorDTO;
 import com.welampiot.vo.VideoMonitorVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 public interface VideoMonitorDao {
@@ -47,4 +49,8 @@ public interface VideoMonitorDao {
     VideoMonitorDTO getVideoMonitorByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
 
     void updateIsAutoStatus(VideoMonitorDTO dto);
+
+    List<VideoMonitorDTO> getDataList(EmergencyDTO dto);
+
+    VideoMonitorDTO getOneMonitor(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/WaterImmersionDevInfoDao.java

@@ -4,6 +4,7 @@ import com.welampiot.dto.WaterImmersionDevInfoDTO;
 import com.welampiot.dto.WaterImmersionDevInfoLogDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -47,4 +48,5 @@ public interface WaterImmersionDevInfoDao {
     Integer getWaterImmersionNewCount(WaterImmersionDevInfoDTO dto);
     void updateDelayTimeByDto(WaterImmersionDevInfoDTO dto);
     int getTotalBySectionList(WaterImmersionDevInfoDTO dto);
+    WaterImmersionDevInfoDTO getOneWaterImmersion(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/WifiDao.java

@@ -3,6 +3,7 @@ package com.welampiot.dao;
 import com.welampiot.dto.WifiDTO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -34,4 +35,5 @@ public interface WifiDao {
     WifiDTO getWifiInfoDetails(WifiDTO dto);
     WifiDTO getTotalWifiCountAndFlow(WifiDTO dto);
     WifiDTO getWifiByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+    WifiDTO getOneWifi(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/dto/AllAlarmInfoLogDTO.java

@@ -31,4 +31,6 @@ public class AllAlarmInfoLogDTO {
     private String alarmInfo;
     private String beginDate;
     private String endDate;
+    private Integer source;
+    private Integer level;
 }

+ 12 - 0
src/main/java/com/welampiot/dto/ArchiveInfoAttachmentDTO.java

@@ -0,0 +1,12 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+@Data
+public class ArchiveInfoAttachmentDTO {
+    private Integer id;
+    private String name;
+    private String path;
+    private Integer archiveInfoId;
+    private Integer type;
+}

+ 38 - 0
src/main/java/com/welampiot/dto/ArchiveManageDTO.java

@@ -0,0 +1,38 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ArchiveManageDTO {
+    private Integer id;
+    private Integer type;
+    private String name;
+    private String number;
+    private Integer status;
+    private Integer areaId;
+    private Integer sectionId;
+    private String time;
+    private String planEndTime;
+    private String updateTime;
+    private String createTime;
+    private String department;
+    private String area;
+    private String section;
+    private List<ArchiveInfoAttachmentDTO> fileList;
+    private Integer count0;
+    private Integer count1;
+    private Integer count2;
+    private Integer count3;
+    private Integer count4;
+    private List<ArchiveInfoAttachmentDTO> fileList0;
+    private List<ArchiveInfoAttachmentDTO> fileList1;
+    private List<ArchiveInfoAttachmentDTO> fileList2;
+    private List<ArchiveInfoAttachmentDTO> fileList3;
+    private List<ArchiveInfoAttachmentDTO> fileList4;
+    private List<ArchiveManageDTO> list;
+    private Integer total;
+    private String path;
+
+}

+ 6 - 0
src/main/java/com/welampiot/dto/EmergencyDTO.java

@@ -3,6 +3,7 @@ package com.welampiot.dto;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * ClassName: EmergencyDTO
@@ -50,4 +51,9 @@ public class EmergencyDTO implements Serializable {
     private String expirationDate;
 
     private static final long serialVersionUID = 1L;
+
+    private String section;
+
+    private String beginDate;
+    private String name;
 }

+ 7 - 0
src/main/java/com/welampiot/dto/RepairPersonnelDTO.java

@@ -3,6 +3,7 @@ package com.welampiot.dto;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * ClassName: RepairPersonnelDTO
@@ -60,4 +61,10 @@ public class RepairPersonnelDTO implements Serializable {
     private Integer select;
 
     private static final long serialVersionUID = 1L;
+    private List<RepairPersonnelDTO> list;
+    private String department;
+    private String jobNumber;
+    private Integer isPhone;
+    private Integer isEmail;
+    private Integer status;
 }

+ 16 - 0
src/main/java/com/welampiot/dto/RfidDTO.java

@@ -0,0 +1,16 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class RfidDTO implements Serializable {
+    private Integer id;
+    private String model;
+    private String num;
+    private String remarks;
+    private Integer lampPoleId;
+    private String installDate;
+    private String expirationDate;
+}

+ 1 - 1
src/main/java/com/welampiot/dto/SendStatusDTO.java

@@ -19,7 +19,7 @@ public class SendStatusDTO implements Serializable {
 
     private Integer sectionId;
 
-    private Integer repairUserid; // 推送人员id
+    private Integer repairUserId; // 推送人员id
 
     private Integer isPhone; // 是否开启短信推送
 

+ 2 - 0
src/main/java/com/welampiot/service/AirSwitchInfoService.java

@@ -6,6 +6,7 @@ import com.welampiot.vo.AirSwitchDetailVO;
 import com.welampiot.vo.AirSwitchInfoReturnVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 
@@ -31,4 +32,5 @@ public interface AirSwitchInfoService {
     void updateAirSwitchStatusById(AirSwitchInfoDTO dto);
     List<AirSwitchInfoDTO> getAirSwitchAddressByEleBoxAddr(String address);
     Integer getAirSwitchCountByEleBoxAddr(String address);
+    AirSwitchInfoDTO getOneAirSwitch(HashMap<String,Object> map);
 }

+ 1 - 0
src/main/java/com/welampiot/service/AllAlarmInfoLogService.java

@@ -53,4 +53,5 @@ public interface AllAlarmInfoLogService {
     List<AllAlarmInfoLogDTO> getOneLampPoleAlarmList(Integer lampPoleId);
 
     List<AllAlarmInfoLogDTO> getLessLampAlarmInfoList(AllAlarmInfoLogVO vo);
+    void addAlarmData(AllAlarmInfoLogDTO dto);
 }

+ 11 - 0
src/main/java/com/welampiot/service/ArchiveInfoAttachmentService.java

@@ -0,0 +1,11 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.ArchiveInfoAttachmentDTO;
+
+import java.util.List;
+
+public interface ArchiveInfoAttachmentService {
+    void addData(ArchiveInfoAttachmentDTO dto);
+    void deleteData(ArchiveInfoAttachmentDTO dto);
+    List<ArchiveInfoAttachmentDTO> getOneData(ArchiveInfoAttachmentDTO dto);
+}

+ 16 - 0
src/main/java/com/welampiot/service/ArchiveManageService.java

@@ -0,0 +1,16 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.ArchiveManageDTO;
+import com.welampiot.vo.ArchiveManageVO;
+
+import java.util.List;
+
+public interface ArchiveManageService {
+    void addData(ArchiveManageDTO dto);
+    void updateData(ArchiveManageDTO dto);
+
+    Integer chectCount(ArchiveManageDTO dto);
+    List<ArchiveManageDTO> getJoinList(ArchiveManageVO vo);
+    Integer getCount(ArchiveManageVO vo);
+
+}

+ 2 - 0
src/main/java/com/welampiot/service/ChargeService.java

@@ -3,6 +3,7 @@ package com.welampiot.service;
 import com.welampiot.dto.ChargeDTO;
 import com.welampiot.vo.ChargeVO;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -36,4 +37,5 @@ public interface ChargeService {
     List<ChargeDTO> getChargeListByDTO(ChargeDTO dto);
 
     Integer getChargeTotalByDTO(ChargeDTO dto);
+    ChargeDTO getOneCharge(HashMap<String,Object> map);
 }

+ 5 - 0
src/main/java/com/welampiot/service/EmergencyService.java

@@ -3,6 +3,7 @@ package com.welampiot.service;
 import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.vo.EmergencyVO;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -36,4 +37,8 @@ public interface EmergencyService {
     void updateEmergencyData(EmergencyDTO dto);
 
     List<EmergencyDTO> getEmergencyDevList(EmergencyVO vo);
+
+    List<EmergencyDTO> getEmergencyJoinList(EmergencyVO vo);
+    EmergencyDTO getSectionOne(Integer id);
+    EmergencyDTO getOneEmergency(HashMap<String,Object> map);
 }

+ 1 - 0
src/main/java/com/welampiot/service/EmergencyVideoService.java

@@ -1,5 +1,6 @@
 package com.welampiot.service;
 
+import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.dto.EmergencyVideoDTO;
 
 import java.util.List;

+ 2 - 0
src/main/java/com/welampiot/service/EnvmonitorService.java

@@ -5,6 +5,7 @@ import com.welampiot.vo.EnvmonitorDetailVO;
 import com.welampiot.vo.EnvmonitorVO;
 import com.welampiot.vo.MapDataVO;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -66,4 +67,5 @@ public interface EnvmonitorService {
 
     List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo);
     List<EnvmonitorDTO> getNewMapDataByVO(MapDataVO vo);
+    EnvmonitorDTO getOneEnvmonitor(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/service/GlobalLocationService.java

@@ -1,6 +1,7 @@
 package com.welampiot.service;
 
 import com.welampiot.dto.GlobalLocationDTO;
+import com.welampiot.dto.SectionDTO;
 import com.welampiot.vo.GlobalLocationVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -35,4 +36,5 @@ public interface GlobalLocationService {
     List<GlobalLocationDTO> getCountryOfSectionList(Integer level, Integer version);
     GlobalLocationDTO getDataByDto(GlobalLocationDTO dto);
     List<GlobalLocationDTO> getAreaList(GlobalLocationDTO dto);
+    GlobalLocationDTO getTimeZoneData(SectionDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/service/LampService.java

@@ -7,6 +7,7 @@ import com.welampiot.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.text.ParseException;
+import java.util.HashMap;
 import java.util.List;
 
 public interface LampService {
@@ -66,4 +67,5 @@ public interface LampService {
     List<LampInfoDTO> getListByDto(LampInfoDTO dto);
     void addByDto(LampInfoDTO dto);
     void updateById(LampInfoDTO dto);
+    LampInfoDTO getOneData(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/service/ManholeService.java

@@ -3,6 +3,7 @@ package com.welampiot.service;
 import com.welampiot.dto.ManholeDTO;
 import com.welampiot.vo.ManholeVO;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -36,4 +37,5 @@ public interface ManholeService {
     ManholeDTO getManholeDTOById(Integer id);
 
     ManholeDTO getTiltManholeByLampPoleId(Integer lampPoleId);
+    ManholeDTO getOneManhole(HashMap<String,Object> map);
 }

+ 4 - 0
src/main/java/com/welampiot/service/RepairPersonnelService.java

@@ -5,6 +5,8 @@ import com.welampiot.vo.RepairPersonnelDetailsVO;
 import com.welampiot.vo.RepairPersonnelVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * ClassName: RepairPersonnelService
  * Package: com.welampiot.service
@@ -32,4 +34,6 @@ public interface RepairPersonnelService {
     void deleteRepairPersonnelDataByDTO(@Param("id") Integer id);
 
     RepairPersonnelVO getRepairPersonnelDropDownListByDTO(Integer id);
+    List<RepairPersonnelDTO> getRepairPersonnelByIds(String[] ids);
+    Integer getCountRepairPersonnel(String[] ids);
 }

+ 9 - 0
src/main/java/com/welampiot/service/RfidService.java

@@ -0,0 +1,9 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.RfidDTO;
+
+import java.util.HashMap;
+
+public interface RfidService {
+    RfidDTO getOneRifd(HashMap<String,Object> map);
+}

+ 2 - 1
src/main/java/com/welampiot/service/ScreenService.java

@@ -3,8 +3,8 @@ package com.welampiot.service;
 import com.welampiot.dto.ScreenDTO;
 import com.welampiot.vo.ScreenDetailsVO;
 import com.welampiot.vo.ScreenVO;
-import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -38,4 +38,5 @@ public interface ScreenService {
     Integer checkScreenData(ScreenDTO dto);
     ScreenDTO getScreenById(int id);
     void updateByDto(ScreenDTO dto);
+    ScreenDTO getOneScreen(HashMap<String,Object> map);
 }

+ 1 - 0
src/main/java/com/welampiot/service/SectionService.java

@@ -24,4 +24,5 @@ public interface SectionService {
     List<SectionDTO> getAllSectionList();
     List<SectionDTO> getAllSectionListByPid(@Param("id") Integer id);
     SectionDTO getDataByVO(SectionDTO dto);
+    void updateSectionById(SectionDTO dto);
 }

+ 3 - 0
src/main/java/com/welampiot/service/SendStatusService.java

@@ -24,4 +24,7 @@ public interface SendStatusService {
     void updateSendStatusData(SendStatusDTO dto);
 
     void updateCloseStatus(SendStatusDTO dto);
+    List<SendStatusDTO>getSectionUsers(SendStatusDTO dto);
+
+    void addCloseStatus(SendStatusDTO dto);
 }

+ 4 - 0
src/main/java/com/welampiot/service/VideoMonitorService.java

@@ -1,9 +1,11 @@
 package com.welampiot.service;
 
+import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.dto.VideoMonitorDTO;
 import com.welampiot.vo.VideoMonitorVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 public interface VideoMonitorService {
@@ -33,4 +35,6 @@ public interface VideoMonitorService {
     VideoMonitorDTO getTotalCarAndPeople(VideoMonitorVO vo);
     VideoMonitorDTO getVideoMonitorByLampPoleId(Integer lampPoleId);
     void updateIsAutoStatus(VideoMonitorDTO dto);
+    List<VideoMonitorDTO> getDataList(EmergencyDTO dto);
+    VideoMonitorDTO getOneMonitor(HashMap<String,Object> map);
 }

+ 3 - 0
src/main/java/com/welampiot/service/WaterImmersionDevInfoService.java

@@ -5,6 +5,8 @@ import com.welampiot.dto.WaterImmersionDevInfoLogDTO;
 import com.welampiot.vo.WaterImmersionDevInfoLogVO;
 import com.welampiot.vo.WaterImmersionDevInfoVO;
 
+import java.util.HashMap;
+
 /**
  * ClassName: WaterImmersionDevInfoService
  * Package: com.welampiot.service
@@ -40,4 +42,5 @@ public interface WaterImmersionDevInfoService {
     Integer getWaterImmersionNewCount(WaterImmersionDevInfoDTO dto);
     void updateDelayTimeByDto(WaterImmersionDevInfoDTO dto);
     int getTotalBySectionList(WaterImmersionDevInfoDTO dto);
+    WaterImmersionDevInfoDTO getOneWaterImmersion(HashMap<String,Object> map);
 }

+ 2 - 0
src/main/java/com/welampiot/service/WifiService.java

@@ -6,6 +6,7 @@ import com.welampiot.vo.WifiOutInfoVO;
 import com.welampiot.vo.WifiVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -36,4 +37,5 @@ public interface WifiService {
     WifiDTO getWifiInfoDetails(WifiDTO dto);
     WifiDTO getTotalWifiCountAndFlow(WifiDTO dto);
     WifiDTO getWifiByLampPoleId(Integer lampPoleId);
+    WifiDTO getOneWifi(HashMap<String,Object> map);
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/AirSwitchInfoServiceImpl.java

@@ -18,6 +18,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -162,4 +163,8 @@ public class AirSwitchInfoServiceImpl implements AirSwitchInfoService {
     public Integer getAirSwitchCountByEleBoxAddr(String address) {
         return airSwitchInfoDao.getAirSwitchCountByEleBoxAddr(address);
     }
+    @Override
+    public AirSwitchInfoDTO getOneAirSwitch(HashMap<String,Object> map){
+        return airSwitchInfoDao.getOneAirSwitch(map);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java

@@ -212,4 +212,8 @@ public class AllAlarmInfoLogServiceImpl implements AllAlarmInfoLogService {
     public List<AllAlarmInfoLogDTO> getLessLampAlarmInfoList(AllAlarmInfoLogVO vo) {
         return allAlarmInfoLogDao.getLessLampAlarmInfoList(vo);
     }
+    @Override
+    public void addAlarmData(AllAlarmInfoLogDTO dto){
+        allAlarmInfoLogDao.addAlarmData(dto);
+    }
 }

+ 29 - 0
src/main/java/com/welampiot/service/impl/ArchiveInfoAttachmentServiceImpl.java

@@ -0,0 +1,29 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.ArchiveInfoAttachmentDao;
+import com.welampiot.dto.ArchiveInfoAttachmentDTO;
+import com.welampiot.service.ArchiveInfoAttachmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ArchiveInfoAttachmentServiceImpl implements ArchiveInfoAttachmentService {
+    @Autowired
+    private ArchiveInfoAttachmentDao archiveInfoAttachmentDao;
+
+
+    @Override
+    public void addData(ArchiveInfoAttachmentDTO dto){
+        archiveInfoAttachmentDao.addData(dto);
+    }
+    @Override
+    public void deleteData(ArchiveInfoAttachmentDTO dto){
+        archiveInfoAttachmentDao.deleteData(dto);
+    }
+    @Override
+    public List<ArchiveInfoAttachmentDTO> getOneData(ArchiveInfoAttachmentDTO dto){
+        return archiveInfoAttachmentDao.getOneData(dto);
+    }
+}

+ 37 - 0
src/main/java/com/welampiot/service/impl/ArchiveManageServiceImpl.java

@@ -0,0 +1,37 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.ArchiveManageDao;
+import com.welampiot.dto.ArchiveManageDTO;
+import com.welampiot.service.ArchiveManageService;
+import com.welampiot.vo.ArchiveManageVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ArchiveManageServiceImpl implements ArchiveManageService {
+    @Autowired
+    private ArchiveManageDao archiveManageDao;
+
+    @Override
+    public void addData(ArchiveManageDTO dto) {
+        archiveManageDao.addData(dto);
+    }
+    @Override
+    public void updateData(ArchiveManageDTO dto){
+        archiveManageDao.updateData(dto);
+    }
+    @Override
+    public Integer chectCount(ArchiveManageDTO dto){
+        return archiveManageDao.chectCount(dto);
+    }
+    @Override
+    public List<ArchiveManageDTO> getJoinList(ArchiveManageVO vo){
+        return archiveManageDao.getJoinList(vo);
+    }
+    @Override
+    public Integer getCount(ArchiveManageVO vo){
+        return archiveManageDao.getCount(vo);
+    }
+}

+ 5 - 0
src/main/java/com/welampiot/service/impl/ChargeServiceImpl.java

@@ -11,6 +11,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -212,4 +213,8 @@ public class ChargeServiceImpl implements ChargeService {
     public Integer getChargeTotalByDTO(ChargeDTO dto) {
         return chargeDao.getChargeTotalByDTO(dto);
     }
+    @Override
+    public ChargeDTO getOneCharge(HashMap<String,Object> map){
+        return chargeDao.getOneCharge(map);
+    }
 }

+ 13 - 0
src/main/java/com/welampiot/service/impl/EmergencyServiceImpl.java

@@ -7,6 +7,7 @@ import com.welampiot.vo.EmergencyVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -77,4 +78,16 @@ public class EmergencyServiceImpl implements EmergencyService {
     public List<EmergencyDTO> getEmergencyDevList(EmergencyVO vo) {
         return emergencyDao.getEmergencyDevList(vo);
     }
+    @Override
+    public List<EmergencyDTO> getEmergencyJoinList(EmergencyVO vo){
+        return emergencyDao.getEmergencyJoinList(vo);
+    }
+    @Override
+    public EmergencyDTO getSectionOne(Integer id){
+        return emergencyDao.getSectionOne(id);
+    }
+    @Override
+    public EmergencyDTO getOneEmergency(HashMap<String,Object> map){
+        return emergencyDao.getOneEmergency(map);
+    }
 }

+ 1 - 0
src/main/java/com/welampiot/service/impl/EmergencyVideoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.welampiot.service.impl;
 
 import com.welampiot.dao.EmergencyVideoDao;
+import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.dto.EmergencyVideoDTO;
 import com.welampiot.service.EmergencyVideoService;
 import org.springframework.beans.factory.annotation.Autowired;

+ 5 - 0
src/main/java/com/welampiot/service/impl/EnvmonitorServiceImpl.java

@@ -13,6 +13,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -306,4 +307,8 @@ public class EnvmonitorServiceImpl implements EnvmonitorService {
     public List<EnvmonitorDTO> getNewMapDataByVO(MapDataVO vo) {
         return envmonitorDao.getNewMapDataByVO(vo);
     }
+    @Override
+    public EnvmonitorDTO getOneEnvmonitor(HashMap<String,Object> map){
+        return envmonitorDao.getOneEnvmonitor(map);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/GlobalLocationServiceImpl.java

@@ -2,6 +2,7 @@ package com.welampiot.service.impl;
 
 import com.welampiot.dao.GlobalLocationDao;
 import com.welampiot.dto.GlobalLocationDTO;
+import com.welampiot.dto.SectionDTO;
 import com.welampiot.service.GlobalLocationService;
 import com.welampiot.vo.GlobalLocationVO;
 import org.apache.ibatis.annotations.Param;
@@ -247,4 +248,8 @@ public class GlobalLocationServiceImpl implements GlobalLocationService {
     public List<GlobalLocationDTO> getAreaList(GlobalLocationDTO dto){
         return globalLocationDao.getAreaList(dto);
     }
+    @Override
+    public GlobalLocationDTO getTimeZoneData(SectionDTO dto){
+        return globalLocationDao.getTimeZoneData(dto);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/LampServiceImpl.java

@@ -782,4 +782,8 @@ public class LampServiceImpl implements LampService {
     public void updateById(LampInfoDTO dto){
          lampDao.updateById( dto);
     }
+    @Override
+    public LampInfoDTO getOneData(HashMap<String,Object> map){
+        return lampDao.getOneData(map);
+    }
 }

+ 6 - 0
src/main/java/com/welampiot/service/impl/ManholeServiceImpl.java

@@ -14,6 +14,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -287,4 +288,9 @@ public class ManholeServiceImpl implements ManholeService {
         dto.setAlarmInfo(alarmInfo);
         return dto;
     }
+
+    @Override
+    public ManholeDTO getOneManhole(HashMap<String,Object> map){
+        return manholeDao.getOneManhole(map);
+    }
 }

+ 8 - 0
src/main/java/com/welampiot/service/impl/RepairPersonnelServiceImpl.java

@@ -80,4 +80,12 @@ public class RepairPersonnelServiceImpl implements RepairPersonnelService {
         vo.setList(dropDownListByDTO);
         return vo;
     }
+    @Override
+    public List<RepairPersonnelDTO> getRepairPersonnelByIds(String[] ids){
+        return repairPersonnelDao.getRepairPersonnelByIds(ids);
+    }
+    @Override
+    public Integer getCountRepairPersonnel(String[] ids){
+        return repairPersonnelDao.getCountRepairPersonnel(ids);
+    }
 }

+ 19 - 0
src/main/java/com/welampiot/service/impl/RfidServiceImpl.java

@@ -0,0 +1,19 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.RfidDao;
+import com.welampiot.dto.RfidDTO;
+import com.welampiot.service.RfidService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+
+@Service
+public class RfidServiceImpl implements RfidService {
+    @Autowired
+    RfidDao rfidDao;
+    @Override
+    public RfidDTO getOneRifd(HashMap<String,Object> map){
+        return rfidDao.getOneRifd(map);
+    }
+}

+ 4 - 0
src/main/java/com/welampiot/service/impl/ScreenServiceImpl.java

@@ -12,6 +12,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -267,4 +268,7 @@ public class ScreenServiceImpl implements ScreenService {
     public Integer getTotalBySectionList(ScreenDTO dto) {
         return screenDao.getTotalBySectionList(dto);
     }
+    public ScreenDTO getOneScreen(HashMap<String,Object> map){
+        return screenDao.getOneScreen(map);
+    }
 }

+ 3 - 0
src/main/java/com/welampiot/service/impl/SectionServiceImpl.java

@@ -82,4 +82,7 @@ public class SectionServiceImpl implements SectionService {
     public SectionDTO getDataByVO(SectionDTO dto){
         return sectionDao.getDataByVO(dto);
     }
+    public void updateSectionById(SectionDTO dto){
+        sectionDao.updateSectionById( dto);
+    }
 }

+ 8 - 0
src/main/java/com/welampiot/service/impl/SendStatusServiceImpl.java

@@ -47,4 +47,12 @@ public class SendStatusServiceImpl implements SendStatusService {
     public void updateCloseStatus(SendStatusDTO dto) {
         sendStatusDao.updateCloseStatus(dto);
     }
+    @Override
+    public List<SendStatusDTO>getSectionUsers(SendStatusDTO dto){
+        return sendStatusDao.getSectionUsers(dto);
+    }
+    @Override
+    public void addCloseStatus(SendStatusDTO dto){
+        sendStatusDao.addCloseStatus(dto);
+    }
 }

+ 12 - 0
src/main/java/com/welampiot/service/impl/VideoMonitorServiceImpl.java

@@ -1,12 +1,14 @@
 package com.welampiot.service.impl;
 
 import com.welampiot.dao.VideoMonitorDao;
+import com.welampiot.dto.EmergencyDTO;
 import com.welampiot.dto.VideoMonitorDTO;
 import com.welampiot.service.VideoMonitorService;
 import com.welampiot.vo.VideoMonitorVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
 
 @Service
@@ -144,4 +146,14 @@ public class VideoMonitorServiceImpl implements VideoMonitorService {
     public VideoMonitorDTO getOneByDevId(String devId) {
         return videoMonitorDao.getOneByDevId(devId);
     }
+
+    @Override
+    public List<VideoMonitorDTO> getDataList(EmergencyDTO dto){
+        return videoMonitorDao.getDataList(dto);
+    }
+    @Override
+    public VideoMonitorDTO getOneMonitor(HashMap<String,Object> map){
+        return videoMonitorDao.getOneMonitor(map);
+    }
+
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/WaterImmersionDevInfoServiceImpl.java

@@ -13,6 +13,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -315,4 +316,8 @@ public class WaterImmersionDevInfoServiceImpl implements WaterImmersionDevInfoSe
     public int getTotalBySectionList(WaterImmersionDevInfoDTO dto) {
         return waterImmersionDevInfoDao.getTotalBySectionList(dto);
     }
+    @Override
+    public WaterImmersionDevInfoDTO getOneWaterImmersion(HashMap<String,Object> map){
+        return waterImmersionDevInfoDao.getOneWaterImmersion(map);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/WifiServiceImpl.java

@@ -17,6 +17,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -263,4 +264,8 @@ public class WifiServiceImpl implements WifiService {
         }
         return dto;
     }
+    @Override
+    public WifiDTO getOneWifi(HashMap<String,Object> map){
+        return wifiDao.getOneWifi(map);
+    }
 }

+ 3 - 3
src/main/java/com/welampiot/utils/ExcelUtil.java

@@ -15,7 +15,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -24,11 +23,12 @@ import java.util.Map;
 public class ExcelUtil {
     /**
      * 文件导出到excel
-     * @param titleList  标题列表 一维列表
+     *
+     * @param titleList   标题列表 一维列表
      * @param contentList 数据列表 二维列表
      * @return
      */
-    public static String outExcel(List<String> titleList,List<List<String>> contentList){
+    public static String outExcel(List<String> titleList, List<List<String>> contentList){
         XSSFWorkbook sheets = new XSSFWorkbook();
         XSSFSheet sheet = sheets.createSheet();
 

+ 110 - 11
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -1,6 +1,5 @@
 package com.welampiot.utils;
 
-import com.alibaba.druid.support.json.JSONUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -14,10 +13,8 @@ import com.welampiot.dto.*;
 import com.welampiot.handle.MqttHandler;
 import com.welampiot.service.*;
 import com.welampiot.vo.DevEnumVO;
-import com.welampiot.vo.LampPoleVO;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.poi.ss.formula.functions.T;
 import org.eclipse.paho.client.mqttv3.MqttClient;
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 import org.eclipse.paho.client.mqttv3.MqttMessage;
@@ -30,12 +27,15 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.lang.reflect.Field;
-import java.net.*;
-import java.nio.charset.StandardCharsets;
+import java.net.HttpURLConnection;
+import java.net.InetAddress;
+import java.net.URL;
+import java.net.URLConnection;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -102,13 +102,13 @@ public class ToolUtils {
             return sectionList;
         }
 
-        String provinceid = request.getParameter("provinceid");
+        String provinceid = request.getParameter("provinceId");
         provinceid = provinceid == null || provinceid.equals("0") ? request.getParameter("provinceId") : provinceid;
-        String cityid = request.getParameter("cityid");
+        String cityid = request.getParameter("cityId");
         cityid = cityid == null || cityid.equals("0") ? request.getParameter("cityId") : cityid;
-        String areaid = request.getParameter("areaid");
+        String areaid = request.getParameter("areaId");
         areaid = areaid == null || areaid.equals("0") ? request.getParameter("areaId") : areaid;
-        String sectionid = request.getParameter("sectionid");
+        String sectionid = request.getParameter("sectionId");
         sectionid = sectionid == null || sectionid.equals("0") ? request.getParameter("sectionId") : sectionid;
         if (sectionid != null && sectionid.length() != 0 && !sectionid.equals("0")){
             sectionList.add(sectionid);
@@ -1083,7 +1083,7 @@ System.out.println(res);
         return protocolTypeStr;
     }
 
-    /* 向第三方请求post
+    /** 向第三方请求post
      *@param  requestMethod:请求方式
      * @param  url:路径
      * @param param:参数
@@ -1145,7 +1145,7 @@ System.out.println(res);
         return result;
     }
 
-    /* 向第三方请求post
+    /** 向第三方请求post
      *@param  request:请求方式
      * @param  url:路径
      * @param param:参数
@@ -1406,4 +1406,103 @@ System.out.println(res);
         //字符串拼接
         return String.join(".", stringList);
     }
+
+    /**
+     * 上传文件/图片/音频
+     * @param file 文件
+     * @param image 图片
+     * @param video 音频
+     * @param title 名称
+     * @return
+     * @throws Exception
+     */
+    public String uploadFile(MultipartFile file, MultipartFile image,MultipartFile video, String title) throws Exception {
+
+        String rootPath = System.getProperty("user.dir");
+        int lastedIndex = rootPath.lastIndexOf("/");
+        rootPath = rootPath.substring(0,lastedIndex); //工程根目录
+        File imagePath; //图⽚存放地址
+        File fileRealPath; //⽂件存放地址
+        File videoPath; //音视频存在地址
+        if (file == null && image == null && video == null) return "0001"; //文件\图片\音频不能都不传
+
+        //获取⽂件名称
+        if (file != null){
+            //判断文件的类型
+            boolean b = this.fileType(file,2);
+            if (b == false) return "0002"; //类型不对
+            String pathName = "/upload/files";
+            fileRealPath = new File(rootPath+pathName);
+            //判断⽂件夹是否存在
+            if(!fileRealPath.exists()){
+                //不存在,创建
+                fileRealPath.mkdirs();
+            }
+            String fileName = file.getOriginalFilename();
+            //创建⽂件存放地址
+            File resultPath = new File(fileRealPath+"/"+fileName);
+            file.transferTo(resultPath);
+            System.out.println("resultPath:"+resultPath.getCanonicalPath());
+            return pathName+"/"+fileName;
+        }
+        if (image != null){ //图片
+            //判断文件的类型
+            boolean b = this.fileType(image,1);
+            if (b == false) return "0002"; //类型不对
+            String pathName = "/upload/images";
+            imagePath = new File(rootPath+pathName);
+            if(!imagePath.exists()){
+                //不存在,创建
+                imagePath.mkdirs();
+            }
+            String imageName = image.getOriginalFilename();
+            //创建图⽚存放地址
+            File imageResultPath = new File(imagePath+"/"+imageName);
+            image.transferTo(imageResultPath);
+            System.out.println("imageResultPath:"+imageResultPath.getCanonicalPath());
+            return pathName+"/"+imageName;
+        }
+        if (video != null){ //音频
+            //判断文件的类型
+            boolean b = this.fileType(video,3);
+            if (b == false) return "0002"; //类型不对
+            String pathName = "/upload/videos";
+            videoPath = new File(rootPath+pathName);
+            if(!videoPath.exists()){
+                //不存在,创建
+                videoPath.mkdirs();
+            }
+            String videoName = video.getOriginalFilename();
+            //创建图⽚存放地址
+            File videoResultPath = new File(videoPath+"/"+videoName);
+            video.transferTo(videoResultPath);
+            return pathName+"/"+videoName;
+        }
+        return "0003"; //未知问题
+    }
+    private boolean fileType(MultipartFile tempFile,int type) throws IOException {
+        InputStream inputStream = tempFile.getInputStream();
+        byte[] buffer = new byte[8];
+        inputStream.read(buffer);
+        String magicNumber = bytes2HexString(buffer);
+        if (magicNumber.substring(0,4).equals("FFD8") && type == 1) {
+            // ⽂件是JPEG/jpg类型
+        } else if (magicNumber.substring(0,8).equals("89504E47") && type == 1) {
+            // ⽂件是PNG类型
+        } else if (magicNumber.substring(0,8).equals("47494638") && type == 1) {
+            // ⽂件是GIF类型
+        }else  if (magicNumber.substring(0,8).equals("25504446") && type == 2) {
+            // ⽂件是PDF类型
+        } else if (magicNumber.substring(0,8).equals("504B0304") && type == 2) {
+            // ⽂件是DOCX类型
+        } else if (magicNumber.substring(0,8).equals("32303230") && type == 2){
+            //⽂件是txt类型
+        }else if (magicNumber.substring(0,6).equals("494433") && type == 3){//4944330400000000
+            // ⽂件是mp3类型
+        }else {
+            // ⽂件类型未知
+            return false; //文件类型不对
+        }
+        return true;
+    }
 }

+ 23 - 0
src/main/java/com/welampiot/vo/ArchiveManageVO.java

@@ -0,0 +1,23 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.ArchiveManageDTO;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ArchiveManageVO {
+    private List<ArchiveManageDTO> list;
+    private Integer areaId;
+    private Integer sectionId;
+    private Integer page;
+    private Integer count;
+    private Integer type;
+    private String keyword;
+    private String date;
+    private Integer version;
+    private Integer download;
+    private List<String>sectionList;
+    private String beginTime;
+    private String endTime;
+}

+ 17 - 0
src/main/resources/mapper/AirSwitchInfoMapper.xml

@@ -128,4 +128,21 @@
         where e.address = #{address}
     </select>
 
+    <select id="getOneAirSwitch" parameterType="HashMap" resultType="AirSwitchInfoDTO">
+        select E.id  
+        from air_switch_info M 
+            left join electric_box E on M.box_id = E.id 
+        where E.areaid = #{areaId} and E.sectionid = #{sectionid} 
+        <choose>
+            <when test="address != null and name == null">
+                and M.address = #{address}
+            </when>
+            <when test="address == null and name != null">
+                and M.name = #{name}
+            </when>
+            <otherwise>
+                and M.address = #{address} and M.name = #{name}
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 5 - 0
src/main/resources/mapper/AllAlarmInfoLogMapper.xml

@@ -931,4 +931,9 @@
         order by a.updatetime desc
     </select>
 
+    <insert id="addAlarmData" parameterType="allAlarmInfoLogDTO" keyProperty="id" useGeneratedKeys="true">
+        insert into all_alarm_info_log(lampid,stralarmtype,updatetime,devType,dType,source,level,alarm_status)
+        values
+            (#{lampId},#{strAlarmType},#{updateTime},#{devType},#{dType},#{source},#{level},#{alarmStatus})
+    </insert>
 </mapper>

+ 27 - 0
src/main/resources/mapper/ArchiveInfoAttachmentMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.ArchiveInfoAttachmentDao">
+    <insert id="addData" parameterType="ArchiveInfoAttachmentDTO">
+        insert into archive_info_attachment( name, path, archive_info_id, type)
+        VALUES (#{name},#{path},#{archiveInfoId},#{type})
+    </insert>
+
+    <delete id="deleteData" parameterType="ArchiveInfoAttachmentDTO">
+        delete from archive_info_attachment
+        where id = 0
+            <if test="archiveInfoId">
+              or  archive_info_id = #{archiveInfoId}
+            </if>
+    </delete>
+
+    <select id="getOneData" resultType="ArchiveInfoAttachmentDTO">
+        select id,name,path,type from archive_info_attachment
+        <trim prefix="where" suffixOverrides="and|or">
+            <if test="archiveInfoId != null and archiveInfoId != 0">
+                archive_info_id = #{archiveInfoId} and
+            </if>
+        </trim>
+    </select>
+</mapper>

+ 113 - 0
src/main/resources/mapper/ArchiveManageMapper.xml

@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.ArchiveManageDao">
+    <insert id="addData" parameterType="ArchiveManageDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into archive_info(
+        type, name, number, areaid, sectionid, create_time
+        <if test="department != null">
+            ,department
+        </if>
+        )
+        VALUES(
+        #{type},#{name},#{number},#{areaId},#{sectionId},#{createTime}
+        <if test="department != null">
+            ,#{department}
+        </if>
+        )
+    </insert>
+
+    <update id="updateData" parameterType="ArchiveManageDTO">
+        update archive_info
+        set type = #{type},name = #{name},number = #{number},areaid = #{areaId},sectionid = #{sectionId},update_time = #{updateTime}
+        <if test="department != null">
+            ,department = #{department}
+        </if>
+        where id = #{id}
+    </update>
+
+    <select id="chectCount" parameterType="ArchiveManageDTO">
+        select count(*) from archive_info
+        where sectionid = #{sectionId} and name = #{name}
+        <if test="id != null">
+            and id != #{id}
+        </if>
+    </select>
+
+    <select id="getJoinList" parameterType="ArchiveManageVO" resultType="ArchiveManageDTO">
+        select A.id,A.type,A.name,A.number,A.status,A.update_time as updateTime,A.create_time as createTime,A.department,
+        <choose>
+            <when test="version == 0">
+                G.chinese_name as area,S.name as section
+            </when>
+            <when test="version == 1">
+                G.english_name as area,S.name as section
+            </when>
+            <otherwise>
+                G.ru_name as area,S.name as section
+            </otherwise>
+        </choose>
+        from archive_info A
+        left join section as S on S.id = A.sectionid
+        left join global_location as G on G.id = S.pid
+        <trim prefix="where" suffixOverrides="and|or">
+            <if test="areaId != null and areaId != 0">
+                A.areaid = #{areaId} and
+            </if>
+            <if test="sectionId != null and sectionId != 0">
+                A.sectionid = #{sectionId} and
+            </if>
+            <if test="sectionList != null and sectionList.size > 0">
+                A.sectionid in
+                <foreach item="vo" collection="sectionList" open="(" separator="," close=")">
+                    #{vo}
+                </foreach>
+                 and
+            </if>
+             <if test="type != null and type != 0">
+                 A.type = #{type} and
+             </if>
+            <if test="keyword != null ">
+                 (A.number like '%#{keyword}%' or A.name like '#{keyword%') and
+            </if>
+            <if test="date != null">
+                (A.create_time between #{beginTime} and #{endTime}) and
+            </if>
+        </trim>
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getCount" resultType="integer" parameterType="ArchiveManageVO">
+        select count(*) as total
+        from archive_info A
+        left join section as S on S.id = A.sectionid
+        left join global_location as G on G.id = S.pid
+        <trim prefix="where" suffixOverrides="and|or">
+            <if test="areaId != null and areaId != 0">
+                A.areaid = #{areaId} and
+            </if>
+            <if test="sectionId != null and sectionId != 0">
+                A.sectionid = #{sectionId} and
+            </if>
+            <if test="sectionList != null and sectionList.size > 0">
+                A.sectionid in
+                <foreach item="vo" collection="sectionList" open="(" separator="," close=")">
+                    #{vo}
+                </foreach>
+                and
+            </if>
+            <if test="type != null and type != 0">
+                A.type = #{type} and
+            </if>
+            <if test="keyword != null ">
+                (A.number like '%#{keyword}%' or A.name like '#{keyword%') and
+            </if>
+            <if test="date != null">
+                (A.create_time between #{beginTime} and #{endTime}) and
+            </if>
+        </trim>
+    </select>
+</mapper>

+ 17 - 0
src/main/resources/mapper/ChargeMapper.xml

@@ -280,4 +280,21 @@
         </if>
     </select>
 
+    <select id="getOneCharge" parameterType="HashMap" resultType="ChargeDTO">
+        select C.id
+        from charge C
+            left join lamp_pole P on P.id = C.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionid}
+        <choose>
+            <when test="number != null and model == null">
+                and C.num = #{number}
+            </when>
+            <when test="number == null and model != null">
+                and C.model = #{model}
+            </when>
+            <otherwise>
+                and C.num = #{number} and C.model = #{model}
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 40 - 0
src/main/resources/mapper/EmergencyMapper.xml

@@ -120,4 +120,44 @@
         </if>
     </select>
 
+    <select id="getEmergencyJoinList" resultType="EmergencyDTO" parameterType="EmergencyVO">
+        select d.name as section,a.model,b.beginDate
+        from emergency a
+        left join emergency_info_log b on a.id = b.deviceid
+        left join lamp_pole c on a.lamp_pole_id = c.id
+        left join section d on c.sectionid = d.id
+        where  b.id is not null
+        <if test="sectionList != null">
+           and c.sectionid in
+            <foreach collection="sectionList" separator="," open="(" close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
+        order by b.beginDate desc limit 20
+    </select>
+
+    <select id="getSectionOne"  resultType="EmergencyDTO">
+        select b.sectionid as sectionId
+        from emergency a
+        left join lamp_pole b on a.lamp_pole_id = b.id
+        where a.id = #{id} limit 1
+    </select>
+
+    <select id="getOneEmergency" resultType="EmergencyDTO" parameterType="HashMap">
+        select E.id
+        from emergency E
+            left join lamp_pole P on P.id = E.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionId}
+        <choose>
+            <when test="number != null and model == null">
+                and E.num = #{number}
+            </when>
+            <when test="number == null and model != null">
+                and E.model = #{model}
+            </when>
+            <otherwise>
+                and E.num = #{number} and E.model = #{model}
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 17 - 0
src/main/resources/mapper/EnvmonitorMapper.xml

@@ -651,4 +651,21 @@
         group by L.id
     </select>
 
+    <select id="getOneEnvmonitor" parameterType="HashMap" resultType="EnvmonitorDTO">
+        select E.id
+        from envmonitor E
+            left join lamp_pole P on P.id = E.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionId}
+        <choose>
+            <when test="number != null and model == null">
+                and E.model = #{number}
+            </when>
+            <when test="number == null and model != null">
+                and E.model = #{model}
+            </when>
+            <otherwise>
+                and (E.model = #{number} or E.model = #{model})
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 7 - 0
src/main/resources/mapper/GlobalLocationMapper.xml

@@ -386,4 +386,11 @@
             </foreach>
         </if>
     </select>
+
+    <select id="getTimeZoneData" parameterType="SectionDTO" resultType="GlobalLocationDTO">
+        select S.timezone
+        from global_location G
+        left join `section` S on S.pid = G.id
+        where G.id = #{pid} and S.id = #{id}
+    </select>
 </mapper>

+ 16 - 0
src/main/resources/mapper/LampMapper.xml

@@ -1327,4 +1327,20 @@
 
         where id = #{id}
     </update>
+
+    <select id="getOneData" parameterType="HashMap" resultType="LampInfoDTO">
+        select id,name,address,mode
+        from lampinfo
+        where areaid = #{areaId} and sectionid = #{sectionId}
+        <if test="name != null">
+            and  name = #{name}
+        </if>
+        <if test="number != null">
+            and number = #{number}
+        </if>
+        <if test="mode != null">
+            and mode = #{mode}
+        </if>
+
+    </select>
 </mapper>

+ 16 - 0
src/main/resources/mapper/ManholeMapper.xml

@@ -202,4 +202,20 @@
         where td.lamp_pole_id = #{lampPoleId}
     </select>
 
+    <select id="getOneManhole" parameterType="HashMap" resultType="ManholeDTO">
+        select id
+        from manhole
+        where areaid = #{areaId} and sectionid = #{sectionId}
+        <choose>
+            <when test="number != null and name == null">
+               and name = #{number}
+            </when>
+            <when test="number == null and name != null">
+                and name = #{name}
+            </when>
+            <otherwise>
+                and (name = #{number} or name = #{name})
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 22 - 1
src/main/resources/mapper/RepairPersonnelMapper.xml

@@ -84,5 +84,26 @@
         from repair_personnel r
         where r.own_id = #{id}
     </select>
-    
+
+    <select id="getRepairPersonnelByIds" parameterType="String" resultType="com.welampiot.dto.RepairPersonnelDTO">
+        select id,name,company,section as department,phone,number as jobNumber,email
+        from repair_personnel
+        where
+        <if test="ids != null">
+            id in
+            <foreach collection="ids" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+    <select id="getCountRepairPersonnel" parameterType="String" resultType="Integer">
+        select count(*) from repair_personnel
+        where
+        <if test="ids != null">
+            id in
+            <foreach collection="ids" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>

+ 23 - 0
src/main/resources/mapper/RfidMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.RfidDao">
+    <select id="getOneRifd" parameterType="HashMap" resultType="RfidDTO">
+        select R.id
+        from rfid R
+            left join lamp_pole P on P.id = R.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionid}
+        <choose>
+            <when test="name != null and number == null">
+                and R.num = #{name}
+            </when>
+            <when test="name == null and number != null">
+                and R.num = #{number}
+            </when>
+            <otherwise>
+                and (R.num = #{name} or R.num = #{number})
+            </otherwise>
+        </choose>
+    </select>
+</mapper>

+ 17 - 0
src/main/resources/mapper/ScreenMapper.xml

@@ -226,4 +226,21 @@
         </if>
     </select>
 
+    <select id="getOneScreen" parameterType="HashMap" resultType="ScreenDTO">
+        select S.id
+        from screen S
+            left join lamp_pole P on P.id = S.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionId}
+        <choose>
+            <when test="number != null and model == null">
+                and S.num = #{number}
+            </when>
+            <when test="number == null and model != null">
+                and S.model = #{model}
+            </when>
+            <otherwise>
+                and S.num = #{number} and S.model = #{model}
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 7 - 1
src/main/resources/mapper/SectionMapper.xml

@@ -128,11 +128,17 @@
         where g.id = #{id}
     </select>
     <select id="getDataByVO" resultType="SectionDTO">
-        select id,name,pid from section
+        select id,name,pid,alarmUser from section
         <trim prefix="where" suffixOverrides="and|or">
             <if test="id != null">
                 id = #{id}
             </if>
         </trim>
     </select>
+    <update id="updateSectionById" parameterType="SectionDTO">
+        update section s
+        set
+            alarmUser = #{alarmUser}
+        where s.id = #{id}
+    </update>
 </mapper>

+ 23 - 4
src/main/resources/mapper/SendStatusMapper.xml

@@ -38,8 +38,8 @@
     </delete>
 
     <insert id="addSendStatusData" keyProperty="id" useGeneratedKeys="true" parameterType="SendStatusDTO">
-        insert into send_status(sectionId,repairUserId)
-        values (#{sectionId},#{repairUserid})
+        insert into send_status(sectionId,repairUserId,isPhone,isEmail,type)
+        values (#{sectionId},#{repairUserId},#{isPhone},#{isEmail},#{type})
     </insert>
 
     <update id="updateSendStatusData" parameterType="SendStatusDTO">
@@ -47,14 +47,33 @@
         set
             s.isPhone = #{isPhone},
             s.isEmail = #{isEmail}
-        where s.repairUserId = #{repairUserid} and s.sectionId = #{sectionId}
+        where s.repairUserId = #{repairUserId} and s.sectionId = #{sectionId}
     </update>
 
     <update id="updateCloseStatus" parameterType="SendStatusDTO">
         update send_status s
         set
             s.status = #{status}
-        where s.repairUserId = #{repairUserid} and s.sectionId = #{sectionId}
+        where s.repairUserId = #{repairUserId} and s.sectionId = #{sectionId}
     </update>
 
+    <update id="addCloseStatus"  keyProperty="id" useGeneratedKeys="true" parameterType="SendStatusDTO">
+        insert into send_status(sectionId,repairUserId,status)
+        values (#{sectionId},#{repairUserId},#{status})
+    </update>
+
+    <select id="getSectionUsers" parameterType="SendStatusDTO" resultType="SendStatusDTO">
+        select id,repairUserId,isPhone,isEmail,status
+        from send_status
+        where
+            <trim suffixOverrides="and|or">
+                <if test="sectionId != null or sectionId != 0">
+                    sectionId = #{sectionId} and
+                </if>
+                <if test="repairUserId != null">
+                    repairUserId = #{repairUserId} and
+                </if>
+            </trim>
+
+    </select>
 </mapper>

+ 22 - 0
src/main/resources/mapper/VideoMonitorMapper.xml

@@ -424,4 +424,26 @@
         where v.id = #{id}
     </update>
 
+    <select id="getDataList" resultType="VideoMonitorDTO" parameterType="EmergencyDTO">
+        select id,name
+        from video_monitor
+        where lamp_pole_id != 0 and lamp_pole_id is not null and sectionid = #{sectionId}
+    </select>
+
+    <select id="getOneMonitor"  resultType="VideoMonitorDTO" parameterType="HashMap">
+        select id
+        from video_monitor
+        where areaid = #{areaId} and sectionid = #{sectionId}
+        <choose>
+            <when test="name != null and number == null">
+                and name = #{name}
+            </when>
+            <when test="name == null and number != null">
+                and name = #{number}
+            </when>
+            <otherwise>
+                and (name = #{name} or name = #{number})
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 18 - 0
src/main/resources/mapper/WaterImmersionDevInfoMapper.xml

@@ -245,4 +245,22 @@
             </foreach>
         </if>
     </select>
+
+    <select id="getOneWaterImmersion" parameterType="HashMap" resultType="WaterImmersionDevInfoDTO">
+        select W.id
+        from water_immersion_dev_info W
+            left join lamp_pole P on P.id = W.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionid}
+        <choose>
+            <when test="number != null and name == null">
+                and W.number = #{number}
+            </when>
+            <when test="number == null and name != null">
+                and W.name = #{name}
+            </when>
+            <otherwise>
+                and W.number = #{number} and W.name = #{name}
+            </otherwise>
+        </choose>
+    </select>
 </mapper>

+ 19 - 0
src/main/resources/mapper/WifiMapper.xml

@@ -293,4 +293,23 @@
         from wifi w
         where w.lamp_pole_id = #{lampPoleId}
     </select>
+
+    <select id="getOneWifi" resultType="WifiDTO" parameterType="HashMap">
+        select W.id
+        from wifi W
+            left join lamp_pole P on P.id = W.lamp_pole_id
+        where P.areaid = #{areaId} and P.sectionid = #{sectionid}
+        <choose>
+            <when test="name != null and number == null">
+                and W.num = #{name}
+            </when>
+            <when test="name == null and number != null">
+                and W.num = #{number}
+            </when>
+            <otherwise>
+                and (W.num = #{name} or W.num = #{number})
+            </otherwise>
+        </choose>
+
+    </select>
 </mapper>

+ 7 - 0
src/main/resources/prod/application.yml

@@ -29,6 +29,13 @@ spring:
 #      write-null-map-values: true
 #  gson:
 #    serialize-nulls: true
+  servlet:
+    multipart:
+      #上传最大文件大小
+      max-file-size: 100MB
+      #最大请求大小
+      max-request-size: 100MB
+
 
 welampiot:
   mqtt:

+ 6 - 0
src/main/resources/test/application.yml

@@ -29,6 +29,12 @@ spring:
 #      write-null-map-values: true
 #  gson:
 #    serialize-nulls: true
+  servlet:
+    multipart:
+      #上传最大文件大小
+      max-file-size: 100MB
+      #最大请求大小
+      max-request-size: 100MB
 
 welampiot:
   mqtt:

+ 1 - 9
src/test/java/com/welampiot/service/UserServiceTest.java

@@ -1,11 +1,7 @@
 package com.welampiot.service;
 
 import com.welampiot.configuration.LastSqlInterceptor;
-import com.welampiot.dto.AcDevInfoDTO;
-import com.welampiot.dto.GroupDTO;
-import com.welampiot.dto.LampInfoDTO;
-import com.welampiot.dto.OperationLogDTO;
-import com.welampiot.utils.*;
+import com.welampiot.utils.ToolUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,7 +10,6 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import javax.sql.DataSource;
-import java.util.*;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest
@@ -35,9 +30,6 @@ public class UserServiceTest {
 
     @Test
     public void testConnection() throws Exception {
-        String str = "供电异常,供电异常1";
-        String s = toolUtils.changeAlarm(str);
-        System.out.println("====dd:"+s);
 
         //schemaParamsterInterceptor.intercept()
 //        long l = System.currentTimeMillis() - (24L * 3600 * 30*1000);