From 7666113e060747cce6be99e0deb68485b4283161 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 十月 2025 10:38:41 +0800
Subject: [PATCH] 钥匙柜 电信大屏  配置文件

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java |  257 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 151 insertions(+), 106 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 28633c9..b0b1113 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
@@ -1,7 +1,9 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.core.constants.ResponseStatus;
 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.*;
@@ -20,6 +22,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.service.business.third.model.PageWrap;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -35,6 +39,7 @@
  * @date 2025/09/28 09:01
  */
 @Service
+@Slf4j
 public class JkCabinetGridServiceImpl implements JkCabinetGridService {
 
     @Autowired
@@ -250,23 +255,24 @@
         if(Objects.isNull(dto)
                 || Objects.isNull(dto.getCabinetId())
                 || CollectionUtils.isEmpty(dto.getGridIdList())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectList(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
-                .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
-                .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
-                .in(JkCabinetGrid::getId,dto.getGridIdList())
-        );
-        if(CollectionUtils.isEmpty(jkCabinetGridList)){
             return;
+        }else{
+            List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectList(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                    .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+                    .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+                    .in(JkCabinetGrid::getId,dto.getGridIdList())
+            );
+            if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+                LoginUserInfo loginUserInfo = dto.getLoginUserInfo();
+                for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+                    jkCabinetGrid.setEditor(loginUserInfo.getId());
+                    jkCabinetGrid.setEditDate(new Date());
+                    jkCabinetGrid.setWorkingStatus(Constants.ONE);
+                    jkCabinetGridMapper.updateById(jkCabinetGrid);
+                }
+            }
         }
