From f1afc9dd47bc8e9d4d2c86a5bbd099ee0d7824f2 Mon Sep 17 00:00:00 2001
From: CeDo <cedoogle@gmail.com>
Date: 星期一, 07 六月 2021 20:14:00 +0800
Subject: [PATCH] Merge branch 'test_future_wangge' into test

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java                 |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java                  |    9 +++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java               |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java              |    9 +++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java                                          |    8 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java          |    6 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml                                   |    4 +
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java             |    4 +
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java                          |   29 +++++++++
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java                                   |    7 ++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java |   91 ++++++++++++++++++++++++++++++
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml                                          |    2 
 12 files changed, 172 insertions(+), 1 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
index 5161fbc..75673f0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
@@ -23,7 +23,7 @@
 public class CommonEventDirectReportDTO {
 
     @Max(9223372036854775807L)
-    @ApiModelProperty(value = "事件ID", hidden = false, example = "1",required = true)
+    @ApiModelProperty(value = "事件ID", hidden = false, example = "1")
     private Long eventId;
 
     @Length(max=255)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
index 2e8c650..3848f97 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -885,4 +885,11 @@
      */
     @PostMapping("/event/reportDirect")
     R reportDirect(@RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO);
+
+    /**
+     * 定时任务扫描网格员工作状态
+     * @return  定时任务扫描结果
+     */
+    @PostMapping("/eventgridmemberwarnlog/judge")
+    R timedTaskGridMember();
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
index 98b013a..8e7611a 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
@@ -27,6 +27,13 @@
         return peneralPath.contains(_point);
     }
 
+    /**
+     *
+     * @param bound 经纬度数组
+     * @param pointlng  短
+     * @param pointLat  长
+     * @return
+     */
     public static  boolean isInPolygon(List<LatLngVO> bound, double pointlng, double pointLat)
     {
         Point2D.Double point = new Point2D.Double(pointlng, pointLat);
@@ -59,6 +66,7 @@
     public static void main(String[] args) {
         String latLngTxt = "[[104.065958,30.662621],[104.06419,30.663172],[104.06315,30.660648],[104.065548,30.661036]]";
         List<LatLngVO> latLngList = getLatLngFromText(latLngTxt);
+
         System.out.println(isInPolygon(latLngList, 104.0612, 30.6608));
     }
 
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java
index 73f8f6b..83bfe68 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java
@@ -80,4 +80,13 @@
         return eventGridMemberWarnLogService.eventGridMemberWarnLogDetails(id);
     };
 
+    /**
+     * 定时任务扫描网格员工作状态
+     * @return  定时任务扫描结果
+     */
+    @PostMapping("/judge")
+    public R timedTaskGridMember(){
+        return eventGridMemberWarnLogService.timedTaskGridMember();
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java
index 3a24bb4..8b59f0b 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java
@@ -38,4 +38,6 @@
      */
     IPage<EventGridMemberWarnLogAdminVO> gridMemberWorkWarning(Page page, @Param("gridMemberWainDTO") EventGridMemberWainDTO gridMemberWainDTO);
 
+    void setUserWorkStatus(@Param("userId") Long userId,@Param("workStatus") Integer workStatus);
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java
index 5fa566d..0d75046 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java
@@ -70,4 +70,13 @@
      * 定位地址信息   列:position_address
      */
     private String positionAddress;
+
+    /**
+     * 位置信息状态(1、为判定2、正常3、是不正常)
+     */
+    public interface positionStation{
+        int no = 1;
+        int normal = 2;
+        int abnormal = 3;
+    }
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java
index dc58749..0716f2d 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java
@@ -70,4 +70,8 @@
      * 定位地址信息   列:position_address
      */
     private String positionAddress;
+    /**
+     * 发生时间     列:happen_at
+     */
+    private Date happenAt;
 }
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java
index 32db760..bf30fb9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java
@@ -60,5 +60,11 @@
      */
     R gridMemberWorkWarning(EventGridMemberWainDTO gridMemberWainDTO);
 
+    /**
+     * 定时任务扫描网格员工作状态
+     * @return  定时任务扫描结果
+     */
+    R timedTaskGridMember();
+
 
 }
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 80cc345..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
@@ -1,5 +1,6 @@
 package com.panzhihua.service_grid.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -7,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;
@@ -16,6 +20,7 @@
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @auther lyq
@@ -28,6 +33,12 @@
 
     @Resource
     private EventGridMemberWarnLogMapper eventGridMemberWarnLogMapper;
+    @Resource
+    private EventGridMemberGpsLogMapper eventGridMemberGpsLogMapper;
+    @Resource
+    private EventGridDataMapper eventGridDataMapper;
+    @Resource
+    private EventGridMemberRelationMapper eventGridMemberRelationMapper;
     /**
      * 新增网格员定时上报地理预警记录
      * @param eventGridMemberWarnLogAddDTO
@@ -108,4 +119,84 @@
         return R.ok(this.baseMapper.gridMemberWorkWarning(new Page(gridMemberWainDTO.getPageNum(),gridMemberWainDTO.getPageSize()),gridMemberWainDTO));
     }
 
+    /**
+     * 定时任务扫描网格员工作状态
+     * @return  定时任务扫描结果
+     */
+    @Override
+    public R timedTaskGridMember(){
+
+        //查询所有网格数据
+        List<EventGridDataDO> gridDataDOList = eventGridDataMapper.selectList(new QueryWrapper<EventGridDataDO>()
+                .lambda().eq(EventGridDataDO::getType,EventGridDataDO.type.sq));
+        if(gridDataDOList.isEmpty()){
+            return R.fail("未查询到网格数据");
+        }
+
+        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();
+    }
+
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml
index 76843ba..7adbe62 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml
@@ -48,6 +48,7 @@
 		caep.is_publicity,
 		caep.photo_path_list,
 		caep.happen_addr,
+		caep.addr_remark,
 		caep.handle_status,
 		caep.is_report
 		FROM
@@ -83,6 +84,7 @@
 		caep.is_publicity,
 		caep.photo_path_list,
 		caep.happen_addr,
+		caep.addr_remark,
 		caep.handle_status,
 		caep.handle_result,
 		caep.handle_photo_list,
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml
index cf83545..bff5c05 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml
@@ -83,4 +83,8 @@
 		</if>
 	</select>
 
+	<update id="setUserWorkStatus">
+		update sys_user set work_status = #{workStatus} where user_id = #{userId}
+	</update>
+
 </mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java
new file mode 100644
index 0000000..b92764d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java
@@ -0,0 +1,29 @@
+package com.panzhihua.timejob.jobhandler;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.grid.GridService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * 综治管理定时任务
+ */
+@Slf4j
+@Component
+public class GridMemberJobHandler {
+
+    @Resource
+    private GridService gridService;
+
+    @XxlJob("timedTaskGridMemberJobHandler")
+    public ReturnT<String> timedTaskGridMemberJobHandler(String param) throws Exception {
+        log.info("定时任务判断网格员是否在岗开始");
+        R r=gridService.timedTaskGridMember();
+        log.info("执行结果【{}】",r.toString());
+        return ReturnT.SUCCESS;
+    }
+}

--
Gitblit v1.7.1