From 4f6565cb9cca05981abdeb85dfc023a28c892e42 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 05 十一月 2025 16:42:45 +0800
Subject: [PATCH] 钥匙柜信息处理

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |  254 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 194 insertions(+), 60 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 617c8fd..4a8c6bb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -11,6 +11,8 @@
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest;
+import com.doumee.core.haikang.model.param.request.event.base.EventBaseInfoRequest;
+import com.doumee.core.haikang.model.param.request.event.base.EventBaseRequest;
 import com.doumee.core.haikang.model.param.request.event.parks.*;
 import com.doumee.core.haikang.model.param.request.event.visit.*;
 import com.doumee.core.haikang.service.HKService;
@@ -25,6 +27,7 @@
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO;
 import com.doumee.service.business.VisitsService;
+import com.doumee.service.business.impl.JkCabinetGridServiceImpl;
 import com.doumee.service.business.impl.PlatformWarnEventServiceImpl;
 import com.doumee.service.business.third.TmsService;
 import com.doumee.service.business.third.model.request.TmsOrderInfoRequest;
@@ -101,6 +104,14 @@
     private PlatformLogMapper platformLogMapper;
     @Autowired
     private PlatformWarnEventServiceImpl platformWarnEventService;
+    @Autowired
+    private WarningMapper warningMapper;
+    @Autowired
+    private WarningEventMapper warningEventMapper;
+    @Autowired
+    private WarningRuleMapper warningRuleMapper;
+    @Autowired
+    private WarningPushMapper warningPushMapper;
 
 
 
@@ -339,7 +350,7 @@
         event.setExtEventAlarmOutID(request.getData().getExtEventAlarmOutID());
         event.setExtEventAlarmInID(request.getData().getExtEventAlarmInID());
         event.setExtAccessChannel(request.getData().getExtAccessChannel());
-        //閫氶亾浜嬩欢淇℃伅
+        //閫氶亾浜嬩欢淇℃伅`
         if(request.getData().getExtEventCustomerNumInfo() !=null){
             event.setTotalTimes(request.getData().getExtEventCustomerNumInfo().getTotalTimes());
             event.setEntryTimes(request.getData().getExtEventCustomerNumInfo().getEntryTimes());
@@ -447,6 +458,122 @@
             log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
         }
         saveInterfaceLog(param,"/business/hksync/push/visit",result,true);
