From 4ee00850f197d769481f73acb8ed79ab1c75b84d Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 14 十一月 2025 11:41:24 +0800
Subject: [PATCH] 问题修复

---
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                   |   28 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java |  144 ++++++++++++++++++--
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java             |    9 +
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java              |   74 ++++++++-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java          |   71 ++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java                        |   10 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java               |    8 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java                   |    2 
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                    |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java                |    7 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java            |   32 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java                  |    5 
 12 files changed, 360 insertions(+), 32 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index f6daf8d..c6b8fa5 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -84,6 +84,7 @@
     public static final String LOCATION ="LOCATION" ;
     public static final String API_KEY ="API_KEY" ;
     public static final String CABINET_CONFIG ="CABINET_CONFIG" ;
+    public static final String JDY_CONFIG ="JDY_CONFIG" ;
     public static final String BLOW_TIME ="BLOW_TIME" ;
     public static final String PRESSURE ="PRESSURE" ;
     public static final String CONCENTRATION ="CONCENTRATION" ;
@@ -127,6 +128,8 @@
     public static final String WORK_END = "WORK_END";
     public static final String INTERVAL = "INTERVAL";
     public static final String USE_CAR_TAKE_CARE = "USE_CAR_TAKE_CARE";
+
+    public static final String PUSH_URL_KEYS = "PUSH_URL_KEYS";
 
 
 
@@ -537,6 +540,9 @@
     public static final String APP_SECRET ="APP_SECRET";
     public static final String ACCESS_TOKEN ="ACCESS_TOKEN";
     public static final String AGENT_ID ="AGENT_ID";
+    public static final String CLEAN_TIME ="CLEAN_TIME";
+    public static final String EARLY_CONFIG ="EARLY_CONFIG";
+
 
 
 
@@ -1568,5 +1574,27 @@
     }
 
 