-        LoginUserInfo loginUserInfo = dto.getLoginUserInfo();
-        for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
-            jkCabinetGrid.setEditor(loginUserInfo.getId());
-            jkCabinetGrid.setEditDate(new Date());
-            jkCabinetGrid.setWorkingStatus(Constants.ONE);
-            jkCabinetGridMapper.updateById(jkCabinetGrid);
-        }
+
     }
 
     /**
@@ -293,16 +299,16 @@
                 .isNotNull(JkCabinetGrid::getKeyId)
                 .in(JkCabinetGrid::getId,dto.getGridIdList())
         );
-        if(CollectionUtils.isEmpty(jkCabinetGridList)){
-            return;
+        if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+                jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
+                        .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
+                        .set(JkKeys::getStatus,Constants.TWO)
+                        .eq(JkKeys::getId,jkCabinetGrid.getKeyId())
+                );
+            }
         }
-        for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
-            jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
-                    .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
-                    .set(JkKeys::getStatus,Constants.TWO)
-                    .eq(JkKeys::getId,jkCabinetGrid.getKeyId())
-            );
-        }
+
     }
 
 
@@ -315,23 +321,23 @@
         if(Objects.isNull(dto)
                 || Objects.isNull(dto.getCabinetId())
                 || CollectionUtils.isEmpty(dto.getGridIdList())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            return;
         }
         List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectList(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                 .eq(JkCabinetGrid::getWorkingStatus,Constants.ONE)
                 .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
                 .in(JkCabinetGrid::getId,dto.getGridIdList())
         );
-        if(CollectionUtils.isEmpty(jkCabinetGridList)){
-            return;
+        if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+            LoginUserInfo loginUserInfo = dto.getLoginUserInfo();
+            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+                jkCabinetGrid.setEditor(loginUserInfo.getId());
+                jkCabinetGrid.setEditDate(new Date());
+                jkCabinetGrid.setWorkingStatus(Constants.ZERO);
+                jkCabinetGridMapper.updateById(jkCabinetGrid);
+            }
         }
-        LoginUserInfo loginUserInfo = dto.getLoginUserInfo();
-        for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
-            jkCabinetGrid.setEditor(loginUserInfo.getId());
-            jkCabinetGrid.setEditDate(new Date());
-            jkCabinetGrid.setWorkingStatus(Constants.ZERO);
-            jkCabinetGridMapper.updateById(jkCabinetGrid);
-        }
+
     }
 
 
@@ -344,42 +350,42 @@
         if(Objects.isNull(dto)
         || Objects.isNull(dto.getCabinetId())
         || CollectionUtils.isEmpty(dto.getGridIdList())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+           return;
         }
         List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectList(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                 .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
                 .in(JkCabinetGrid::getId,dto.getGridIdList())
         );
-        if(CollectionUtils.isEmpty(jkCabinetGridList)){
-            return;
-        }
-        LoginUserInfo loginUserInfo = dto.getLoginUserInfo();
-        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(jkCabinetGridList)){
-            List<JkCabinetLog> jkCabinetLogs = new ArrayList<>();
-            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
-                JkCabinetLog jkCabinetLog = new JkCabinetLog();
-                jkCabinetLog.setCreateDate(new Date());
-                jkCabinetLog.setCreator(loginUserInfo.getId());
-                jkCabinetLog.setIsdeleted(Constants.ZERO);
-                jkCabinetLog.setCabinetId(dto.getCabinetId());
-                jkCabinetLog.setGridId(jkCabinetGrid.getId());
-                jkCabinetLog.setAuthType(Constants.TWO);
-                jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
-                if(Objects.nonNull(jkCabinetGrid.getKeyId())){
-                    JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
-                    if(Objects.nonNull(jkKeys)){
-                        if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
-                            jkCabinetLog.setCarId(jkKeys.getCarId());
-                            jkCabinetLog.setKeyInfo(jkKeys.getCarCode() + "_" + jkKeys.getCode() );
+        if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+            LoginUserInfo loginUserInfo = dto.getLoginUserInfo();
+            if(org.apache.commons.collections.CollectionUtils.isNotEmpty(jkCabinetGridList)){
+                List<JkCabinetLog> jkCabinetLogs = new ArrayList<>();
+                for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
+                    JkCabinetLog jkCabinetLog = new JkCabinetLog();
+                    jkCabinetLog.setCreateDate(new Date());
+                    jkCabinetLog.setCreator(loginUserInfo.getId());
+                    jkCabinetLog.setIsdeleted(Constants.ZERO);
+                    jkCabinetLog.setCabinetId(dto.getCabinetId());
+                    jkCabinetLog.setGridId(jkCabinetGrid.getId());
+                    jkCabinetLog.setAuthType(Constants.TWO);
+                    jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
+                    if(Objects.nonNull(jkCabinetGrid.getKeyId())){
+                        JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
+                        if(Objects.nonNull(jkKeys)){
+                            if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
+                                jkCabinetLog.setCarId(jkKeys.getCarId());
+                                jkCabinetLog.setKeyInfo(jkKeys.getCarCode() + "_" + jkKeys.getCode() );
+                            }
+                            jkCabinetLog.setRoleType(jkKeys.getRoleType());
                         }
-                        jkCabinetLog.setRoleType(jkKeys.getRoleType());
                     }
+                    jkCabinetLog.setType(Constants.ZERO);
+                    jkCabinetLogs.add(jkCabinetLog);
                 }
-                jkCabinetLog.setType(Constants.ZERO);
-                jkCabinetLogs.add(jkCabinetLog);
+                jkCabinetLogMapper.insert(jkCabinetLogs);
             }
-            jkCabinetLogMapper.insert(jkCabinetLogs);
         }
+
     }
 
 
@@ -403,38 +409,53 @@
                 .eq(JkCabinetGrid::getId,dto.getGridId())
                 .last(" limit 1 ")
         );
-        if(Objects.isNull(jkCabinetGrid)){
-            return;
-        }
-        JkCabinetLog jkCabinetLog = new JkCabinetLog();
-        jkCabinetLog.setCreateDate(new Date());
-        jkCabinetLog.setIsdeleted(Constants.ZERO);
-        jkCabinetLog.setCabinetId(dto.getCabinetId());
-        jkCabinetLog.setGridId(jkCabinetGrid.getId());
-        jkCabinetLog.setAuthType(dto.getAuthType());
-        jkCabinetLog.setMemberId(dto.getMemberId());
-        if(Objects.nonNull(jkCabinetGrid.getKeyId())){
-            //鍙湁閽ュ寵鏌滅粦瀹氫簡閽ュ寵淇℃伅 鎵嶄細鏇存柊閽ュ寵鐨勪俊鎭�
-            JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
-            if(Objects.nonNull(jkKeys)){
-                if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
-                    jkCabinetLog.setCarId(jkKeys.getCarId());
-                    jkCabinetLog.setKeyInfo(jkKeys.getCarCode() + "_" + jkKeys.getCode() );
-                }
-                jkCabinetLog.setRoleType(jkKeys.getRoleType());
-                //閽ュ寵鐘舵�佷笌褰撳墠鎿嶄綔鐘舵�佷笉涓�鑷达紝鍒欒繘琛屾洿鏂伴挜鍖欑姸鎬�
-                if(!Constants.equalsInteger(jkKeys.getStatus(),dto.getKeyStatus())){
-                    jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
-                            .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
-                            .set(JkKeys::getStatus,dto.getKeyStatus())
-                            .eq(JkKeys::getId,jkKeys.getId())
-                    );
+        if(Objects.nonNull(jkCabinetGrid)){
+            JkCabinetLog jkCabinetLog = new JkCabinetLog();
+            jkCabinetLog.setCreateDate(new Date());
+            jkCabinetLog.setIsdeleted(Constants.ZERO);
+            jkCabinetLog.setCabinetId(dto.getCabinetId());
+            jkCabinetLog.setGridId(jkCabinetGrid.getId());
+            jkCabinetLog.setAuthType(dto.getAuthType());
+            jkCabinetLog.setMemberId(dto.getMemberId());
+            jkCabinetLog.setKeyStatus(Constants.ZERO);
+            Boolean isChange = false;
+            if(Objects.nonNull(jkCabinetGrid.getKeyId())){
+                //鍙湁閽ュ寵鏌滅粦瀹氫簡閽ュ寵淇℃伅 鎵嶄細鏇存柊閽ュ寵鐨勪俊鎭�
+                JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
+                if(Objects.nonNull(jkKeys)){
+                    if(!Constants.equalsInteger(jkKeys.getStatus(),Constants.ZERO)){
+                        jkCabinetLog.setCarId(jkKeys.getCarId());
+                        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))){
+                        jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
+                                .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
+                                .set(JkKeys::getStatus,dto.getKeyStatus())
+                                .eq(JkKeys::getId,jkKeys.getId())
+                        );
+                        isChange = true;
+                    }
                 }
             }
+            jkCabinetLog.setType(Constants.ONE);
+            jkCabinetLogMapper.insert(jkCabinetLog);
+            //鏌ヨ閽ュ寵瀵瑰簲鐨勫�熷嚭浜嗛挜鍖欑殑寮�闂ㄨ褰� 杩涜娣诲姞鍏抽棬璁板綍涓婚敭
+            if(isChange && Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)){
+                jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
+                        .set(JkCabinetLog::getCloseLogId,jkCabinetLog.getId())
+                        .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
+                        .eq(JkCabinetLog::getType,Constants.ZERO)
+                        .eq(JkCabinetLog::getKeyStatus,Constants.TWO)
+                        .isNotNull(JkCabinetLog::getCloseLogId));
+            }
         }
-        jkCabinetLog.setType(Constants.ONE);
-        jkCabinetLogMapper.insert(jkCabinetLog);
     }
+
+
 
 
     /**
@@ -442,26 +463,48 @@
      */
     @Override
     public List<JkCabinetGrid> getDriverGrid(GetDriverGridDTO dto){
+        List<JkCabinetGrid> jkCabinetGridList = new ArrayList<>();
         if(Objects.isNull(dto.getCabinetId())
             || Objects.isNull(dto.getCabinetId())
             || Objects.isNull(dto.getMemberId())
             || Objects.isNull(dto.getType())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+            return jkCabinetGridList;
+        }else{
+            JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
+            if(Objects.isNull(jkCabinet)){
+                return jkCabinetGridList;
+            }
+            if(Constants.equalsInteger(jkCabinet.getDoubleAuth(),Constants.ONE)){
+                if(StringUtils.isBlank(jkCabinet.getAuthMemberId())){
+                    return jkCabinetGridList;
+                }
+                List<String> authMemberList =  Arrays.asList(jkCabinet.getAuthMemberId().split(","));
+                Boolean flag = true;
+                for (String id:authMemberList) {
+                    if(id.equals(jkCabinet.getAuthMemberId())){
+                        flag = false;
+                        break;
+                    }
+                }
+                if(flag){
+                    return jkCabinetGridList;
+                }
+            }
+            jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
+                    new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
+                            .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
+                            .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
+                            .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+                            .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                            .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
+                            .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+                            .in(Constants.equalsInteger(dto.getType(),Constants.ONE),JkKeys::getStatus,Constants.TWO,Constants.THREE)
+                            .in(Constants.equalsInteger(dto.getType(),Constants.ZERO),JkKeys::getStatus,Constants.ONE)
+                            .isNotNull(JkCabinetGrid::getKeyId)
+                            .apply(" t1.car_id in ( select c.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()+" ) ")
+            );
         }