+        return  null;
+
+    }
+
+
+    /**
+     * 娴峰悍浜嬩欢鎺ㄩ��
+     * @param param
+     * @param response
+     * @return
+     */
+    @Override
+    public String dealSecurityEvent(EventBaseRequest param, HttpServletResponse response, JkCabinetGridServiceImpl impl){
+        log.info("銆愭捣搴烽�氱敤浜嬩欢鎺ㄩ�併��==========寮�濮�=======锛歕n"+JSONObject.toJSONString(param));
+        String result = null;
+        try {
+            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+                return null;
+            }
+            //闂ㄧ浜嬩欢闆嗗悎
+            List<EventBaseInfoRequest> events  = param.getParams().getEvents();
+            for(EventBaseInfoRequest request : events){
+                Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
+                        .eq(Warning::getIsdeleted,Constants.ZERO)
+                        .eq(Warning::getCode, request.getSrcType()).last("limit 1"));
+
+                Constants.WarningConfig warningConfig = Constants.WarningConfig.getConfig(request.getEventType());
+                
+                if(Objects.nonNull(warning)){
+                    WarningEvent warningEvent = new WarningEvent();
+                    warningEvent.setCreateDate(new Date());
+                    warningEvent.setEditDate(warningEvent.getCreateDate());
+                    warningEvent.setIsdeleted(Constants.ZERO);
+                    warningEvent.setTitle(warning.getName());
+                    warningEvent.setContent(warning.getName() +"-"+ request.getSrcName());
+                    warningEvent.setStatus(Constants.ZERO);
+                    warningEvent.setEventId(request.getEventId());
+                    warningEvent.setEventType(request.getEventType().toString());
+                    warningEvent.setHappenTime(request.getHappenTime());
+                    warningEvent.setJsonContent(request.getData().toJSONString());
+                    warningEvent.setSrcIndex(request.getSrcIndex());
+                    warningEvent.setSrcType(request.getSrcType());
+                    warningEvent.setSrcName(request.getSrcName());
+                    warningEventMapper.insert(warningEvent);
+
+                    if(Objects.nonNull(warningConfig)){
+                        List<Integer> ruleIdList =  impl.processWarnFront(warningConfig);
+
+                        Boolean falg = false;
+                        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ruleIdList)){
+                            for (Integer ruleId:ruleIdList) {
+                                WarningRule warningRule = warningRuleMapper.selectById(ruleId);
+                                if (Objects.isNull(warningRule)) {
+                                    break;
+                                }
+                                List<Member> memberList = impl.getWarningRuleMemberList(warningRule);
+                                if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(memberList)) {
+                                    break;
+                                }
+                                try {
+                                    WarningPush warningPush = new WarningPush();
+                                    warningPush.setCreateDate(new Date());
+                                    warningPush.setIsdeleted(Constants.ZERO);
+                                    warningPush.setWarningId(warning.getId());
+                                    warningPush.setTitle(warningConfig.getInfo());
+                                    String content = warningEvent.getContent();
+                                    warningPush.setContent(content);
+                                    warningPush.setStatus(Constants.ZERO);
+                                    warningPush.setPushType(Constants.ZERO);
+                                    //TODO 鏍规嵁鍏蜂綋鏁版嵁瀵规瘮鑾峰彇
+                                    warningPush.setRegion( "鏈煡浣嶇疆");
+                                    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(),content));
+                                    //            warningPush.setStatus(noticeFlag?Constants.ONE:Constants.TWO);
+                                    warningPushMapper.insert(warningPush);
+                                    falg = true;
+                                }catch (Exception e){
+                                    warningEvent.setStatus(Constants.TWO);
+                                    warningEventMapper.updateById(warningEvent);
+                                }
+                            }
+                        }
+                        if(falg){
+                            warningEvent.setStatus(Constants.ONE);
+                            warningEventMapper.updateById(warningEvent);
+                        }
+
+
+
+
+
+
+                    }
+
+
+
+
+                }
+
+            }
+            log.info("銆愭捣搴烽�氱敤浜嬩欢鎺ㄩ�併��========鎴愬姛=======");
+        }catch (Exception e){
+
+            log.error("銆愭捣搴烽�氱敤浜嬩欢鎺ㄩ�併��========澶辫触=======锛歕n"+e.getMessage());
+        }
+        saveInterfaceLog(param,"/business/hksync/push/notice",result,true);
         return  null;
 
     }
@@ -560,8 +687,11 @@
                     updateVistis.setOutInfo("璁垮姝e父绛剧");
                 }
                 delRetentionLis.add(visits.getMemberId());