+    public static boolean  betweenTimeConfig(String timeConfigData){
+        if(StringUtils.isNotBlank(timeConfigData)){
+            Integer nowTime = Integer.valueOf(DateUtil.getFormattedDateUtil(new Date(),"HH:mm").replace(":",""));
+            List<String> cleanConfigList = Arrays.asList(StringUtils.split(timeConfigData,","));
+            for (String config:cleanConfigList) {
+                String [] timeArr = config.split("-");
+                if(timeArr.length>Constants.ONE){
+                    try {
+                        Integer start = Integer.valueOf(timeArr[0].replace(":",""));
+                        Integer end = Integer.valueOf(timeArr[1].replace(":",""));
+                        if(start <= nowTime && end >= nowTime){
+                            return true;
+                        }
+                    }catch (Exception e){
+
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
 
 }
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 176962f..cb8e978 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2085,7 +2085,7 @@
      */
     public static String getCurrDateTime() {
         Timestamp date = new Timestamp(System.currentTimeMillis());
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         return formatter.format(date);
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java
index 622c347..deca264 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/JiandaoyunCloudController.java
@@ -22,6 +22,7 @@
 import com.doumee.dao.web.reqeust.VisitRecordDTO;
 import com.doumee.dao.web.response.VisitRecordVO;
 import com.doumee.service.business.CarUseBookService;
+import com.doumee.service.business.CarsService;
 import com.doumee.service.business.third.model.ApiResponse;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
@@ -68,12 +69,20 @@
     @Autowired
     private CarUseBookService carUseBookService;
 
+    @Autowired
+    private CarsService carsService;
+
+    public  static final String SECRET ="yKSKuO0LoFf06jWGrwwuGudK";
+    public  static final String LOCAl_SECRET ="tSoMiqC3GY6tItXY48tSTwY6";
+    public static final String LLCAL_CARINFO_SECRET = "4J1GMIAG3m6O2jkkaxTu5EOe";
+
+
     @LoginNoRequired
     @ApiOperation("绠�閬撲簯鎺ㄩ�佺敤杞︾敵璇�")
     @PostMapping("/pushCarApply")
     public void pushCarApply (HttpServletRequest request, HttpServletResponse response) {
-        log.error("绠�閬撲簯=========getRequestURI锛�"+request.getRequestURI());
-        log.error("绠�閬撲簯=========getRequestURL锛�"+request.getRequestURL());
+        log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========getRequestURI锛�"+request.getRequestURI());
+        log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========getRequestURL锛�"+request.getRequestURL());
         //鏂板缓{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":0,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:41:56.155Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_create","opTime":1762850516152}
         //淇敼{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":0,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:43:06.436Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_update","opTime":1762850586436}
         //淇敼{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":1,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:45:01.231Z","updater":{"_id":"6909b792324dc197821895e4","name":"姹熻悕","status":1,"type":0,"username":"0458340612772735"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_update","opTime":1762850701231}
@@ -92,20 +101,64 @@
             String nonce = parameterMap.get("nonce");
             String timestamp = parameterMap.get("timestamp");
             String signature = getSignature(nonce, payload, LOCAl_SECRET, timestamp);
-            log.error("绠�閬撲簯=========nonce锛�"+nonce);
-            log.error("绠�閬撲簯=========timestamp锛�"+timestamp);
-            log.error("绠�閬撲簯=========payload锛�"+payload);
-            log.error("绠�閬撲簯=========绛惧悕锛�"+jdy);
-            log.error("绠�閬撲簯=========绛惧悕(姝g‘锛夛細"+signature);
+            log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========nonce锛�"+nonce);
+            log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========timestamp锛�"+timestamp);
+            log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========payload锛�"+payload);
+            log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========绛惧悕锛�"+jdy);
+            log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========绛惧悕(姝g‘锛夛細"+signature);
             if (!signature.equals(jdy)) {
                 response.setStatus(401);
                 response.getWriter().write("fail");
                 response.getWriter().close();;
                 return ;
             }
-
             carUseBookService.jdyPushCarUseBook(payload);
+            response.setStatus(200);
+            response.getWriter().write("success");
+            response.getWriter().close();
+        }catch (Exception e){
+            e.printStackTrace();
+            log.error("銆愮畝閬撲簯銆� 鐢ㄨ溅鐢宠 =========寮傚父锛�"+e.getMessage());
+        }
+    }
 
+
+    @LoginNoRequired
+    @ApiOperation("绠�閬撲簯鎺ㄩ�佽溅杈嗕俊鎭�")
+    @PostMapping("/pushCarInfo")
+    public void pushCarInfo (HttpServletRequest request, HttpServletResponse response) {
+        log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅 =========getRequestURI锛�"+request.getRequestURI());
+        log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========getRequestURL锛�"+request.getRequestURL());
+        //鏂板缓{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":0,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:41:56.155Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_create","opTime":1762850516152}
+        //淇敼{"data":{"data":{"_id":"6909d2ac6bf3636d0dbcc953","_widget_1762251302690":"鐨朅FJ6557","_widget_1762251302691":"涓�鑸叕鍔�","_widget_1762251302692":"","_widget_1762251302693":"甯傚眬鏈骇杞﹂槦","_widget_1762251302694":{"_id":"6909b792324dc197821895e8","name":"鏉庢��鑻�","status":1,"type":0,"username":"045831294126209983"},"_widget_1762251302695":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"_widget_1762251302696":"鍙敤","_widget_1762251302697":null,"_widget_1762251302698":10000,"_widget_1762251302699":null,"_widget_1762251302700":null,"_widget_1762251302701":null,"_widget_1762251302702":null,"_widget_1762251302703":"鍚�","appId":"6909d0fbdb93b068192dc4a9","createTime":"2025-11-04T10:17:17.015Z","creator":{"_id":"6909b792324dc197821895e8","name":"鏉庢��鑻�","status":1,"type":0,"username":"045831294126209983"},"deleteTime":null,"deleter":null,"entryId":"6909d226b9a675ac4224aa6d","formName":"杞﹁締淇℃伅","updateTime":"2025-11-13T09:20:05.253Z","updater":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"}},"op":"data_update","opTime":1763025605253}
+        //淇敼{"data":{"_id":"6912f6d47b4a80933348df31","addr":"璞嗙背绉戞妧","appId":"6909d0fbdb93b068192dc4a9","car_category":"涓撳崠绠$悊","car_group":"褰撴秱鍘垮眬杞﹂槦","car_no":"鐨朎U2866","car_statue":"鍑鸿溅","company":{"_id":"6909b792fa9388e2242f497d","dept_no":483166139,"name":"寮�鍙戦儴","type":0},"createTime":"2025-11-11T08:41:56.152Z","create_date":"2025-11-10T16:00:00.000Z","creator":{"_id":"6909b792324dc197821895e7","name":"浠诲悍","status":1,"type":0,"username":"1568490244651036"},"deleteTime":null,"deleter":null,"driver":{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"},"driver_status":"绌洪棽","end_date":"2025-11-11T09:41:00.000Z","entryId":"690ab9085ebd91d2308e595b","flowState":1,"formName":"娲捐溅鐢宠","holiday":"鍚�","key_back_date":null,"key_info":"寰呴鍙�","key_use_date":null,"no":"20251111100004","reason":"娴嬭瘯鐢宠","scope":"甯傚唴","start_date":"2025-11-11T08:41:00.000Z","updateTime":"2025-11-11T08:45:01.231Z","updater":{"_id":"6909b792324dc197821895e4","name":"姹熻悕","status":1,"type":0,"username":"0458340612772735"},"users":[{"_id":"6909b792324dc197821895e5","name":"閮檯鏂囨","status":1,"type":0,"username":"0115666322451143077815"}]},"op":"data_update","opTime":1762850701231}
+        try {
+            String jdy = request.getHeader("x-jdy-signature");
+            StringBuilder json = new StringBuilder();
+            String line;
+            BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
+            while ((line = reader.readLine()) != null) {
+                json.append(line);
+            }
+//            String payload = IOUtils.toString(request.getInputStream(), "utf-8");
+            String payload = json.toString();
+            String uri = request.getRequestURI();
+            Map<String, String> parameterMap = parseParameter(request.getQueryString());
+            String nonce = parameterMap.get("nonce");
+            String timestamp = parameterMap.get("timestamp");
+            String signature = getSignature(nonce, payload, LLCAL_CARINFO_SECRET, timestamp);
+            log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========nonce锛�"+nonce);
+            log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========timestamp锛�"+timestamp);
+            log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========payload锛�"+payload);
+            log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========绛惧悕锛�"+jdy);
+            log.error("銆愮畝閬撲簯銆� 杞﹁締淇℃伅=========绛惧悕(姝g‘锛夛細"+signature);
+            if (!signature.equals(jdy)) {
+                response.setStatus(401);
+                response.getWriter().write("fail");
+                response.getWriter().close();;
+                return ;
+            }
+            carsService.jdyPushCarInfo(payload);
             response.setStatus(200);
             response.getWriter().write("success");
             response.getWriter().close();
@@ -113,8 +166,8 @@
             e.printStackTrace();
             log.error("绠�閬撲簯=========寮傚父锛�"+e.getMessage());
         }
-
     }
+
     @ApiOperation("绠�閬撲簯鎻愪氦閽ュ寵鍊熻繕淇℃伅")
     @PostMapping("/submitKeyRecord")
     public ApiResponse<JkCabinetLog> submitKeyRecord (HttpServletRequest request, HttpServletResponse response) {
@@ -124,9 +177,6 @@
         log.setMemberName("寮犱笁");
         return  ApiResponse.success(log);
     }
-
-    public  static final String SECRET ="yKSKuO0LoFf06jWGrwwuGudK";
-    public  static final String LOCAl_SECRET ="tSoMiqC3GY6tItXY48tSTwY6";
 
     private static String getSignature(String nonce, String payload, String secret, String timestamp) {
         return DigestUtils.sha1Hex(nonce + ":" + payload + ":" + secret + ":" + timestamp);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java
new file mode 100644
index 0000000..4ba4a62
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/JDYKeyUseByBookDTO.java
@@ -0,0 +1,32 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.service.business.third.model.LoginUserModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/10/11 16:01
+ */
+@Data
+public class JDYKeyUseByBookDTO{
+
+    @ApiModelProperty(value = "鎿嶄綔鏃堕棿")
+    private Long create_date;
+
+    @ApiModelProperty(value = "棰嗙敤鏃堕棿")
+    private Long start_date;
+
+    @ApiModelProperty(value = "褰掕繕鏃堕棿")
+    private Long end_date;
+
+    @ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�0=棰嗙敤锛�1=褰掕繕锛�")
+    private Integer type;
+
+    @ApiModelProperty(value = "娲捐溅鍗� no鍗曞彿")
+    private String id;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java
index 54b81ac..248df88 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/OpenGridDriverDTO.java
@@ -25,6 +25,13 @@
     @ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
     private Integer memberId;
 
-    @ApiModelProperty(value = "寮�鍚柟寮忥細0=绯荤粺寮�鍚紱1=鎵嬪姩寮�鍚�")
+    @ApiModelProperty(value = "寮�鍚被鍨嬶細0=绯荤粺寮�鍚紱1=鎵嬪姩寮�鍚�")
     private Integer openType;
+
+    @ApiModelProperty(value = "寮�鍚柟寮忥細0=闅忚溅锛�1=娲捐溅鍗曪紱2=淇濇磥")
+    private Integer openWay;
+
+    @ApiModelProperty(value = "娲捐溅鍗曚富閿�")
+    private Integer carUseBookId;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
index 9c9270e..8add43f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -159,6 +159,11 @@
     @ApiModelProperty(value = "绠�閬撲簯涓氬姟涓婚敭")
     private String jdyId;
 
+
+    @ApiModelProperty(value = "閽ュ寵棰嗗彇鐘舵�侊細0=寰呴鍙栵紱1=宸查鍙栵紱2=宸插綊杩橈紱")
+    private Integer keyStatus;
+
+
     @ApiModelProperty(value = "鍙告満濮撳悕", example = "1")
     @TableField(exist = false)
     private String driverName;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
index 3d8f838..2dec826 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java
@@ -127,6 +127,16 @@
     //@ExcelColumn(name="鎵�灞炲垎绫荤紪鐮�")
     private Integer cateId;
 
+    @ApiModelProperty(value = "绠�閬撲簯涓婚敭", example = "1")
+    //@ExcelColumn(name="鎵�灞炲垎绫荤紪鐮�")
+    private String jdyId;
+
+    @ApiModelProperty(value = "绠�閬撲簯杞﹁締鍒嗙被鍚嶇О", example = "1")
+    //@ExcelColumn(name="鎵�灞炲垎绫荤紪鐮�")
+    private String typeName;
+
+
+
     @ApiModelProperty(value = "鍋滆溅鍦哄悕绉伴泦鍚�", example = "1")
     //@ExcelColumn(name="鍋滆溅鍦哄悕绉伴泦鍚�")
     @TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
index 84cb250..0db643f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetGrid.java
@@ -110,4 +110,12 @@
     @TableField(exist = false)
     private Integer keyStatus;
 
+    @ApiModelProperty(value = "娲捐溅鐢宠鍗曚富閿�", example = "1")
+    @TableField(exist = false)
+    private Integer carUseBookId;
+
+    @ApiModelProperty(value = "鍙栭挜鍖欐柟寮忥細0=闅忚溅锛�1=娲捐溅鍗曪紱2=淇濇磥鎵撴壂", example = "1")
+    @TableField(exist = false)
+    private Integer getKeyWay;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
index 475a4e7..eb846e0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
@@ -80,6 +80,13 @@
     @ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�0=寮�闂�;1=鍏抽棬;", example = "1")
     private Integer type;
 
+
+    @ApiModelProperty(value = "寮�鍚柟寮忥細0=闅忚溅锛�1=娲捐溅鍗曪紱2=淇濇磥")
+    private Integer openWay;
+
+    @ApiModelProperty(value = "娲捐溅鍗曚富閿�")
+    private Integer carUseBookId;
+
     @ApiModelProperty(value = "杞︾墝鍙�")
     @TableField(exist = false)
     private String carCode;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
index 8e6c229..665ab32 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CarsService.java
@@ -107,4 +107,6 @@
      */
     PageData<CarsDTO> findCarPage(PageWrap<CarsQuery> pageWrap);
     void dealCarsAuthBiz(List<Cars> carsList);
+
+    void jdyPushCarInfo(String dataInfo);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
index 83aa186..bc14916 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -1,5 +1,7 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,6 +9,7 @@
 import com.doumee.core.annotation.excel.ExcelImporter;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.DateUtil;
 import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
@@ -39,6 +42,7 @@
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * 杞﹁締淇℃伅琛⊿ervice瀹炵幇
@@ -711,4 +715,71 @@
     }
 
 
+
+    @Override
+    public void jdyPushCarInfo(String dataInfo){
+        JSONObject dataInfoJSON = JSONObject.parseObject(dataInfo);
+        if(dataInfoJSON.isEmpty()){
+            return;
+        }
+        String op = dataInfoJSON.getString("op");
+        //鍒犻櫎锛歞ata_remove 鏂板锛歞ata_add 淇敼锛歞ata_update
+        if(StringUtils.isEmpty(op)){
+            return;
+        }
+        JSONObject dataJSON = dataInfoJSON.getJSONObject("data");
+        String no = dataJSON.getString("_id");
+        if(StringUtils.isEmpty(no)){
+            return;
+        }
+        if(op.equals("data_remove")){
+            carsMapper.update(new UpdateWrapper<Cars>().lambda()
+                    .set(Cars::getEditDate, DateUtil.getCurrDate())
+                    .set(Cars::getIsdeleted,Constants.ONE).eq(Cars::getJdyId,no));
+            return;
+        }
+
+        String status = dataJSON.getString("status");
+        String carCode = dataJSON.getString("car_code");
+        Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>()
+                .lambda().eq(Cars::getJdyId,no).last("limit 1"));
+        if(Objects.isNull(cars)){
+            cars = new Cars();
+            cars.setCreateDate(new Date());
+            cars.setEditDate(new Date());
+            cars.setJdyId(no);
+        }else{
+            cars.setEditDate(new Date());
+        }
+        cars.setIsdeleted(Constants.ZERO);
+        cars.setCode(StringUtils.isBlank(carCode)?null:carCode);
+        cars.setStatus(StringUtils.isNotBlank(status)&&StringUtils.equals(status,"鍙敤")?0:1);
+        JSONObject driverJSON = dataJSON.getJSONObject("driver");
+        if(!driverJSON.isEmpty()){
+            String driverName = driverJSON.getString("name");
+            String driverUserName = driverJSON.getString("username");
+            if(StringUtils.isNotBlank(driverUserName)){
+                Member driverMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,driverUserName).last("limit 1 "));
+                if(Objects.nonNull(driverMember)){
+                    cars.setMemberId(driverMember.getId());
+                }
+            }
+        }
+        JSONObject createJSON = dataJSON.getJSONObject("creator");
+        if(!createJSON.isEmpty()){
+            String createName = createJSON.getString("name");
+            String createUserName = createJSON.getString("username");
+            if(StringUtils.isNotBlank(createUserName)){
+                Member createMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,createUserName).last("limit 1 "));
+                if(Objects.nonNull(createMember)){
+                    cars.setMemberId(createMember.getId());
+                }
+            }
+        }
+        carsMapper.insertOrUpdate(cars);
+    }
+
+
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
index a14b88a..9140786 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -9,6 +9,7 @@
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.HttpsUtil;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.MemberMapper;
 import com.doumee.dao.business.dto.*;
@@ -82,6 +83,9 @@
 
     @Autowired
     private DingTalk dingTalk;
+
+    @Autowired
+    private CarUseBookMapper carUseBookMapper;
 
     @Override
     public Integer create(JkCabinetGrid jkCabinetGrid) {
@@ -477,12 +481,40 @@
                                 .set(JkKeys::getStatus,dto.getKeyStatus())
                                 .eq(JkKeys::getId,jkKeys.getId())
                         );
+                        //褰掕繕閽ュ寵/鍊熷嚭閽ュ寵 閮借鍘绘煡璇㈡渶鍚庝竴娆″紑闂ㄨ褰� 鑾峰彇鍏蜂綋鐨勫紑闂ㄧ殑鏂瑰紡 鏄殢杞�/娲捐溅/淇濇磥 璧嬩簣褰撳墠鍏抽棬璁板綍鍐� 濡傛灉鏄淳杞﹀崟鏁版嵁 闇�瑕佽皟璧风畝閬撲簯鎺ㄩ��
+                        JkCabinetLog lastOutLog = jkCabinetLogMapper.selectOne(new QueryWrapper<JkCabinetLog>().lambda()
+                                .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
+                                .eq(JkCabinetLog::getType,Constants.ZERO)
+                                .last( "limit 1 "));
+                        if(Objects.nonNull(lastOutLog)){
+                            if(Objects.nonNull(lastOutLog.getCarUseBookId())) {
+                                CarUseBook carUseBook = carUseBookMapper.selectById(lastOutLog.getCarUseBookId());
+                                if (Objects.nonNull(carUseBook) && Constants.equalsInteger(carUseBook.getKeyStatus(), Constants.ZERO)) {
+                                    carUseBookMapper.update(new UpdateWrapper<CarUseBook>().lambda()
+                                            .set(CarUseBook::getKeyStatus, Constants.ONE)
+                                            .eq(CarUseBook::getId, carUseBook.getId())
+                                    );
+                                    //鎺ㄩ�佺畝閬撲簯 鏍囪涓氬姟鏁版嵁宸茶棰嗗彇閽ュ寵
+                                    if (StringUtils.isNotBlank(carUseBook.getJdyId())) {
+                                        JDYKeyUseByBookDTO jdyKeyUseByBookDTO = new JDYKeyUseByBookDTO();
+                                        jdyKeyUseByBookDTO.setCreate_date(System.currentTimeMillis());
+                                        jdyKeyUseByBookDTO.setStart_date(Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO)?System.currentTimeMillis():null);
+                                        jdyKeyUseByBookDTO.setEnd_date(Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)?System.currentTimeMillis():null);
+                                        jdyKeyUseByBookDTO.setType(Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO)?Constants.ZERO:Constants.ONE);
+                                        jdyKeyUseByBookDTO.setId(carUseBook.getJdyId());
+                                        this.pushJDYKeyInfo(jdyKeyUseByBookDTO);
+                                    }
+                                }
+                            }
+                        }
+
                     }
                 }
             }
             jkCabinetLog.setIsNotice(Constants.ZERO);
             jkCabinetLog.setType(Constants.ONE);
             jkCabinetLogMapper.insert(jkCabinetLog);
