修正移动端应急地图数据
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.bean.response.ResourceHome;
|
||||
import com.renkang.emergency.entity.EmergencyResourceDO;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -33,9 +34,9 @@ public class EmergencyResourceApiController {
|
||||
* @return result
|
||||
*/
|
||||
@GetMapping("/home")
|
||||
public Result<ResourceHome> home(@RequestParam(required = false) String type,
|
||||
@RequestParam(required = false) Double longitude,
|
||||
@RequestParam(required = false) Double latitude) {
|
||||
public Result<List<LargeScreenMap>> home(@RequestParam(required = false) String type,
|
||||
@RequestParam(required = false) Double longitude,
|
||||
@RequestParam(required = false) Double 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.entity.EmergencyResourceDO;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
|
||||
import java.util.List;
|
||||
@@ -11,7 +12,7 @@ import java.util.List;
|
||||
* @date 2023-04-25 13:07
|
||||
*/
|
||||
public interface EmergencyResourceApiService {
|
||||
ResourceHome listResourceByType(String type, Double longitude, Double latitude);
|
||||
List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude);
|
||||
|
||||
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.constant.EmergencyConstants;
|
||||
import com.renkang.emergency.entity.*;
|
||||
import com.renkang.emergency.largeScreen.entity.vo.LargeScreenMap;
|
||||
import com.renkang.emergency.manager.EmergencyCloudManager;
|
||||
import com.renkang.emergency.manager.ResourceManager;
|
||||
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.vo.DictModel;
|
||||
import org.jeecg.global.GlobalUtils;
|
||||
import org.jeecg.util.TypeConversionUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.geo.Point;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -39,101 +41,52 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service("emergencyResourceApiService")
|
||||
public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiService {
|
||||
@Autowired
|
||||
private EmergencyCloudManager emergencyCloudManager;
|
||||
@Autowired
|
||||
private ResourceManager resourceManager;
|
||||
@Autowired
|
||||
private OrderMapper orderMapper;
|
||||
@Autowired
|
||||
private ResourceMapper resourceMapper;
|
||||
@Autowired
|
||||
private IEmergencyHealthRoomService roomService;
|
||||
@Autowired
|
||||
private IXjAedService xjAedService;
|
||||
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
@Override
|
||||
public ResourceHome listResourceByType(String type, Double longitude, Double latitude) {
|
||||
if (StrUtil.isBlank(type)) {
|
||||
type = EmergencyConstants.RESOURCE_ALL;
|
||||
public List<LargeScreenMap> listResourceByType(String type, Double longitude, Double latitude) {
|
||||
|
||||
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()));
|
||||
}
|
||||
|
||||
ResourceHome home = new ResourceHome();
|
||||
// 是否有正在进行的会话
|
||||
String sessionId = sessionNow(null);
|
||||
if (StrUtil.isNotBlank(sessionId)) {
|
||||
home.setSessionId(sessionId);
|
||||
// 前端页面返回需要数据 继续查数据
|
||||
//return home;
|
||||
if (StrUtil.isEmpty(type) || type.equals("3")) {
|
||||
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
|
||||
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
|
||||
.eq(StrUtil.isEmpty(type), Resource::getType, "3"));
|
||||
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
// 字典数据
|
||||
List<DictModel> dictItems = emergencyCloudManager.getDictItems(EmergencyConstants.EMERGENCY_RESOURCE_TYPE_DICT);
|
||||
// home.setDicts(dictItems);
|
||||
// if ("4".equals(type)) {
|
||||
// List<XjAed> list = xjAedService.list();
|
||||
// List<ResourceExt> extList = new ArrayList<>();
|
||||
// for (XjAed xjAed : list) {
|
||||
// ResourceExt ext = new ResourceExt();
|
||||
// BeanUtil.copyProperties(xjAed, ext);
|
||||
// ext.setName(xjAed.getName());
|
||||
// ext.setAddress(xjAed.getAddress());
|
||||
// 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)) {
|
||||
// 资源数据
|
||||
if (StrUtil.isEmpty(type) || type.equals("4")){
|
||||
List<XjAed> list = xjAedService.list(new LambdaQueryWrapper<XjAed>().isNotNull(XjAed::getLatitude));
|
||||
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||
}
|
||||
if (StrUtil.isEmpty(type) || type.equals("5")) {
|
||||
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
|
||||
.eq(StrUtil.isNotEmpty(type), Resource::getType, type)
|
||||
.eq(StrUtil.isEmpty(type), Resource::getType, "5"));
|
||||
maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList()));
|
||||
}
|
||||
for (LargeScreenMap map : maps) {
|
||||
if (StrUtil.isNotEmpty(map.getLongitude()) && StrUtil.isNotEmpty(map.getLatitude())) {
|
||||
Point point = new Point(longitude, latitude);
|
||||
List<ResourceExt> resources = resourceManager.geoSearch(point, 100000, type);
|
||||
List<ResourceExt> resourcesLL = new ArrayList<>();
|
||||
if ("0".equals(type)) {
|
||||
resourcesLL = this.selectResourceByLongitudeLatitude(100000D, longitude, latitude);
|
||||
}
|
||||
resources.addAll(resourcesLL);
|
||||
home.setDicts(dictItems);
|
||||
home.setResources(resources);
|
||||
return home;
|
||||
Point geoPoint = new Point(TypeConversionUtil.toDoubleOfNull(
|
||||
map.getLongitude()), TypeConversionUtil.toDoubleOfNull(map.getLatitude()));
|
||||
map.setDistance(ResourceUtils.geoDistance(point, geoPoint));
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
home.setResources(resources);
|
||||
return home;
|
||||
return maps;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -184,60 +137,4 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
|
||||
}
|
||||
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 double distance;
|
||||
|
||||
public LargeScreenMap() {}
|
||||
|
||||
public LargeScreenMap(Resource resource) {
|
||||
@@ -42,6 +44,7 @@ public class LargeScreenMap {
|
||||
this.longitude = String.valueOf(resource.getLongitude());
|
||||
this.jobNum = resource.getJobNum();
|
||||
this.runTime = resource.getRunTime();
|
||||
this.address = resource.getAddress();
|
||||
}
|
||||
|
||||
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.entity.EmergencyResourceDO;
|
||||
import com.renkang.emergency.entity.Resource;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
@@ -15,6 +16,7 @@ import java.util.List;
|
||||
* @Date: 2023-04-24
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface ResourceMapper extends BaseMapper<Resource> {
|
||||
|
||||
List<String> selectHospitalList();
|
||||
|
||||
Reference in New Issue
Block a user