-            }else{
-                //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垏鏄瀹㈤�氳锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
+            }else  if(!(request.getData().getParamValues()!=null
+                        && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos())
+                        && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex()))){
+                //鍙鐞嗚瀹㈤棬绂侀�氳閫氳锛�
+                //濡傛灉浜哄憳淇℃伅瀛樺湪锛屽垯鍒犻櫎涔嬪墠鐨勬墍鏈夎繘鍦烘暟鎹紙鏃犺姝ゆ鎺ㄩ�佹槸杩涘巶杩樻槸鍑哄満鎺ㄩ�佷簨浠讹級
                 delRetentionLis.add(visits.getMemberId());
                 InoutRecord record = new InoutRecord();
                 record.setDeviceName((request.getData()!=null &&request.getData().getParamValues()!=null)?
@@ -603,23 +733,23 @@
                 }
                 if( request.getData().getParamValues()!=null
                         && StringUtils.isNotBlank(request.getData().getParamValues().getPlateNos())
-                        && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())){
+                        && StringUtils.isNotBlank(request.getData().getParamValues().getParkIndex())) {
                     //濡傛灉鏄仠杞﹀満浜嬩欢锛岃褰曡溅杈嗙被鍨�
                     Category category = null;
                     record.setCarCode(request.getData().getParamValues().getPlateNos());
-                    if(StringUtils.isNotBlank(record.getCarCode())){
+                    if (StringUtils.isNotBlank(record.getCarCode())) {
                         category = categoryMapper.selectJoinOne(Category.class, new MPJLambdaWrapper<Category>()
                                 .selectAll(Category.class)
-                                .select("t4.name",Category::getParentName)
+                                .select("t4.name", Category::getParentName)
                                 .leftJoin("category t4 on t.parent_id=t4.id")
-                                .eq(Category::getIsdeleted,Constants.ZERO)
-                                .eq(Category::getBizType,Constants.RetentionCarType.fkCar)
+                                .eq(Category::getIsdeleted, Constants.ZERO)
+                                .eq(Category::getBizType, Constants.RetentionCarType.fkCar)
                                 .last("limit 1"));
-                        if(category ==null){
+                        if (category == null) {
                             category = new Category();
                             category.setName("璁垮杞﹁締");
                         }
-                        category.setParentName(StringUtils.defaultString(category.getParentName(),"璁垮杞﹁締"));
+                        category.setParentName(StringUtils.defaultString(category.getParentName(), "璁垮杞﹁締"));
                     }
                     record.setCarBizType(Constants.RetentionCarType.fkCar);
                     record.setCategoryId(category.getId());
@@ -627,17 +757,17 @@
                     record.setCategoryName(category.getName());
                     record.setCategoryParentId(category.getParentId());
                     record.setCategoryParentName(category.getParentName());
-                    if(Constants.equalsInteger(record.getInOrOut(),Constants.ONE)){
+                    if (Constants.equalsInteger(record.getInOrOut(), Constants.ONE)) {
                         record.setRemark("璁垮璺熼殢杞﹁締绂诲洯骞惰嚜鍔ㄧ绂�");
                         try {
                             //璁垮鐢宠鑷姩绛剧
                             visitsService.visitLevelForCarOut(visits);
-                        }catch (Exception e){
-                            log.error("璁垮璺熼殢杞﹁締鍑哄洯鑷姩绛剧澶辫触锛�==========="+e.getMessage());
+                        } catch (Exception e) {
+                            log.error("璁垮璺熼殢杞﹁締鍑哄洯鑷姩绛剧澶辫触锛�===========" + e.getMessage());
                         }
                     }
                 }
-                inoutRecordList.add(record);
+                inoutRecordList.add(record);//杩涘嚭璁板綍
             }
             updateVistis.setEditDate(new Date());
             //鏇存柊璁垮鏉ヨ鎴栬�呯绂绘椂闂翠俊鎭�
@@ -863,7 +993,9 @@
         String result = null;
         log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param));
         try {
-            if(param == null || param.getParams() == null || param.getParams().getEvents()==null){
+            if(param == null
+                    || param.getParams() == null
+                    || param.getParams().getEvents()==null){
                 return null;
             }
             //闂ㄧ浜嬩欢闆嗗悎
@@ -1079,9 +1211,9 @@
                     carrecord.setCategoryParentId(category.getParentId());
                 }
             }
-            //澶勭悊鑷湁杞﹁嚜鍔ㄧ鍒颁笟鍔�
-            dealSelTruckAutoSignBiz(request,event);
             if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
+                //澶勭悊鑷湁杞﹁嚜鍔ㄧ鍒颁笟鍔�
+                dealSelTruckAutoSignBiz(request,event);
                 //濡傛灉鏄叆鍘傛斁琛�
                 delRetentionList.add(event.getPlateNos());
                 Retention dm = new Retention();
@@ -1126,7 +1258,7 @@
                     carrecord.setCategoryParentName(StringUtils.defaultString(category.getParentName(),"璁垮杞﹁締"));
                     carrecord.setCategoryParentId(category.getParentId());
                     for(Visits v :visitsList){
-                        if(v.getEndtime()!=null && v.getEndtime().getTime() < System.currentTimeMillis()){
+//                        if(v.getEndtime()!=null && v.getEndtime().getTime() < System.currentTimeMillis()){
                             Retention dm = new Retention();
                             dm.setMemberId(event.getMemberId());
                             dm.setPhone(carrecord.getMemberPhone());
@@ -1163,7 +1295,7 @@
                                 inoutDayCount.setInVisitorNum(Constants.formatIntegerNum(inoutDayCount.getInVisitorNum())+1);
                             }
                         }
-                    }
+//                    }
                 }
             }
             if(isCarInOrOutEvent(request) && event.getCarType() !=null && !event.getCarType().equals(Constants.RetentionCarType.fkCar)){
@@ -1235,7 +1367,7 @@
         Category category  = new Category();
         category.setName(tempname);
         category.setParentName(pName);
-        return null;
+        return category;
     }
 
     private void dealSelTruckAutoSignBiz(EventParkInfoRequest request, CarEvent event) {
@@ -1259,8 +1391,10 @@
                         .in(PlatformJob::getStatus,
                                 Constants.PlatformJobStatus.IN_WAIT.getKey(),
                                 Constants.PlatformJobStatus.CALLED.getKey(),
+                                Constants.PlatformJobStatus.WAIT_CALL.getKey(),
                                 Constants.PlatformJobStatus.WORKING.getKey(),
                                 Constants.PlatformJobStatus.TRANSFERING.getKey(),
+                                Constants.PlatformJobStatus.OVER_NUMBER.getKey(),
                                 Constants.PlatformJobStatus.EXCEPTION.getKey()
                         )
                 )==Constants.ZERO){//濡傛灉娌¤繘琛屼腑浠诲姟
@@ -1710,46 +1844,46 @@
         return model;
     }
 