+
             //鏌ヨ閽ュ寵鐨勫紑闂ㄨ褰� 杩涜娣诲姞鍏抽棬璁板綍涓婚敭
             if(Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)){
                 jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
@@ -558,23 +590,80 @@
                     return jkCabinetGridList;
                 }
             }
-            jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
-                    new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
-                            .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
-                            .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
-                            .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
-                            .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
-                            .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
-                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
-                            .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
-                            .eq(JkCabinetGrid::getStatus,Constants.ZERO)
-                            .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
-                            .in(Constants.equalsInteger(dto.getType(),Constants.ONE),JkKeys::getStatus,Constants.TWO,Constants.THREE)
-                            .in(Constants.equalsInteger(dto.getType(),Constants.ZERO),JkKeys::getStatus,Constants.ONE)
-                            .isNotNull(JkCabinetGrid::getKeyId)
-                            .apply(" t1.car_id in ( select c.id from  cars c  where c.ISDELETED = 0 and  c.MEMBER_ID = "+dto.getMemberId()+" ) ")
-                            .orderByAsc(JkCabinetGrid::getCode)
-            );
+
+            //濡傛灉鏄繕閽ュ寵 鍒欑洿鎺ユ煡璇㈠凡鍊熷嚭鐨勯挜鍖欑殑鏁版嵁
+            if(Constants.equalsInteger(dto.getType(),Constants.ONE)){
+                jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+                        new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+                                .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+                                .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                                .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+                                .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+                                .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+                                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                                .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+                                .eq(JkCabinetGrid::getStatus,Constants.ZERO)
+                                .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+                                .in(JkKeys::getStatus,Constants.TWO,Constants.THREE)
+                                .isNotNull(JkCabinetGrid::getKeyId)
+                                .apply("t1.car_id in ( select c.id from  cars c  where c.ISDELETED = 0 and  c.MEMBER_ID = "+dto.getMemberId()+" )")
+
+                                .orderByAsc(JkCabinetGrid::getCode)
+                );
+            }else{
+                //鍒ゆ柇褰撳墠鏃堕棿鏄惁澶勪簬淇濇磥鏃舵鍐�
+                String cleanConfig =  systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CLEAN_TIME).getCode();
+                String earlyConfig =  systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode();
+                Boolean isCleanTime = Constants.betweenTimeConfig(cleanConfig);
+                List<Integer> girdIdList = new ArrayList<>();
+                //鏌ヨ鏍规嵁浠诲姟鍙互棰嗗彇鐨勬暟鎹�
+                jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+                        new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+                                .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+                                .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                                .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+                                .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+                                .selectAs(CarUseBook::getId,JkCabinetGrid::getCarUseBookId)
+                                .select("1",JkCabinetGrid::getGetKeyWay)
+                                .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+                                .innerJoin(CarUseBook.class,CarUseBook::getCarCode,JkKeys::getCarCode)
+                                .innerJoin(Cars.class,Cars::getCode,CarUseBook::getCarCode)
+                                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                                .eq(CarUseBook::getIsdeleted,Constants.ZERO)
+                                .eq(Cars::getIsdeleted,Constants.ZERO)
+                                .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+                                .eq(JkCabinetGrid::getStatus,Constants.ZERO)
+                                .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+                                .in(JkKeys::getStatus,Constants.ONE)
+                                .eq(JkKeys::getRoleType,Constants.ONE)
+                                .isNotNull(JkCabinetGrid::getKeyId)
+                                .apply("and NOW() > DATE_SUB(t2.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < t2.end_time and t3.MEMBER_ID = "+dto.getMemberId()+" )")
+
+                );
+                if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+                    girdIdList = jkCabinetGridList.stream().map(i->i.getId()).collect(Collectors.toList());
+                }
+                jkCabinetGridList.addAll(jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+                            new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+                                    .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
+                                    .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                                    .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+                                    .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+                                    .select(!isCleanTime?"0":"2",JkCabinetGrid::getGetKeyWay)
+                                    .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+                                    .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                                    .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+                                    .eq(JkCabinetGrid::getStatus,Constants.ZERO)
+                                    .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+                                    .eq(!isCleanTime,JkKeys::getRoleType,Constants.ZERO)
+                                    .in(JkKeys::getStatus,Constants.ONE)
+                                    .isNotNull(JkCabinetGrid::getKeyId)
+                                    .notIn(CollectionUtils.isNotEmpty(girdIdList),JkCabinetGrid::getId,jkCabinetGridList)
+                                    .apply("t1.car_id in ( select c.id from  cars c  where c.ISDELETED = 0 and  c.MEMBER_ID = "+dto.getMemberId()+" ) ")
+                    )
+                );
+            }
+
             for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
                 jkCabinetGrid.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
                 jkCabinetGrid.setKeyStatus(Objects.isNull(jkCabinetGrid.getKeyStatus())?Constants.ZERO:jkCabinetGrid.getKeyStatus());
