From f2503fdd527117556f67e519243e66fa6e5f6f60 Mon Sep 17 00:00:00 2001 From: wanghao Date: Fri, 26 Sep 2025 13:07:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=BA=94=E6=80=A5=E5=9C=B0=E5=9B=BE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmergencyResourceApiController.java | 7 +- .../service/EmergencyResourceApiService.java | 3 +- .../impl/EmergencyResourceApiServiceImpl.java | 165 ++++-------------- .../largeScreen/entity/vo/LargeScreenMap.java | 3 + .../emergency/mapper/ResourceMapper.java | 2 + 5 files changed, 42 insertions(+), 138 deletions(-) diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/controller/EmergencyResourceApiController.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/controller/EmergencyResourceApiController.java index efa5b8a..37946d0 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/controller/EmergencyResourceApiController.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/controller/EmergencyResourceApiController.java @@ -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 home(@RequestParam(required = false) String type, - @RequestParam(required = false) Double longitude, - @RequestParam(required = false) Double latitude) { + public Result> home(@RequestParam(required = false) String type, + @RequestParam(required = false) Double longitude, + @RequestParam(required = false) Double latitude) { return Result.ok(emergencyResourceApiService.listResourceByType(type, longitude, latitude)); } diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/EmergencyResourceApiService.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/EmergencyResourceApiService.java index 464ebb5..a8f2444 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/EmergencyResourceApiService.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/EmergencyResourceApiService.java @@ -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 listResourceByType(String type, Double longitude, Double latitude); String sessionNow(String userId); diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/impl/EmergencyResourceApiServiceImpl.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/impl/EmergencyResourceApiServiceImpl.java index 32168ef..3805244 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/impl/EmergencyResourceApiServiceImpl.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/api/service/impl/EmergencyResourceApiServiceImpl.java @@ -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 listResourceByType(String type, Double longitude, Double latitude) { + + List maps = new ArrayList<>(); + if (StrUtil.isEmpty(type) || type.equals("1")) { + List list = resourceMapper.selectList(new LambdaQueryWrapper() + .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 list = resourceMapper.selectList(new LambdaQueryWrapper() + .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 dictItems = emergencyCloudManager.getDictItems(EmergencyConstants.EMERGENCY_RESOURCE_TYPE_DICT); -// home.setDicts(dictItems); -// if ("4".equals(type)) { -// List list = xjAedService.list(); -// List 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 list = this.listResource(type); - - List 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 list = xjAedService.list(new LambdaQueryWrapper().isNotNull(XjAed::getLatitude)); + maps.addAll(list.stream().map(LargeScreenMap::new).collect(Collectors.toList())); + } + if (StrUtil.isEmpty(type) || type.equals("5")) { + List list = resourceMapper.selectList(new LambdaQueryWrapper() + .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 resources = resourceManager.geoSearch(point, 100000, type); - List 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 list = roomService.list(); - List 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 listResource(String type) { - - if ("3".equals(type)) { - return Collections.emptyList(); - } - - LambdaQueryWrapper queryWrapper = GlobalUtils.getLambdaQueryWrapper(); - if (!EmergencyConstants.RESOURCE_ALL.equals(type)) { - queryWrapper.eq(Resource::getType, type); - queryWrapper.ne(Resource::getType, "3"); - } - - List resources = resourceMapper.selectList(queryWrapper); - - List 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 selectResourceByLongitudeLatitude(Double distance, Double longitude, Double latitude) { - List resourceExtList = new ArrayList<>(); -/* Point point = new Point(longitude, latitude); - List 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; - }*/ - - } diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/LargeScreenMap.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/LargeScreenMap.java index a7e6d31..d4e52d9 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/LargeScreenMap.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/entity/vo/LargeScreenMap.java @@ -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) { diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/mapper/ResourceMapper.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/mapper/ResourceMapper.java index fe8ccb4..1197327 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/mapper/ResourceMapper.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/mapper/ResourceMapper.java @@ -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 { List selectHospitalList();