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.hazard.*; import cn.iocoder.yudao.module.mes.service.safety.SafetyHazardService; 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/hazard") @Validated public class SafetyHazardController { @Resource private SafetyHazardService hazardService; @PostMapping("/create") @Operation(summary = "隐患上报(支持移动端拍照上传的 photoUrls)") @PreAuthorize("@ss.hasPermission('safety:hazard:create')") public CommonResult create(@Valid @RequestBody SafetyHazardSaveReqVO reqVO) { return success(hazardService.createHazard(reqVO)); } @PutMapping("/update") @Operation(summary = "修改隐患基础信息") @PreAuthorize("@ss.hasPermission('safety:hazard:update')") public CommonResult update(@Valid @RequestBody SafetyHazardSaveReqVO reqVO) { hazardService.updateHazard(reqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "删除隐患") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:hazard:delete')") public CommonResult delete(@RequestParam("id") Long id) { hazardService.deleteHazard(id); return success(true); } @GetMapping("/get") @Operation(summary = "获得隐患") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('safety:hazard:query')") public CommonResult get(@RequestParam("id") Long id) { var hazard = hazardService.getHazard(id); hazardService.fillPersonNames(java.util.List.of(hazard)); var resp = BeanUtils.toBean(hazard, SafetyHazardRespVO.class); SafetyHazardService.fillHazardDisplay(hazard, resp); return success(resp); } @GetMapping("/page") @Operation(summary = "获得隐患分页") @PreAuthorize("@ss.hasPermission('safety:hazard:query')") public CommonResult> page(@Valid SafetyHazardPageReqVO reqVO) { var page = hazardService.getHazardPage(reqVO); hazardService.fillPersonNames(page.getList()); var result = BeanUtils.toBean(page, SafetyHazardRespVO.class); for (int i = 0; i < page.getList().size(); i++) { SafetyHazardService.fillHazardDisplay(page.getList().get(i), result.getList().get(i)); } return success(result); } @PutMapping("/assign") @Operation(summary = "分派隐患整改责任人") @PreAuthorize("@ss.hasPermission('safety:hazard:assign')") public CommonResult assign(@Valid @RequestBody SafetyHazardAssignReqVO reqVO) { hazardService.assignHazard(reqVO); return success(true); } @PutMapping("/rectify") @Operation(summary = "提交隐患整改结果") @PreAuthorize("@ss.hasPermission('safety:hazard:rectify')") public CommonResult rectify(@Valid @RequestBody SafetyHazardRectifyReqVO reqVO) { hazardService.rectifyHazard(reqVO); return success(true); } @PutMapping("/recheck") @Operation(summary = "隐患复查(通过则闭环,不通过退回整改)") @PreAuthorize("@ss.hasPermission('safety:hazard:recheck')") public CommonResult recheck(@Valid @RequestBody SafetyHazardRecheckReqVO reqVO) { hazardService.recheckHazard(reqVO); return success(true); } }