-        List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
-                new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
-                        .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
-                        .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
-                        .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
-                        .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
-                        .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
-                        .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
-                        .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
-                        .in(Constants.equalsInteger(dto.getType(),Constants.ONE),JkKeys::getStatus,Constants.TWO,Constants.THREE)
-                        .in(Constants.equalsInteger(dto.getType(),Constants.ZERO),JkKeys::getStatus,Constants.ONE)
-                        .isNotNull(JkCabinetGrid::getKeyId)
-                        .apply(" t1.car_id in ( select c.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()+" ) ")
-        );
         return jkCabinetGridList;
     }
 
@@ -478,10 +521,9 @@
                 .last(" limit 1 ")
         );
         if(Objects.isNull(jkCabinetGrid)){
-            return;
+            return ;
         }
         LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
-        List<JkCabinetLog> jkCabinetLogs = new ArrayList<>();
         JkCabinetLog jkCabinetLog = new JkCabinetLog();
         jkCabinetLog.setCreateDate(new Date());
         jkCabinetLog.setCreator(loginUserInfo.getId());
@@ -501,7 +543,10 @@
                 jkCabinetLog.setRoleType(jkKeys.getRoleType());
             }
         }
-        jkCabinetLogMapper.insert(jkCabinetLogs);
+        jkCabinetLogMapper.insert(jkCabinetLog);
     }
 
+
+
+
 }

--
Gitblit v1.9.3