From d5e01405a50c89966ae06363b09fd385b47f99f0 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 24 十月 2025 16:47:55 +0800
Subject: [PATCH] 问题修改

---
 server/system_timer/src/main/resources/bootstrap-pro.yml                                                   |    6 
 server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml                                           |    6 
 server/visits/dmvisit_service/src/main/resources/application-pro.yml                                       |    4 
 server/visits/admin_timer/src/main/resources/bootstrap.yml                                                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java        |   10 
 server/system_timer/src/main/resources/application-pro.yml                                                 |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java  |   32 +-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java |  140 ++++++++++++++-
 server/system_gateway/src/main/resources/bootstrap-pro.yml                                                 |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java                |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java                  |   18 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AlcoholTestAlarmDTO.java           |   22 ++
 server/visits/admin_timer/src/main/resources/bootstrap-pro.yml                                             |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java     |   43 ++++
 server/system_gateway/src/main/resources/bootstrap.yml                                                     |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java              |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java          |   22 ++
 server/system_timer/src/main/resources/bootstrap.yml                                                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java                |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java             |    2 
 server/system_gateway/src/main/resources/application-pro.yml                                               |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/TimeOutCloseGridDTO.java           |   25 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java      |    2 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java              |   29 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java      |   78 ++++----
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java         |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java                         |    4 
 27 files changed, 375 insertions(+), 111 deletions(-)

diff --git a/server/system_gateway/src/main/resources/application-pro.yml b/server/system_gateway/src/main/resources/application-pro.yml
index 4dc0687..df592ab 100644
--- a/server/system_gateway/src/main/resources/application-pro.yml
+++ b/server/system_gateway/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://localhost:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Atwl@2024
+    password: Whyc@2025
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:
@@ -18,7 +18,7 @@
 
 
 
-debug_model: false
+debug_model: true
 
 captcha_check: true
 
@@ -32,7 +32,7 @@
   redirect-uri: /
 
 knife4j:
-  enable: false
+  enable: true
   basic:
     enable: true
     username: admin
diff --git a/server/system_gateway/src/main/resources/bootstrap-pro.yml b/server/system_gateway/src/main/resources/bootstrap-pro.yml
index d6eb6d1..8d0b245 100644
--- a/server/system_gateway/src/main/resources/bootstrap-pro.yml
+++ b/server/system_gateway/src/main/resources/bootstrap-pro.yml
@@ -3,13 +3,13 @@
     nacos:
       server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
-      password: Atwl@2024
+      password: nacos
       discovery:
         server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit
+        namespace: wuhuyancao
 #        namespace: dev_renkang
         username: nacos
-        password: Atwl@2024
+        password: nacos
     gateway:
       discovery:
         locator:
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 8ecd0a5..02ca26f 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -8,4 +8,4 @@
     # 楠岀鍏挜鍦板潃
     oauth2:
       authorizationserver:
-        token-uri: https://
\ No newline at end of file
+        token-uri: https://business/jkKeys/page
diff --git a/server/system_timer/src/main/resources/application-pro.yml b/server/system_timer/src/main/resources/application-pro.yml
index e2db395..0f85cb5 100644
--- a/server/system_timer/src/main/resources/application-pro.yml
+++ b/server/system_timer/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://localhost:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Atwl@2024
+    password: Whyc@2025
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
 
diff --git a/server/system_timer/src/main/resources/bootstrap-pro.yml b/server/system_timer/src/main/resources/bootstrap-pro.yml
index a0a53df..64495e6 100644
--- a/server/system_timer/src/main/resources/bootstrap-pro.yml
+++ b/server/system_timer/src/main/resources/bootstrap-pro.yml
@@ -14,7 +14,7 @@
     nacos:
       server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
-      password: Atwl@2024
+      password: nacos
       #      config:
       #        server-addr: http://192.168.0.212:8848 #閰嶇疆Nacos鍦板潃
       #        namespace: dmvisit
@@ -25,6 +25,6 @@
       #        data-id: com.doumee.meeting.admin
       discovery:
         server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit
+        namespace: wuhuyancao
         username: nacos
-        password: Atwl@2024
\ No newline at end of file
+        password: nacos
\ No newline at end of file
diff --git a/server/system_timer/src/main/resources/bootstrap.yml b/server/system_timer/src/main/resources/bootstrap.yml
index 5eb6d62..05a83ce 100644
--- a/server/system_timer/src/main/resources/bootstrap.yml
+++ b/server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: test
+    active: pro
   application:
     name: systemTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml b/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
index b0d86b7..045c13c 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
@@ -12,7 +12,7 @@
     nacos:
       server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
