huanghongfa
2021-07-16 fa9e0faaafba50402d3d3a3e0bc1a4c8f6321dce
修改bug
3个文件已修改
68 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java
@@ -84,6 +84,7 @@
        }
        if(StringUtils.isNotEmpty(userInfoAppDTO.getNickName())){
            loginUserInfo.setNickName(userInfoAppDTO.getNickName());
            loginUserInfo.setName(userInfoAppDTO.getNickName());
            loginUserInfo.setImageUrl(null);
        }
        return userService.putUser(loginUserInfo);
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);
                    }
                }
            });
springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
@@ -892,7 +892,7 @@
    </select>
    <select id="getUserBaseInfo" parameterType="java.lang.Long" resultType="java.util.Map">
        select name,image_url from sys_user where user_id = #{gridMemberId}
        select nick_name,image_url from sys_user where user_id = #{gridMemberId}
    </select>
    <select id="getScreenEventList" parameterType="com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO"