From 1fb6ce7f165e85cb9458d6e8d1b6bf7debc1e665 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 03 十二月 2025 14:26:37 +0800
Subject: [PATCH] 功能开发

---
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java                   |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java     |   49 ++++++++++--
 server/visits/dmvisit_service/src/main/resources/application-pro.yml                                       |    2 
 server/visits/admin_timer/src/main/resources/bootstrap.yml                                                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java  |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java        |    4 +
 server/visits/dmvisit_admin/src/main/resources/bootstrap.yml                                               |    2 
 server/system_gateway/src/main/resources/bootstrap.yml                                                     |    2 
 server/system_timer/src/main/resources/application-pro.yml                                                 |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java          |    4 
 server/system_timer/src/main/resources/bootstrap.yml                                                       |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java                |    4 +
 server/system_gateway/src/main/resources/application-pro.yml                                               |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java    |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java |   84 +++++++++++---------
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java              |   18 ++--
 server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java                       |    5 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java          |   22 ++--
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java              |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java                  |    2 
 20 files changed, 140 insertions(+), 79 deletions(-)

diff --git a/server/system_gateway/src/main/resources/application-pro.yml b/server/system_gateway/src/main/resources/application-pro.yml
index 414451c..d985c0e 100644
--- a/server/system_gateway/src/main/resources/application-pro.yml
+++ b/server/system_gateway/src/main/resources/application-pro.yml
@@ -3,7 +3,7 @@
   datasource:
     url: jdbc:mysql://localhost:3306/maanshanyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Whyc@2025
+    password: Masyc@2025
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:
@@ -18,7 +18,7 @@
 
 
 
-debug_model: true
+debug_model: false
 
 captcha_check: true
 
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 02ca26f..3d2cb09 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: pro
   application:
     name: system_gateway
   # 瀹夊叏閰嶇疆
diff --git a/server/system_timer/src/main/resources/application-pro.yml b/server/system_timer/src/main/resources/application-pro.yml
index 5ec4cc6..710dc1c 100644
--- a/server/system_timer/src/main/resources/application-pro.yml
+++ b/server/system_timer/src/main/resources/application-pro.yml
@@ -3,7 +3,7 @@
   datasource:
     url: jdbc:mysql://localhost:3306/maanshanyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Whyc@2025
+    password: Masyc@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.yml b/server/system_timer/src/main/resources/bootstrap.yml
index 107b53b..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: dev
+    active: pro
   application:
     name: systemTimer
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java
index fba3f5e..63058ab 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/JkCabinetTimerController.java
@@ -1,11 +1,13 @@
 package com.doumee.api;
 
+import com.doumee.core.utils.DateUtil;
 import com.doumee.service.business.JkCabinetLogService;
 import com.doumee.service.business.JkCustomerService;
 import com.doumee.service.business.impl.JkCabinetGridServiceImpl;
 import com.doumee.service.business.third.model.ApiResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.mgt.DefaultSecurityManager;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +21,7 @@
  */
 @Api(tags = "閽ュ寵鏌滃畾鏃跺櫒")
 @RestController
