From e265fd71f866680a23248bf54575083cedb531ed Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 11 十二月 2025 08:50:13 +0800
Subject: [PATCH] 钥匙柜开门添加 指纹方式

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java |   29 ++++++++++++++---------------
 1 files changed, 14 insertions(+), 15 deletions(-)

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 4f627d6..86c0622 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
@@ -610,27 +610,22 @@
             || Objects.isNull(dto.getType())){
             return jkCabinetGridList;
         }else{
-            JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
+            JkCabinet jkCabinet = jkCabinetMapper.selectJoinOne(JkCabinet.class,new MPJLambdaWrapper<JkCabinet>()
+                            .selectAll(JkCabinet.class)
+                            .select("now()",JkCabinet::getNow)
+                    .eq(JkCabinet::getId,dto.getCabinetId()));
             if(Objects.isNull(jkCabinet)){
                 return jkCabinetGridList;
             }
-            if(Constants.equalsInteger(jkCabinet.getDoubleAuth(),Constants.ONE)){
-                if(StringUtils.isBlank(jkCabinet.getAuthMemberId())){
+            if(Constants.equalsInteger(jkCabinet.getDoubleAuth(),Constants.ONE)&&Constants.equalsInteger(dto.getType(),Constants.ZERO)){
+                if(StringUtils.isBlank(jkCabinet.getAuthMemberId())||Objects.isNull(dto.getAutoMemberId())){
                     return jkCabinetGridList;
                 }
                 List<String> authMemberList =  Arrays.asList(jkCabinet.getAuthMemberId().split(","));
-                Boolean flag = true;
-                for (String id:authMemberList) {
-                    if(Arrays.asList(jkCabinet.getAuthMemberId().split(",")).contains(id)){
-                        flag = false;
-                        break;
-                    }
-                }
-                if(flag){
+                if(!authMemberList.contains(dto.getAutoMemberId())){
                     return jkCabinetGridList;
                 }
             }
-
             //濡傛灉鏄繕閽ュ寵 鍒欑洿鎺ユ煡璇㈠凡鍊熷嚭鐨勯挜鍖欑殑鏁版嵁
             if(Constants.equalsInteger(dto.getType(),Constants.ONE)){
                 jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
@@ -667,7 +662,7 @@
                 //鍒ゆ柇褰撳墠鏃堕棿鏄惁澶勪簬淇濇磥鏃舵鍐�
                 String cleanConfig =  systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CLEAN_TIME).getCode();
                 String earlyConfig =  systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.EARLY_CONFIG).getCode();
-                Boolean isCleanTime = Constants.betweenTimeConfig(cleanConfig);
+                Boolean isCleanTime = Constants.betweenTimeConfig(cleanConfig,jkCabinet.getNow());
                 List<Integer> girdIdList = new ArrayList<>();
                 //鏌ヨ鏍规嵁浠诲姟鍙互棰嗗彇鐨勬暟鎹�
                 jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
@@ -688,7 +683,11 @@
                                 .eq(JkKeys::getRoleType,Constants.ONE)
 //                                .eq(Cars::getMemberId,dto.getMemberId())
                                 .isNotNull(JkCabinetGrid::getKeyId)
-                                .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()+" ) ")
+                                .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()+"   )" +
+                                        " or t2.code in ( select c.car_code from car_use_book c inner join  cars c1 on c.CAR_ID = c1.ID  where c1.MEMBER_ID = 6611 AND NOW() > DATE_SUB( c.START_TIME, INTERVAL 30 MINUTE ) AND now() < c.end_time )" +
+                                        " )" +
+                                        " ")
                 );
 
                 for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
@@ -1220,7 +1219,7 @@
             List<SyncGridDTO> gridSyncList = gridDTOList.stream().filter(i->StringUtils.isNotBlank(i.getBoardCode())&&
                     StringUtils.isNotBlank(i.getChannelCode())&&StringUtils.isNotBlank(i.getActualLable())&&i.getBoardCode().equals(jkCabinetGrid.getBoardCode())
             && i.getChannelCode().equals(jkCabinetGrid.getChannelCode())).collect(Collectors.toList());
-            if(CollectionUtils.isEmpty(gridDTOList)){
+            if(CollectionUtils.isEmpty(gridSyncList)){
                 continue;
             }
             SyncGridDTO syncGridDTO = gridSyncList.get(Constants.ZERO);

--
Gitblit v1.9.3