新疆大屏

This commit is contained in:
wanghao
2025-12-02 17:59:26 +08:00
parent 536ca94d8b
commit 430817655a
9 changed files with 125 additions and 68 deletions
@@ -2,6 +2,7 @@ package com.renkang.emergency.largeScreen.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.renkang.anyan.model.dto.CareUserDetailsParam;
import com.renkang.anyan.model.dto.HealthRoomDTO;
import com.renkang.anyan.model.dto.HealthSignListParam;
import com.renkang.anyan.model.dto.MedicalAbnormalDTO;
@@ -104,7 +105,7 @@ public class LargeScreenNewController {
@PostMapping("/healthRoomDetail")
@Operation(summary = "健康小屋详情", description = "健康小屋详情")
public Result<IPage<HealthRoomVO>> healthRoomDetail(@RequestBody HealthRoomDTO dto) {
public Result<IPage<HealthPlaceHomDetailsVO>> healthRoomDetail(@RequestBody HealthRoomDTO dto) {
return Result.ok(largeScreenService.healthRoomDetail(dto));
}
@@ -231,10 +232,10 @@ public class LargeScreenNewController {
}
/**
* 假数据查询(关爱趋势)
* 关爱趋势
*/
@GetMapping("loveTrend")
public Result<IPage<CareUserListVo>> loveTrend(@RequestParam(name = "centerId") String centerId,
public Result<List<CarePersonList>> loveTrend(@RequestParam(name = "centerId") String centerId,
@RequestParam(name = "name", required = false) String name,
@RequestParam(name = "orgName", required = false) String orgName,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@@ -242,6 +243,23 @@ public class LargeScreenNewController {
return Result.ok(largeScreenDataService.loveTrend(centerId, name,orgName,pageNo,pageSize));
}
/**
* 关爱趋势详情
*/
@GetMapping("loveTrendDetail")
public Result<IPage<CareUserListVo>> loveTrendDetail(CareUserDetailsParam param){
return Result.ok(largeScreenDataService.loveTrendDetail(param));
}
/**
* 关爱趋势某一条详情
*/
@GetMapping("loveTrendByOne")
public Result<CareUserListVo> loveTrendByOne(@RequestParam(name = "anYanUserId", required = false)String anYanUserId,
@RequestParam(name = "idNo", required = false)String idNo){
return Result.ok(largeScreenDataService.loveTrendByOne(anYanUserId,idNo));
}
/**
* 获取最近的6个资源
* @param longitude
@@ -266,12 +284,12 @@ public class LargeScreenNewController {
/**
* 健康档案
* @param userId 用户id
* @param idCard 用户身份证号
* @return vo
*/
@GetMapping("healthArchives")
public Result<HealthArchivesVO> healthArchives(@RequestParam(name = "userId") String userId){
return Result.ok(largeScreenDataService.healthArchives(userId));
public Result<CareUserListVo> healthArchives(@RequestParam(name = "idCard") String idCard){
return Result.ok(largeScreenDataService.healthArchives(idCard));
}
/**
@@ -34,6 +34,8 @@ public class LargeScreenMap {
private String managePhone;
private String ayId;
private double distance;
public LargeScreenMap() {}
@@ -49,6 +51,7 @@ public class LargeScreenMap {
this.jobNum = resource.getJobNum();
this.runTime = resource.getRunTime();
this.address = resource.getAddress();
this.ayId = resource.getAyId();
}
public LargeScreenMap(EmergencyHealthRoom room) {
@@ -17,6 +17,8 @@ public class TodayEmergencyVO {
private String userId;
@Schema(title = "姓名")
private String realName;
@Schema(title = "身份证号")
private String idCard;
@Schema(title = "0:120 1:紧急求助 2:云坐席 3:终端报警")
private String emergencyType;
@Schema(title = "事件类型(emergencyType=3 才有值)")
@@ -2,6 +2,8 @@ package com.renkang.emergency.largeScreen.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.renkang.anyan.model.dto.CareUserDetailsParam;
import com.renkang.anyan.model.vo.CarePersonList;
import com.renkang.anyan.model.vo.CareUserListVo;
import com.renkang.anyan.model.vo.CareUserVO;
import com.renkang.emergency.entity.LargeScreenData;
@@ -35,13 +37,17 @@ public interface ILargeScreenDataService extends IService<LargeScreenData> {
List<MedicalDataVO> medicalDataDetail(String centerId);
IPage<CareUserListVo> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize);
List<CarePersonList> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize);
IPage<CareUserListVo> loveTrendDetail(CareUserDetailsParam param);
CareUserListVo loveTrendByOne(String anYanUserId,String idNo);
List<TblBaseHospitalVo> nearResources(String longitude, String latitude);
IPage<TodayEmergencyVO> todayEmergencyList(TodayEmergencyDTO dto);
HealthArchivesVO healthArchives(String userId);
CareUserListVo healthArchives(String userId);
CareUserVO careUser(String userId);
}
@@ -30,7 +30,7 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
List<HealthRoomBaseVO> healthRoomBase(HealthRoomBaseDTO dto);
IPage<HealthRoomVO> healthRoomDetail(HealthRoomDTO dto);
IPage<HealthPlaceHomDetailsVO> healthRoomDetail(HealthRoomDTO dto);
IPage<MedicalAbnormalVO> medicalAbnormal(MedicalAbnormalDTO dto);
@@ -14,6 +14,9 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.renkang.anyan.client.AnYanClient;
import com.renkang.anyan.model.dto.CareUserDetailsParam;
import com.renkang.anyan.model.vo.CarePersonList;
import com.renkang.anyan.model.vo.CareUserListVo;
import com.renkang.anyan.model.vo.CareUserVO;
import com.renkang.emergency.entity.*;
@@ -71,6 +74,7 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
private final WatchApi watchApi;
private final ISysBaseAPI sysBaseAPI;
private final ISysCache sysCache;
private final AnYanClient anYanClient;
public Boolean editValue(LargeScreenDataValueDTO dto) {
if (StrUtil.isEmpty(dto.getCenterId())) {
@@ -430,47 +434,59 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
}
@Override
public IPage<CareUserListVo> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize) {
try {
ClassPathResource resource = new ClassPathResource("tempData/guanaiList.json");
String jsonContent = StreamUtils.copyToString(resource.getInputStream(), StandardCharsets.UTF_8);
List<CareUserListVo> careUserListVoList = JSONUtil.toList(jsonContent, CareUserListVo.class);
public List<CarePersonList> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize) {
return anYanClient.homeCarePersonList();
// 以下内容为旧版假数据接口
// try {
// ClassPathResource resource = new ClassPathResource("tempData/guanaiList.json");
// String jsonContent = StreamUtils.copyToString(resource.getInputStream(), StandardCharsets.UTF_8);
// List<CareUserListVo> careUserListVoList = JSONUtil.toList(jsonContent, CareUserListVo.class);
//
// if (CollUtil.isEmpty(careUserListVoList)) {
// return new Page<>();
// }
//
// // 根据 name 过滤
// if (StrUtil.isNotBlank(name)) {
// careUserListVoList = careUserListVoList.stream()
// .filter(vo -> vo.getName() != null && vo.getName().contains(name))
// .collect(Collectors.toList());
// }
//
// // 根据 name 过滤
// if (StrUtil.isNotBlank(orgName)) {
// careUserListVoList = careUserListVoList.stream()
// .filter(vo -> vo.getWorkUnit() != null && vo.getWorkUnit().contains(orgName))
// .collect(Collectors.toList());
// }
//
// int total = careUserListVoList.size();
// int[] startEnd = PageUtil.transToStartEnd(pageNo - 1, pageSize);
//
// // 确保不越界
// int start = Math.min(startEnd[0], total);
// int end = Math.min(startEnd[1], total);
//
// List<CareUserListVo> pageList = careUserListVoList.subList(start, end);
//
// Page<CareUserListVo> page = new Page<>(pageNo, pageSize, total);
// page.setRecords(pageList);
// return page;
//
// } catch (Exception e) {
// e.printStackTrace();
// return new Page<>();
// }
}
if (CollUtil.isEmpty(careUserListVoList)) {
return new Page<>();
}
@Override
public IPage<CareUserListVo> loveTrendDetail(CareUserDetailsParam param){
return anYanClient.careUserDetailsPage(param);
}
// 根据 name 过滤
if (StrUtil.isNotBlank(name)) {
careUserListVoList = careUserListVoList.stream()
.filter(vo -> vo.getName() != null && vo.getName().contains(name))
.collect(Collectors.toList());
}
// 根据 name 过滤
if (StrUtil.isNotBlank(orgName)) {
careUserListVoList = careUserListVoList.stream()
.filter(vo -> vo.getWorkUnit() != null && vo.getWorkUnit().contains(orgName))
.collect(Collectors.toList());
}
int total = careUserListVoList.size();
int[] startEnd = PageUtil.transToStartEnd(pageNo - 1, pageSize);
// 确保不越界
int start = Math.min(startEnd[0], total);
int end = Math.min(startEnd[1], total);
List<CareUserListVo> pageList = careUserListVoList.subList(start, end);
Page<CareUserListVo> page = new Page<>(pageNo, pageSize, total);
page.setRecords(pageList);
return page;
} catch (Exception e) {
e.printStackTrace();
return new Page<>();
}
@Override
public CareUserListVo loveTrendByOne(String anYanUserId, String idNo){
return anYanClient.careUserDetails(anYanUserId, idNo);
}
@Override
@@ -766,6 +782,7 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
vo.setRealName(user.getRealname());
vo.setSex(user.getSex());
vo.setAge(user.getAge());
vo.setIdCard(user.getIdCard());
if (ObjUtil.isNotEmpty(user.getOrgCode())) {
SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(user.getOrgCode()));
if (secondDepart != null) {
@@ -841,8 +858,9 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
}
@Override
public HealthArchivesVO healthArchives(String userId) {
return HealthArchivesGenerator.generateRandomHealthArchives();
public CareUserListVo healthArchives(String idCard) {
return anYanClient.careUserDetails(null,idCard);
// return HealthArchivesGenerator.generateRandomHealthArchives();
}
@Override
@@ -118,22 +118,13 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
}
@Override
public IPage<HealthRoomVO> healthRoomDetail(HealthRoomDTO dto) {
IPage<HealthPlaceHomDetailsVO> detailsIPage;
public IPage<HealthPlaceHomDetailsVO> healthRoomDetail(HealthRoomDTO dto) {
try {
detailsIPage = anYanClient.healthPlaceHomDetailList(dto);
if (ObjUtil.isEmpty(detailsIPage.getRecords())) {
return new Page<>();
}
return anYanClient.healthPlaceHomDetailList(dto);
} catch (Exception e) {
log.error("调用安眼API失败", e);
throw new RuntimeException("调用安眼API失败");
}
IPage<HealthRoomVO> page = new Page<>();
BeanUtil.copyProperties(detailsIPage, page);
List<HealthPlaceHomDetailsVO> records = detailsIPage.getRecords();
page.setRecords(records.stream().map(HealthRoomVO::new).collect(Collectors.toList()));
return page;
}
@Override