-      password: Atwl@2024
+      password: nacos
       #      config:
       #        server-addr: http://192.168.0.212:8848 #閰嶇疆Nacos鍦板潃
       #        namespace: dmvisit
@@ -23,9 +23,9 @@
       #        data-id: com.doumee.meeting.admin
       discovery:
         server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit
+        namespace: wuhuyancao
         username: nacos
-        password: Atwl@2024
+        password: nacos
 
 knife4j:
   enable: false
diff --git a/server/visits/admin_timer/src/main/resources/bootstrap.yml b/server/visits/admin_timer/src/main/resources/bootstrap.yml
index fb74d1e..b5b65b7 100644
--- a/server/visits/admin_timer/src/main/resources/bootstrap.yml
+++ b/server/visits/admin_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: test
+    active: pro
   application:
     name: visitsTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java
index 2bbca3c..9753e12 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java
@@ -27,7 +27,7 @@
 @Api(tags = "閽ュ寵鏌滄煖鏍煎熀鏈俊鎭〃")
 @RestController
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkCabinetGrid")
-public class JkCabinetGridCloudController extends BaseController {
+public class    JkCabinetGridCloudController extends BaseController {
 
     @Autowired
     private JkCabinetGridService jkCabinetGridService;
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java
index bd343db..fccb6f7 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java
@@ -8,10 +8,7 @@
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.JkVersionMapper;
-import com.doumee.dao.business.dto.CloseGridDTO;
-import com.doumee.dao.business.dto.GetDriverGridDTO;
-import com.doumee.dao.business.dto.OpenGridDriverDTO;
-import com.doumee.dao.business.dto.OptGridDTO;
+import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.dao.business.model.JkCabinetGrid;
 import com.doumee.dao.business.model.JkVersion;
@@ -136,6 +133,7 @@
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @LoginNoRequired
     @ApiOperation("鍏抽棴鏌滈棬")
     @PostMapping("/closeGrid")
     public ApiResponse closeGrid(@RequestBody CloseGridDTO dto) {
@@ -154,6 +152,7 @@
     }
 
 
+    @LoginNoRequired
     @ApiOperation("鑾峰彇閽ュ寵鏌滀汉鑴告暟鎹�")
     @GetMapping("/getCabinetFaceVO")
     public ApiResponse<CabinetFaceVO> getCabinetFaceVO(@RequestParam String code) {
@@ -164,6 +163,7 @@
 
 
 
+    @LoginNoRequired
     @ApiOperation("鑾峰彇鍙搷浣滄煖鏍� - 鍙告満")
     @PostMapping("/getDriverGrid")
     public ApiResponse<List<JkCabinetGrid>> getDriverGrid(@RequestBody GetDriverGridDTO dto) {
@@ -172,6 +172,7 @@
         return ApiResponse.success(jkCabinetGridList);
     }
 
+    @LoginNoRequired
     @ApiOperation("寮�鍚煖鏍� - 鍙告満")
     @PostMapping("/openGridDriver")
     public ApiResponse openGridDriver(@RequestBody OpenGridDriverDTO dto) {
@@ -180,6 +181,7 @@
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
+    @LoginNoRequired
     @ApiOperation("鑾峰彇IC鍗$敤鎴蜂富閿� - 鍙告満")
     @PostMapping("/getMemberIdByCode")
     public ApiResponse<Integer> getMemberIdByCode(@RequestParam String code) {
@@ -200,4 +202,23 @@
     }
 
 
+    @LoginNoRequired
+    @ApiOperation("閰掔簿妫�娴嬪憡璀�")
+    @PostMapping("/alcoholTestAlarm")
+    public ApiResponse alcoholTestAlarm(@RequestBody AlcoholTestAlarmDTO dto) {
+        jkCabinetGridService.alcoholTestAlarm(dto);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
+
+    @LoginNoRequired
+    @ApiOperation("鏌滄牸寮�闂ㄨ秴鏃舵湭鍏抽棴鍛婅")
+    @PostMapping("/timeOutUnCloseAlarm")
+    public ApiResponse timeOutUnCloseAlarm(@RequestBody TimeOutCloseGridDTO dto) {
+        jkCabinetGridService.timeOutUnCloseAlarm(dto);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
index dfd8c91..072d0b7 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
@@ -12,7 +12,7 @@
     nacos:
       server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
       username: nacos
-      password: Atwl@2024
+      password: nacos
 #      config:
 #        server-addr: http://192.168.0.212:8848 #閰嶇疆Nacos鍦板潃
 #        namespace: dmvisit
@@ -23,9 +23,9 @@
 #        data-id: com.doumee.meeting.admin
       discovery:
         server-addr: http://localhost:8848 #閰嶇疆Nacos鍦板潃
-        namespace: dmvisit
+        namespace: wuhuyancao
         username: nacos
-        password: Atwl@2024
+        password: nacos
 
 knife4j:
   enable: false
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
index 7b2356e..2832e4e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
@@ -522,12 +522,12 @@
      * @param hiddenDanger
      * @return
      */
-    public OapiMessageCorpconversationAsyncsendV2Request.Msg getHiddenDangerNoticeMsg(HiddenDanger hiddenDanger){
+    public OapiMessageCorpconversationAsyncsendV2Request.Msg getAlarmNoticeMsg(String areaName,String submitTime,String infoType){
         OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
         msg.setMsgtype("markdown");
         OapiMessageCorpconversationAsyncsendV2Request.Markdown markdown = new OapiMessageCorpconversationAsyncsendV2Request.Markdown();
         markdown.setTitle("鍥尯瀛樺湪瀹夐槻/娑堥槻闅愭偅");
-        markdown.setText(hiddenDanger.getAreaName()+"鍦�"+DateUtil.formatDate(hiddenDanger.getSubmitTime(),"YYYY-MM-dd HH:mm")+"鍙戠敓"+hiddenDanger.getCategoryName()+",璇峰強鏃跺墠寰�瀹夐槻涓績/娑堥槻涓績杩涜澶勭悊");
+        markdown.setText(areaName+"鍦�"+submitTime+"鍙戠敓"+infoType+",璇峰強鏃跺墠寰�瀹夐槻涓績/娑堥槻涓績杩涜澶勭悊");
         msg.setMarkdown(markdown);
         return msg;
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AlcoholTestAlarmDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AlcoholTestAlarmDTO.java
new file mode 100644
index 0000000..6be2ee6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AlcoholTestAlarmDTO.java
@@ -0,0 +1,22 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/10/11 16:01
+ */
+@Data
+public class AlcoholTestAlarmDTO {
+
+    @ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
+    private Integer memberId;
+
+    @ApiModelProperty(value = "閰掔簿搴︽暟")
+    private String alcoholNum;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/TimeOutCloseGridDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/TimeOutCloseGridDTO.java
new file mode 100644
index 0000000..ba937a5
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/TimeOutCloseGridDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.business.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/10/11 16:01
+ */
+@Data
+public class TimeOutCloseGridDTO {
+
+    @ApiModelProperty(value = "閽ュ寵鏌滀富閿�")
+    private Integer cabinetId;
+
+    @ApiModelProperty(value = "鏌滄牸涓婚敭")
+    private Integer gridId;
+
+    @ApiModelProperty(value = "鐢ㄦ埛涓婚敭")
+    private Integer memberId;
+
+
+}
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 a645055..101647a 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
@@ -81,6 +81,7 @@
     private Integer type;
 
     @ApiModelProperty(value = "杞︾墝鍙�")
+    @TableField(exist = false)
     private String carCode;
 
     @ApiModelProperty(value = "鍏抽棬璁板綍涓婚敭锛堝�熷嚭璁板綍浣跨敤锛�", example = "1")
@@ -91,6 +92,7 @@
 
 
     @ApiModelProperty(value = "褰掕繕鏃堕棿")
+    @TableField(exist = false)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date returnDate;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java
index 618ffb5..a8f00f0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java
@@ -44,6 +44,10 @@
     @ApiModelProperty(value = "鏈粦瀹氭煖浣撴暟閲�")
     private Integer unBindGridNum;
 
+    @ApiModelProperty(value = "绠$悊鍛樹富閿�")
+    private Integer memberId;
+
+
     @ApiModelProperty(value = "鏌滄牸淇℃伅")
     private List<CabinetGridInfoVO> cabinetGridInfoVOList;
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java
index 9045686..bfe91d4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java
@@ -43,8 +43,13 @@
     @ApiModelProperty(value = "閫氶亾鍙�")
     private String channelCode;
 
+    @ApiModelProperty(value = "閽ュ寵缂栧彿")
+    private String keyCode;
+
     @ApiModelProperty(value = "杞︾墝鍙�", example = "1")
     private String carCode;
 
+    @ApiModelProperty(value = "鏌滄牸鐘舵�侊細0鍚敤锛�1=绂佺敤")
+    private Integer status;
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java
index 650e3d8..f4f9f59 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java
@@ -39,6 +39,15 @@
     @ExcelColumn(name="璁惧鍚嶇О")
     private String name;
 
+    @ApiModelProperty(value = "鎺掑簭椤哄簭锛�0=浠庡乏鍚戝彸锛�1=浠庝笂鍚戜笅")
+    private Integer sortType;
+
+    @ApiModelProperty(value = "鎺掓暟")
+    private Integer rowNum;
+
+    @ApiModelProperty(value = "鍒楁暟")
+    private Integer columnNum;
+
     @ApiModelProperty(value = "璁惧ID")
     @ExcelColumn(name="璁惧ID")
     private String devId;
@@ -49,7 +58,16 @@
     @ApiModelProperty(value = "鏄惁鍙岄噸楠岃瘉 0鍚� 1鏄�", example = "1")
     private Integer doubleAuth;
 
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
+    private String linkPhone;
+
+
     @ApiModelProperty(value = "杞挱鍥惧湴鍧�", example = "1")
     private List<String> bannerList;
 
+    @ApiModelProperty(value = "鏌滄牸淇℃伅")
+    private List<CabinetGridInfoVO> cabinetGridInfoVOList;
+
+    @ApiModelProperty(value = "閰掔簿妫�娴嬮厤缃�")
+    private CabinetConfigDataVO cabinetConfigDataVO;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java
index cdd070a..191da13 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java
@@ -20,7 +20,7 @@
     @ApiModelProperty(value = "涓荤嚎璺暟", example = "1")
     private Integer categoryNum;
 
-    @ApiModelProperty(value = "鏈�澶у鎴烽噺", example = "1")
+    @ApiModelProperty(value = "绾胯矾鏁伴噺", example = "1")
     private Integer lineNum;
 
     @ApiModelProperty(value = "瀹㈡埛鏁伴噺", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
index e3abf07..294a59d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
@@ -1,9 +1,6 @@
 package com.doumee.service.business;
 
-import com.doumee.dao.business.dto.OptGridDTO;
-import com.doumee.dao.business.dto.CloseGridDTO;
-import com.doumee.dao.business.dto.GetDriverGridDTO;
-import com.doumee.dao.business.dto.OpenGridDriverDTO;
+import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.model.JkCabinetGrid;
 import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.service.business.third.model.PageData;
@@ -136,4 +133,21 @@
 
     void openGridDriver(OpenGridDriverDTO openGridDriverDTO);
 
+    /**
+     * 鏌滄牸寮�闂ㄨ秴鏃舵湭鍏抽棴鍛婅
+     * @param dto
+     */
+    void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto);
+
+
+    /**
+     * 鍙告満閰掔簿妫�娴嬭秴鍑洪厭绮惧�煎憡璀�
+     * @param dto
+     */
+    void alcoholTestAlarm(AlcoholTestAlarmDTO dto);
+
+
+
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index 10fc09b..67c67cd 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -255,14 +255,14 @@
                     Arrays.asList(checkUser.getOpenid().split(",")));
         }
 
-        if(StringUtils.isNotBlank(member.getDdId())){
-            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
-                    member.getDdId(),
-                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
-                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
-                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
-                    dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
-        }
+//        if(StringUtils.isNotBlank(member.getDdId())){
+//            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
+//                    member.getDdId(),
+//                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
+//                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
+//                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
+//                    dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
+//        }
 
         return hiddenDanger.getId();
     }
@@ -812,14 +812,14 @@
                     Arrays.asList(checkUser.getOpenid().split(",")));
         }
 
-        if(StringUtils.isNotBlank(member.getDdId())){
-            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
-                    member.getDdId(),
-                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
-                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
-                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
-                            dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
-        }
+//        if(StringUtils.isNotBlank(member.getDdId())){
+//            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
+//                    member.getDdId(),
+//                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
+//                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
+//                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
+//                            dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
+//        }
 
     }
 
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 b0b1113..d8c35ca 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
@@ -2,16 +2,18 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.dingTalk.DingTalk;
+import com.doumee.core.dingTalk.DingTalkStream;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.dao.business.*;
-import com.doumee.dao.business.dto.OptGridDTO;
-import com.doumee.dao.business.dto.CloseGridDTO;
-import com.doumee.dao.business.dto.GetDriverGridDTO;
-import com.doumee.dao.business.dto.OpenGridDriverDTO;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.core.utils.Utils;
@@ -49,11 +51,24 @@
     private JkKeysMapper jkKeysMapper;
 
     @Autowired
+    private SystemUserMapper systemUserMapper;
+
+    @Autowired
     private JkCabinetMapper jkCabinetMapper;
     @Autowired
     private JkCabinetLogMapper jkCabinetLogMapper;
 
+    @Autowired
+    private WarningMapper warningMapper;
 
+    @Autowired
+    private MemberMapper memberMapper;
+
+    @Autowired
+    private WarningRuleMapper warningRuleMapper;
+
+    @Autowired
+    private DingTalk dingTalk;
 
     @Override
     public Integer create(JkCabinetGrid jkCabinetGrid) {
@@ -293,7 +308,7 @@
                         .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                 .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                 .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
-                .eq(JkKeys::getStatus,Constants.ONE)
+                .eq(JkKeys::getStatus,Constants.TWO)
                 .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
                 .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
                 .isNotNull(JkCabinetGrid::getKeyId)
@@ -303,7 +318,7 @@
             for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
                 jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
                         .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
-                        .set(JkKeys::getStatus,Constants.TWO)
+                        .set(JkKeys::getStatus,Constants.THREE)
                         .eq(JkKeys::getId,jkCabinetGrid.getKeyId())
                 );
             }
@@ -400,7 +415,6 @@
             || Objects.isNull(dto.getCabinetId())
             || Objects.isNull(dto.getKeyStatus())
             || Objects.isNull(dto.getAuthType())
-            || Objects.isNull(dto.getMemberId())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -495,6 +509,7 @@
                             .selectAs(JkKeys::getCode,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)
@@ -502,8 +517,14 @@
                             .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.CAR_ID from car_driver c left join cars c1 on c.car_id = c1.id  where c.ISDELETED = 0 and c.TYPE != 0 and   c.MEMBER_ID = "+dto.getMemberId()+" ) ")
+                            .apply(" t1.car_id in ( select c.id from  cars c  where c.ISDELETED = 0 and  c.MEMBER_ID = "+dto.getMemberId()+" ) ")
+                            .orderByAsc(JkCabinetGrid::getCode)
             );