+@Slf4j
 @RequestMapping("/timer/jkCabinet")
 public class JkCabinetTimerController extends BaseController {
     @Autowired
@@ -31,7 +34,9 @@
     @ApiOperation("瀹氭椂鍙戦�侀挜鍖欐湭鍙婃椂褰掕繕閫氱煡")
     @PostMapping("/timeOutUnBackAlarm")
     public ApiResponse timeOutUnBackAlarm() {
+        log.error("瀹氭椂鍙戦�侀挜鍖欐湭鍙婃椂褰掕繕閫氱煡寮�濮�" + DateUtil.getCurrDateTime() );
         jkCabinetLogService.timeOutUnBackAlarm(impl);
+        log.error("瀹氭椂鍙戦�侀挜鍖欐湭鍙婃椂褰掕繕閫氱煡缁撴潫" + DateUtil.getCurrDateTime() );
         return ApiResponse.success("瀹氭椂鍙戦�侀挜鍖欐湭鍙婃椂褰掕繕閫氱煡");
     }
 
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/web/cabinet/CabinetController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java
index 5c8dec6..18e3c1a 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
@@ -29,10 +29,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Created by IntelliJ IDEA.
@@ -143,7 +140,11 @@
     @ApiOperation("鍏抽棴鏌滈棬")
     @PostMapping("/closeGrid")
     public ApiResponse closeGrid(@RequestBody CloseGridDTO dto) {
-        jkCabinetGridService.closeGrid(dto);
+        JDYKeyUseByBookDTO jdyKeyUseByBookDTO = jkCabinetGridService.closeGrid(dto);
+        //鎺ㄩ�佺畝閬撲簯 鍙栬繕淇℃伅
+        if(Objects.nonNull(jdyKeyUseByBookDTO)&&Objects.nonNull(jdyKeyUseByBookDTO.getId())){
+            jkCabinetGridService.pushJDYKeyInfo(jdyKeyUseByBookDTO);
+        }
         this.saveInterfaceLog(JSONObject.toJSONString(dto), null,"closeGrid","鍏抽棴鏌滈棬");
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
@@ -157,7 +158,6 @@
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
-
     @LoginNoRequired
     @ApiOperation("鑾峰彇閽ュ寵鏌滀汉鑴告暟鎹�")
     @GetMapping("/getCabinetFaceVO")
@@ -167,8 +167,6 @@
         return ApiResponse.success(cabinetFaceVO);
     }
 
-
-
     @LoginNoRequired
     @ApiOperation("鑾峰彇鍙搷浣滄煖鏍� - 鍙告満")
     @PostMapping("/getDriverGrid")
@@ -177,7 +175,6 @@
         this.saveInterfaceLog(JSONObject.toJSONString(dto), JSONObject.toJSONString(jkCabinetGridList),"getDriverGrid","鑾峰彇鍙搷浣滄煖鏍� - 鍙告満");
         return ApiResponse.success(jkCabinetGridList);
     }
-
 
     @LoginNoRequired
     @ApiOperation("寮�鍚煖鏍� - 鍙告満")
@@ -232,7 +229,8 @@
     @LoginNoRequired
     @ApiOperation("閽ュ寵鏌滃績璺虫帴鍙�")
     @GetMapping("/heartbeat")
-    public ApiResponse heartbeat() {
+    public ApiResponse heartbeat(@RequestParam String code) {
+        jkCabinetService.updHeartbeat(code);
         return ApiResponse.success("閾炬帴鎴愬姛");
     }
 
diff --git a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
index 9dc10e9..86e11a3 100644
--- a/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: test
   application:
     name: visitsAdmin
     # 瀹夊叏閰嶇疆
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java
index 2fbd3f0..4c7fafe 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinet.java
@@ -148,6 +148,9 @@
     @ExcelColumn(name="璧峰缂栫爜")
     private Integer noIndex;
 
+    @ApiModelProperty(value = "閰掔簿妫�娴嬪紑鍚細0=寮�鍚紱1=鍏抽棴", example = "1")
+    private Integer alcoholStatus;
+
     @ApiModelProperty(value = "缁忕含搴︿俊鎭� 鍙傛暟鍊硷細缁忓害,绾害")
     @TableField(exist = false)
     private String jwd;
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 eb846e0..169a483 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
@@ -138,4 +138,8 @@
     @TableField(exist = false)
     private String location;
 
+    @ApiModelProperty(value = "涓氬姟绫诲瀷锛�1=寮�鍏抽棬璁板綍锛�2=閰掔簿妫�娴嬶紱", example = "1",hidden = true)
+    @TableField(exist = false)
+    private Integer bizType;
+
 }
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 c8176a1..1159b4d 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
@@ -61,6 +61,8 @@
     @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
     private String linkPhone;
 
