package cn.iocoder.yudao.module.mes.controller.admin.safety; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.safety.vo.train.*; import cn.iocoder.yudao.module.mes.service.safety.SafetyTrainingService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; /** * 安全生产 - 培训、演练、事故登记电子化归档 * * @author 超级管理员 */ @Tag(name = "管理后台 - 安全生产-培训与事故") @RestController @RequestMapping("/safety/training") @Validated public class SafetyTrainingController { @Resource private SafetyTrainingService trainingService; // ==================== 培训 ==================== @PostMapping("/create") @Operation(summary = "新增安全培训记录") @PreAuthorize("@ss.hasPermission('safety:training:create')") public CommonResult create(@Valid @RequestBody SafetyTrainingSaveReqVO reqVO) { return success(trainingService.createTraining(reqVO)); } @PutMapping("/update") @Operation(summary = "修改安全培训记录") @PreAuthorize("@ss.hasPermission('safety:training:update')") public CommonResult update(@Valid @RequestBody SafetyTrainingSaveReqVO reqVO) { trainingService.updateTraining(reqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除安全培训记录") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:training:delete')") public CommonResult delete(@RequestParam("id") Long id) { trainingService.deleteTraining(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得安全培训记录") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:training:query')") public CommonResult get(@RequestParam("id") Long id) { var training = trainingService.getTraining(id); var resp = BeanUtils.toBean(training, SafetyTrainingRespVO.class); SafetyTrainingService.fillTrainingDisplay(training, resp); return success(resp); } @GetMapping("/page") @Operation(summary = "获得安全培训记录分页") @PreAuthorize("@ss.hasPermission('safety:training:query')") public CommonResult> page(@Valid SafetyTrainingPageReqVO reqVO) { var page = trainingService.getTrainingPage(reqVO); var result = BeanUtils.toBean(page, SafetyTrainingRespVO.class); for (int i = 0; i < page.getList().size(); i++) { SafetyTrainingService.fillTrainingDisplay(page.getList().get(i), result.getList().get(i)); } return success(result); } // ==================== 演练 ==================== @PostMapping("/drill/create") @Operation(summary = "新增消防演练记录") @PreAuthorize("@ss.hasPermission('safety:drill:create')") public CommonResult createDrill(@Valid @RequestBody SafetyDrillSaveReqVO reqVO) { return success(trainingService.createDrill(reqVO)); } @PutMapping("/drill/update") @Operation(summary = "修改消防演练记录") @PreAuthorize("@ss.hasPermission('safety:drill:update')") public CommonResult updateDrill(@Valid @RequestBody SafetyDrillSaveReqVO reqVO) { trainingService.updateDrill(reqVO); return success(true); } @DeleteMapping("/drill/delete") @Operation(summary = "删除消防演练记录") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:drill:delete')") public CommonResult deleteDrill(@RequestParam("id") Long id) { trainingService.deleteDrill(id); return success(true); } @GetMapping("/drill/get") @Operation(summary = "获得消防演练记录") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:drill:query')") public CommonResult getDrill(@RequestParam("id") Long id) { var drill = trainingService.getDrill(id); var resp = BeanUtils.toBean(drill, SafetyDrillRespVO.class); SafetyTrainingService.fillDrillDisplay(drill, resp); return success(resp); } @GetMapping("/drill/page") @Operation(summary = "获得消防演练记录分页") @PreAuthorize("@ss.hasPermission('safety:drill:query')") public CommonResult> drillPage(@Valid SafetyDrillPageReqVO reqVO) { var page = trainingService.getDrillPage(reqVO); var result = BeanUtils.toBean(page, SafetyDrillRespVO.class); for (int i = 0; i < page.getList().size(); i++) { SafetyTrainingService.fillDrillDisplay(page.getList().get(i), result.getList().get(i)); } return success(result); } // ==================== 事故 ==================== @PostMapping("/accident/create") @Operation(summary = "新增事故登记") @PreAuthorize("@ss.hasPermission('safety:accident:create')") public CommonResult createAccident(@Valid @RequestBody SafetyAccidentSaveReqVO reqVO) { return success(trainingService.createAccident(reqVO)); } @PutMapping("/accident/update") @Operation(summary = "修改事故登记") @PreAuthorize("@ss.hasPermission('safety:accident:update')") public CommonResult updateAccident(@Valid @RequestBody SafetyAccidentSaveReqVO reqVO) { trainingService.updateAccident(reqVO); return success(true); } @DeleteMapping("/accident/delete") @Operation(summary = "删除事故登记") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:accident:delete')") public CommonResult deleteAccident(@RequestParam("id") Long id) { trainingService.deleteAccident(id); return success(true); } @GetMapping("/accident/get") @Operation(summary = "获得事故登记") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:accident:query')") public CommonResult getAccident(@RequestParam("id") Long id) { var accident = trainingService.getAccident(id); var resp = BeanUtils.toBean(accident, SafetyAccidentRespVO.class); SafetyTrainingService.fillAccidentDisplay(accident, resp); return success(resp); } @GetMapping("/accident/page") @Operation(summary = "获得事故登记分页") @PreAuthorize("@ss.hasPermission('safety:accident:query')") public CommonResult> accidentPage( @Valid SafetyAccidentPageReqVO reqVO) { var page = trainingService.getAccidentPage(reqVO); var result = BeanUtils.toBean(page, SafetyAccidentRespVO.class); for (int i = 0; i < page.getList().size(); i++) { SafetyTrainingService.fillAccidentDisplay(page.getList().get(i), result.getList().get(i)); } return success(result); } }