大屏假数据修改开发

This commit is contained in:
wanghao
2025-07-25 17:18:25 +08:00
parent 36603cbda9
commit 76cba3c817
9 changed files with 561 additions and 66 deletions
@@ -0,0 +1,98 @@
package com.renkang.emergency.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("large_screen_data")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@Schema(title = "large_screen_data对象", description = "large_screen_data")
public class LargeScreenData implements Serializable {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(title = "主键")
private String id;
private String centerId;
/**
* 开关类型
* 最新呼入电话gross 最新受理电话alerdyreceive 突发重大伤病应急jqqz 重大伤病应急就医dbjy 累计受理totaldeal 累计处置totalacceptance
*
* 120oneTwenty 应急就医hospital
*
* 体检人数medical
*
* 减重今日打卡weightLossCountDay 减重本月打卡weightLossCountMonth 减重今日异常weightLossAbnormalCountDay 减重本月异常weightLossAbnormalCountMonth
* 血糖今日打卡bloodSugarCountDay 血糖本月打卡bloodSugarCountMonth 血糖今日异常bloodSugarAbnormalCountDay 血糖本月异常bloodSugarAbnormalCountMonth
* 血压今日打卡bloodPressureCountDay 血压本月打卡bloodPressureCountMonth 血压今日异常bloodPressureAbnormalCountDay 血压本月异常bloodPressureAbnormalCountMonth
*
* 体检总totalCount 心血管异常cardiovaAbCount 脑血管异常cerebrovAbCount 冠状CT异常cctaAbCount
*/
@Schema(title = "开关类型")
private String type;
/**
* 开启状态(0:未开启 1:开启)
*/
@Schema(title = "开启状态(0:未开启 1:开启)")
private String status;
@Schema(title = "名称(体检机构才有值)")
private String name;
@Schema(title = "")
private String value;
/**
* 创建人
*/
@Schema(title = "创建人")
private String createBy;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "创建时间")
private Date createTime;
/**
* 更新人
*/
@Schema(title = "更新人")
private String updateBy;
/**
* 更新时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Schema(title = "更新时间")
private Date updateTime;
public LargeScreenData() {}
public LargeScreenData(LargeScreenDataValueDTO dto){
this.id = dto.getId();
this.type = dto.getType();
this.status = dto.getStatus();
this.name = dto.getName();
this.value = dto.getValue();
}
}
@@ -0,0 +1,13 @@
package com.renkang.emergency.entity.dto;
import lombok.Data;
@Data
public class LargeScreenDataValueDTO {
private String id;
private String centerId;
private String value;
private String name;
private String type;
private String status;
}
@@ -0,0 +1,157 @@
package com.renkang.emergency.entity.vo;
import lombok.Data;
@Data
public class DataDetailVO {
private String centerId;
/**
* 服务详情
*/
/**
* 应急就医
*/
private String emergencyNum;
private String emergencyNumStatus;
/**
* 重大伤病
*/
private String illNum;
private String illNumStatus;
/**
* 受理电话
*/
private String latestAcceptCall;
private String latestAcceptCallStatus;
/**
* 呼入电话
*/
private String latestCall;
private String latestCallStatus;
/**
* 累计受理
*/
private String totalAccept;
private String totalAcceptStatus;
/**
* 累计处置
*/
private String totalDisposal;
private String totalDisposalStatus;
/**
* 主诉分类
*/
/**
* 应急就医
*/
private String emergencyCount;
private String emergencyCountStatus;
/**
* 120
*/
private String hospitalCount;
private String hospitalCountStatus;
/**
* 健康打卡人数
*/
/**
* 减重今日打卡人数
*/
private String weightLossCountDay;
private String weightLossCountDayStatus;
/**
* 减重本月打卡人数
*/
private String weightLossCountMonth;
private String weightLossCountMonthStatus;
/**
* 减重今日异常人数
*/
private String weightLossAbnormalCountDay;
private String weightLossAbnormalCountDayStatus;
/**
* 减重本月异常人数
*/
private String weightLossAbnormalCountMonth;
private String weightLossAbnormalCountMonthStatus;
/**
* 血糖今日打卡人数
*/
private String bloodSugarCountDay;
private String bloodSugarCountDayStatus;
/**
* 血糖本月打卡人数
*/
private String bloodSugarCountMonth;
private String bloodSugarCountMonthStatus;
/**
* 血糖今日异常人数
*/
private String bloodSugarAbnormalCountDay;
private String bloodSugarAbnormalCountDayStatus;
/**
* 血糖本月异常人数
*/
private String bloodSugarAbnormalCountMonth;
private String bloodSugarAbnormalCountMonthStatus;
/**
* 血压今日打卡人数
*/
private String bloodPressureCountDay;
private String bloodPressureCountDayStatus;
/**
* 血压本月打卡人数
*/
private String bloodPressureCountMonth;
private String bloodPressureCountMonthStatus;
/**
* 血压今日异常人数
*/
private String bloodPressureAbnormalCountDay;
private String bloodPressureAbnormalCountDayStatus;
/**
* 血压本月异常人数
*/
private String bloodPressureAbnormalCountMonth;
private String bloodPressureAbnormalCountMonthStatus;
/**
* 体检数据
*/
/**
* 体检总人数
*/
private String totalCount;
private String totalCountStatus;
/**
* 心血管异常人数
*/
private String cardiovaAbCount;
private String cardiovaAbCountStatus;
/**
* 脑血管异常人数
*/
private String cerebrovAbCount;
private String cerebrovAbCountStatus;
/**
* 冠状ct异常人数
*/
private String cctaAbCount;
private String cctaAbCountStatus;
}
@@ -2,8 +2,10 @@ package com.renkang.emergency.largeScreen.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.renkang.emergency.entity.dto.*;
import com.renkang.emergency.entity.vo.DataDetailVO;
import com.renkang.emergency.largeScreen.entity.dto.*;
import com.renkang.emergency.largeScreen.entity.vo.*;
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
import com.renkang.emergency.largeScreen.service.ILargeScreenService;
import com.renkang.emergency.service.ITbUserHelpMacService;
import com.renkang.emergency.service.ITblAmbulanceGpsService;
@@ -30,6 +32,7 @@ public class LargeScreenNewController {
private final YcLargeScreenService ycLargeScreenService;
private final ITblAmbulanceGpsService tblAmbulanceGpsService;
private final ILargeScreenService largeScreenService;
private final ILargeScreenDataService largeScreenDataService;
/**
* 获取地图
@@ -147,9 +150,48 @@ public class LargeScreenNewController {
}
@GetMapping("runTest")
@Operation(summary = "假数据", description = "假数据")
@Operation(summary = "初始化假数据", description = "初始化假数据")
public void runTest(){
largeScreenService.runTest();
largeScreenDataService.runTest();
}
/**
* 编辑或新增
* @param dto
* @return
*/
@PostMapping("editValue")
public Result<Boolean> editValue(@RequestBody LargeScreenDataValueDTO dto){
return Result.ok(largeScreenDataService.editValue(dto));
}
/**
* 删除
* @param dto
* @return
*/
@DeleteMapping("deleteValue")
public Result<Boolean> deleteValue(@RequestBody LargeScreenDataValueDTO dto){
return Result.ok(largeScreenDataService.deleteValue(dto));
}
/**
* 体检医院编辑新增删除
* @param dtoList
* @return
*/
@PostMapping("editMedicalValue")
public Result<Boolean> editMedicalValue(@RequestBody List<LargeScreenDataValueDTO> dtoList){
return Result.ok(largeScreenDataService.editMedicalValue(dtoList));
}
/**
* 服务详情
*/
@GetMapping("dataDetail")
public Result<DataDetailVO> dataDetail(@RequestParam(name = "centerId") String centerId, @RequestParam(name = "moduleId") String moduleId){
return Result.ok(largeScreenDataService.dataDetail(centerId,moduleId));
}
}
@@ -0,0 +1,14 @@
package com.renkang.emergency.largeScreen.mapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.renkang.emergency.entity.LargeScreenData;
/**
* @Description: large_screen
* @Author: wang hao
* @Date: 2025-07-04
* @Version: V1.0
*/
public interface LargeScreenDataMapper extends MPJBaseMapper<LargeScreenData> {
}
@@ -0,0 +1,27 @@
package com.renkang.emergency.largeScreen.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.renkang.emergency.entity.LargeScreenData;
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
import com.renkang.emergency.entity.vo.DataDetailVO;
import java.util.List;
/**
* @Description: LargeScreenData
* @Author: wang hao
* @Date: 2025-07-25
* @Version: V1.0
*/
public interface ILargeScreenDataService extends IService<LargeScreenData> {
void runTest();
Boolean editValue(LargeScreenDataValueDTO dto);
Boolean deleteValue(LargeScreenDataValueDTO dto);
Boolean editMedicalValue(List<LargeScreenDataValueDTO> dtoList);
DataDetailVO dataDetail(String centerId, String moduleId);
}
@@ -38,6 +38,4 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
List<HospitalVO> hospital();
void runJob();
void runTest();
}
@@ -0,0 +1,207 @@
package com.renkang.emergency.largeScreen.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.renkang.emergency.entity.LargeScreenData;
import com.renkang.emergency.entity.dto.LargeScreenDataValueDTO;
import com.renkang.emergency.entity.vo.DataDetailVO;
import com.renkang.emergency.largeScreen.mapper.LargeScreenDataMapper;
import com.renkang.emergency.largeScreen.service.ILargeScreenDataService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: large_screen_data
* @Author: wang hao
* @Date: 2025-07-25
* @Version: V1.0
*/
@Service
@RequiredArgsConstructor
public class LargeScreenDataServiceImpl extends ServiceImpl<LargeScreenDataMapper, LargeScreenData> implements ILargeScreenDataService {
@Transactional(rollbackFor = Exception.class)
public void runTest() {
if (CollUtil.isNotEmpty(list())) {
return;
}
List<LargeScreenData> list = new ArrayList<>();
// 服务详情
LargeScreenData service1 = new LargeScreenData();
service1.setType("gross");
list.add(service1);
LargeScreenData service2 = new LargeScreenData();
service2.setType("alerdyreceive");
list.add(service2);
LargeScreenData service3 = new LargeScreenData();
service3.setType("jqqz");
list.add(service3);
LargeScreenData service4 = new LargeScreenData();
service4.setType("dbjy");
list.add(service4);
LargeScreenData service5 = new LargeScreenData();
service5.setType("totaldeal");
list.add(service5);
LargeScreenData service6 = new LargeScreenData();
service6.setType("totalacceptance");
list.add(service6);
// 主诉分类
LargeScreenData type1 = new LargeScreenData();
type1.setType("oneTwenty");
list.add(type1);
LargeScreenData type2 = new LargeScreenData();
type2.setType("hospital");
list.add(type2);
// 体检人数
LargeScreenData medical1 = new LargeScreenData();
medical1.setType("medical");
medical1.setName("克拉玛依医院");
list.add(medical1);
// 健康打卡人数
LargeScreenData sign1 = new LargeScreenData();
sign1.setType("weightLossCountDay");
list.add(sign1);
LargeScreenData sign2 = new LargeScreenData();
sign2.setType("weightLossCountMonth");
list.add(sign2);
LargeScreenData sign3 = new LargeScreenData();
sign3.setType("weightLossAbnormalCountDay");
list.add(sign3);
LargeScreenData sign4 = new LargeScreenData();
sign4.setType("weightLossAbnormalCountMonth");
list.add(sign4);
LargeScreenData sign5 = new LargeScreenData();
sign5.setType("bloodSugarCountDay");
list.add(sign5);
LargeScreenData sign6 = new LargeScreenData();
sign6.setType("bloodSugarCountMonth");
list.add(sign6);
LargeScreenData sign7 = new LargeScreenData();
sign7.setType("bloodSugarAbnormalCountDay");
list.add(sign7);
LargeScreenData sign8 = new LargeScreenData();
sign8.setType("bloodSugarAbnormalCountMonth");
list.add(sign8);
LargeScreenData sign9 = new LargeScreenData();
sign9.setType("bloodPressureCountDay");
list.add(sign9);
LargeScreenData sign10 = new LargeScreenData();
sign10.setType("bloodPressureCountMonth");
list.add(sign10);
LargeScreenData sign11 = new LargeScreenData();
sign11.setType("bloodPressureAbnormalCountDay");
list.add(sign11);
LargeScreenData sign12 = new LargeScreenData();
sign12.setType("bloodPressureAbnormalCountMonth");
list.add(sign12);
// 体检数据
LargeScreenData medicalData1 = new LargeScreenData();
medicalData1.setType("totalCount");
list.add(medicalData1);
LargeScreenData medicalData2 = new LargeScreenData();
medicalData2.setType("cardiovaAbCount");
list.add(medicalData2);
LargeScreenData medicalData3 = new LargeScreenData();
medicalData3.setType("cerebrovAbCount");
list.add(medicalData3);
LargeScreenData medicalData4 = new LargeScreenData();
medicalData4.setType("cctaAbCount");
list.add(medicalData4);
saveBatch(list);
}
public Boolean editValue(LargeScreenDataValueDTO dto) {
if (StrUtil.isEmpty(dto.getCenterId())) {
return false;
}
LambdaQueryWrapper<LargeScreenData> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(LargeScreenData::getType, dto.getType());
queryWrapper.eq(LargeScreenData::getCenterId, dto.getCenterId());
if (CollUtil.isNotEmpty(list())) {
LambdaUpdateWrapper<LargeScreenData> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(LargeScreenData::getId, dto.getId());
updateWrapper.eq(LargeScreenData::getType, dto.getType());
updateWrapper.set(LargeScreenData::getValue, dto.getValue());
updateWrapper.set(LargeScreenData::getStatus, dto.getStatus());
return update(updateWrapper);
}
return save(new LargeScreenData(dto));
}
public Boolean deleteValue(LargeScreenDataValueDTO dto) {
return remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getId, dto.getId()));
}
@Transactional(rollbackFor = Exception.class)
public Boolean editMedicalValue(List<LargeScreenDataValueDTO> dtoList) {
remove(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getType, "medical"));
if (CollUtil.isNotEmpty(dtoList)) {
saveBatch(dtoList.stream().map(LargeScreenData::new).collect(Collectors.toList()));
}
return true;
}
public DataDetailVO dataDetail(String centerId, String moduleId) {
DataDetailVO vo = new DataDetailVO();
switch (moduleId) {
case "9":
break;
case "31":
break;
case "32":
break;
case "33":
break;
case "34":
break;
default:
break;
}
// 查询服务详情相关数据
List<LargeScreenData> list = list(new LambdaQueryWrapper<LargeScreenData>().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType,
Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance")));
if (CollUtil.isEmpty(list)) {
return vo;
}
for (LargeScreenData largeScreenData : list) {
switch (largeScreenData.getType()) {
case "gross":
vo.setLatestCall(String.valueOf(largeScreenData.getValue()));
break;
case "alerdyreceive":
vo.setLatestAcceptCall(String.valueOf(largeScreenData.getValue()));
break;
case "jqqz":
vo.setIllNum(String.valueOf(largeScreenData.getValue()));
break;
case "dbjy":
vo.setEmergencyNum(String.valueOf(largeScreenData.getValue()));
break;
case "totaldeal":
vo.setTotalAccept(String.valueOf(largeScreenData.getValue()));
break;
case "totalacceptance":
vo.setTotalDisposal(String.valueOf(largeScreenData.getValue()));
break;
default:
break;
}
}
return vo;
}
}
@@ -12,10 +12,7 @@ import com.renkang.emergency.bean.response.XjDemandTypeFakerData;
import com.renkang.emergency.bean.response.XjHealthSignFakerData;
import com.renkang.emergency.bean.response.XjMedicalCountFakerData;
import com.renkang.emergency.bean.response.XjMedicalDataFakerData;
import com.renkang.emergency.entity.EmergencyHealthRoom;
import com.renkang.emergency.entity.Resource;
import com.renkang.emergency.entity.TblHelpCentorVo;
import com.renkang.emergency.entity.TblUserHelpVo;
import com.renkang.emergency.entity.*;
import com.renkang.emergency.largeScreen.entity.dto.*;
import com.renkang.emergency.largeScreen.entity.vo.*;
import com.renkang.emergency.largeScreen.mapper.LargeScreenMapper;
@@ -347,64 +344,6 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
redisClientUtil.set(MEDICAL,HEALTH_SIGN,healthSign);
}
public void runTest(){
// 体检人数统计
List<MedicalPeopleNumStatisticsVO> medicalPeopleNumStatisticsList = new ArrayList<>();
MedicalPeopleNumStatisticsVO statistics1 = new MedicalPeopleNumStatisticsVO();
statistics1.setHospitalName("克拉玛依市诚裕慈惠综合门诊部门有限公司");
statistics1.setCheckedCount(220);
statistics1.setTotalCount(550);
medicalPeopleNumStatisticsList.add(statistics1);
MedicalPeopleNumStatisticsVO statistics2 = new MedicalPeopleNumStatisticsVO();
statistics2.setHospitalName("昌吉州宝石花医院");
statistics2.setCheckedCount(156);
statistics2.setTotalCount(200);
medicalPeopleNumStatisticsList.add(statistics2);
MedicalPeopleNumStatisticsVO statistics3 = new MedicalPeopleNumStatisticsVO();
statistics3.setHospitalName("中心医院");
statistics3.setCheckedCount(86);
statistics3.setTotalCount(100);
medicalPeopleNumStatisticsList.add(statistics3);
MedicalPeopleNumStatisticsVO statistics4 = new MedicalPeopleNumStatisticsVO();
statistics4.setHospitalName("克拉玛依市中西医结合医院(市人民医院)");
statistics4.setCheckedCount(23);
statistics4.setTotalCount(30);
medicalPeopleNumStatisticsList.add(statistics4);
MedicalPeopleNumStatisticsVO statistics5 = new MedicalPeopleNumStatisticsVO();
statistics5.setHospitalName("新疆医院");
statistics5.setCheckedCount(15);
statistics5.setTotalCount(20);
medicalPeopleNumStatisticsList.add(statistics5);
redisClientUtil.set(MEDICAL,MEDICAL_PEOPLE_NUM_STATISTICS,medicalPeopleNumStatisticsList);
// 体检异常数据查询
MedicalAbnormalStatisticsVO abnormalStatistics = new MedicalAbnormalStatisticsVO();
abnormalStatistics.setTotalCount(18000);
abnormalStatistics.setCardiovaAbCount(2000);
abnormalStatistics.setCerebrovAbCount(1500);
abnormalStatistics.setCctaAbCount(200);
redisClientUtil.set(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,abnormalStatistics);
// 减重 血压 血糖 三种数据整合存
HealthSignVO healthSign = new HealthSignVO();
healthSign.setWeightLossCountDay(86);
healthSign.setWeightLossAbnormalCountDay(6);
healthSign.setWeightLossCountMonth(956);
healthSign.setWeightLossAbnormalCountMonth(56);
healthSign.setBloodSugarCountDay(8);
healthSign.setBloodSugarAbnormalCountDay(5);
healthSign.setBloodSugarCountMonth(156);
healthSign.setBloodSugarAbnormalCountMonth(56);
healthSign.setBloodPressureCountDay(18);
healthSign.setBloodPressureAbnormalCountDay(3);
healthSign.setBloodPressureCountMonth(350);
healthSign.setBloodPressureAbnormalCountMonth(30);
redisClientUtil.set(MEDICAL,HEALTH_SIGN,healthSign);
}
public static String[] generateRandomLocation() {
Random random = new Random();