+            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+                jkCabinetGrid.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
+                jkCabinetGrid.setKeyStatus(Objects.isNull(jkCabinetGrid.getKeyStatus())?Constants.ZERO:jkCabinetGrid.getKeyStatus());
+            }
+
         }
         return jkCabinetGridList;
     }
@@ -523,15 +544,15 @@
         if(Objects.isNull(jkCabinetGrid)){
             return ;
         }
-        LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
+//        LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
         JkCabinetLog jkCabinetLog = new JkCabinetLog();
         jkCabinetLog.setCreateDate(new Date());
-        jkCabinetLog.setCreator(loginUserInfo.getId());
+//        jkCabinetLog.setCreator(loginUserInfo.getId());
         jkCabinetLog.setIsdeleted(Constants.ZERO);
         jkCabinetLog.setCabinetId(openGridDriverDTO.getCabinetId());
         jkCabinetLog.setGridId(jkCabinetGrid.getId());
         jkCabinetLog.setAuthType(openGridDriverDTO.getAuthType());
-        jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
+        jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
         jkCabinetLog.setType(Constants.ZERO);
         if(Objects.nonNull(jkCabinetGrid.getKeyId())){
             JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
@@ -548,5 +569,102 @@
 
 
 
+    @Override
+    public void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto){
+        if(Objects.nonNull(dto)
+            && Objects.nonNull(dto.getGridId())){
+            JkCabinetGrid jkCabinetGrid = jkCabinetGridMapper.selectJoinOne(JkCabinetGrid.class,
+                    new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+                            .selectAs(JkCabinet::getName,JkCabinetGrid::getCabinetName)
+                            .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
+                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                            .eq(JkCabinetGrid::getId,dto.getGridId())
+                            .last(" limit 1 ")
+            );
+
+//            if(Objects.nonNull(jkCabinetGrid)){
+//                log.error("鏌滄牸寮�闂ㄨ秴鏃舵湭鍏抽棴鍛婅淇℃伅锛歿}"+JSONObject.toJSONString(jkCabinetGrid));
+//                Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
+//                        .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
+//                if(Objects.isNull(warning)){
+//                    return;
+//                }
+//                List<Member> memberList = this.getWarningList(warning);
+//                if(CollectionUtils.isEmpty(memberList)){
+//                    return;
+//                }
+//                //瀛樺偍寮傚父鏃ュ織
+//
+//
+//            }else{
+//
+//            }
+        }
+    }
+
+
+    public List<Member> getWarningList(Warning warning){
+        if(Constants.equalsInteger(warning.getStatus(),Constants.ZERO)){
+            return null;
+        }
+        //鏌ヨ閫氱煡浜哄憳
+        List<WarningRule> warningRuleList = warningRuleMapper.selectList(new QueryWrapper<WarningRule>().lambda()
+                .eq(WarningRule::getIsdeleted,Constants.ZERO)
+                .apply(" id in ( select w.RULE_ID from warning_rule_detail w where w.WARNING_ID = '"+warning.getId()+"' and w.ISDELETED = 0  ) ")
+        );
+        List<Member> memberList = new ArrayList<>();
+        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(warningRuleList)){
+            List<String> memberIdStr =  warningRuleList.stream().map(i->i.getMemberIds()).collect(Collectors.toList());
+            if(org.apache.commons.collections.CollectionUtils.isNotEmpty(memberIdStr)){
+                List<String> memberIdList = new ArrayList<>();
+                for (String s:memberIdStr) {
+                    memberIdList.addAll(
+                            Arrays.asList(s.split(","))
+                    );
+                }
+                memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO)
+                        .notIn(Member::getErpId)
+                        .in(Member::getId,memberIdList)
+                );
+            }
+        }
+        return memberList;
+
+
+
+    }
+
+
+
+    @Override
+    public void alcoholTestAlarm(AlcoholTestAlarmDTO dto){
+        if(Objects.nonNull(dto)
+                && Objects.nonNull(dto.getMemberId())){
+
+
+
+            SystemUser systemUser =
+                    systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
+                            .eq(SystemUser::getMemberId,dto.getMemberId())
+                            .eq(SystemUser::getDeleted,Constants.ZERO)
+                            .last(" limit 1 ")
+                    );
+
+//            Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
+//                    .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
+//            if(Objects.isNull(warning)){
+//                return;
+//            }
+//            List<Member> memberList = this.getWarningList(warning);
+//
+//
+//
+//            //瀛樺偍寮傚父鏃ュ織
+//            if(Objects.nonNull(systemUser)){
+//                log.error("鍙告満閰掔簿妫�娴嬶紝瓒呭嚭閰掔簿鍊煎憡璀︿俊鎭細{}"+JSONObject.toJSONString(systemUser));
+//            }
+        }
+    }
+
 
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
index cd2a697..22f4d87 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -371,7 +371,7 @@
         List<JkCabinet> jkCabinetList = jkCabinetMapper.selectList(new QueryWrapper<JkCabinet>()
                 .lambda()
                 .eq(JkCabinet::getIsdeleted,Constants.ZERO)
-                .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
+                .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
                 .orderByAsc(JkCabinet::getCreateDate)
         );
         if(CollectionUtils.isNotEmpty(jkCabinetList)){
@@ -391,7 +391,7 @@
         JkCabinet cabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
                 .lambda()
                 .eq(JkCabinet::getIsdeleted,Constants.ZERO)
-                .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
+                .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
                 .eq(JkCabinet::getId,cabinetId)
                 .last(" limit 1")
         );
