feat(ops): 巡检结果提交接口(Task 5)

- InspectionRecordService + Impl: 提交巡检主记录+明细,同事务保存
- 自动判定 resultStatus:任一项不合格则整体不合格
- 不合格时异步触发归属判定(Task 6 占位)
- InspectionSubmitReqVO/ItemVO: 带校验注解的请求 VO
- InspectionRecordRespVO: 巡检记录响应 VO
- InspectionController 新增 POST /submit 端点
- ErrorCodeConstants 新增 INSPECTION_RECORD_NOT_FOUND

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-03-05 19:15:01 +08:00
parent fa45d94247
commit e4dde8dbc1
7 changed files with 212 additions and 0 deletions

View File

@@ -1,9 +1,12 @@
package com.viewsh.module.ops.controller.admin.inspection;
import com.viewsh.framework.common.pojo.CommonResult;
import com.viewsh.framework.security.core.util.SecurityFrameworkUtils;
import com.viewsh.module.ops.environment.controller.admin.inspection.vo.DetectedBeaconVO;
import com.viewsh.module.ops.environment.controller.admin.inspection.vo.InspectionSubmitReqVO;
import com.viewsh.module.ops.environment.controller.admin.inspection.vo.LocationVerifyResultVO;
import com.viewsh.module.ops.environment.service.inspection.InspectionLocationService;
import com.viewsh.module.ops.environment.service.inspection.InspectionRecordService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -29,6 +32,9 @@ public class InspectionController {
@Resource
private InspectionLocationService inspectionLocationService;
@Resource
private InspectionRecordService inspectionRecordService;
@PostMapping("/verify-location")
@Operation(summary = "蓝牙位置校验")
@Parameter(name = "areaId", description = "区域ID", required = true)
@@ -39,4 +45,12 @@ public class InspectionController {
return success(inspectionLocationService.verifyLocation(areaId, detectedBeacons));
}
@PostMapping("/submit")
@Operation(summary = "提交巡检结果")
@PreAuthorize("@ss.hasPermission('ops:inspection:create')")
public CommonResult<Long> submitInspection(@Valid @RequestBody InspectionSubmitReqVO submitReqVO) {
Long inspectorId = SecurityFrameworkUtils.getLoginUserId();
return success(inspectionRecordService.submitInspection(submitReqVO, inspectorId));
}
}