From 6d6f2463bc1d50e236e270d834431e775b2b5ee5 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期一, 07 六月 2021 20:03:36 +0800 Subject: [PATCH] 网格综治管理定时任务 --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java | 67 +++++++++++++++++++++++++++++---- 1 files changed, 59 insertions(+), 8 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java index 2d8259e..626a6d0 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java @@ -8,6 +8,9 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogDetailsVO; import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO; +import com.panzhihua.common.model.vos.grid.LatLngVO; +import com.panzhihua.common.utlis.LngLatUtils; +import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_grid.dao.*; import com.panzhihua.service_grid.model.dos.*; import com.panzhihua.service_grid.service.EventGridMemberWarnLogService; @@ -34,6 +37,8 @@ private EventGridMemberGpsLogMapper eventGridMemberGpsLogMapper; @Resource private EventGridDataMapper eventGridDataMapper; + @Resource + private EventGridMemberRelationMapper eventGridMemberRelationMapper; /** * 新增网格员定时上报地理预警记录 * @param eventGridMemberWarnLogAddDTO @@ -131,20 +136,66 @@ List<EventGridMemberGpsLogDO> memberGpsLogDOS = eventGridMemberGpsLogMapper.selectList(new QueryWrapper<EventGridMemberGpsLogDO>() .lambda().eq(EventGridMemberGpsLogDO::getPositionStation,EventGridMemberGpsLogDO.positionStation.no)); if(!memberGpsLogDOS.isEmpty()){ - memberGpsLogDOS.forEach(memberGpsLog -> { //取出经纬度信息 + if(StringUtils.isNotEmpty(memberGpsLog.getLngLat())){ + String []lngLat = memberGpsLog.getLngLat().split(","); + Double lat = Double.valueOf(lngLat[0]); + Double lng = Double.valueOf(lngLat[1]); + //遍历所有网格信息匹配网格员的坐标点是否在网格内 + Boolean isOk = true; + for (EventGridDataDO gridData:gridDataDOList) { + if(StringUtils.isNotEmpty(gridData.getData())){ + List<LatLngVO> latLngList = LngLatUtils.getLatLngFromText(gridData.getData()); + if(LngLatUtils.isInPolygon(latLngList,lng,lat)){//匹配通过 + isOk = false; + memberGpsLog.setGridId(gridData.getId()); + memberGpsLog.setGridCommunityId(gridData.getGridCommunityId()); + memberGpsLog.setGridStreetId(gridData.getGridStreetId()); + memberGpsLog.setGridName(gridData.getGridName()); + Integer workStatus = 0; + //判断当前网格员与此网格是否有关系 + Integer count = eventGridMemberRelationMapper.selectCount(new QueryWrapper<EventGridMemberRelationDO>() + .lambda().eq(EventGridMemberRelationDO::getGridMemberId,memberGpsLog.getGridMemberId()) + .eq(EventGridMemberRelationDO::getGridId,memberGpsLog.getGridId())); + if(count > 0){ + //有关系说明此网格员未脱岗 + memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal); + workStatus = 1; + }else{ + //没关系说明此网格员脱岗了,需要添加预警信息 + memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal); + workStatus = 2; - - + //新增网格员预警信息 + EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO(); + BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO); + memberWarnLogDO.setId(null); + memberWarnLogDO.setContent("工作时间未在网格内预警"); + memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt()); + this.baseMapper.insert(memberWarnLogDO); + } + eventGridMemberGpsLogMapper.updateById(memberGpsLog); + //修改用户工作状态 + this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus); + break; + } + } + } + //判断这个网格员的点是否能匹配上所有的网格 + if(isOk){ + //新增网格员预警信息 + EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO(); + BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO); + memberWarnLogDO.setId(null); + memberWarnLogDO.setContent("工作时间未在网格内预警"); + memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt()); + this.baseMapper.insert(memberWarnLogDO); + } + } }); } - - - - - return R.ok(); } -- Gitblit v1.7.1