@@ -607,7 +696,9 @@
         jkCabinetLog.setAuthType(openGridDriverDTO.getAuthType());
         jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
         jkCabinetLog.setType(Constants.ZERO);
-        jkCabinetLog.setStatus(Constants.ZERO);
+        jkCabinetLog.setOpenWay(openGridDriverDTO.getOpenWay());
+        jkCabinetLog.setCarUseBookId(openGridDriverDTO.getCarUseBookId());
+
         jkCabinetLog.setInfo(Objects.isNull(openGridDriverDTO.getOpenType())||Constants.equalsInteger(openGridDriverDTO.getOpenType(),Constants.ZERO)?"绯荤粺寮�鍚�":"鎵嬪姩寮�鍚�");
         if(Objects.nonNull(jkCabinetGrid.getKeyId())){
             jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
@@ -622,9 +713,26 @@
         }
         jkCabinetLog.setIsNotice(Constants.ZERO);
         jkCabinetLogMapper.insert(jkCabinetLog);
+
     }
 
 
+    public void pushJDYKeyInfo(JDYKeyUseByBookDTO dto){
+        String url = systemDictDataBiz.queryByCode(Constants.JDY_CONFIG,Constants.PUSH_URL_KEYS).getCode();
+//        JSONObject object = new JSONObject();
+//        object.put("create_date","20251104160000");
+//        object.put("start_date",System.currentTimeMillis() );
+//        object.put("end_date", System.currentTimeMillis() + 24*3600*1000);
+//        object.put("id","10000020251105");//
+//        object.put("type",1);//0=棰嗙敤锛�1=褰掕繕
+        log.error("銆愮畝閬撲簯銆戞帹閫佹淳杞﹀崟鏁版嵁棰嗙敤涓庡綊杩樹俊鎭�-璇锋眰鍏ュ弬锛�"+JSONObject.toJSONString(dto));
+        String result = HttpsUtil.postJson(url,JSONObject.toJSONString(dto));
+        log.error("銆愮畝閬撲簯銆戞帹閫佹淳杞﹀崟鏁版嵁棰嗙敤涓庡綊杩樹俊鎭�-璇锋眰缁撴灉锛�"+JSONObject.toJSONString(result));
+
+
+
+    }
+
 
     @Override
     public void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto){

--
Gitblit v1.9.3