bug修改

This commit is contained in:
wanghao
2025-07-07 18:15:57 +08:00
parent 5a1d6d828b
commit e93fb4de8d
8 changed files with 268 additions and 36 deletions
@@ -1,13 +1,18 @@
package com.renkang.consultation.api.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.renkang.consultation.api.service.ConDoctorSchedulingDateApiService;
import com.renkang.consultation.entity.ConDoctor;
import com.renkang.consultation.entity.ConDoctorSchedulingDateListDO;
import com.renkang.consultation.entity.ConService;
import com.renkang.consultation.mapper.ConDoctorMapper;
import com.renkang.consultation.mapper.ConDoctorSchedulingDateMapper;
import com.renkang.consultation.mapper.ConServiceMapper;
import com.renkang.consultation.service.IConServiceService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.util.DateUtils;
@@ -43,8 +48,8 @@ public class ConDoctorSchedulingDateApiServiceImpl implements ConDoctorSchedulin
if (conDoctor == null) {
return Result.error("医生不存在");
}
if (CollectionUtils.isEmpty(list) || StringUtils.equals(conDoctor.getDoctorStatus(), "3")) {
// 为空 或者已经暂停服务 情况下 生成默认排班
if (CollectionUtils.isEmpty(list) || "3".equals(conDoctor.getDoctorStatus())) {
Date date = new Date();
for (int i = 0; i < 7; i++) {
int week = DateUtils.dateToWeek(date);
@@ -60,7 +65,19 @@ public class ConDoctorSchedulingDateApiServiceImpl implements ConDoctorSchedulin
}
return Result.ok(list);
}
// 查询暂停服务列表
ConService conService = conServiceMapper.selectOne(new LambdaQueryWrapper<ConService>()
.eq(ConService::getDoctorId, doctorId)
.eq(ConService::getStatus, 1)
.eq(ConService::getServiceStatus, 0), false);
if (ObjUtil.isNotEmpty(conService)) {
// 判断暂停时间是否包含排班
for (ConDoctorSchedulingDateListDO dateDO : list) {
if (DateUtil.isIn(dateDO.getSchedulingDate(),conService.getStartDay(),conService.getEndDay())) {
dateDO.setSchedulingNum("0");
}
}
}
if ("1".equals(conDoctor.getTfJumpHoliday())){
Object o = redisUtil.get(CommonConstant.CONSULT_HOLIDAY_KEY + Calendar.getInstance().get(Calendar.YEAR));
List<String> holidayList = new ArrayList<>();
@@ -44,6 +44,7 @@ public class ConServiceApiServiceImpl implements ConServiceApiService {
data.setEndDay(DateUtil.endOfDay(data.getEndDay()).offset(DateField.MILLISECOND,-999));
LoginUser loginUser = GlobalUtils.getLoginUser();
loginUser.setId("1940949295719591937");
List<ConService> list = getConService(loginUser);
// if (CollectionUtils.isEmpty(list)) {
// conServiceMapper.insert(data);
@@ -11,8 +11,9 @@ public class TempUtil {
public static void reversalDocInfo(ConDoctorDO conDoctor){
String isAccept = conDoctor.getIsAccept();
conDoctor.setIsAccept(conDoctor.getDoctorStatus());
conDoctor.setDoctorStatus(isAccept);
// TODO 移动端说状态不对 先注掉试试
// conDoctor.setIsAccept(conDoctor.getDoctorStatus());
// conDoctor.setDoctorStatus(isAccept);
}
public static void reversalDocInfo(ConDoctor conDoctor){
@@ -7,6 +7,7 @@ import com.renkang.emergency.api.service.EmergencyResourceApiService;
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.EmergencyHealthRoom;
import com.renkang.emergency.entity.EmergencyResourceDO;
import com.renkang.emergency.entity.Order;
import com.renkang.emergency.entity.Resource;
@@ -14,6 +15,7 @@ import com.renkang.emergency.manager.EmergencyCloudManager;
import com.renkang.emergency.manager.ResourceManager;
import com.renkang.emergency.mapper.OrderMapper;
import com.renkang.emergency.mapper.ResourceMapper;
import com.renkang.emergency.service.IEmergencyHealthRoomService;
import com.renkang.emergency.util.ResourceUtils;;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -25,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.geo.Point;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -45,6 +48,8 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
private OrderMapper orderMapper;
@Autowired
private ResourceMapper resourceMapper;
@Autowired
private IEmergencyHealthRoomService roomService;
@Autowired
private ISysBaseAPI sysBaseAPI;
@@ -68,30 +73,46 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
List<DictModel> dictItems = emergencyCloudManager.getDictItems(EmergencyConstants.EMERGENCY_RESOURCE_TYPE_DICT);
if (ObjectUtils.isEmpty(longitude) || ObjectUtils.isEmpty(latitude)) {
if (!"3".equals(type)) {
home.setDicts(dictItems);
List<ResourceExt> list = this.listResource(type);
List<ResourceExt> resources = new ArrayList<>();
if("3".equals(type) || "0".equals(type)){
resources = this.selectResourceByLongitudeLatitude(null,null,null);
if ("0".equals(type)) {
resources = this.selectResourceByLongitudeLatitude(null, null, null);
}
list.addAll(resources);
home.setResources(list);
return home;
}
}else {
if (!"3".equals(type)) {
// 资源数据
Point point = new Point(longitude, latitude);
List<ResourceExt> resources = resourceManager.geoSearch(point, 100000, type);
List<ResourceExt> resourcesLL = new ArrayList<>();
if("3".equals(type) || "0".equals(type)){
resourcesLL = this.selectResourceByLongitudeLatitude(100000D,longitude,latitude);
if ("0".equals(type)) {
resourcesLL = this.selectResourceByLongitudeLatitude(100000D, longitude, latitude);
}
resources.addAll(resourcesLL);
home.setDicts(dictItems);
home.setResources(resources);
return home;
}
}
List<EmergencyHealthRoom> list = roomService.list();
List<ResourceExt> 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()));
resources.add(ext);
}
home.setDicts(dictItems);
home.setResources(resources);
return home;
@@ -149,7 +170,7 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
private List<ResourceExt> listResource(String type) {
if("3".equals(type)){
if ("3".equals(type)) {
return Collections.emptyList();
}
@@ -174,7 +195,7 @@ public class EmergencyResourceApiServiceImpl implements EmergencyResourceApiServ
}
public List<ResourceExt> selectResourceByLongitudeLatitude(Double distance,Double longitude,Double latitude){
public List<ResourceExt> selectResourceByLongitudeLatitude(Double distance, Double longitude, Double latitude) {
List<ResourceExt> resourceExtList = new ArrayList<>();
/* Point point = new Point(longitude, latitude);
List<MedicalResource> list = medicalCenterApi.selectResourceByLongitudeLatitude(distance, longitude, latitude).getResult();
@@ -146,5 +146,10 @@ public class LargeScreenNewController {
return Result.ok(largeScreenService.hospital());
}
@GetMapping("runTest")
@Operation(summary = "推假数据", description = "推假数据")
public void runTest(){
largeScreenService.runTest();
}
}
@@ -11,7 +11,10 @@ import java.util.Date;
@Data
public class MedicalAbnormalStatisticsVO {
private Integer totalCount;
// 心血管异常人数
private Integer cardiovaAbCount;
// 脑血管异常人数
private Integer cerebrovAbCount;
// 冠脉ct异常人数
private Integer cctaAbCount;
}
@@ -38,4 +38,6 @@ public interface ILargeScreenService extends IService<LargeScreenMap> {
List<HospitalVO> hospital();
void runJob();
void runTest();
}
@@ -1,9 +1,11 @@
package com.renkang.emergency.largeScreen.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.emergency.entity.EmergencyHealthRoom;
import com.renkang.emergency.entity.Resource;
@@ -18,8 +20,7 @@ import org.jeecg.util.RedisClientUtil;
import org.jeecg.util.RedisKeyPrefix;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -31,7 +32,7 @@ import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, LargeScreenMap> implements ILargeScreenService {
private final RedisKeyPrefix MEDICAL = new RedisKeyPrefix(-1, "emergency:");
private final RedisKeyPrefix MEDICAL = new RedisKeyPrefix(-1, "emergency");
private final String MEDICAL_PEOPLE_NUM_STATISTICS = "medicalPeopleNumStatistics";
private final String MEDICAL_ABNORMAL_STATISTICS = "medicalAbnormalStatistics";
private final String HEALTH_SIGN = "healthSign";
@@ -63,44 +64,165 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
@Override
public List<HealthRoomBaseVO> healthRoomBase(HealthRoomBaseDTO dto){
double MIN_LATITUDE = 35.0;
double MAX_LATITUDE = 49.0;
double MIN_LONGITUDE = 73.0;
double MAX_LONGITUDE = 95.0;
List<HealthRoomBaseVO> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
HealthRoomBaseVO baseVO = new HealthRoomBaseVO();
baseVO.setId(UUID.randomUUID().toString());
baseVO.setAddress("新疆大厂");
Random random = new Random();
// 随机生成纬度
double latitude = MIN_LATITUDE + (MAX_LATITUDE - MIN_LATITUDE) * random.nextDouble();
// 随机生成经度
double longitude = MIN_LONGITUDE + (MAX_LONGITUDE - MIN_LONGITUDE) * random.nextDouble();
baseVO.setLat(String.valueOf(latitude));
baseVO.setLat(String.valueOf(longitude));
baseVO.setDepartName("新疆大厂的单位");
list.add(baseVO);
}
// 查询第三方接口返回 此接口返回对象跟原有可能不太一样 要注意
return null;
return list;
}
@Override
public IPage<HealthRoomVO> healthRoomDetail(HealthRoomDTO dto){
IPage<HealthRoomVO> page = new Page<>(dto.getPageNo(), dto.getPageSize());
page.setTotal(20);
List<HealthRoomVO> list = new ArrayList<>();
Map<String, String> CHECK_TYPES = new HashMap<>();
CHECK_TYPES.put("11", "BMI");
CHECK_TYPES.put("21", "收缩压");
CHECK_TYPES.put("22", "舒张压");
CHECK_TYPES.put("31", "血糖");
CHECK_TYPES.put("41", "低密度脂蛋白");
CHECK_TYPES.put("42", "总胆固醇");
CHECK_TYPES.put("43", "甘油三酯");
CHECK_TYPES.put("51", "尿酸");
CHECK_TYPES.put("61", "同型半胱氨酸");
List<String> keys = new ArrayList<>(CHECK_TYPES.keySet());
for (int i = 0; i < 10; i++) {
HealthRoomVO roomVO = new HealthRoomVO();
roomVO.setName("小屋");
roomVO.setDepartName("新疆大厂");
roomVO.setCheckInDate(DateUtil.today());
Random random = new Random();
String randomKey = keys.get(random.nextInt(keys.size()));
roomVO.setCheckType(randomKey);
roomVO.setLastVal("111");
roomVO.setGoalVal("100");
roomVO.setCurrentVal("105");
roomVO.setCompareVal("5");
roomVO.setSuccessFlag("0");
list.add(roomVO);
}
page.setRecords(list);
// 查询第三方接口返回
return null;
return page;
}
@Override
public IPage<MedicalAbnormalVO> medicalAbnormal (MedicalAbnormalDTO dto){
IPage<MedicalAbnormalVO> page = new Page<>(dto.getPageNo(), dto.getPageSize());
page.setTotal(20);
List<MedicalAbnormalVO> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
MedicalAbnormalVO abnormalVO = new MedicalAbnormalVO();
abnormalVO.setCheckInDate(DateUtil.today());
abnormalVO.setHospitalName("新疆医院");
abnormalVO.setDepartName("新疆大厂");
abnormalVO.setName("张三");
list.add(abnormalVO);
}
page.setRecords(list);
// 查询第三方接口返回
return null;
return page;
}
@Override
public IPage<HealthWeightLossVO> healthWeightLoss (HealthWeightLossDTO dto){
IPage<HealthWeightLossVO> page = new Page<>(dto.getPageNo(), dto.getPageSize());
page.setTotal(20);
List<HealthWeightLossVO> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
HealthWeightLossVO weightLossVO = new HealthWeightLossVO();
weightLossVO.setName("张三");
weightLossVO.setWeight("80");
weightLossVO.setDepartName("新疆大厂");
weightLossVO.setBmi("26.8");
weightLossVO.setHeight("180");
weightLossVO.setBmiFlag("0");
weightLossVO.setInputDate(new Date());
list.add(weightLossVO);
}
page.setRecords(list);
// 查询第三方接口返回
return null;
return page;
}
@Override
public IPage<HealthBloodSugarVO> healthBloodSugar (HealthBloodSugarDTO dto){
IPage<HealthBloodSugarVO> page = new Page<>(dto.getPageNo(), dto.getPageSize());
page.setTotal(20);
List<HealthBloodSugarVO> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
HealthBloodSugarVO bloodSugarVO = new HealthBloodSugarVO();
bloodSugarVO.setName("张三");
bloodSugarVO.setDepartName("新疆大厂");
bloodSugarVO.setBmiFlag("0");
bloodSugarVO.setInputDate(new Date());
bloodSugarVO.setBsVal("100");
list.add(bloodSugarVO);
}
page.setRecords(list);
// 查询第三方接口返回
return null;
return page;
}
@Override
public IPage<HealthBloodPressureVO> healthBloodPressure (HealthBloodPressureDTO dto){
IPage<HealthBloodPressureVO> page = new Page<>(dto.getPageNo(), dto.getPageSize());
page.setTotal(20);
List<HealthBloodPressureVO> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
HealthBloodPressureVO bloodPressureVO = new HealthBloodPressureVO();
bloodPressureVO.setName("张三");
bloodPressureVO.setDepartName("新疆大厂");
bloodPressureVO.setInputDate(new Date());
bloodPressureVO.setDbpFlag("0");
bloodPressureVO.setSbpFlag("0");
list.add(bloodPressureVO);
}
page.setRecords(list);
// 查询第三方接口返回
return null;
return page;
}
@Override
public List<HospitalVO> hospital(){
// 查询第三方接口返回
return null;
double MIN_LATITUDE = 35.0;
double MAX_LATITUDE = 49.0;
double MIN_LONGITUDE = 73.0;
double MAX_LONGITUDE = 95.0;
List<HospitalVO> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {
HospitalVO hospitalVO = new HospitalVO();
hospitalVO.setHospitalName("新疆医院");
hospitalVO.setAddress("新疆大厂");
hospitalVO.setContractDate(new Date());
Random random = new Random();
// 随机生成纬度
double latitude = MIN_LATITUDE + (MAX_LATITUDE - MIN_LATITUDE) * random.nextDouble();
// 随机生成经度
double longitude = MIN_LONGITUDE + (MAX_LONGITUDE - MIN_LONGITUDE) * random.nextDouble();
hospitalVO.setLat(String.valueOf(latitude));
hospitalVO.setLat(String.valueOf(longitude));
list.add(hospitalVO);
}
return list;
}
@Override
@@ -159,4 +281,64 @@ public class LargeScreenServiceImpl extends ServiceImpl<LargeScreenMapper, Large
HealthSignVO healthSign = new HealthSignVO();
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);
// 体检异常数据查询
List<MedicalAbnormalStatisticsVO> medicalAbnormalStatisticsList = new ArrayList<>();
MedicalAbnormalStatisticsVO abnormalStatistics = new MedicalAbnormalStatisticsVO();
abnormalStatistics.setTotalCount(18000);
abnormalStatistics.setCardiovaAbCount(2000);
abnormalStatistics.setCerebrovAbCount(1500);
abnormalStatistics.setCctaAbCount(200);
medicalAbnormalStatisticsList.add(abnormalStatistics);
redisClientUtil.set(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,medicalAbnormalStatisticsList);
// 减重 血压 血糖 三种数据整合存
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);
}
}