+    @ApiModelProperty(value = "閰掔簿妫�娴嬪紑鍚細0=寮�鍚紱1=鍏抽棴", example = "1")
+    private Integer alcoholStatus;
 
     @ApiModelProperty(value = "杞挱鍥惧湴鍧�", example = "1")
     private List<String> bannerList;
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 fe50276..01d919c 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
@@ -125,7 +125,7 @@
     /**
      * 閽ュ寵鏌滃叧闂�
      */
-    void closeGrid(CloseGridDTO dto);
+    JDYKeyUseByBookDTO closeGrid(CloseGridDTO dto);
 
     /**
      * 鍙告満鑾峰彇鍙搷浣滅殑閽ュ寵鏌滄煖鏍�
@@ -156,5 +156,5 @@
      */
     void syncGridData(SyncCabinetDTO dto);
 
-
+    void pushJDYKeyInfo(JDYKeyUseByBookDTO dto);
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java
index b66caf3..d9b53ff 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetService.java
@@ -132,4 +132,6 @@
 
     void updateRunStatusById(Integer id);
 
+    void updHeartbeat(String code);
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 61bc24d..1601d5b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -157,6 +157,7 @@
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(this.carUseBookList(carUseBook))){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪杞﹁締棰勭害鏃堕棿涓庡凡棰勭害鏃堕棿鍐茬獊~");
         }
+        carUseBook.setTypeInfo(Constants.equalsInteger(carUseBook.getType(),Constants.ZERO)?"甯傚唴":"瀹ゅ");
         carUseBookMapper.insert(carUseBook);
         //鐢ㄨ溅鐢宠 瀹℃壒璁板綍鍒涘缓
         approveService.createApproveFlow(carUseBook.getType()==0?3:4,carUseBook.getId(),carUseBook.getMemberId(),null);
@@ -685,7 +686,7 @@
         String addr =   dataJSON.getString("addr");
 
         CarUseBook carUseBook = carUseBookJoinMapper.selectOne(new QueryWrapper<CarUseBook>()
-                .lambda().eq(CarUseBook::getJdyId,no).last("limit 1"));
+                .lambda().eq(CarUseBook::getJdyNo,no).last("limit 1"));
         if(Objects.isNull(carUseBook)){
             carUseBook = new CarUseBook();
             carUseBook.setCreateDate(new Date());
@@ -710,6 +711,7 @@
         carUseBook.setContent(StringUtils.isBlank(reason)?null:reason);
         carUseBook.setAddr(StringUtils.isBlank(addr)?null:addr);
         carUseBook.setStatus(Constants.TWO);
+        carUseBook.setKeyStatus(Constants.ZERO);
         JSONObject driverJSON = dataJSON.getJSONObject("driver");
         if(Objects.nonNull(driverJSON)){
             String driverName = driverJSON.getString("name");
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 3012de6..90d5012 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
@@ -768,17 +768,17 @@
                 }
             }
         }