@@ -405,17 +405,19 @@
         cabinetDetailVO.setServiceKeyNum(Constants.ZERO);
         cabinetDetailVO.setOutKeyNum(Constants.ZERO);
         cabinetDetailVO.setUnBindGridNum(Constants.ZERO);
+        cabinetDetailVO.setMemberId(loginUserInfo.getMemberId());
 
         //鎵�鏈夋煖鏍间俊鎭�
         List<JkCabinetGrid> jkCabinetGridList =
                 jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
                 .selectAll(JkCabinetGrid.class)
                 .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                 .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
                 .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                 .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                 .eq(JkCabinetGrid::getCabinetId,cabinet.getId())
-                .orderByDesc(JkCabinetGrid::getCode)
+                .orderByAsc(JkCabinetGrid::getCode)
         );
 
         List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
@@ -425,8 +427,10 @@
                 CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
                 BeanUtil.copyProperties(jkCabinetGrid,cabinetGridInfoVO);
                 cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
+                cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
                 cabinetGridInfoVOList.add(cabinetGridInfoVO);
             }
+            cabinetDetailVO.setCabinetGridInfoVOList(cabinetGridInfoVOList);
             cabinetDetailVO.setErrGridNum(
                     cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getWorkingStatus(),Constants.ONE)).collect(Collectors.toList()).size()
             );
