src/main/java/org/springblade/modules/directive/mapper/DirectiveMapper.xml
@@ -12,7 +12,7 @@ left join blade_user bu on bu.id = sd.user_id bu.id = sd.send_directive_id where 1=1 <if test="directive.type!=null and directive.type!=''"> src/main/java/org/springblade/modules/location/controller/LiveLocationController.java
@@ -64,24 +64,26 @@ @ApiOperation(value = "新增", notes = "传入liveLocation") public R saveLiveLocationAndLocus(@RequestBody LiveLocation liveLocation) { //先查询是否已有实时位置信息,如果有,则更新,没有则插入 LiveLocationVo liveLocationVo = liveLocationService.selectLiveLocationInfo(liveLocation); LiveLocation liveLocationInfo = liveLocationService.getLiveLocationInfo(liveLocation); boolean status = false; if (null == liveLocationVo){ if (null == liveLocationInfo.getId()){ //新增 liveLocation.setRecordTime(new Date()); status = liveLocationService.save(liveLocation); }else { //更新 liveLocationVo.setRecordTime(new Date()); status = liveLocationService.updateById(liveLocationVo); liveLocationInfo.setRecordTime(new Date()); liveLocationInfo.setLongitude(liveLocation.getLongitude()); liveLocationInfo.setLatitude(liveLocation.getLatitude()); status = liveLocationService.updateById(liveLocationInfo); } if (status){ //新增轨迹 Locus locus = new Locus(); //封装数据 if (null!=liveLocationVo){ locus.setLiveLocationId(liveLocationVo.getId()); if (null!=liveLocationInfo.getId()){ locus.setLiveLocationId(liveLocationInfo.getId()); }else { locus.setLiveLocationId(liveLocation.getId()); } src/main/java/org/springblade/modules/location/mapper/LiveLocationMapper.java
@@ -37,4 +37,11 @@ * @return */ List<LocusVo> getLocusInfoList(@Param("liveLocation") LiveLocationVo liveLocationVo); /** * 获取实时位置信息 * @param liveLocation * @return */ LiveLocation getLiveLocationInfo(@Param("liveLocation") LiveLocation liveLocation); } src/main/java/org/springblade/modules/location/mapper/LiveLocationMapper.xml
@@ -34,6 +34,23 @@ </if> </select> <!--获取实时位置信息--> <select id="getLiveLocationInfo" resultType="org.springblade.modules.location.entity.LiveLocation"> SELECT * FROM sys_live_location WHERE 1=1 <if test="liveLocation.type!=null"> and type = #{liveLocation.type} </if> <if test="liveLocation.workerId!=null and liveLocation.workerId!=''"> and worker_id = #{liveLocation.workerId} </if> </select> <!--获取轨迹数据--> <select id="getLocusInfoList" resultType="org.springblade.modules.location.vo.LocusVo"> select src/main/java/org/springblade/modules/location/service/LiveLocationService.java
@@ -41,4 +41,11 @@ * @return */ List<LiveLocationVo> getLiveLocationVoList(LiveLocationVo liveLocationVo); /** * 获取实时位置信息 * @param liveLocation * @return */ LiveLocation getLiveLocationInfo(LiveLocation liveLocation); } src/main/java/org/springblade/modules/location/service/impl/LiveLocationServiceImpl.java
@@ -58,4 +58,14 @@ public List<LiveLocationVo> getLiveLocationVoList(LiveLocationVo liveLocationVo) { return baseMapper.selectLiveLocationPage(null,liveLocationVo); } /** * 获取实时位置信息 * @param liveLocation * @return */ @Override public LiveLocation getLiveLocationInfo(LiveLocation liveLocation) { return baseMapper.getLiveLocationInfo(liveLocation); } }