package com.sandu.ximon.admin.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.sandu.common.domain.CommonPage; import com.sandu.common.domain.ResponseVO; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.LightControlParam; import com.sandu.ximon.admin.param.LightRemarkParam; import com.sandu.ximon.admin.param.PlcControlParam; import com.sandu.ximon.admin.param.PlcRemarkParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.PlcReportDataService; import com.sandu.ximon.admin.service.PlcReportErrorService; import com.sandu.ximon.admin.service.PlcService; import com.sandu.ximon.dao.bo.*; import com.sandu.ximon.dao.domain.LightReportData; import com.sandu.ximon.dao.domain.Plc; import com.sandu.ximon.dao.domain.PlcReportData; import com.sandu.ximon.dao.domain.PlcReportError; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * plc路灯表(Plc)表控制层 * * @author van * @since 2022-12-15 14:45:18 */ @AllArgsConstructor @RestController @RequestMapping("plc") public class PlcController { private final PlcService plcService; private final PlcReportDataService plcReportDataService; private final PlcReportErrorService plcReportErrorService; private final PermissionConfig permissionConfig; @GetMapping("list") public ResponseVO selectAll(BaseConditionVO conditionVO, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "order", required = false) Integer order, @RequestParam(value = "seq", required = false) Integer seq) { if (!permissionConfig.check(MenuEnum.PLC_LIST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List plcBos = plcService.listPlc(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, order, seq); return ResponseUtil.successPage(plcBos); } @PostMapping("/remark") public ResponseVO addRemark(@RequestBody @Validated PlcRemarkParam param) { if (!permissionConfig.check(MenuEnum.PLC_REMARK.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } boolean result = plcService.addRemark(param); if (result) { return ResponseUtil.success("添加成功"); } else { return ResponseUtil.fail("添加失败"); } } /** * 获取上报数据 * * @param conditionVO * @return */ @GetMapping("/report/list") public ResponseVO listReportData(BaseConditionVO conditionVO , @RequestParam(value = "keyword", required = false) String keyword , @RequestParam(value = "deviceCode", required = false) String deviceCode , @RequestParam(value = "order", required = false) Integer order ,@RequestParam(value = "seq", required = false) Integer seq) { if (!permissionConfig.check(MenuEnum.PLC_DATA.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } CommonPage commonPage = plcReportDataService.listReportData(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode,order,seq); List plcReportDataBos = (List) commonPage.getList(); if (plcReportDataBos == null) { return ResponseUtil.success(CommonPage.restPage(new ArrayList<>())); } CommonPage commonPage1 = CommonPage.restPage(plcReportDataBos); commonPage1.setTotal(commonPage.getTotal()); commonPage1.setTotalPage(commonPage.getTotalPage()); return ResponseUtil.success(commonPage1); } @GetMapping("/error/list") public ResponseVO listReportError(BaseConditionVO conditionVO, @RequestParam(value = "keyword", required = false) String keyword , @RequestParam(value = "errorCode", required = false) Long errorCode) { if (!permissionConfig.check(MenuEnum.PLC_ERROR_LIST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List list = plcReportErrorService.listReportError(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, errorCode); return ResponseUtil.success(list); } @GetMapping("/data/list") public ResponseVO listData(BaseConditionVO conditionVO, @RequestParam(value = "deviceCode", required = false) String deviceCode) { if (!permissionConfig.check(MenuEnum.PLC_DATA.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List reportDataList = plcReportDataService.getReportDataList(conditionVO, deviceCode); return ResponseUtil.success(reportDataList); } // 亮度控制 @PostMapping("/control") public ResponseVO controlBrightness(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_CONTROL.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.controlBrightness(paramList); return ResponseUtil.success(list); } // 设置心跳时间 @PostMapping("/setHeartBeatTime") public ResponseVO setHeartBeatTime(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_HEARTBEAT_PACKAGE_SET_TIME.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.setHeartBeatTime(paramList); return ResponseUtil.success(list); } // 查询心跳时间 @PostMapping("/queryHeartBeatTime") public ResponseVO queryHeartBeatTime(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_HEARTBEAT_PACKAGE_QUERY_TIME.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.queryHeartBeatTime(paramList); return ResponseUtil.success(list); } // 查询心跳 @PostMapping("/queryHeartBeatData") public ResponseVO queryHeartBeatData(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_HEARTBEAT_PACKAGE.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.queryHeartBeatData(paramList); return ResponseUtil.success(list); } // 查询心跳 @PostMapping("/queryVersion") public ResponseVO queryVersion(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_VERSION_QUERY.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.queryVersion(paramList); return ResponseUtil.success(list); } // 重启 @PostMapping("/reboot") public ResponseVO reboot(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_REBOOT.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.reboot(paramList); return ResponseUtil.success(list); } // 恢复出厂设置 @PostMapping("/reset") public ResponseVO reset(@RequestBody @Validated List paramList) { if (!permissionConfig.check(MenuEnum.PLC_RESET.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List> list = plcService.reset(paramList); return ResponseUtil.success(list); } }