From 9fdd262881ef10d79e75d8e91d36fef88f774073 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 31 十月 2025 11:26:29 +0800
Subject: [PATCH] 钥匙柜信息处理
---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java |  148 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 126 insertions(+), 22 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 72875bd..b1115ac 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,6 +1,7 @@
 package com.doumee.service.business.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.dingTalk.DingTalk;
 import com.doumee.core.dingTalk.DingTalkStream;
@@ -58,14 +59,20 @@
     @Autowired
     private JkCabinetLogMapper jkCabinetLogMapper;
 
-    @Autowired
-    private WarningMapper warningMapper;
 
     @Autowired
     private MemberMapper memberMapper;
 
     @Autowired
+    private WarningMapper warningMapper;
+    @Autowired
     private WarningRuleMapper warningRuleMapper;
+
+    @Autowired
+    private WarningPushMapper warningPushMapper;
+    
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
 
     @Autowired
     private DingTalk dingTalk;
@@ -179,7 +186,7 @@
         MPJLambdaWrapper<JkCabinetGrid> wrapper = new MPJLambdaWrapper<JkCabinetGrid>()
                 .selectAll(JkCabinetGrid.class)
                 .selectAs(JkCabinet::getName,JkCabinetGrid::getCabinetName)
-                .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
+                .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
                 .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
                 .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                 .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
@@ -310,7 +317,7 @@
         }
         List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
                 new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
-                        .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
+                        .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
                         .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                         .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                 .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
@@ -392,6 +399,8 @@
                     jkCabinetLog.setAuthType(Constants.TWO);
                     jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
                     jkCabinetLog.setStatus(Constants.ZERO);
+                    jkCabinetLog.setIsNotice(Constants.ZERO);
+                    jkCabinetLog.setInfo(Objects.isNull(dto.getOpenType())||Constants.equalsInteger(dto.getOpenType(),Constants.ZERO)?"绯荤粺寮�鍚�":"鎵嬪姩寮�鍚�");
                     if(Objects.nonNull(jkCabinetGrid.getKeyId())){
                         jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
                         JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
@@ -406,6 +415,7 @@
                     jkCabinetLog.setType(Constants.ZERO);
                     jkCabinetLogs.add(jkCabinetLog);
                 }
+
                 jkCabinetLogMapper.insert(jkCabinetLogs);
             }
         }
@@ -464,18 +474,50 @@
                     }
                 }
             }
+            jkCabinetLog.setIsNotice(Constants.ZERO);
             jkCabinetLog.setType(Constants.ONE);
             jkCabinetLogMapper.insert(jkCabinetLog);
             //鏌ヨ閽ュ寵鐨勫紑闂ㄨ褰� 杩涜娣诲姞鍏抽棬璁板綍涓婚敭
-            jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
-                    .set(JkCabinetLog::getCloseLogId,jkCabinetLog.getId())
-                    .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
-                    .eq(JkCabinetLog::getType,Constants.ZERO)
-                    .isNull(JkCabinetLog::getCloseLogId));
+            if(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.ONE)
+                        .eq(JkCabinetLog::getKeyStatus,Constants.TWO)
+                        .isNull(JkCabinetLog::getCloseLogId));
+            }
+
         }
     }
 
 
