package com.sandu.ximon.admin.controller; import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.dto.LightTaskDto; import com.sandu.ximon.admin.dto.PlcTaskDto; import com.sandu.ximon.admin.param.*; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.LightEnergyDataService; import com.sandu.ximon.admin.service.LightTaskService; import com.sandu.ximon.admin.service.PlcTaskService; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * Plc任务相关控制类 * * @author van */ @RestController @AllArgsConstructor @RequestMapping("/plc/task") public class PlcTaskController { private final PlcTaskService plcTaskService; private PermissionConfig permissionConfig; @PostMapping("/add") public ResponseVO addPlcTask(@RequestBody @Validated PlcTaskParam param) { if (!permissionConfig.check(MenuEnum.PLC_TASK_ADD.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } return ResponseUtil.success(plcTaskService.AddPlcTask(param)); } @GetMapping("/list") public ResponseVO listPlcTask(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_TASK_LIST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List taskList = plcTaskService.listPlcTask(conditionVO, keyword, order, seq); return ResponseUtil.successPage(taskList); } @PostMapping("/del") public ResponseVO delPlcTask(@RequestBody @Validated PlcTaskDelParam param) { if (!permissionConfig.check(MenuEnum.PLC_TASK_DELETE.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } String result = plcTaskService.delPlcTask(param.getTaskId()); return ResponseUtil.success(result); } @PostMapping("/update/{taskId}") public ResponseVO updatePlcTask(@PathVariable Long taskId, @RequestBody @Validated PlcTaskParam param) { if (!permissionConfig.check(MenuEnum.PLC_TASK_UPDATE.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } String result = plcTaskService.newUpdatePlcTask(taskId, param); return ResponseUtil.success(result); } // // /** // * 清除任务 // * // * @param // * @return // */ //// @PostMapping("/clear") //// public ResponseVO clearLightTask(@RequestBody List poleIds) { //// if (!permissionConfig.check(MenuEnum.PLC_TASK_UPDATE.getCode())) { //// return ResponseUtil.fail("缺少对应用户权限"); //// } //// boolean result = plcTaskService.clearLightTask(poleIds); //// return ResponseUtil.success(result); //// } @GetMapping("/{taskId}") public ResponseVO detailPlcTask(@PathVariable Long taskId) { if (!permissionConfig.check(MenuEnum.PLC_TASK_DETAIL.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } return ResponseUtil.success(plcTaskService.detailPlcTask(taskId)); } /** * 单灯下发 * * @param param * @return */ @PostMapping("/issue") public ResponseVO issueLightTask(@RequestBody @Validated PlcTaskIssueParam param) { if (!permissionConfig.check(MenuEnum.PLC_TASK_ISSUE.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } boolean result = plcTaskService.issuePlcTask(param); if (result) { return ResponseUtil.success("下发成功"); } else { return ResponseUtil.fail("下发失败"); } } // // // @PostMapping("/energy") // public ResponseVO energy() { // // // plcTaskService.energy(); // return ResponseUtil.success("lightEnergyDataService.energy(0)"); // } // // @PostMapping("/check") public ResponseVO checkTask(@RequestBody PlcTaskParam param) { if (!permissionConfig.check(MenuEnum.PLC_TASK_UPDATE.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } if (!"0001".equals(param.getPlcAddress()) && !"0002".equals(param.getPlcAddress()) && !"0003".equals(param.getPlcAddress())) { throw new BusinessException("灯头地址格式不正确"); } return ResponseUtil.success(plcTaskService.checkTask(param)); } }