From fa9e0faaafba50402d3d3a3e0bc1a4c8f6321dce Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期五, 16 七月 2021 14:20:37 +0800 Subject: [PATCH] 修改bug --- springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java | 65 +++++++++++--------------------- 1 files changed, 22 insertions(+), 43 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 2f57abc..5fa8f5e 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 @@ -136,68 +136,43 @@ List<EventGridMemberGpsLogDO> memberGpsLogDOS = eventGridMemberGpsLogMapper.selectList(new QueryWrapper<EventGridMemberGpsLogDO>() .lambda().eq(EventGridMemberGpsLogDO::getPositionStation,EventGridMemberGpsLogDO.positionStation.no)); if(!memberGpsLogDOS.isEmpty()){ - memberGpsLogDOS.forEach(memberGpsLog -> { - //取出经纬度信息 + 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; + + Integer workStatus = 2; + 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; + if(LngLatUtils.isInPolygon(latLngList,lng,lat)) {//匹配通过 //判断当前网格员与此网格是否有关系 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); + isOk = false; 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); + memberGpsLog.setGridId(gridData.getId()); + memberGpsLog.setGridCommunityId(gridData.getGridCommunityId()); + memberGpsLog.setGridStreetId(gridData.getGridStreetId()); + memberGpsLog.setGridName(gridData.getGridName()); + memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal); + eventGridMemberGpsLogMapper.updateById(memberGpsLog); + //修改用户工作状态 + this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus); + break; } - eventGridMemberGpsLogMapper.updateById(memberGpsLog); - //修改用户工作状态 - this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus); - }else{ - memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal); - - //新增网格员预警信息 - 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(),2); } } } - //判断这个网格员的点是否能匹配上所有的网格 - if(isOk){ + if(isOk){//此网格员脱岗 + memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal); + workStatus = 2; //新增网格员预警信息 EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO(); BeanUtils.copyProperties(memberGpsLog,memberWarnLogDO); @@ -205,6 +180,10 @@ memberWarnLogDO.setContent("工作时间未在网格内预警"); memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt()); this.baseMapper.insert(memberWarnLogDO); + + eventGridMemberGpsLogMapper.updateById(memberGpsLog); + //修改用户工作状态 + this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(),workStatus); } } }); -- Gitblit v1.7.1