-        JSONObject createJSON = dataJSON.getJSONObject("creator");
-        if(Objects.nonNull(createJSON)){
-            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());
-                }
-            }
-        }
+//        JSONObject createJSON = dataJSON.getJSONObject("creator");
+//        if(Objects.nonNull(createJSON)){
+//            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 9f68973..4f627d6 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
@@ -36,10 +36,12 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -461,7 +463,7 @@
      */
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void closeGrid(CloseGridDTO dto){
+    public JDYKeyUseByBookDTO closeGrid(CloseGridDTO dto){
         if(Objects.isNull(dto)
             || Objects.isNull(dto.getGridId())
             || Objects.isNull(dto.getCabinetId())
@@ -475,6 +477,7 @@
                 .eq(JkCabinetGrid::getId,dto.getGridId())
                 .last(" limit 1 ")
         );
+        JDYKeyUseByBookDTO jdyKeyUseByBookDTO = new JDYKeyUseByBookDTO();
         if(Objects.nonNull(jkCabinetGrid)){
             JkCabinetLog jkCabinetLog = new JkCabinetLog();
             jkCabinetLog.setCreateDate(new Date());
@@ -495,10 +498,10 @@
                         jkCabinetLog.setKeyInfo(jkKeys.getCarCode() + "_" + jkKeys.getCode() );
                     }
                     jkCabinetLog.setRoleType(jkKeys.getRoleType());
-                    jkCabinetLog.setKeyStatus(dto.getKeyStatus());
                     //閽ュ寵鐘舵�佷笌褰撳墠鎿嶄綔鐘舵�佷笉涓�鑷达紝鍒欒繘琛屾洿鏂伴挜鍖欑姸鎬�
                     if(!Constants.equalsInteger(jkKeys.getStatus(),dto.getKeyStatus())
                      && (Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)||Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO))){
+                        jkCabinetLog.setKeyStatus(dto.getKeyStatus());
                         jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
                                 .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
                                 .set(JkKeys::getStatus,dto.getKeyStatus())
@@ -521,7 +524,6 @@
                         if(Objects.nonNull(lastOutLog)){
                             jkCabinetLog.setOpenWay(lastOutLog.getOpenWay());
                             jkCabinetLog.setCarUseBookId(lastOutLog.getCarUseBookId());
-
                             if(Objects.nonNull(lastOutLog.getCarUseBookId())) {
                                 CarUseBook carUseBook = carUseBookMapper.selectById(lastOutLog.getCarUseBookId());
                                 if (Objects.nonNull(carUseBook)) {
@@ -529,15 +531,15 @@
                                             .set(CarUseBook::getKeyStatus, Constants.equalsInteger(dto.getKeyStatus(),Constants.TWO)?Constants.ONE:Constants.TWO)
                                             .eq(CarUseBook::getId, carUseBook.getId())
                                     );
+                                    String carUseBookId = carUseBook.getJdyNo();
                                     //鎺ㄩ�佺畝閬撲簯 鏍囪涓氬姟鏁版嵁宸茶棰嗗彇閽ュ寵
                                     if (StringUtils.isNotBlank(carUseBook.getJdyId())) {
-                                        JDYKeyUseByBookDTO jdyKeyUseByBookDTO = new JDYKeyUseByBookDTO();
                                         jdyKeyUseByBookDTO.setCreate_date(System.currentTimeMillis());
                                         jdyKeyUseByBookDTO.setStart_date(System.currentTimeMillis());
                                         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.getJdyNo());
-                                        this.pushJDYKeyInfo(jdyKeyUseByBookDTO);
+//                                        this.pushJDYKeyInfo(jdyKeyUseByBookDTO);
                                     }
                                 }
                             }
@@ -561,7 +563,10 @@
             }
 
         }
+        return jdyKeyUseByBookDTO;
     }
+
+
 
 
 
@@ -641,7 +646,8 @@
                                 .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()+" )")
+                                .apply(" ( t1.car_id in ( select c.id from  cars c  where c.ISDELETED = 0 and  c.MEMBER_ID = "+dto.getMemberId()+" ) " +
+                                        " or   t1.car_code in ( select c.car_code from car_use_book c   where c.isdeleted = 0  and c.KEY_STATUS = 1    and c.DRIVER_ID = "+dto.getMemberId()+" ) ) ")
                                 .orderByAsc(JkCabinetGrid::getCode)
                 );
                 for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
@@ -664,29 +670,6 @@
                 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(" NOW() > DATE_SUB(t2.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < t2.end_time and t3.MEMBER_ID = "+dto.getMemberId()+" ")
-//                );
-
                 jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
                         new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
                                 .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
@@ -703,9 +686,9 @@
                                 .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
                                 .in(JkKeys::getStatus,Constants.ONE)
                                 .eq(JkKeys::getRoleType,Constants.ONE)
-                                .eq(Cars::getMemberId,dto.getMemberId())
+//                                .eq(Cars::getMemberId,dto.getMemberId())
                                 .isNotNull(JkCabinetGrid::getKeyId)
-                                .apply(" t2.code in ( select c.car_code from car_use_book c left join cars c1 on c.car_code = c1.code  where c.isdeleted = 0 and c1.isdeleted =0  and NOW() > DATE_SUB(c.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < c.end_time  and c1.MEMBER_ID = "+dto.getMemberId()+" ) ")
+                                .apply(" t2.code in ( select c.car_code from car_use_book c   where c.isdeleted = 0   and NOW() > DATE_SUB(c.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < c.end_time  and c.DRIVER_ID = "+dto.getMemberId()+" ) ")
                 );
 
                 for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
@@ -715,7 +698,7 @@
                             .eq(CarUseBook::getIsdeleted,Constants.ZERO)
                             .eq(Cars::getIsdeleted,Constants.ZERO)
                             .eq(CarUseBook::getCarCode,jkCabinetGrid.getCarCode())
-                            .eq(Cars::getMemberId,dto.getMemberId())
+                            .eq(CarUseBook::getDriverId,dto.getMemberId())
                             .apply("  NOW() > DATE_SUB(t.START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < t.end_time  ")
                     );
                     if(CollectionUtils.isNotEmpty(carUseBookList)) {
@@ -801,6 +784,8 @@
     }
 
 
+    @Async
+    @Override
     public void pushJDYKeyInfo(JDYKeyUseByBookDTO dto){
         String url = systemDictDataBiz.queryByCode(Constants.JDY_CONFIG,Constants.PUSH_URL_KEYS).getCode();
 //        JSONObject object = new JSONObject();
@@ -812,9 +797,6 @@
         log.error("銆愮畝閬撲簯銆戞帹閫佹淳杞﹀崟鏁版嵁棰嗙敤涓庡綊杩樹俊鎭�-璇锋眰鍏ュ弬锛�"+JSONObject.toJSONString(dto));
         String result = HttpsUtil.postJson(url,JSONObject.toJSONString(dto));
         log.error("銆愮畝閬撲簯銆戞帹閫佹淳杞﹀崟鏁版嵁棰嗙敤涓庡綊杩樹俊鎭�-璇锋眰缁撴灉锛�"+JSONObject.toJSONString(result));
-
-
-
     }
 
 
@@ -1058,6 +1040,34 @@
             if(Objects.isNull(warning)){
                 return;
             }
+            if(StringUtils.isNotBlank(dto.getAlcoholNum())){
+                try{
+                    //瀛樺偍閰掔簿妫�娴嬫棩蹇�
+                    Integer threshold = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.THRESHOLD).getCode());
+                    //妫�娴嬫爣鍑嗗��
+                    BigDecimal concentration = new BigDecimal( systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CONCENTRATION).getCode());
+                    //妫�娴嬪��
+                    BigDecimal alcoholNum = new BigDecimal(dto.getAlcoholNum());
+                    JkCabinetLog jkCabinetLog = new JkCabinetLog();
+                    jkCabinetLog.setCreator(systemUser.getId());
+                    jkCabinetLog.setCreateDate(new Date());
+                    jkCabinetLog.setCabinetName(jkCabinet.getName());
+                    jkCabinetLog.setMemberId(dto.getMemberId());
+                    jkCabinetLog.setCabinetId(dto.getCabinetId());
+                    jkCabinetLog.setIsdeleted(Constants.ZERO);
+                    jkCabinetLog.setType(Constants.TWO);
+                    //1=mg/100ml;2=mg/L;3=%BAC  妫�娴嬪�硷細400mg/100ml锛屾爣鍑嗗��500mg/100ml
+                    jkCabinetLog.setStatus(alcoholNum.compareTo(concentration)<Constants.ZERO?Constants.ONE:Constants.ZERO);
+                    String thresholdStr = (Constants.equalsInteger(threshold,Constants.ONE)?"mg/100ml":Constants.equalsInteger(threshold,Constants.TWO)?"mg/L":"%BAC");
+                    jkCabinetLog.setKeyInfo("妫�娴嬪�硷細"+alcoholNum+thresholdStr+";鏍囧噯鍊硷細"+concentration+thresholdStr+";");
+                    jkCabinetLogMapper.insert(jkCabinetLog);
+                    if(alcoholNum.compareTo(concentration)<Constants.ZERO){
+                        return;
+                    }
+                }catch (Exception e){
+                    
+                }
+            }
             List<Integer> ruleIdList =  this.processWarnFront(warningConfig);
             if(CollectionUtils.isEmpty(ruleIdList)){
                 return;
@@ -1223,11 +1233,7 @@
                         .eq(JkCabinetGrid::getId,jkCabinetGrid.getId())
                 );
             }