@@ -530,7 +534,40 @@
         CabinetInfoVO cabinetInfoVO = new CabinetInfoVO();
         if(Objects.nonNull(jkCabinet)){
             BeanUtil.copyProperties(jkCabinet,cabinetInfoVO);
+            //鎵�鏈夋煖鏍间俊鎭�
+            List<JkCabinetGrid> jkCabinetGridList =
+                    jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
+                            .selectAll(JkCabinetGrid.class)
+                            .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                            .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
+                            .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
+                            .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                            .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
+                            .orderByAsc(JkCabinetGrid::getCode)
+                    );
+
+            List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
+            if(CollectionUtils.isNotEmpty(jkCabinetGridList)) {
+                for (JkCabinetGrid jkCabinetGrid : jkCabinetGridList) {
+                    CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
+                    BeanUtil.copyProperties(jkCabinetGrid, cabinetGridInfoVO);
+                    cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId()) ? Constants.ZERO : Constants.ONE);
+                    cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
+                    cabinetGridInfoVOList.add(cabinetGridInfoVO);
+                }
+                cabinetInfoVO.setCabinetGridInfoVOList(cabinetGridInfoVOList);
+            }
+
+            CabinetConfigDataVO cabinetConfigDataVO = new CabinetConfigDataVO();
+            cabinetConfigDataVO.setConcentration(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CONCENTRATION).getCode());
+            cabinetConfigDataVO.setPressure(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.PRESSURE).getCode());
+            cabinetConfigDataVO.setBlowTime(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.BLOW_TIME).getCode());
+            cabinetConfigDataVO.setThreshold(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.THRESHOLD).getCode());
+            cabinetInfoVO.setCabinetConfigDataVO(cabinetConfigDataVO);
+
         }
