AED资源单位和部门分开显示

This commit is contained in:
feng
2025-12-25 13:57:16 +08:00
parent 34c3c59c0c
commit 6381d7ab9c
3 changed files with 51 additions and 11 deletions
@@ -2,6 +2,7 @@ package com.renkang.emergency.api.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.renkang.emergency.aed.service.IAedEquipmentMangerService;
@@ -32,6 +33,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author Junqiang Zhu
@@ -68,13 +70,31 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
if (StrUtil.isEmpty(type) || type.equals("4")){
List<AedEquipmentManger> list = aedMangerService.list(new LambdaQueryWrapper<AedEquipmentManger>()
.isNotNull(AedEquipmentManger::getLatitude));
Map<String,String> deptMap = sysBaseAPI.queryDepartNameByOrgCodes(list.stream()
.map(AedEquipmentManger::getDepartCode).collect(Collectors.toSet()));
list.forEach(aed ->{
LargeScreenMap largeScreenMap = new LargeScreenMap(aed);
largeScreenMap.setOrgName(deptMap.get(aed.getDepartCode()));
maps.add(largeScreenMap);
});
if(ObjectUtil.isNotEmpty(list)){
//AED部门code翻译,
Set<String> orgCodes = list.stream()
.map(AedEquipmentManger::getDepartCode)
.filter(Objects::nonNull)
.flatMap(departCode ->
departCode.length() > 6
? Stream.of(departCode, GlobalUtils.getSecondDepartOrgCode(departCode))
: Stream.of(departCode)
)
.collect(Collectors.toSet());
Map<String,String> deptMap = sysBaseAPI.queryDepartNameByOrgCodes(orgCodes);
list.forEach(aed ->{
LargeScreenMap largeScreenMap = new LargeScreenMap(aed);
if(null != aed.getDepartCode()){
if(aed.getDepartCode().length() > 6){
largeScreenMap.setOrgName(deptMap.get(GlobalUtils.getSecondDepartOrgCode(aed.getDepartCode())));
largeScreenMap.setDeptName(deptMap.get(aed.getDepartCode()));
}else {
largeScreenMap.setOrgName(deptMap.get(aed.getDepartCode()));
}
}
maps.add(largeScreenMap);
});
}
}
if (StrUtil.isEmpty(type) || type.equals("5")) {
List<Resource> list = resourceMapper.selectList(new LambdaQueryWrapper<Resource>()
@@ -16,6 +16,9 @@ public class LargeScreenMap {
private String orgName;
//部分名称 ,目前仅aed数据是将单位名称和部门名称分开显示的
private String deptName;
private String address;
private String type;
@@ -34,6 +34,7 @@ import com.renkang.emergency.service.IEmergencyHealthRoomService;
import com.renkang.emergency.service.IResourceService;
import lombok.RequiredArgsConstructor;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.global.GlobalUtils;
import org.jeecg.util.RedisClientUtil;
import org.jeecg.util.RedisKeyPrefix;
import org.jeecg.util.TypeConversionUtil;
@@ -45,6 +46,7 @@ import java.util.*;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @Description: large_screen
@@ -88,12 +90,27 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
List<AedEquipmentManger> list = aedMangerService.list(new LambdaQueryWrapper<AedEquipmentManger>()
.isNotNull(AedEquipmentManger::getLatitude));
if(ObjectUtil.isNotEmpty(list)){
//AED部门code翻译
Map<String,String> deptMap = sysBaseAPI.queryDepartNameByOrgCodes(list.stream()
.map(AedEquipmentManger::getDepartCode).collect(Collectors.toSet()));
//AED部门code翻译,要求单位和部门拆开显示
Set<String> orgCodes = list.stream()
.map(AedEquipmentManger::getDepartCode)
.filter(Objects::nonNull)
.flatMap(departCode ->
departCode.length() > 6
? Stream.of(departCode, GlobalUtils.getSecondDepartOrgCode(departCode))
: Stream.of(departCode)
)
.collect(Collectors.toSet());
Map<String,String> deptMap = sysBaseAPI.queryDepartNameByOrgCodes(orgCodes);
list.forEach(aed ->{
LargeScreenMap largeScreenMap = new LargeScreenMap(aed);
largeScreenMap.setOrgName(deptMap.get(aed.getDepartCode()));
if(null != aed.getDepartCode()){
if(aed.getDepartCode().length() > 6){
largeScreenMap.setOrgName(deptMap.get(GlobalUtils.getSecondDepartOrgCode(aed.getDepartCode())));
largeScreenMap.setDeptName(deptMap.get(aed.getDepartCode()));
}else {
largeScreenMap.setOrgName(deptMap.get(aed.getDepartCode()));
}
}
maps.add(largeScreenMap);
});
}