修正移动端应急地图数据
This commit is contained in:
+4
-3
@@ -4,6 +4,7 @@ import com.renkang.emergency.api.RequestPrefix;
|
|||||||
import com.renkang.emergency.api.service.EmergencyResourceApiService;
|
import com.renkang.emergency.api.service.EmergencyResourceApiService;
|
||||||
import com.renkang.emergency.bean.response.ResourceHome;
|
import com.renkang.emergency.bean.response.ResourceHome;
|
||||||
import com.renkang.emergency.entity.EmergencyResourceDO;
|
import com.renkang.emergency.entity.EmergencyResourceDO;
|
||||||
|
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@@ -33,9 +34,9 @@ public class EmergencyResourceApiController {
|
|||||||
* @return result
|
* @return result
|
||||||
*/
|
*/
|
||||||
@GetMapping("/home")
|
@GetMapping("/home")
|
||||||
public Result<ResourceHome> home(@RequestParam(required = false) String type,
|
public Result<List<LargeScreenMap>> home(@RequestParam(required = false) String type,
|
||||||
@RequestParam(required = false) Double longitude,
|
@RequestParam(required = false) Double longitude,
|
||||||
@RequestParam(required = false) Double latitude) {
|
@RequestParam(required = false) Double latitude) {
|
||||||
return Result.ok(emergencyResourceApiService.listResourceByType(type, longitude, latitude));
|
return Result.ok(emergencyResourceApiService.listResourceByType(type, longitude, latitude));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -2,6 +2,7 @@ package com.renkang.emergency.api.service;
|
|||||||
|
|
||||||
import com.renkang.emergency.bean.response.ResourceHome;
|
import com.renkang.emergency.bean.response.ResourceHome;
|
||||||
import com.renkang.emergency.entity.EmergencyResourceDO;
|
import com.renkang.emergency.entity.EmergencyResourceDO;
|
||||||
|
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||||
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.api.vo.Result;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -11,7 +12,7 @@ import java.util.List;
|
|||||||
* @date 2023-04-25 13:07
|
* @date 2023-04-25 13:07
|
||||||
*/
|
*/
|
||||||
public interface EmergencyResourceApiService {
|
public interface EmergencyResourceApiService {
|
||||||
ResourceHome listResourceByType(String type, Double longitude, Double latitude);
|
List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude);
|
||||||
|
|
||||||
String sessionNow(String userId);
|
String sessionNow(String userId);
|
||||||
|
|
||||||
|
|||||||
+31
-134
@@ -9,6 +9,7 @@ import com.renkang.emergency.bean.common.ResourceExt;
|
|||||||
import com.renkang.emergency.bean.response.ResourceHome;
|
import com.renkang.emergency.bean.response.ResourceHome;
|
||||||
import com.renkang.emergency.constant.EmergencyConstants;
|
import com.renkang.emergency.constant.EmergencyConstants;
|
||||||
import com.renkang.emergency.entity.*;
|
import com.renkang.emergency.entity.*;
|
||||||
|
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||||
import com.renkang.emergency.manager.EmergencyCloudManager;
|
import com.renkang.emergency.manager.EmergencyCloudManager;
|
||||||
import com.renkang.emergency.manager.ResourceManager;
|
import com.renkang.emergency.manager.ResourceManager;
|
||||||
import com.renkang.emergency.mapper.OrderMapper;
|
import com.renkang.emergency.mapper.OrderMapper;
|
||||||
@@ -22,6 +23,7 @@ import org.jeecg.common.api.vo.Result;
|
|||||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
import org.jeecg.common.system.api.ISysBaseAPI;
|
||||||
import org.jeecg.common.system.vo.DictModel;
|
import org.jeecg.common.system.vo.DictModel;
|
||||||
import org.jeecg.global.GlobalUtils;
|
import org.jeecg.global.GlobalUtils;
|
||||||
|
import org.jeecg.util.TypeConversionUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.geo.Point;
|
import org.springframework.data.geo.Point;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -39,101 +41,52 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
@Service("emergencyResourceApiService")
|
@Service("emergencyResourceApiService")
|
||||||
public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiService {
|
public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiService {
|
||||||
@Autowired
|
|
||||||
private EmergencyCloudManager emergencyCloudManager;
|
|
||||||
@Autowired
|
|
||||||
private ResourceManager resourceManager;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderMapper orderMapper;
|
private OrderMapper orderMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ResourceMapper resourceMapper;
|
private ResourceMapper resourceMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IEmergencyHealthRoomService roomService;
|
|
||||||
@Autowired
|
|
||||||
private IXjAedService xjAedService;
|
private IXjAedService xjAedService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysBaseAPI sysBaseAPI;
|
private ISysBaseAPI sysBaseAPI;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceHome listResourceByType(String type, Double longitude, Double latitude) {
|
public List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude) {
|
||||||
if (StrUtil.isBlank(type)) {
|
|
||||||
type = EmergencyConstants.RESOURCE_ALL;
|
List<LargeScreenMap> maps = new ArrayList<>();
|
||||||
|
if (StrUtil.isEmpty(type) || type.equals("1")) {
|
||||||
|
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
|
||||||
|
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
|
||||||
|
.eq(StrUtil.isEmpty(type), Resource::getType, "1"));
|
||||||
|
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isEmpty(type) || type.equals("3")) {
|
||||||
ResourceHome home = new ResourceHome();
|
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
|
||||||
// 是否有正在进行的会话
|
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
|
||||||
String sessionId = sessionNow(null);
|
.eq(StrUtil.isEmpty(type), Resource::getType, "3"));
|
||||||
if (StrUtil.isNotBlank(sessionId)) {
|
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||||
home.setSessionId(sessionId);
|
|
||||||
// 前端页面返回需要数据 继续查数据
|
|
||||||
//return home;
|
|
||||||
}
|
}
|
||||||
|
if (StrUtil.isEmpty(type) || type.equals("4")){
|
||||||
// 字典数据
|
List<XjAed> list = xjAedService.list(new LambdaQueryWrapper<XjAed>().isNotNull(XjAed::getLatitude));
|
||||||
List<DictModel> dictItems = emergencyCloudManager.getDictItems(EmergencyConstants.EMERGENCY_RESOURCE_TYPE_DICT);
|
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||||
// home.setDicts(dictItems);
|
}
|
||||||
// if ("4".equals(type)) {
|
if (StrUtil.isEmpty(type) || type.equals("5")) {
|
||||||
// List<XjAed> list = xjAedService.list();
|
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
|
||||||
// List<ResourceExt> extList = new ArrayList<>();
|
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
|
||||||
// for (XjAed xjAed : list) {
|
.eq(StrUtil.isEmpty(type), Resource::getType, "5"));
|
||||||
// ResourceExt ext = new ResourceExt();
|
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||||
// BeanUtil.copyProperties(xjAed, ext);
|
}
|
||||||
// ext.setName(xjAed.getName());
|
for (LargeScreenMap map : maps) {
|
||||||
// ext.setAddress(xjAed.getAddress());
|
if (StrUtil.isNotEmpty(map.getLongitude()) && StrUtil.isNotEmpty(map.getLatitude())) {
|
||||||
// ext.setLatitude(xjAed.getLatitude());
|
|
||||||
// ext.setLongitude(xjAed.getLongitude());
|
|
||||||
// extList.add(ext);
|
|
||||||
// }
|
|
||||||
// home.setResources(extList);
|
|
||||||
// } else {
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
if (ObjectUtils.isEmpty(longitude) || ObjectUtils.isEmpty(latitude)) {
|
|
||||||
if (!"3".equals(type)) {
|
|
||||||
home.setDicts(dictItems);
|
|
||||||
|
|
||||||
List<ResourceExt> list = this.listResource(type);
|
|
||||||
|
|
||||||
List<ResourceExt> resources = new ArrayList<>();
|
|
||||||
if ("0".equals(type)) {
|
|
||||||
resources = this.selectResourceByLongitudeLatitude(null, null, null);
|
|
||||||
}
|
|
||||||
list.addAll(resources);
|
|
||||||
home.setResources(list);
|
|
||||||
return home;
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
if (!"3".equals(type)) {
|
|
||||||
// 资源数据
|
|
||||||
Point point = new Point(longitude, latitude);
|
Point point = new Point(longitude, latitude);
|
||||||
List<ResourceExt> resources = resourceManager.geoSearch(point, 100000, type);
|
Point geoPoint = new Point(TypeConversionUtil.toDoubleOfNull(
|
||||||
List<ResourceExt> resourcesLL = new ArrayList<>();
|
map.getLongitude()), TypeConversionUtil.toDoubleOfNull(map.getLatitude()));
|
||||||
if ("0".equals(type)) {
|
map.setDistance(ResourceUtils.geoDistance(point, geoPoint));
|
||||||
resourcesLL = this.selectResourceByLongitudeLatitude(100000D, longitude, latitude);
|
|
||||||
}
|
|
||||||
resources.addAll(resourcesLL);
|
|
||||||
home.setDicts(dictItems);
|
|
||||||
home.setResources(resources);
|
|
||||||
return home;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
List<EmergencyHealthRoom> list = roomService.list();
|
|
||||||
List<ResourceExt> resources = new ArrayList<>();
|
|
||||||
for (EmergencyHealthRoom emergencyHealthRoom : list) {
|
|
||||||
ResourceExt ext = new ResourceExt();
|
|
||||||
ext.setId(emergencyHealthRoom.getId());
|
|
||||||
ext.setName(emergencyHealthRoom.getName());
|
|
||||||
ext.setAddress(emergencyHealthRoom.getOrgName());
|
|
||||||
ext.setLatitude(new BigDecimal(emergencyHealthRoom.getLatitude()));
|
|
||||||
ext.setLongitude(new BigDecimal(emergencyHealthRoom.getLongitude()));
|
|
||||||
ext.setType("3");
|
|
||||||
resources.add(ext);
|
|
||||||
}
|
}
|
||||||
home.setDicts(dictItems);
|
return maps;
|
||||||
home.setResources(resources);
|
|
||||||
return home;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -184,60 +137,4 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
|
|||||||
}
|
}
|
||||||
return orders.get(0);
|
return orders.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<ResourceExt> listResource(String type) {
|
|
||||||
|
|
||||||
if ("3".equals(type)) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
LambdaQueryWrapper<Resource> queryWrapper = GlobalUtils.getLambdaQueryWrapper();
|
|
||||||
if (!EmergencyConstants.RESOURCE_ALL.equals(type)) {
|
|
||||||
queryWrapper.eq(Resource::getType, type);
|
|
||||||
queryWrapper.ne(Resource::getType, "3");
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Resource> resources = resourceMapper.selectList(queryWrapper);
|
|
||||||
|
|
||||||
List<ResourceExt> result = new ArrayList<>();
|
|
||||||
if (CollectionUtils.isNotEmpty(resources)) {
|
|
||||||
for (Resource resource : resources) {
|
|
||||||
ResourceExt resourceExt = new ResourceExt();
|
|
||||||
BeanUtil.copyProperties(resource, resourceExt);
|
|
||||||
result.add(resourceExt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public List<ResourceExt> selectResourceByLongitudeLatitude(Double distance, Double longitude, Double latitude) {
|
|
||||||
List<ResourceExt> resourceExtList = new ArrayList<>();
|
|
||||||
/* Point point = new Point(longitude, latitude);
|
|
||||||
List<MedicalResource> list = medicalCenterApi.selectResourceByLongitudeLatitude(distance, longitude, latitude).getResult();
|
|
||||||
|
|
||||||
for (MedicalResource medicalResource : list) {
|
|
||||||
|
|
||||||
ResourceExt resourceExt = convertToResourcesExt(medicalResource);
|
|
||||||
Point geoPoint = new Point(medicalResource.getLongitude().doubleValue(), medicalResource.getLatitude().doubleValue());
|
|
||||||
resourceExt.setType("3");
|
|
||||||
resourceExt.setDistance(ResourceUtils.geoDistance(point, geoPoint));
|
|
||||||
resourceExtList.add(resourceExt);
|
|
||||||
}*/
|
|
||||||
return resourceExtList;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* private static ResourceExt convertToResourcesExt(MedicalResource resource) {
|
|
||||||
if (Objects.isNull(resource)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
ResourceExt resourceExt = new ResourceExt();
|
|
||||||
BeanUtil.copyProperties(resource, resourceExt);
|
|
||||||
return resourceExt;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -31,6 +31,8 @@ public class LargeScreenMap {
|
|||||||
|
|
||||||
private String managePhone;
|
private String managePhone;
|
||||||
|
|
||||||
|
private double distance;
|
||||||
|
|
||||||
public LargeScreenMap() {}
|
public LargeScreenMap() {}
|
||||||
|
|
||||||
public LargeScreenMap(Resource resource) {
|
public LargeScreenMap(Resource resource) {
|
||||||
@@ -42,6 +44,7 @@ public class LargeScreenMap {
|
|||||||
this.longitude = String.valueOf(resource.getLongitude());
|
this.longitude = String.valueOf(resource.getLongitude());
|
||||||
this.jobNum = resource.getJobNum();
|
this.jobNum = resource.getJobNum();
|
||||||
this.runTime = resource.getRunTime();
|
this.runTime = resource.getRunTime();
|
||||||
|
this.address = resource.getAddress();
|
||||||
}
|
}
|
||||||
|
|
||||||
public LargeScreenMap(EmergencyHealthRoom room) {
|
public LargeScreenMap(EmergencyHealthRoom room) {
|
||||||
|
|||||||
+2
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
import com.renkang.emergency.archives.model.vo.YearsStatistic;
|
import com.renkang.emergency.archives.model.vo.YearsStatistic;
|
||||||
import com.renkang.emergency.entity.EmergencyResourceDO;
|
import com.renkang.emergency.entity.EmergencyResourceDO;
|
||||||
import com.renkang.emergency.entity.Resource;
|
import com.renkang.emergency.entity.Resource;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@@ -15,6 +16,7 @@ import java.util.List;
|
|||||||
* @Date: 2023-04-24
|
* @Date: 2023-04-24
|
||||||
* @Version: V1.0
|
* @Version: V1.0
|
||||||
*/
|
*/
|
||||||
|
@Mapper
|
||||||
public interface ResourceMapper extends BaseMapper<Resource> {
|
public interface ResourceMapper extends BaseMapper<Resource> {
|
||||||
|
|
||||||
List<String> selectHospitalList();
|
List<String> selectHospitalList();
|
||||||
|
|||||||
Reference in New Issue
Block a user