package com.estate.expert.admin.controller.admin; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.estate.expert.admin.domain.business.check.Check; import com.estate.expert.admin.domain.business.position.Position; import com.estate.expert.admin.domain.common.request.AddCheckInfoRequest; import com.estate.expert.admin.domain.common.request.AddOnDutyRequest; import com.estate.expert.admin.domain.common.request.BatchReq; import com.estate.expert.admin.domain.common.request.EditCheckInfoRequest; import com.estate.expert.admin.domain.common.request.EditOnDutyRequest; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.common.request.RecordPageRequest; import com.estate.expert.admin.domain.common.response.PageResp; import com.estate.expert.admin.domain.common.response.PageRespMp; import com.estate.expert.admin.domain.exam.record.error.ErrorRecord; import com.estate.expert.admin.domain.exam.record.error.ErrorRecordDto; import com.estate.expert.admin.domain.exam.record.info.SetResponsibleDto; import com.estate.expert.admin.domain.exam.record.review.ErrorReviewDto; import com.estate.expert.admin.domain.exam.record.warning.WarningRecord; import com.estate.expert.admin.domain.exam.record.warning.WarningRecordDto; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.service.*; import com.estate.expert.common.domain.Session; import com.estate.expert.common.rpc.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @Slf4j @CrossOrigin @Api(tags = "管理后台/检查结果") @RequestMapping("/admin/record") @RestController @Validated public class RecordController { @Resource private ErrorRecordService errorRecordService; @Resource private WarningRecordService warningRecordService; @Resource private PositionService positionService; @Resource private OnDutyService onDutyService; @Resource private CheckService checkService; //////// 问题清单 //////// @ApiOperation("综合问题复杂查询") @PostMapping("/error/system/query") public Result listSystemErrorRecords(@Validated @RequestBody RecordPageRequest request){ return Result.success(errorRecordService.listSystemErrors( request.getClientId(), request.getPlanId(), request.getTaskId(), request.getStartDate(), request.getEndDate(), request.getPageReq())); } @ApiOperation("设备问题复杂查询") @PostMapping("/error/device/query") public Result listDeviceErrorRecords(@Validated @RequestBody RecordPageRequest request){ PageResp errorRecordDtoPageResp = errorRecordService.listDeviceErrors(request.getClientId(), request.getPlanId(), request.getTaskId(), request.getStartDate(), request.getEndDate(), request.getPageReq()); return Result.success(errorRecordDtoPageResp); } @ApiOperation("综合问题清单") @PostMapping("/error/system/list") public Result listSystemRecords(@ApiParam(hidden = true)Session session, @RequestParam("checkTaskId") Integer checkTaskId, @RequestParam(value = "mine", required = false) Boolean mine, @Validated @RequestBody PageReq pageReq){ var creatorId = mine ? ((User)session.getUser()).getId() : null; return Result.success(errorRecordService.listSystemErrors(checkTaskId, creatorId, pageReq)); } @ApiOperation("设备问题清单") @PostMapping("/error/device/list") public Result listDeviceRecords(@ApiParam(hidden = true)Session session, @RequestParam("checkTaskId") Integer checkTaskId, @RequestParam(value = "deviceId", required = false) Integer deviceId, @RequestParam(value = "mine", required = false) Boolean mine, @Validated @RequestBody PageReq pageReq){ var creatorId = mine ? ((User)session.getUser()).getId() : null; return Result.success(errorRecordService.listDeviceErrors(checkTaskId, deviceId, creatorId, pageReq)); } @ApiOperation("添加问题") @PostMapping("/error/add") public Result addErrorRecord(@ApiParam(hidden = true)Session session, @Validated @RequestBody ErrorRecordDto errorRecordDto){ errorRecordService.add((User)session.getUser(), errorRecordDto); return Result.success(); } @ApiOperation("添加问题(随机,测试用)") @PostMapping("/addErrorRecords") public Result addErrorRecords(@ApiParam(hidden = true)Session session, @RequestParam("id") Integer id) { errorRecordService.addErrorRecords((User)session.getUser(), id); return Result.success(); } @ApiOperation("编辑问题") @PostMapping("/error/edit") public Result editErrorRecord(@Validated @RequestBody ErrorRecordDto errorRecordDto){ errorRecordService.edit(errorRecordDto); return Result.success(); } @ApiOperation("删除问题") @PostMapping("/error/del") public Result deleteErrorRecord(@Validated @RequestBody BatchReq request){ errorRecordService.deleteAllById(request.getIds()); return Result.success(); } @ApiOperation("计算问题的隐患等级") @PostMapping("/error/computeLevel") public Result computeErrorLevel(@Validated @RequestBody ErrorRecordDto errorRecordDto){ return Result.success(errorRecordService.computeErrorLevel(errorRecordDto)); } //////// 复查记录 //////// @ApiOperation("添加复查记录") @PostMapping("/review/add") public Result addErrorReview(@ApiParam(hidden = true)Session session, @RequestParam("errorRecordId") Integer errorRecordId, @Validated @RequestBody ErrorReviewDto errorReviewDto){ errorRecordService.addReview((User)session.getUser(), errorRecordId, errorReviewDto); return Result.success(); } @ApiOperation("添加复查记录(测试用)") @PostMapping("/addErrorReviews") public Result addErrorReviews(@ApiParam(hidden = true)Session session, @RequestParam("id") Integer id) { errorRecordService.addErrorReviews((User)session.getUser(), id); return Result.success(); } @ApiOperation("编辑复查记录") @PostMapping("/review/edit") public Result editErrorReview(@RequestParam("errorRecordId") Integer errorRecordId, @Validated @RequestBody ErrorReviewDto errorReviewDto){ errorRecordService.editReview(errorRecordId, errorReviewDto); return Result.success(); } @ApiOperation("获取复查记录") @PostMapping("/review/get") public Result getErrorReview(@RequestParam("errorRecordId") Integer errorRecordId){ return Result.success(errorRecordService.getReview(errorRecordId)); } //////// 正确做法 //////// @ApiOperation("正确做法清单") @PostMapping("/warning/list") public Result listWarningRecords(@ApiParam(hidden = true)Session session, @RequestParam(value = "checkTaskId", required = false) Integer checkTaskId, @RequestParam(value = "mine", required = false) Boolean mine, @Validated @RequestBody PageReq pageReq){ var creatorId = mine ? ((User)session.getUser()).getId() : null; return Result.success(warningRecordService.list(checkTaskId, creatorId, pageReq)); } @ApiOperation("正确做法复杂查询") @PostMapping("/warning/listComplex") public Result listWarningRecords(@Validated @RequestBody RecordPageRequest request){ return Result.success(warningRecordService.list(request.getClientId(), request.getPlanId(), request.getTaskId(), request.getStartDate(), request.getEndDate(), request.getPageReq())); } @ApiOperation("添加正确做法") @PostMapping("/warning/add") public Result addWarningRecord(@ApiParam(hidden = true)Session session, @Validated @RequestBody WarningRecordDto warningRecordDto){ warningRecordService.add((User)session.getUser(), warningRecordDto); return Result.success(); } @ApiOperation("编辑正确做法") @PostMapping("/warning/edit") public Result editWarningRecord(@Validated @RequestBody WarningRecordDto warningRecordDto){ warningRecordService.edit(warningRecordDto); return Result.success(); } @ApiOperation("删除正确做法") @PostMapping("/warning/del") public Result deleteWarningRecord(@Validated @RequestBody BatchReq request){ warningRecordService.deleteAllById(request.getIds()); return Result.success(); } @ApiOperation("设置责任人") @PostMapping("/setResponsible") public Result setResponsible(@Validated @RequestBody SetResponsibleDto dto){ WarningRecord warningRecord = warningRecordService.get(dto.getId()); if(warningRecord!=null){ warningRecord.setResponsiblePerson(dto.getResponsiblePerson()); warningRecordService.save(warningRecord); }else { ErrorRecord errorRecord = errorRecordService.get(dto.getId()); if(errorRecord!=null){ errorRecord.setResponsiblePerson(dto.getResponsiblePerson()); errorRecordService.save(errorRecord); } } return Result.success(); } //////// 在岗情况 //////// /** * 在岗情况列表查询 * 支持"全部/我创建的"筛选 */ @ApiOperation("【APP】在岗情况列表") @PostMapping("/onduty/list") public Result listOnDutyRecords(@ApiParam(hidden = true) Session session, @RequestParam(value = "planId", required = false) Integer planId, @RequestParam(value = "mine", required = false) Boolean mine, @Validated @RequestBody PageReq pageReq) { // 根据 mine 参数决定是否筛选"我创建的" var creatorId = mine != null && mine ? ((User) session.getUser()).getId() : null; // 调用 Service 层的 JPA 查询方法 return Result.success(onDutyService.listOnDutyRecords(planId, creatorId, pageReq)); } /** * 添加在岗情况 */ @ApiOperation("【APP】添加在岗情况") @PostMapping("/onduty/add") public Result addOnDuty(@ApiParam(hidden = true) Session session, @Validated @RequestBody AddOnDutyRequest request) { onDutyService.add((User) session.getUser(), request); return Result.success(); } /** * 编辑在岗情况 */ @ApiOperation("【APP】编辑在岗情况") @PostMapping("/onduty/edit") public Result editOnDuty(@Validated @RequestBody EditOnDutyRequest request) { onDutyService.edit(request); return Result.success(); } /** * 删除在岗情况 */ @ApiOperation("【APP】删除在岗情况") @PostMapping("/onduty/del") public Result deleteOnDuty(@Validated @RequestBody BatchReq request) { onDutyService.deleteByIds(request.getIds()); return Result.success(); } @ApiOperation(value = "【APP】岗位列表") @PostMapping("/position/list") public Result list(@Validated @RequestBody PageReq pageReq) { Page page = positionService.lambdaQuery().page(new Page<>(pageReq.getPage(), pageReq.getSize())); return Result.success(PageRespMp.of(page)); } /** * 岗位详情 */ @ApiOperation(value = "【APP】岗位详情") @GetMapping("/position/detail") public Result getPositionDetail(@RequestParam("id") Integer id) { Position position = positionService.getById(id); if (position == null) { throw new RuntimeException("岗位不存在"); } return Result.success(position); } //////// 检查情况 //////// /** * 检查情况列表查询 * 支持"全部/我创建的"筛选 */ @ApiOperation("【APP】检查情况列表") @PostMapping("/checkinfo/list") public Result listCheckInfoRecords(@ApiParam(hidden = true) Session session, @RequestParam(value = "planId", required = false) Integer planId, @RequestParam(value = "mine", required = false) Boolean mine, @Validated @RequestBody PageReq pageReq) { // 根据 mine 参数决定是否筛选"我创建的" var creatorId = mine != null && mine ? ((User) session.getUser()).getId() : null; // 调用 Service 层的 JPA 查询方法 return Result.success(checkService.listCheckInfoRecords(planId, creatorId, pageReq)); } /** * 添加检查信息 */ @ApiOperation("【APP】添加检查信息") @PostMapping("/checkinfo/add") public Result addCheckInfo(@ApiParam(hidden = true) Session session, @Validated @RequestBody AddCheckInfoRequest request) { checkService.addCheckInfo((User) session.getUser(), request); return Result.success(); } /** * 检查信息详情 */ @ApiOperation("【APP】检查信息详情") @GetMapping("/checkinfo/detail") public Result getCheckInfoDetail(@RequestParam("id") Integer id) { Check check = checkService.getById(id); if (check == null) { throw new RuntimeException("检查信息不存在"); } return Result.success(check); } /** * 编辑检查信息 */ @ApiOperation("【APP】编辑检查信息") @PostMapping("/checkinfo/edit") public Result editCheckInfo(@Validated @RequestBody EditCheckInfoRequest request) { checkService.editCheckInfo(request); return Result.success(); } /** * 删除检查信息 */ @ApiOperation("【APP】删除检查信息") @PostMapping("/checkinfo/del") public Result deleteCheckInfo(@Validated @RequestBody BatchReq request) { checkService.deleteCheckInfoByIds(request.getIds()); return Result.success(); } }