+        cabinetInfoVO.setLinkPhone("18156091665");
         List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
                 .eq(Category::getIsdeleted,Constants.ZERO)
                 .eq(Category::getStatus,Constants.ZERO)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java
index 8058914..30d8ea3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java
@@ -183,7 +183,7 @@
     public Integer getMemberIdByCode(String code){
         JkIccard jkIccard = jkIccardMapper.selectOne(new QueryWrapper<JkIccard>().lambda()
                 .eq(JkIccard::getIsdeleted,Constants.ZERO)
-                .eq(JkIccard::getStatus,Constants.ZERO)
+                .eq(JkIccard::getStatus,Constants.ONE)
                 .eq(JkIccard::getCode,code)
                 .last(" limit 1 ")
         );
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
index 2408fa3..2082dc5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
@@ -184,13 +184,13 @@
         JkKeys model = pageWrap.getModel();
         MPJLambdaWrapper<JkKeys> wrapper = new MPJLambdaWrapper<JkKeys>()
                 .selectAll(JkKeys.class)
-                .selectAs(JkCabinetGrid::getCode,JkKeys::getGridCode)
-                .selectAs(JkCabinet::getName,JkKeys::getCabinetName)
+                .select("j.code",JkKeys::getGridCode)
+                .select("j1.name",JkKeys::getCabinetName)
                 .leftJoin(Cars.class,Cars::getId,JkKeys::getCarId)
-                .leftJoin(JkCabinetGrid.class,JkCabinetGrid::getKeyId,JkKeys::getId)
-                .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
+                .leftJoin(" jk_cabinet_grid j on j.key_id = t.id and j.isdeleted = 0  ")
+                .leftJoin(" jk_cabinet j1 on j.CABINET_ID = j1.id ")
                 .eq(JkKeys::getIsdeleted,Constants.ZERO)
-                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+//                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                 .like(StringUtils.isNotBlank(model.getCode()),JkKeys::getCode,model.getCode())
                 .like(StringUtils.isNotBlank(model.getCarCode()),JkKeys::getCarCode,model.getCode());
         IPage<JkKeys> iPage = jkKeysMapper.selectJoinPage(page,JkKeys.class,wrapper);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
index e61de7d..d580516 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -1388,8 +1388,9 @@
         List<JkSketchLine> jkSketchLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
 
         telecomLineCountVO.setCategoryNum(sketchList.size());
-        telecomLineCountVO.setLineNum(sketchList.stream().map(i->i.getBeforeLineNum()).reduce(Constants.ZERO,Integer::sum));
 
+//        telecomLineCountVO.setLineNum(sketchList.stream().map(i->i.getBeforeLineNum()).reduce(Constants.ZERO,Integer::sum));
+        Integer lineNum = Constants.ZERO;
         List<TelecomCategoryDataVO> telecomCategoryDataVOList = new ArrayList<>();
         for (JkSketch jkSketch:sketchList) {
             TelecomCategoryDataVO telecomCategoryDataVO = new TelecomCategoryDataVO();
@@ -1403,13 +1404,15 @@
             //浼樺寲鍚庢暟鎹�
             List<JkSketchLine> afterList = childLineList.stream()
                     .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
+
+            lineNum = lineNum + (Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)?beforeList.size():afterList.size());
             List<TelecomLineDataVO> telecomLineDataVOList = new ArrayList<>();
-            for (JkSketchLine sketchLine:beforeList) {
-                JkSketchLine finalSketchLine = sketchLine;
-                List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(), finalSketchLine.getLineId())).collect(Collectors.toList());
-                if(afterSelectList.size()>Constants.ZERO){
-                    sketchLine = afterSelectList.get(Constants.ZERO);
-                }
+            for (JkSketchLine sketchLine: Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)?beforeList:afterList) {
+//                JkSketchLine finalSketchLine = sketchLine;
+//                List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(), finalSketchLine.getLineId())).collect(Collectors.toList());
+//                if(afterSelectList.size()>Constants.ZERO){
+//                    sketchLine = afterSelectList.get(Constants.ZERO);
+//                }
                 TelecomLineDataVO telecomLineDataVO = new TelecomLineDataVO();
                 telecomLineDataVO.setId(sketchLine.getId());
                 telecomLineDataVO.setName(sketchLine.getLineName());
@@ -1421,6 +1424,7 @@
             telecomCategoryDataVO.setTelecomLineDataVOList(telecomLineDataVOList);
             telecomCategoryDataVOList.add(telecomCategoryDataVO);
         }
