| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | private PlatformLogMapper platformLogMapper; |
| | | @Autowired |
| | | private PlatformWarnEventServiceImpl platformWarnEventService; |
| | | @Autowired |
| | | private WarningMapper warningMapper; |
| | | @Autowired |
| | | private WarningEventMapper warningEventMapper; |
| | | @Autowired |
| | | private WarningRuleMapper warningRuleMapper; |
| | | @Autowired |
| | | private WarningPushMapper warningPushMapper; |
| | | |
| | | |
| | | |
| | |
| | | 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()); |
| | |
| | | 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; |
| | | |
| | | } |
| | |
| | | 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); |
| | | // } |
| | | |
| | | /** |
| | | * 处理车辆进入错误月台业务逻辑 |