| | |
| | | package com.sandu.ximon.admin.controller; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.ArrayUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.PageHelper; |
| | | import com.sandu.common.domain.CommonPage; |
| | | import com.sandu.common.domain.ResponseVO; |
| | | import com.sandu.common.object.BaseConditionVO; |
| | | import com.sandu.common.security.annotation.AnonymousAccess; |
| | | import com.sandu.common.util.ResponseUtil; |
| | | 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.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.dao.domain.Pole; |
| | | import com.sandu.ximon.dao.enums.MenuEnum; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | public class PoleController { |
| | | |
| | | private final PoleService poleService; |
| | | private MonitorService monitorService; |
| | | private IpVolumeService broadcastTerminalV2Service; |
| | | private AirEquipmentService airEquipmentService; |
| | | private final PermissionConfig permissionConfig; |
| | | |
| | | @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) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_DELETE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.deletePole(poleId)); |
| | | } |
| | | |
| | | @GetMapping("/list") |
| | | public ResponseVO<Object> listPole(@RequestParam String keyword) { |
| | | LambdaQueryWrapper<Pole> wrapper = Wrappers.lambdaQuery(Pole.class); |
| | | if (StrUtil.isNotBlank(keyword)) { |
| | | wrapper.like(Pole::getPoleCode, keyword) |
| | | .or(lampPostLambdaQueryWrapper -> { |
| | | lampPostLambdaQueryWrapper.like(Pole::getPoleName, keyword); |
| | | }); |
| | | @PostMapping("/list") |
| | | public ResponseVO<Object> listPole(BaseConditionVO baseConditionVO, @RequestBody PoleStatesParam param) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_LIST.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | List<Pole> list = poleService.list(wrapper); |
| | | return ResponseUtil.success(list); |
| | | 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()); |
| | | } |
| | | return ResponseUtil.success(commonPage); |
| | | // return ResponseUtil.success(poles); |
| | | } |
| | | |
| | | @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()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 设置三元码 |
| | | */ |
| | | @PostMapping("/setMac/{baseMac}") |
| | | public ResponseVO<Object> setMac(@PathVariable String baseMac) { |
| | | if (!permissionConfig.check(MenuEnum.POLE_REAL_ADD.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.setMac(baseMac)); |
| | | } |
| | | |
| | | /** |
| | | * 恢复灯杆出厂设置 |
| | | */ |
| | | @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熙讯, 11农耕 |
| | | switch (param.getDeviceType()) { |
| | | case 0: |
| | | Pole pole = poleService.getById(poleId); |
| | | if (pole != null) { |
| | | pole.setPoleName(param.getDeviceName()); |
| | | pole.setDeviceCode(param.getDeviceCode()); |
| | | poleService.updateById(pole); |
| | | } |
| | | break; |
| | | case 1: |
| | | break; |
| | | case 2: |
| | | break; |
| | | case 3: |
| | | break; |
| | | case 4: |
| | | break; |
| | | case 5: |
| | | broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue()); |
| | | break; |
| | | case 6: |
| | | break; |
| | | case 7: |
| | | monitorService.updateBingdingState(true, param.getDeviceCode()); |
| | | break; |
| | | case 8: |
| | | break; |
| | | case 9: |
| | | break; |
| | | case 10: |
| | | break; |
| | | case 11: |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return ResponseUtil.success("绑定成功"); |
| | | } else { |
| | | return ResponseUtil.fail("绑定失败"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 灯杆绑定设备 |
| | | */ |
| | | @PostMapping("/unBind/{poleId}") |
| | | 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()); |
| | | if (result) { |
| | | //设备类型,0路灯,1led屏幕,2充电桩,3大气监测,4水质监测,5ip音柱,6lcd广告机,7摄像头,8杆体倾测,9一键救助, 10熙讯, 11农耕 |
| | | switch (param.getDeviceType()) { |
| | | case 0: |
| | | //删除灯杆的devicescode |
| | | Pole pole = poleService.getOne(Wrappers.lambdaQuery(Pole.class).eq(Pole::getId, poleId)); |
| | | if (pole != null) { |
| | | poleService.updateDeviceCode(pole.getId()); |
| | | } |
| | | break; |
| | | case 1: |
| | | break; |
| | | case 2: |
| | | break; |
| | | case 3: |
| | | break; |
| | | case 4: |
| | | break; |
| | | case 5: |
| | | broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue()); |
| | | break; |
| | | case 6: |
| | | break; |
| | | case 7: |
| | | monitorService.updateBingdingState(false, param.getDeviceCode()); |
| | | break; |
| | | case 8: |
| | | break; |
| | | case 9: |
| | | break; |
| | | case 10: |
| | | break; |
| | | case 11: |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | return ResponseUtil.success("解绑成功"); |
| | | } else { |
| | | return ResponseUtil.fail("解绑失败"); |
| | | } |
| | | } |
| | | |
| | | @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("参数不能为空"); |
| | | } |
| | | |
| | | } |
| | | if (ArrayUtil.isEmpty(deviceCodeList)) { |
| | | return ResponseUtil.fail("参数不能为空"); |
| | | } |
| | | List<DeviceStatus> statusList = poleService.listStatusByDeviceCode(CollectionUtil.toList(deviceCodeList)); |
| | | return ResponseUtil.success(statusList); |
| | | } |
| | | |
| | | @PostMapping("/ClientBindingPole") |
| | | public ResponseVO<Object> ClientBindingPole(@RequestBody PoleBindParam param) { |
| | | if (!permissionConfig.check(MenuEnum.CLIENT_BINDING_POLE.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.ClientBindingPole(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); |
| | | return ResponseUtil.success(results); |
| | | } |
| | | |
| | | /** |
| | | * 查看灯杆绑定的设备 |
| | | */ |
| | | @AnonymousAccess |
| | | @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)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 推送大气设备到诺瓦 |
| | | */ |
| | | @AnonymousAccess |
| | | @GetMapping("/pushAidDataToNova/{poleId}") |
| | | public ResponseVO<Object> pushAirDataToNova(@PathVariable Long poleId) { |
| | | if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_NOVA.getCode())) { |
| | | return ResponseUtil.fail("缺少对应用户权限"); |
| | | } |
| | | return ResponseUtil.success(poleService.pushAirDataToNova(poleId)); |
| | | } |
| | | |
| | | /** |
| | | * 推送大气设备到熙讯 |
| | | */ |
| | | @AnonymousAccess |
| | | @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)); |
| | | } |
| | | |
| | | } |