-
         }
-        
-        
-        
     }
     
     
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
index 1639a1a..ae5aab9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetLogServiceImpl.java
@@ -140,6 +140,8 @@
                 .eq(Objects.nonNull(model.getAuthType()),JkCabinetLog::getAuthType,model.getAuthType())
                 .eq(Objects.nonNull(model.getStatus()),JkCabinetLog::getStatus,model.getStatus())
                 .eq(Objects.nonNull(model.getType()),JkCabinetLog::getType,model.getType())
+                .ne(Objects.nonNull(model.getBizType())&&Constants.equalsInteger(model.getBizType(),Constants.ONE),JkCabinetLog::getType,Constants.TWO)
+                .eq(Objects.nonNull(model.getBizType())&&Constants.equalsInteger(model.getBizType(),Constants.TWO),JkCabinetLog::getType,Constants.TWO)
                 .in(Objects.nonNull(model.getType())&&Constants.equalsInteger(model.getType(),Constants.ONE),JkCabinetLog::getType,"1,2")
                 .eq(JkCabinetLog::getIsdeleted, Constants.ZERO)
                 .orderByDesc(JkCabinetLog::getCreateDate);
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 1292637..7cc8814 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
@@ -6,9 +6,7 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
-import com.doumee.dao.business.CategoryMapper;
-import com.doumee.dao.business.JkCabinetGridMapper;
-import com.doumee.dao.business.JkKeysMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.dao.MemberMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.*;
@@ -19,7 +17,6 @@
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.JkCabinetMapper;
 import com.doumee.service.business.JkCabinetService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -67,6 +64,9 @@
     @Autowired
     private MultifileMapper multifileMapper;
 
+    @Autowired
+    private CarUseBookMapper carUseBookMapper;
+
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer create(JkCabinet jkCabinet) {
@@ -81,6 +81,7 @@
             || CollectionUtils.isEmpty(jkCabinet.getManagerIdList())
             || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
             || Objects.isNull(jkCabinet.getDoubleAuth())
+            || Objects.isNull(jkCabinet.getAlcoholStatus())
 
             || Objects.isNull(jkCabinet.getRowNum())
             || jkCabinet.getRowNum() <= Constants.ZERO
@@ -213,6 +214,7 @@
                 || CollectionUtils.isEmpty(jkCabinet.getAuthMemberIdList())
                 || Objects.isNull(jkCabinet.getPort())
                 || Objects.isNull(jkCabinet.getDoubleAuth())
+                || Objects.isNull(jkCabinet.getAlcoholStatus())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -522,10 +524,11 @@
                     .isNotNull(JkKeys::getCarId)
                     .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
             );
+            List<Member> driverList = new ArrayList<>();
             if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
                 List<Integer> carIdList = jkCabinetGridList.stream().map(i->i.getKeyId()).collect(Collectors.toList());
                 //鏌ヨ杞﹁締鎵�鏈変汉鍛樹俊鎭�
-                List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                driverList.addAll(memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
                         .selectAll(Member.class)
                         .leftJoin(Cars.class,Cars::getMemberId,Member::getId)
                         .leftJoin(JkKeys.class,JkKeys::getCarId,Cars::getId)
@@ -533,10 +536,32 @@
                         .eq(CarDriver::getIsdeleted,Constants.ZERO)
                         .eq(CarDriver::getStatus,Constants.ZERO)
                         .isNotNull(Member::getFaceImg)
-                        .in(JkKeys::getId,carIdList)
+                        .in(JkKeys::getId,carIdList))
                 );
-                if(CollectionUtils.isNotEmpty(memberList)){
-                    Set<Member> memberSet = new HashSet<>(memberList);
+            }
+            //娲捐溅鍗曞徃鏈轰俊鎭�
+            String earlyConfig =  systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode();
+            List<CarUseBook> carUseBookList = carUseBookMapper.selectList(new QueryWrapper<CarUseBook>().lambda()
+                    .eq(CarUseBook::getIsdeleted,Constants.ZERO)
+                            .isNotNull(CarUseBook::getDriverId)
+                            .apply(" car_id in ( SELECT k.CAR_ID FROM  jk_cabinet_grid j inner join jk_keys k on j.KEY_ID = k.ID where j.isdeleted = 0 and k.isdeleted = 0  ) ")
+                    .apply(" (" +
+                            "( NOW() > DATE_SUB(START_TIME, INTERVAL "+earlyConfig+" MINUTE) and now() < end_time and KEY_STATUS = 0  ) " +
+                            "or" +
+                            "  KEY_STATUS = 1 " +
+                            ") ")
+            );
+            if(CollectionUtils.isNotEmpty(carUseBookList)){
+                driverList.addAll(memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                        .eq(Member::getIsdeleted,Constants.ZERO)
+                        .isNotNull(Member::getFaceImg)
+                        .in(Member::getId,carUseBookList.stream().map(i->i.getDriverId()).collect(Collectors.toList()))
+                ));
+            }
+
+            if(CollectionUtils.isNotEmpty(driverList)){
+                if(CollectionUtils.isNotEmpty(driverList)){
+                    Set<Member> memberSet = new HashSet<>(driverList);
                     for (Member member:memberSet) {
                         CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO();
                         cabinetFaceInfoVO.setMemberId(member.getId());
@@ -659,4 +684,12 @@
     }
 
 
+    @Override
+    public void updHeartbeat(String code){
+        jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>()
+                .lambda()
+                .set(JkCabinet::getHaertTime, DateUtil.getCurrDateTime())
+                .eq(JkCabinet::getCode,code));
+    }
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index cdc2091..09d033e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -66,6 +66,7 @@
 import com.doumee.service.system.SystemLoginService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.taobao.api.ApiException;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -92,6 +93,7 @@
  * @author 姹熻箘韫�
  * @date 2023/11/30 15:33
  */
+@Slf4j
 @Service
 public class MemberServiceImpl implements MemberService {
 
@@ -2427,6 +2429,8 @@
             if(CollectionUtils.isEmpty(list)){
                 return;
             }
+            log.error("閽夐拤浜哄憳淇℃伅鍚屾琛屾暟锛�"+ list.size());
+            log.error("閽夐拤浜哄憳淇℃伅鍚屾鍐呭锛�"+ JSONObject.toJSONString(list));
             List<Member> addList = new ArrayList<>();
             List<Member> updateList = new ArrayList<>();
             List<String> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d  erpId
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 4316485..77c3d7c 100644
--- a/server/visits/dmvisit_service/src/main/resources/application-pro.yml
+++ b/server/visits/dmvisit_service/src/main/resources/application-pro.yml
@@ -3,7 +3,7 @@
   datasource:
     url: jdbc:mysql://localhost:3306/maanshanyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     username: root
-    password: Whyc@2025
+    password: Masyc@2025
     driver-class-name: com.mysql.cj.jdbc.Driver
     type: com.alibaba.druid.pool.DruidDataSource
   redis:

--
Gitblit v1.9.3