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