+        telecomLineCountVO.setLineNum(lineNum);
         telecomLineCountVO.setTelecomCategoryDataVOList(telecomCategoryDataVOList);
         return telecomLineCountVO;
     }
@@ -1462,26 +1466,19 @@
             telecomCategoryDataVO.setDistance(
                     beforeList.stream().map(i->i.getDistance()).reduce(Long.valueOf(0),Long::sum)
             );
-            //浼樺寲鍚庢暟鎹�
-            List<JkSketchLine> afterList = jkSketchLineList.stream()
-                    .filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())&&Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
-            if(org.apache.commons.collections.CollectionUtils.isEmpty(afterList)){
+            if(Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)){
                 telecomCategoryDataVO.setDistanceAfter(telecomCategoryDataVO.getDistance());
-            }else if(beforeList.size()>afterList.size()){
+            }else{
+                //浼樺寲鍚庢暟鎹�
+                List<JkSketchLine> afterList = jkSketchLineList.stream()
+                        .filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())&&Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
+
                 Long distanceAfter = 0L;
-                for (JkSketchLine jkSketchLine:beforeList) {
-                    List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
-                    if(afterSelectList.size()>Constants.ZERO){
-                        distanceAfter = distanceAfter + afterSelectList.get(Constants.ZERO).getDistance();
-                    }else{
+                for (JkSketchLine jkSketchLine:afterList) {
                         distanceAfter = distanceAfter + jkSketchLine.getDistance();
-                    }
                 }
                 telecomCategoryDataVO.setDistanceAfter(distanceAfter);
-            }else{
-                telecomCategoryDataVO.setDistanceAfter(
-                        afterList.stream().map(i->i.getDistance()).reduce(Long.valueOf(0),Long::sum)
-                );
+
             }
             telecomCategoryDataVOList.add(telecomCategoryDataVO);
         }
