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