+
+//    public void saveAbnormalOpenGridLog(AbnormalOpenGridDTO dto){
+//        if(Objects.isNull(dto)
+//                || StringUtils.isBlank(dto.getBoardCode())
+//                || StringUtils.isBlank(dto.getBoardCode())
+//                || Objects.isNull(dto.getCabinetId())
+//                || Objects.isNull(dto.getKeyStatus())
+//                || Objects.isNull(dto.getAuthType())
+//        ){
+//            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+//        }
+//        JkCabinetGrid jkCabinetGrid = jkCabinetGridMapper.selectOne(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+//                .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
+//                .eq(JkCabinetGrid::getId,dto.getGridId())
+//                .last(" limit 1 ")
+//        );
+//        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);
+//        jkCabinetLog.setStatus(Constants.ZERO);
+//
+//    }
 
 
     /**
@@ -512,7 +554,7 @@
             }
             jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
                     new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
-                            .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
+                            .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
                             .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                             .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                             .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
@@ -551,10 +593,8 @@
         if(Objects.isNull(jkCabinetGrid)){
             return ;
         }
-//        LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
         JkCabinetLog jkCabinetLog = new JkCabinetLog();
         jkCabinetLog.setCreateDate(new Date());
-//        jkCabinetLog.setCreator(loginUserInfo.getId());
         jkCabinetLog.setIsdeleted(Constants.ZERO);
         jkCabinetLog.setCabinetId(openGridDriverDTO.getCabinetId());
         jkCabinetLog.setGridId(jkCabinetGrid.getId());
@@ -562,6 +602,7 @@
         jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
         jkCabinetLog.setType(Constants.ZERO);
         jkCabinetLog.setStatus(Constants.ZERO);
+        jkCabinetLog.setInfo(Objects.isNull(openGridDriverDTO.getOpenType())||Constants.equalsInteger(openGridDriverDTO.getOpenType(),Constants.ZERO)?"绯荤粺寮�鍚�":"鎵嬪姩寮�鍚�");
         if(Objects.nonNull(jkCabinetGrid.getKeyId())){
             jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
             JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
@@ -573,6 +614,7 @@
                 jkCabinetLog.setRoleType(jkKeys.getRoleType());
             }
         }
+        jkCabinetLog.setIsNotice(Constants.ZERO);
         jkCabinetLogMapper.insert(jkCabinetLog);
     }
 
@@ -593,8 +635,9 @@
 
             if(Objects.nonNull(jkCabinetGrid)){
                 log.error("鏌滄牸寮�闂ㄨ秴鏃舵湭鍏抽棴鍛婅淇℃伅锛歿}"+JSONObject.toJSONString(jkCabinetGrid));
+                Constants.WarningConfig warningConfig = Constants.WarningConfig.GRID_TIME_OUT_INFO;
                 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"));
+                        .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,warningConfig.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
                 if(Objects.isNull(warning)){
                     return;
                 }
@@ -602,10 +645,33 @@
                 if(CollectionUtils.isEmpty(memberList)){
                     return;
                 }
-                //todo 瀛樺偍寮傚父鏃ュ織
+                JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
+                // 瀛樺偍寮傚父鏃ュ織
+                WarningPush warningPush = new WarningPush();
+                warningPush.setCreateDate(new Date());
+                warningPush.setIsdeleted(Constants.ZERO);
+                warningPush.setWarningId(warning.getId());
+                warningPush.setTitle(warningConfig.getInfo());
+                String content = "銆愰挜鍖欐煖-"+jkCabinetGrid.getCabinetName()+"銆戜笅銆愭煖鏍�-"+jkCabinetGrid.getCode()+"銆戣秴鏃舵湭鍏抽棴";
+                warningPush.setContent(content);
+                warningPush.setStatus(Constants.ZERO);
+                warningPush.setPushType(Constants.ZERO);
+                warningPush.setRegion(Objects.nonNull(jkCabinet)&&StringUtils.isNotBlank(jkCabinet.getLocation())?jkCabinet.getLocation():"鏈煡浣嶇疆");
+                warningPush.setMemberIds(
+                        StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
+                );
+                warningPush.setMemberIds(
+                        StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
+                );
+                warningPush.setMemberNames(StringUtils.join(memberList.stream().map(i->i.getName()).collect(Collectors.toList()),",")
+                );
+                //todo 鏆傛椂鍏抽棴 閽夐拤閫氱煡
 
-
-            }else{
+//            Boolean noticeFlag = dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
+//                    StringUtils.join(memberList.stream().filter(i->StringUtils.isNotBlank(i.getDdId())).map(i->i.getDdId()).collect(Collectors.toList()),","),
+//                dingTalk.getAlarmNoticeMsg(warningPush.getRegion(),DateUtil.getCurrDateTime(),content));
+//            warningPush.setStatus(noticeFlag?Constants.ONE:Constants.TWO);
+                warningPushMapper.insert(warningPush);
 
             }
         }
@@ -638,9 +704,6 @@
             }
         }
         return memberList;
-
-
-
     }
 
 
@@ -656,8 +719,10 @@
                             .last(" limit 1 ")
                     );
 
+            JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
+            Constants.WarningConfig warningConfig = Constants.WarningConfig.ALARM_TEST;
             Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
-                    .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.KEY_TIME_OUT_BACK.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
+                    .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,warningConfig.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
             if(Objects.isNull(warning)){
                 return;
             }
@@ -665,8 +730,44 @@
             if(CollectionUtils.isEmpty(memberList)){
                 return;
             }
-            //todo 瀛樺偍寮傚父鏃ュ織
-
+            // 瀛樺偍寮傚父鏃ュ織
+            WarningPush warningPush = new WarningPush();
+            warningPush.setCreateDate(new Date());
+            warningPush.setIsdeleted(Constants.ZERO);
+            warningPush.setWarningId(warning.getId());
+            warningPush.setTitle(warningConfig.getInfo());
+            String content = "";
+            if(Objects.nonNull(systemUser.getRealname())){
+                content = content + systemUser.getRealname();
+            }
+            if(Objects.nonNull(jkCabinet)){
+                content = content + "浜�"+jkCabinet.getName()+"閽ュ寵鏌�";
+            }
+            content = content + "閰掔簿妫�娴嬪紓甯�";
+            warningPush.setContent(content + "閰掔簿妫�娴嬪紓甯革紝閰掔簿搴︽暟銆�"+dto.getAlcoholNum()+"掳銆�");
+            if(Objects.nonNull(dto.getAlcoholNum())){
+                content = content + "锛岄厭绮惧害鏁般��"+dto.getAlcoholNum()+"掳銆�";
+            }
+            warningPush.setContent(content);
+            warningPush.setStatus(Constants.ZERO);
+            warningPush.setPushType(Constants.ZERO);
+            warningPush.setRegion(Objects.nonNull(jkCabinet)&&StringUtils.isNotBlank(jkCabinet.getLocation())?jkCabinet.getLocation():"鏈煡浣嶇疆");
+            warningPush.setMemberId(dto.getMemberId());
+            warningPush.setMemberIds(
+                    StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
+            );
+            warningPush.setMemberIds(
+                    StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
+            );
+            warningPush.setMemberNames(StringUtils.join(memberList.stream().map(i->i.getName()).collect(Collectors.toList()),",")
+            );
+            //todo 鏆傛椂鍏抽棴 閽夐拤閫氱煡
+            
+//            Boolean noticeFlag = dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
+//                    StringUtils.join(memberList.stream().filter(i->StringUtils.isNotBlank(i.getDdId())).map(i->i.getDdId()).collect(Collectors.toList()),","),
+//                dingTalk.getAlarmNoticeMsg(warningPush.getRegion(),DateUtil.getCurrDateTime(),warningConfig.getInfo()));
+//            warningPush.setStatus(noticeFlag?Constants.ONE:Constants.TWO);
+            warningPushMapper.insert(warningPush);
             //瀛樺偍寮傚父鏃ュ織
             if(Objects.nonNull(systemUser)){
                 log.error("鍙告満閰掔簿妫�娴嬶紝瓒呭嚭閰掔簿鍊煎憡璀︿俊鎭細{}"+JSONObject.toJSONString(systemUser));
@@ -675,4 +776,7 @@
     }
 
 
+
+
+
 }
--
Gitblit v1.9.3