新疆大屏

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
@@ -21,11 +21,6 @@ public class EmergencyContactParam {
*/ */
@Schema(title = "身份证号") @Schema(title = "身份证号")
private String idNo; private String idNo;
/**
* 工号
*/
@Schema(title = "工号")
private String employeeNum;
/** /**
* 数据级别 * 数据级别
*/ */
@@ -7,16 +7,36 @@ import org.jeecg.common.aspect.annotation.Dict;
@Data @Data
@Schema(title="健康小屋数据详情列表", description="健康小屋数据详情列表") @Schema(title="健康小屋数据详情列表", description="健康小屋数据详情列表")
public class HealthPlaceHomDetailsVO { public class HealthPlaceHomDetailsVO {
/**
* id
*/
@Schema(title = "id")
private String id;
/**
* 单位id
*/
@Schema(title = "单位id")
private String departId;
/** /**
* 单位 * 单位
*/ */
@Schema(title = "单位") @Schema(title = "单位")
private String departName; private String departName;
/**
* 健康小屋id
*/
@Schema(title = "健康小屋id")
private String roomId;
/** /**
* 姓名 * 姓名
*/ */
@Schema(title = "姓名") @Schema(title = "姓名")
private String name; private String name;
/**
* 身份证号
*/
@Schema(title = "身份证号")
private String idCard;
/** /**
* 检查日期 * 检查日期
*/ */
@@ -24,10 +44,12 @@ public class HealthPlaceHomDetailsVO {
private String checkInDate; private String checkInDate;
/** /**
* 检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加 * 检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加
* 字典废弃 新接口返回了name
*/ */
@Schema(title = "检查类型 11:BMI/21:收缩压/22:舒张压/31:血糖/41:低密度脂蛋白/42:总胆固醇/43:甘油三酯/51:尿酸/61:同型半胱氨酸 等等,缺失的可以继续加") @Schema(title = "检查类型")
@Dict(dicCode = "xj_check_type")
private String checkType; private String checkType;
@Schema(title = "检查类型名称")
private String checkTypeName;
/** /**
* 去年体检值 前一年的体检值(初始值) * 去年体检值 前一年的体检值(初始值)
*/ */
@@ -53,4 +75,6 @@ public class HealthPlaceHomDetailsVO {
*/ */
@Schema(title = "是否成功空降,1:是/0.否") @Schema(title = "是否成功空降,1:是/0.否")
private String successFlag; private String successFlag;
@Schema(title = "员工统一编号")
private String employeeNum;
} }
@@ -2,6 +2,7 @@ package com.renkang.emergency.largeScreen.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.HealthRoomDTO;
import com.renkang.anyan.model.dto.HealthSignListParam; import com.renkang.anyan.model.dto.HealthSignListParam;
import com.renkang.anyan.model.dto.MedicalAbnormalDTO; import com.renkang.anyan.model.dto.MedicalAbnormalDTO;
@@ -104,7 +105,7 @@ public class LargeScreenNewController {
@PostMapping("/healthRoomDetail") @PostMapping("/healthRoomDetail")
@Operation(summary = "健康小屋详情", description = "健康小屋详情") @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)); return Result.ok(largeScreenService.healthRoomDetail(dto));
} }
@@ -231,10 +232,10 @@ public class LargeScreenNewController {
} }
/** /**
* 假数据查询(关爱趋势) * 关爱趋势
*/ */
@GetMapping("loveTrend") @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 = "name", required = false) String name,
@RequestParam(name = "orgName", required = false) String orgName, @RequestParam(name = "orgName", required = false) String orgName,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@@ -242,6 +243,23 @@ public class LargeScreenNewController {
return Result.ok(largeScreenDataService.loveTrend(centerId, name,orgName,pageNo,pageSize)); 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个资源 * 获取最近的6个资源
* @param longitude * @param longitude
@@ -266,12 +284,12 @@ public class LargeScreenNewController {
/** /**
* 健康档案 * 健康档案
* @param userId 用户id * @param idCard 用户身份证号
* @return vo * @return vo
*/ */
@GetMapping("healthArchives") @GetMapping("healthArchives")
public Result<HealthArchivesVO> healthArchives(@RequestParam(name = "userId") String userId){ public Result<CareUserListVo> healthArchives(@RequestParam(name = "idCard") String idCard){
return Result.ok(largeScreenDataService.healthArchives(userId)); return Result.ok(largeScreenDataService.healthArchives(idCard));
} }
/** /**
@@ -34,6 +34,8 @@ public class LargeScreenMap {
private String managePhone; private String managePhone;
private String ayId;
private double distance; private double distance;
public LargeScreenMap() {} public LargeScreenMap() {}
@@ -49,6 +51,7 @@ public class LargeScreenMap {
this.jobNum = resource.getJobNum(); this.jobNum = resource.getJobNum();
this.runTime = resource.getRunTime(); this.runTime = resource.getRunTime();
this.address = resource.getAddress(); this.address = resource.getAddress();
this.ayId = resource.getAyId();
} }
public LargeScreenMap(EmergencyHealthRoom room) { public LargeScreenMap(EmergencyHealthRoom room) {
@@ -17,6 +17,8 @@ public class TodayEmergencyVO {
private String userId; private String userId;
@Schema(title = "姓名") @Schema(title = "姓名")
private String realName; private String realName;
@Schema(title = "身份证号")
private String idCard;
@Schema(title = "0:120 1:紧急求助 2:云坐席 3:终端报警") @Schema(title = "0:120 1:紧急求助 2:云坐席 3:终端报警")
private String emergencyType; private String emergencyType;
@Schema(title = "事件类型(emergencyType=3 才有值)") @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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; 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.CareUserListVo;
import com.renkang.anyan.model.vo.CareUserVO; import com.renkang.anyan.model.vo.CareUserVO;
import com.renkang.emergency.entity.LargeScreenData; import com.renkang.emergency.entity.LargeScreenData;
@@ -35,13 +37,17 @@ public interface ILargeScreenDataService extends IService<LargeScreenData> {
List<MedicalDataVO> medicalDataDetail(String centerId); 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); List<TblBaseHospitalVo> nearResources(String longitude, String latitude);
IPage<TodayEmergencyVO> todayEmergencyList(TodayEmergencyDTO dto); IPage<TodayEmergencyVO> todayEmergencyList(TodayEmergencyDTO dto);
HealthArchivesVO healthArchives(String userId); CareUserListVo healthArchives(String userId);
CareUserVO careUser(String userId); CareUserVO careUser(String userId);
} }
@@ -30,7 +30,7 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
List<HealthRoomBaseVO> healthRoomBase(HealthRoomBaseDTO dto); List<HealthRoomBaseVO> healthRoomBase(HealthRoomBaseDTO dto);
IPage<HealthRoomVO> healthRoomDetail(HealthRoomDTO dto); IPage<HealthPlaceHomDetailsVO> healthRoomDetail(HealthRoomDTO dto);
IPage<MedicalAbnormalVO> medicalAbnormal(MedicalAbnormalDTO 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.CareUserListVo;
import com.renkang.anyan.model.vo.CareUserVO; import com.renkang.anyan.model.vo.CareUserVO;
import com.renkang.emergency.entity.*; import com.renkang.emergency.entity.*;
@@ -71,6 +74,7 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
private final WatchApi watchApi; private final WatchApi watchApi;
private final ISysBaseAPI sysBaseAPI; private final ISysBaseAPI sysBaseAPI;
private final ISysCache sysCache; private final ISysCache sysCache;
private final AnYanClient anYanClient;
public Boolean editValue(LargeScreenDataValueDTO dto) { public Boolean editValue(LargeScreenDataValueDTO dto) {
if (StrUtil.isEmpty(dto.getCenterId())) { if (StrUtil.isEmpty(dto.getCenterId())) {
@@ -430,47 +434,59 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
} }
@Override @Override
public IPage<CareUserListVo> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize) { public List<CarePersonList> loveTrend(String centerId, String name, String orgName, Integer pageNo, Integer pageSize) {
try { return anYanClient.homeCarePersonList();
ClassPathResource resource = new ClassPathResource("tempData/guanaiList.json"); // 以下内容为旧版假数据接口
String jsonContent = StreamUtils.copyToString(resource.getInputStream(), StandardCharsets.UTF_8); // try {
List<CareUserListVo> careUserListVoList = JSONUtil.toList(jsonContent, CareUserListVo.class); // 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)) { @Override
return new Page<>(); public IPage<CareUserListVo> loveTrendDetail(CareUserDetailsParam param){
} return anYanClient.careUserDetailsPage(param);
}
// 根据 name 过滤 @Override
if (StrUtil.isNotBlank(name)) { public CareUserListVo loveTrendByOne(String anYanUserId, String idNo){
careUserListVoList = careUserListVoList.stream() return anYanClient.careUserDetails(anYanUserId, idNo);
.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 @Override
@@ -766,6 +782,7 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
vo.setRealName(user.getRealname()); vo.setRealName(user.getRealname());
vo.setSex(user.getSex()); vo.setSex(user.getSex());
vo.setAge(user.getAge()); vo.setAge(user.getAge());
vo.setIdCard(user.getIdCard());
if (ObjUtil.isNotEmpty(user.getOrgCode())) { if (ObjUtil.isNotEmpty(user.getOrgCode())) {
SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(user.getOrgCode())); SysDepart secondDepart = sysCache.getDepartByOrgCode(GlobalUtils.getSecondDepartOrgCode(user.getOrgCode()));
if (secondDepart != null) { if (secondDepart != null) {
@@ -841,8 +858,9 @@ public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMappe
} }
@Override @Override
public HealthArchivesVO healthArchives(String userId) { public CareUserListVo healthArchives(String idCard) {
return HealthArchivesGenerator.generateRandomHealthArchives(); return anYanClient.careUserDetails(null,idCard);
// return HealthArchivesGenerator.generateRandomHealthArchives();
} }
@Override @Override
@@ -118,22 +118,13 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
} }
@Override @Override
public IPage<HealthRoomVO> healthRoomDetail(HealthRoomDTO dto) { public IPage<HealthPlaceHomDetailsVO> healthRoomDetail(HealthRoomDTO dto) {
IPage<HealthPlaceHomDetailsVO> detailsIPage;
try { try {
detailsIPage = anYanClient.healthPlaceHomDetailList(dto); return anYanClient.healthPlaceHomDetailList(dto);
if (ObjUtil.isEmpty(detailsIPage.getRecords())) {
return new Page<>();
}
} catch (Exception e) { } catch (Exception e) {
log.error("调用安眼API失败", e); log.error("调用安眼API失败", e);
throw new RuntimeException("调用安眼API失败"); 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 @Override