| | |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.sandu.common.domain.CommonPage; |
| | | import com.sandu.common.domain.ResponseVO; |
| | | import com.sandu.common.execption.BusinessException; |
| | | import com.sandu.common.object.BaseConditionVO; |
| | | import com.sandu.common.security.annotation.AnonymousAccess; |
| | | import com.sandu.common.util.ResponseUtil; |
| | | import com.sandu.common.util.SpringContextHolder; |
| | | import com.sandu.ximon.admin.dto.DeviceStatus; |
| | | import com.sandu.ximon.admin.param.PoleBindParam; |
| | | import com.sandu.ximon.admin.param.PoleBindingParam; |
| | | import com.sandu.ximon.admin.param.PoleParam; |
| | | import com.sandu.ximon.admin.param.PoleStatesParam; |
| | | import com.sandu.ximon.admin.dto.DeviceStatusDto; |
| | | import com.sandu.ximon.admin.param.*; |
| | | import com.sandu.ximon.admin.security.PermissionConfig; |
| | | import com.sandu.ximon.admin.service.AirEquipmentService; |
| | | import com.sandu.ximon.admin.service.IpVolumeService; |
| | | import com.sandu.ximon.admin.service.MonitorService; |
| | | import com.sandu.ximon.admin.service.PoleService; |
| | | import com.sandu.ximon.admin.utils.response.VnnoxResult; |
| | | import com.sandu.ximon.admin.vo.PoleBindVO; |
| | | import com.sandu.ximon.dao.domain.Pole; |
| | | import com.sandu.ximon.dao.enums.MenuEnum; |
| | | import com.sandu.ximon.dao.enums.PoleBindingEnums; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.sql.Wrapper; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | |
| | | @PostMapping("/add") |
| | | public ResponseVO<Object> addPole(@RequestBody @Validated PoleParam param) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_VIRTUAL_ADD.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.addPole(param)); |
| | | } |
| | | |
| | | @PostMapping("/update/{poleId}") |
| | | public ResponseVO<Object> updatePole(@PathVariable Long poleId, @RequestBody @Validated PoleParam param) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_UPDATE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.updatePole(poleId, param)); |
| | | } |
| | | |
| | | @PostMapping("/delete/{poleId}") |
| | | public ResponseVO<Object> deletePole(@PathVariable Long poleId) { |
| | | return ResponseUtil.success(poleService.deletePole(poleId)); |
| | | @PostMapping("/delete") |
| | | public ResponseVO<Object> deletePole(@RequestBody List<Long> poleIds) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_DELETE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.deletePole(poleIds)); |
| | | } |
| | | |
| | | @PostMapping("/list") |
| | | public ResponseVO<Object> listPole(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) { |
| | | @PostMapping("/listDetail") |
| | | public ResponseVO<Object> listPoleDetail(BaseConditionVO baseConditionVO, |
| | | @RequestBody PoleStatesParam param, |
| | | @RequestParam(value = "order", required = false) Integer order, |
| | | @RequestParam(value = "seq", required = false) Integer seq) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); |
| | | List<Pole> results = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param); |
| | | CommonPage commonPage = CommonPage.restPage(results); |
| | | int size = results.size(); |
| | | commonPage.setTotal((long) size); |
| | | commonPage.setTotalPage(size / baseConditionVO.getPageSize() + 1); |
| | | if (size % baseConditionVO.getPageSize() == 0) { |
| | | commonPage.setTotalPage(size / baseConditionVO.getPageSize()); |
| | | CommonPage commonPage = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param, order, seq); |
| | | List<Pole> listCommonPage = (List<Pole>) commonPage.getList(); |
| | | |
| | | List<PoleBindVO> listResult = new ArrayList<>(); |
| | | for (Pole pole : listCommonPage) { |
| | | PoleBindVO bindByPoleId = poleService.getBindByPoleId(pole.getId()); |
| | | bindByPoleId.setPole(pole); |
| | | listResult.add(bindByPoleId); |
| | | } |
| | | commonPage.setList(listResult); |
| | | return ResponseUtil.success(commonPage); |
| | | // return ResponseUtil.success(poles); |
| | | } |
| | | |
| | | @PostMapping("/list") |
| | | public ResponseVO<Object> listPole(BaseConditionVO baseConditionVO, |
| | | @RequestBody PoleStatesParam param, |
| | | @RequestParam(value = "order", required = false) Integer order, |
| | | @RequestParam(value = "seq", required = false) Integer seq) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | CommonPage commonPage = poleService.queryAllStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), param, order, seq); |
| | | |
| | | return ResponseUtil.success(commonPage); |
| | | } |
| | | |
| | | //已启用 |
| | | @GetMapping("/listPoleAndState") |
| | | public ResponseVO<Object> listPoleAndState(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword, |
| | | @RequestParam(value = "groupid", required = false) Long groupid) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); |
| | | List<Pole> poles = poleService.queryStatesAndList(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(), keyword, groupid); |
| | | return ResponseUtil.successPage(poles); |
| | |
| | | /** |
| | | * 在线数量 |
| | | */ |
| | | // @AnonymousAccess |
| | | @GetMapping("/online") |
| | | public ResponseVO<Object> online() { |
| | | return ResponseUtil.success(poleService.poleCount()); |
| | |
| | | /** |
| | | * 设置三元码 |
| | | */ |
| | | @AnonymousAccess |
| | | @PostMapping("/setMac/{baseMac}") |
| | | public ResponseVO<Object> setMac(@PathVariable String baseMac) { |
| | | //public ResponseVO<Object> setMac() { |
| | | //判断是否是有设置三元码权限 |
| | | if (!permissionConfig.check(MenuEnum.BASE_DEVICE_01.getCode()) && MenuEnum.BASE_DEVICE_01.getCode().equals(baseMac)) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } else if (!permissionConfig.check(MenuEnum.BASE_DEVICE_02.getCode()) && MenuEnum.BASE_DEVICE_02.getCode().equals(baseMac)) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } else if (!permissionConfig.check(MenuEnum.BASE_DEVICE_03.getCode()) && MenuEnum.BASE_DEVICE_03.getCode().equals(baseMac)) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } else if (!permissionConfig.check(MenuEnum.BASE_DEVICE_04.getCode()) && MenuEnum.BASE_DEVICE_04.getCode().equals(baseMac)) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } else if (!permissionConfig.check(MenuEnum.BASE_DEVICE_05.getCode()) && MenuEnum.BASE_DEVICE_05.getCode().equals(baseMac)) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | |
| | | return ResponseUtil.success(poleService.setMac(baseMac)); |
| | | // return ResponseUtil.success(poleService.setMac()); |
| | | } |
| | | |
| | | /** |
| | | * 恢复灯杆出厂设置 |
| | | */ |
| | | @AnonymousAccess |
| | | @PostMapping("/poleReset/{poleId}") |
| | | public ResponseVO<Object> poleReset(@PathVariable Long poleId) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_REAL_RESET.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.poleReset(poleId)); |
| | | } |
| | | |
| | | //TODO 设备的绑定解绑都要单独重新处理 |
| | | |
| | | /** |
| | | * 灯杆绑定设备 |
| | | */ |
| | | @PostMapping("/bind/{poleId}") |
| | | public ResponseVO<Object> bindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) { |
| | | if (!permissionConfig.check(MenuEnum.BINDING.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | boolean result = poleService.bindPole(poleId, param); |
| | | if (result) { |
| | | //设备类型,0路灯,1nove,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助, 10熙讯 |
| | | switch (param.getDeviceType()) { |
| | | case 0: |
| | | //设备类型,0路灯,1nove,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助, 10熙讯, 11农耕 |
| | | switch (param.getDeviceType().toString()) { |
| | | case PoleBindingEnums.LIGHT: |
| | | Pole pole = poleService.getById(poleId); |
| | | if (pole != null) { |
| | | pole.setPoleName(param.getDeviceName()); |
| | |
| | | poleService.updateById(pole); |
| | | } |
| | | break; |
| | | case 1: |
| | | case PoleBindingEnums.VONNOX: |
| | | break; |
| | | case 2: |
| | | case PoleBindingEnums.CHARGING_PILE: |
| | | break; |
| | | case 3: |
| | | case PoleBindingEnums.ATMOSPHERIC: |
| | | break; |
| | | case 4: |
| | | case PoleBindingEnums.WATER: |
| | | break; |
| | | case 5: |
| | | case PoleBindingEnums.IPVOLUME: |
| | | broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue()); |
| | | break; |
| | | case 6: |
| | | case PoleBindingEnums.LCD_ADVERTISING: |
| | | break; |
| | | case 7: |
| | | case PoleBindingEnums.MONITOR: |
| | | monitorService.updateBingdingState(true, param.getDeviceCode()); |
| | | break; |
| | | case 8: |
| | | case PoleBindingEnums.LIGHTPOLEHEELING: |
| | | break; |
| | | case 9: |
| | | case PoleBindingEnums.FOR_HELP: |
| | | break; |
| | | case 10: |
| | | case PoleBindingEnums.XIXUN: |
| | | break; |
| | | case PoleBindingEnums.ATMOSPHERIC_NONG_GENG: |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 灯杆绑定设备 |
| | | * 灯杆解绑设备 |
| | | */ |
| | | @PostMapping("/unBind/{poleId}") |
| | | public ResponseVO<Object> unBindPole(@PathVariable Long poleId, @RequestBody PoleBindingParam param) { |
| | | boolean result = poleService.unBindPole(poleId, param.getDeviceCode()); |
| | | public ResponseVO<Object> unBindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) { |
| | | if (!permissionConfig.check(MenuEnum.UNBIND.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | boolean result = poleService.unBindPole(poleId, param.getDeviceCode(), param.getDeviceType()); |
| | | if (result) { |
| | | //设备类型,0路灯,1led屏幕,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助, 10熙讯 |
| | | switch (param.getDeviceType()) { |
| | | case 0: |
| | | //设备类型,0路灯,1led屏幕,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助, 10熙讯, 11农耕 |
| | | switch (param.getDeviceType().toString()) { |
| | | case PoleBindingEnums.LIGHT: |
| | | //删除灯杆的devicescode |
| | | Pole pole = poleService.getOne(Wrappers.lambdaQuery(Pole.class).eq(Pole::getId, poleId)); |
| | | if (pole != null) { |
| | | poleService.updateDeviceCode(pole.getId()); |
| | | } |
| | | break; |
| | | case 1: |
| | | case PoleBindingEnums.VONNOX: |
| | | break; |
| | | case 2: |
| | | case PoleBindingEnums.CHARGING_PILE: |
| | | break; |
| | | case 3: |
| | | case PoleBindingEnums.ATMOSPHERIC: |
| | | break; |
| | | case 4: |
| | | case PoleBindingEnums.WATER: |
| | | break; |
| | | case 5: |
| | | case PoleBindingEnums.IPVOLUME: |
| | | broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue()); |
| | | break; |
| | | case 6: |
| | | case PoleBindingEnums.LCD_ADVERTISING: |
| | | break; |
| | | case 7: |
| | | case PoleBindingEnums.MONITOR: |
| | | monitorService.updateBingdingState(false, param.getDeviceCode()); |
| | | break; |
| | | case 8: |
| | | case PoleBindingEnums.LIGHTPOLEHEELING: |
| | | break; |
| | | case 9: |
| | | case PoleBindingEnums.FOR_HELP: |
| | | break; |
| | | case 10: |
| | | case PoleBindingEnums.XIXUN: |
| | | break; |
| | | case PoleBindingEnums.ATMOSPHERIC_NONG_GENG: |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | } |
| | | } |
| | | |
| | | @AnonymousAccess |
| | | @PostMapping("/listStatusByDeviceCode") |
| | | public ResponseVO<Object> getStatusById(@RequestBody String[] deviceCodeList) { |
| | | if (!permissionConfig.check(MenuEnum.GET_STATE_BY_DEVICECODE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | for (String s : deviceCodeList) { |
| | | if (s == null) { |
| | | return ResponseUtil.fail("参数不能为空"); |
| | |
| | | return ResponseUtil.success(statusList); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询是否存在可注册设备 |
| | | * |
| | | * @param |
| | | * @return |
| | | */ |
| | | @AnonymousAccess |
| | | @PostMapping("/isRegisterByCode") |
| | | public ResponseVO<Object> getStatusByCode() { |
| | | if (!permissionConfig.check(MenuEnum.GET_STATE_BY_DEVICECODE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | ArrayList<String> deviceCodeList = new ArrayList<>(); |
| | | deviceCodeList.add("baseDevice01"); |
| | | deviceCodeList.add("baseDevice02"); |
| | | deviceCodeList.add("baseDevice03"); |
| | | deviceCodeList.add("baseDevice04"); |
| | | deviceCodeList.add("baseDevice05"); |
| | | for (String s : deviceCodeList) { |
| | | if (s == null) { |
| | | return ResponseUtil.fail("参数不能为空"); |
| | | } |
| | | |
| | | } |
| | | if (ArrayUtil.isEmpty(deviceCodeList)) { |
| | | return ResponseUtil.fail("参数不能为空"); |
| | | } |
| | | List<DeviceStatus> statusList = poleService.listStatusByDeviceCode(deviceCodeList); |
| | | List<DeviceStatusDto> list = new ArrayList<>(); |
| | | String s = "baseDevice0"; |
| | | for (int i = 0; i < deviceCodeList.size(); i++) { |
| | | DeviceStatusDto dto = new DeviceStatusDto(); |
| | | dto.setDeviceCode(s + (i + 1)); |
| | | dto.setName(s + (i + 1)); |
| | | list.add(dto); |
| | | } |
| | | |
| | | statusList.forEach( |
| | | status -> { |
| | | list.forEach( |
| | | dto -> { |
| | | if (status.getDeviceCode().equals(dto.getDeviceCode())) { |
| | | //status=1时 设备可以注册 |
| | | if (status.getStatus() == 1) { |
| | | dto.setStatus(1); |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | } |
| | | ); |
| | | return ResponseUtil.success(list); |
| | | } |
| | | |
| | | |
| | | @PostMapping("/ClientBindingPole") |
| | | public ResponseVO<Object> ClientBindingPole(@RequestBody PoleBindParam param) { |
| | | return ResponseUtil.success(poleService.ClientBindingPole(param.getClientId(), param.getPoleIds()));////////////// |
| | | if (!permissionConfig.check(MenuEnum.CLIENT_BINDING_POLE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.ClientBindingPole(param.getClientId(), param.getPoleIds())); |
| | | } |
| | | |
| | | @PostMapping("/ClientUnBindingPole") |
| | | public ResponseVO<Object> ClientUnBindingPole(@RequestBody PoleBindParam param) { |
| | | if (!permissionConfig.check(MenuEnum.CLIENT_UNBINDING_POLE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.ClientUnBindingPole(param.getClientId(), param.getPoleIds())); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查找自己拥有的灯杆 |
| | | * 查找拥有的灯杆 |
| | | */ |
| | | @PostMapping("/getOwnerPole/{cilentId}") |
| | | public ResponseVO<Object> getOwnerPole(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword |
| | | , @PathVariable Long cilentId) { |
| | | if (!permissionConfig.check(MenuEnum.GET_CLIENT_POLE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | List<Pole> results = poleService.getOwnerPole(baseConditionVO, keyword, cilentId); |
| | | // CommonPage commonPage = CommonPage.restPage(results); |
| | | // int size = results.size(); |
| | | // commonPage.setTotal((long) size); |
| | | // commonPage.setTotalPage(size / baseConditionVO.getPageSize() + 1); |
| | | // if (size % baseConditionVO.getPageSize() == 0) { |
| | | // commonPage.setTotalPage(size / baseConditionVO.getPageSize()); |
| | | // } |
| | | // return ResponseUtil.success(commonPage); |
| | | return ResponseUtil.success(results); |
| | | } |
| | | |
| | | /** |
| | | * 查看灯杆绑定的设备 |
| | | * 查看灯杆绑定的设备 //已合并到列表功能 此接口已废弃 |
| | | */ |
| | | @PostMapping("/getPoleBindDevice/{poleId}") |
| | | public ResponseVO<Object> getPoleBindDevice(@PathVariable Long poleId) { |
| | | if (!permissionConfig.check(MenuEnum.GET_POLE_BINDING.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.getBindByPoleId(poleId)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 推送大气设备到诺瓦 |
| | | */ |
| | | @PostMapping("/pushAidDataToNova") |
| | | public ResponseVO<Object> pushAirDataToNova(@RequestBody @Validated PushAirDataToNovaParam param) { |
| | | if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_NOVA.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | if (param.getDuration() <= 0 || param.getDuration() > 86400000) { |
| | | throw new BusinessException("播放时间需大于零且小于86400000 !"); |
| | | } |
| | | VnnoxResult vnnoxResult = poleService.pushAirDataToNova(param); |
| | | if (vnnoxResult != null && vnnoxResult.getSuccess() != null && !vnnoxResult.getSuccess().isEmpty()) { |
| | | return ResponseUtil.success("推送成功"); |
| | | } else { |
| | | return ResponseUtil.fail("推送失败"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 推送大气设备到熙讯 |
| | | */ |
| | | @GetMapping("/pushAirDataToXiXun/{poleId}") |
| | | public ResponseVO<Object> pushAirDataToXiXun(@PathVariable Long poleId) { |
| | | if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_XIXUN.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.pushAirDataToXiXun(poleId)); |
| | | } |
| | | |
| | | |
| | | @AnonymousAccess |
| | | @PostMapping("/setRedis") |
| | | public ResponseVO<Object> pushAirDataToXiXun() { |
| | | poleService.setRedis(); |
| | | return ResponseUtil.success("更新状态完成"); |
| | | } |
| | | |
| | | } |