LAPTOP-JI2IUVG1\26646 hai 1 mes
pai
achega
5bb3bae237

+ 15 - 4
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/alarm/AlarmController.java

@@ -62,11 +62,22 @@ public class AlarmController {
             return AjaxResult.error("报警信息不存在");
         }
 
-        long existing = businessWorkOrderService.lambdaQuery()
+        WorkOrder existingOrder = businessWorkOrderService.lambdaQuery()
                 .eq(WorkOrder::getAlarmId, alarmId)
-                .count();
-        if (existing > 0) {
-            return AjaxResult.error("该报警已上传工单,不能重复创建");
+                .orderByDesc(WorkOrder::getOrderId)
+                .last("LIMIT 1")
+                .one();
+        if (existingOrder != null) {
+            // 历史数据可能已经建单但未同步 alarm_status,审核接口按幂等成功处理。
+            if (!Integer.valueOf(1).equals(alarm.getAlarmStatus())) {
+                alarm.setAlarmStatus(1);
+                alarm.setHandleTime(LocalDateTime.now());
+                alarm.setHandleUser(SecurityUtils.getUsername());
+                alarm.setHandleRemark("报警已审核,关联工单已存在:" + existingOrder.getOrderId());
+                alarm.setUpdateTime(LocalDateTime.now());
+                service.updateById(alarm);
+            }
+            return AjaxResult.success("该报警已审核,关联工单已存在", existingOrder.getOrderId());
         }
 
         EquipmentBase equipment = alarm.getDeviceCode() == null ? null