-    /**
-     * 璁板綍鏈堝彴浣滀笟鏃ュ織
-     * @param job
-     * @param status
-     */
-    @Transactional
-    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
-        platformJobMapper.updateById(job);//鏇存柊浣滀笟鐘舵��
-        PlatformLog log = new PlatformLog();
-        log.setIsdeleted(Constants.ZERO);
-        log.setCreateDate(new Date());
-        log.setEditDate(log.getCreateDate());
-        log.setJobId(job.getId());
-        log.setObjId(job.getId()+"");
-        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
-            //濡傛灉鏄綔涓氬畬鎴�
-            log.setObjType(Constants.PlatformJobLogType.DONE.getKey());
-            log.setTitle(Constants.PlatformJobLogType.DONE.getName());
-            log.setContent(Constants.PlatformJobLogType.DONE.getInfo());
-            //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
-            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
-                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
-                    .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
-                    .eq(PlatformLog::getJobId,job.getId())
-                    .orderByDesc(PlatformLog::getCreateDate)
-                    .last(" limit 1"));
-            String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
-            lastBeginPlatform.setRemark(job.getPlatformId().toString());
-            lastBeginPlatform.setParam3(v);
-            lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
-            platformLogMapper.updateById(lastBeginPlatform);//鏇存柊涓婁竴娆′綔涓氱殑瀹屾垚鏃堕棿鍜屼綔涓氭椂闀�
-        }else{
-            //濡傛灉鏄綔涓氫腑
-            log.setObjType(Constants.PlatformJobLogType.WORKING.getKey());
-            log.setTitle(Constants.PlatformJobLogType.WORKING.getName());
-            log.setContent(Constants.PlatformJobLogType.WORKING.getInfo());
-            log.setParam1(DateUtil.getDate(log.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
-        }
-        platformLogMapper.insert(log);
-    }
+//    /**
+//     * 璁板綍鏈堝彴浣滀笟鏃ュ織
+//     * @param job
+//     * @param status
+//     */
+//    @Transactional
+//    private void dealPlatformJobLogBiz(PlatformJob job,EventPlatformCarsStatusInfoRequest status) {
+//        platformJobMapper.updateById(job);//鏇存柊浣滀笟鐘舵��
+//        PlatformLog log = new PlatformLog();
+//        log.setIsdeleted(Constants.ZERO);
+//        log.setCreateDate(new Date());
+//        log.setEditDate(log.getCreateDate());
+//        log.setJobId(job.getId());
+//        log.setObjId(job.getId()+"");
+//        if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){
+//            //濡傛灉鏄綔涓氬畬鎴�
+//            log.setObjType(Constants.PlatformJobLogType.DONE.getKey());
+//            log.setTitle(Constants.PlatformJobLogType.DONE.getName());
+//            log.setContent(Constants.PlatformJobLogType.DONE.getInfo());
+//            //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+//            PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+//                    .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+//                    .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+//                    .eq(PlatformLog::getJobId,job.getId())
+//                    .orderByDesc(PlatformLog::getCreateDate)
+//                    .last(" limit 1"));
+//            String v = Long.toString(job.getDoneDate().getTime() - lastBeginPlatform.getCreateDate().getTime() / 1000) ;
+//            lastBeginPlatform.setRemark(job.getPlatformId().toString());
+//            lastBeginPlatform.setParam3(v);
+//            lastBeginPlatform.setParam2(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+//            platformLogMapper.updateById(lastBeginPlatform);//鏇存柊涓婁竴娆′綔涓氱殑瀹屾垚鏃堕棿鍜屼綔涓氭椂闀�
+//        }else{
+//            //濡傛灉鏄綔涓氫腑
+//            log.setObjType(Constants.PlatformJobLogType.WORKING.getKey());
+//            log.setTitle(Constants.PlatformJobLogType.WORKING.getName());
+//            log.setContent(Constants.PlatformJobLogType.WORKING.getInfo());
+//            log.setParam1(DateUtil.getDate(log.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+//        }
+//        platformLogMapper.insert(log);
+//    }
 
     /**
      * 澶勭悊杞﹁締杩涘叆閿欒鏈堝彴涓氬姟閫昏緫

--
Gitblit v1.9.3