Procházet zdrojové kódy

过车记录修改

brealinxx před 1 rokem
rodič
revize
3e7b44d0cd

+ 2 - 2
src/main/java/com/xjrsoft/module/hikvision/util/EventController.java

@@ -40,13 +40,13 @@ public class EventController {
     @ApiOperation(value = "接收车辆事件")
     public ResponseEntity<Void> receiveCarEvent(@RequestBody(required = false) String eventData) {
         log.info("Received event data: {}", eventData);
-        new Thread(() -> {
+//        new Thread(() -> {
             try {
                 outInRecordUtil.GetVehicleRecordTest(use, faceImportMapper, eventData);
             } catch (SQLException | ParseException e) {
                 log.error("Error processing event data", e);
             }
-        }).start();
+//        }).start();
 
         // 立即返回HTTP 200 OK响应
         return ResponseEntity.ok().build();

+ 62 - 11
src/main/java/com/xjrsoft/module/hikvision/util/Out_In_RecordUtil.java

@@ -47,10 +47,10 @@ public class Out_In_RecordUtil {
         db.execute(sql);
     }
 
-    private void vehicleInsertRecord(Db db, Long carMessageApplyId, String recordTime, String reservationSchoolPeopleId, int category, String facePhoto, int status) throws SQLException {
-        String sql = "INSERT INTO car_out_in_record(create_date, car_message_apply_id, record_time, face_photo, status,reservation_school_people_id, category,delete_mark,enabled_mark) " +
+    private void vehicleInsertRecord(Db db, Long carMessageApplyId, String recordTime, String releaseReason, int category, String facePhoto, int status, String planNo, String crossRecordSyscode) throws SQLException {
+        String sql = "INSERT INTO car_out_in_record(create_date, car_message_apply_id, record_time, face_photo, status,releaseReason, planNo,crossRecordSyscode,category,delete_mark,enabled_mark) " +
                 "VALUES(now(), '"  + carMessageApplyId + "', '" +
-                recordTime + "', '" + facePhoto + "', '" + status + "', '" + reservationSchoolPeopleId + "', '" + category  +  "',0,1)";
+                recordTime + "', '" + facePhoto + "', '" + status + "', '" + releaseReason + "', '" + planNo + "', '" + crossRecordSyscode + "', '" + category  +  "',0,1)";
         db.execute(sql);
     }
 
@@ -347,8 +347,25 @@ public class Out_In_RecordUtil {
             String carMessageApplyIdStr = faceImportMapper.GetCarMessageApplyIdByCarNumber(item.get("plateNo").getAsString().trim());
             Long carId = (carMessageApplyIdStr == null || carMessageApplyIdStr.isEmpty()) ? 0 : Long.parseLong(carMessageApplyIdStr);
             int releaseMode = item.get("releaseMode").isJsonNull() ? null : item.get("releaseMode").getAsInt();
-            String eventTime = item.get("crossTime").isJsonNull() ? null : ChangeTime(item.get("crossTime").getAsString());
             String crossRecordSyscode = item.get("crossRecordSyscode").isJsonNull() ? null : item.get("crossRecordSyscode").getAsString();
+            String plateNo = item.get("plateNo").isJsonNull() ? null : item.get("plateNo").getAsString();
+            String eventTime = item.get("crossTime").isJsonNull() ? null : ChangeTime(item.get("crossTime").getAsString());
+            int releaseReasonInt = item.get("releaseReason").isJsonNull() ? null : item.get("releaseReason").getAsInt();
+            String releaseReason = null;
+            switch (releaseReasonInt){
+                case 100:
+                    releaseReason = "固定车自动放行";
+                    break;
+                case 101:
+                    releaseReason = "临时车自动放行";
+                    break;
+                case 102:
+                    releaseReason = "预约车自动放行";
+                    break;
+                case 103:
+                    releaseReason = "一户多车自动放行";
+                    break;
+            }
             int status = item.get("vehicleOut").isJsonNull() ? null : item.get("vehicleOut").getAsInt();
 
             if(vehicle_id_list.contains(crossRecordSyscode)) continue;
@@ -360,8 +377,8 @@ public class Out_In_RecordUtil {
             } else {
                 facePicUri = ApiUtil.GetRedirectURL(facePicUriElement.getAsString());
             }
-            System.out.println(GetReserveOrderNo(crossRecordSyscode) + "haha");
-//            vehicleInsertRecord(use, carId, eventTime, crossRecordSyscode,releaseMode,facePicUri,status);
+//            System.out.println(GetReserveOrderNo(crossRecordSyscode) + "haha");
+            vehicleInsertRecord(use, carId, eventTime, releaseReason, releaseMode, facePicUri, status, plateNo, crossRecordSyscode);
         }
     }
 
@@ -451,15 +468,48 @@ public class Out_In_RecordUtil {
                     JsonObject eventObject = eventElement.getAsJsonObject();
                     JsonObject dataObject = eventObject.getAsJsonObject("data");
 
-                    String carMessageApplyIdStr = faceImportMapper.GetCarMessageApplyIdByCarNumber(dataObject.get("plateNo").getAsString().trim());
+                    String carNum = dataObject.get("plateNo").getAsString().trim();
+                    String eventIndex = dataObject.get("eventIndex").getAsString().trim();
+                    String carMessageApplyIdStr = faceImportMapper.GetCarMessageApplyIdByCarNumber(carNum);
                     Long carId = (carMessageApplyIdStr == null || carMessageApplyIdStr.isEmpty()) ? 0 : Long.parseLong(carMessageApplyIdStr);
                     String eventTime = ChangeTime(dataObject.get("time").getAsString());
-                    int code = dataObject.get("eventType").getAsInt();
-                    int releaseMode = dataObject.getAsJsonObject("inResult").getAsJsonObject("rlsResult").get("releaseWay").getAsInt();
-                    String facePicUri = dataObject.getAsJsonObject("picUrl").get("vehiclePicUrl").getAsString();
+
+                    int releaseMode = 0;
+                    int releaseReasonInt = 0;
+                    JsonObject inResultObject = dataObject.getAsJsonObject("inResult");
+                    if (inResultObject != null) {
+                        JsonObject rlsResultObject = inResultObject.getAsJsonObject("rlsResult");
+                        if (rlsResultObject != null && rlsResultObject.has("releaseWay")) {
+                            releaseMode = rlsResultObject.get("releaseWay").getAsInt();
+                            releaseReasonInt = rlsResultObject.get("releaseReason").getAsInt();
+                        }
+                    }
+
+                    String releaseReason = null;
+                    switch (releaseReasonInt){
+                        case 100:
+                            releaseReason = "固定车自动放行";
+                            break;
+                        case 101:
+                            releaseReason = "临时车自动放行";
+                            break;
+                        case 102:
+                            releaseReason = "预约车自动放行";
+                            break;
+                        case 103:
+                            releaseReason = "一户多车自动放行";
+                            break;
+                    }
+
+                    String facePicUri = "";
+                    JsonObject picUrlObject = dataObject.getAsJsonObject("picUrl");
+                    if (picUrlObject != null && picUrlObject.has("vehiclePicUrl")) {
+                        facePicUri = picUrlObject.get("vehiclePicUrl").getAsString();
+                    }
+
                     int status = eventObject.get("status").getAsInt();
 
-                    vehicleInsertRecord(use, carId, eventTime, "1",releaseMode,facePicUri,status);
+                    vehicleInsertRecord(use, carId, eventTime, releaseReason, releaseMode, facePicUri, status,carNum,eventIndex);
                 }
             } catch (Exception e) {
                 log.info(String.valueOf(e));
@@ -467,4 +517,5 @@ public class Out_In_RecordUtil {
         }
     }
 
+
 }

+ 1 - 1
src/main/resources/mapper/teacher/TeacherFaceImportMapper.xml

@@ -103,7 +103,7 @@
     </select>
 
     <select id="GetVehicleIdList" resultType="java.lang.String">
-        SELECT reservation_school_people_id
+        SELECT crossRecordSyscode
         FROM car_out_in_record
     </select>
 </mapper>

+ 1 - 1
src/test/java/com/xjrsoft/module/job/HikvisionBaseDataTaskTest.java

@@ -104,7 +104,7 @@ class HikvisionBaseDataTaskTest {
 //        String carTableName = "car_message_apply";
 //        selectCar(use, carTableName);
 
-        outInRecordUtil.GetTeacherAndStudentRecords(use,faceImportMapper);
+        outInRecordUtil.GetVehicleRecord(use,faceImportMapper);
 ////        selecAllPersonById(use);
 //        selectResource(use);
     }