@@ -1505,26 +1502,27 @@
                 .eq(JkSketchLine::getIsdeleted,Constants.ZERO)
                 .eq(Objects.nonNull(telecomLineInfoDTO.getCategoryId()),JkSketchLine::getCategoryId,telecomLineInfoDTO.getCategoryId())
                 .eq(Objects.nonNull(telecomLineInfoDTO.getLineId()),JkSketchLine::getLineId,telecomLineInfoDTO.getLineId())
+                .apply(" ( t.TYPE = t1.OPT_STATUS ) ")
                 .eq(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
-        List<JkSketchLine> jkSketchLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
+        List<JkSketchLine> returnLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
 
-        //浼樺寲鍓嶆暟鎹�
-        List<JkSketchLine> beforeList = jkSketchLineList.stream()
-                .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
-
-        //浼樺寲鍚庢暟鎹�
-        List<JkSketchLine> afterList = jkSketchLineList.stream()
-                .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
-
-        List<JkSketchLine> returnLineList = new ArrayList<>();
-        for (JkSketchLine jkSketchLine:beforeList) {
-            List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
-            if(afterSelectList.size()>Constants.ZERO){
-                returnLineList.add(afterList.get(Constants.ZERO));
-            }else{
-                returnLineList.add(jkSketchLine);
-            }
-        }
+//        //浼樺寲鍓嶆暟鎹�
+//        List<JkSketchLine> beforeList = jkSketchLineList.stream()
+//                .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
+//
+//        //浼樺寲鍚庢暟鎹�
+//        List<JkSketchLine> afterList = jkSketchLineList.stream()
+//                .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
+//
+//        List<JkSketchLine> returnLineList = new ArrayList<>();
+//        for (JkSketchLine jkSketchLine:beforeList) {
+//            List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
+//            if(afterSelectList.size()>Constants.ZERO){
+//                returnLineList.add(afterList.get(Constants.ZERO));
+//            }else{
+//                returnLineList.add(jkSketchLine);
+//            }
+//        }
         List<TelecomLineDataVO> dataVOList = new ArrayList<>();
         if(org.apache.commons.collections.CollectionUtils.isNotEmpty(returnLineList)){
             //鑾峰彇鎵�鏈夊湴鍥剧粡绾害鏁版嵁
diff --git a/server/visits/dmvisit_service/src/main/resources/application-pro.yml b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
index fd94ce3..32e6976 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-pro.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
 spring:
   # 鏁版嵁婧愰厤缃�
   datasource:
-    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://localhost:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Atwl@2024
+    password: Whyc@2025
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:

--
Gitblit v1.9.3