diff --git a/db/sql/20250728假数据表.sql b/db/sql/20250728假数据表.sql new file mode 100644 index 0000000..764f353 --- /dev/null +++ b/db/sql/20250728假数据表.sql @@ -0,0 +1,18 @@ +------------------------- +------------ xj_emergency +------------------------- + +CREATE TABLE `large_screen_data` +( + `id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_persian_ci NOT NULL COMMENT '主键', + `type` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开关类型(参考entity)', + `center_id` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '应急中心id', + `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '开启状态(0:未开启 1:开启)', + `name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '名称(体检机构才有值)', + `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '值', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `create_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '更新时间', + `update_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '更新人', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; \ No newline at end of file diff --git a/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/LargeScreenData.java b/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/LargeScreenData.java index 85d5f74..878e567 100644 --- a/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/LargeScreenData.java +++ b/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/LargeScreenData.java @@ -90,9 +90,12 @@ public class LargeScreenData implements Serializable { public LargeScreenData(LargeScreenDataValueDTO dto){ this.id = dto.getId(); + this.centerId = dto.getCenterId(); this.type = dto.getType(); this.status = dto.getStatus(); this.name = dto.getName(); this.value = dto.getValue(); } + + } diff --git a/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/DataDetailVO.java b/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/DataDetailVO.java index d36903c..7d347b6 100644 --- a/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/DataDetailVO.java +++ b/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/DataDetailVO.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class DataDetailVO { private String centerId; - + private String module; /** * 服务详情 */ diff --git a/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/MedicalDataVO.java b/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/MedicalDataVO.java new file mode 100644 index 0000000..efb3c89 --- /dev/null +++ b/health-emergency/health-emergency-api/src/main/java/com/renkang/emergency/entity/vo/MedicalDataVO.java @@ -0,0 +1,22 @@ +package com.renkang.emergency.entity.vo; + +import com.renkang.emergency.entity.LargeScreenData; +import lombok.Data; + +@Data +public class MedicalDataVO { + private String id; + private String centerId; + private String name; + private String status; + private String count; + + public MedicalDataVO() {} + public MedicalDataVO(LargeScreenData data) { + id = data.getId(); + centerId = data.getCenterId(); + name = data.getName(); + count = data.getValue(); + status = data.getStatus(); + } +} diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/controller/LargeScreenNewController.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/controller/LargeScreenNewController.java index cf58c74..8a64c56 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/controller/LargeScreenNewController.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/controller/LargeScreenNewController.java @@ -3,6 +3,7 @@ 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.entity.vo.MedicalDataVO; import com.renkang.emergency.largeScreen.entity.dto.*; import com.renkang.emergency.largeScreen.entity.vo.*; import com.renkang.emergency.largeScreen.service.ILargeScreenDataService; @@ -45,7 +46,7 @@ public class LargeScreenNewController { } /** - * 服务详情数据-24.09.19 新版大屏接口 + * 服务详情数据-24.09.19 新版大屏接口 25-07-28 修改假数据逻辑 */ @PostMapping("/statisticsNew") @Operation(summary = "服务详情数据", description = "服务详情数据") @@ -165,6 +166,16 @@ public class LargeScreenNewController { return Result.ok(largeScreenDataService.editValue(dto)); } + /** + * 编辑整个tab + * @param dto + * @return + */ + @PostMapping("editData") + public Result editData(@RequestBody DataDetailVO dto){ + return Result.ok(largeScreenDataService.editData(dto)); + } + /** * 删除 * @param dto @@ -185,13 +196,23 @@ public class LargeScreenNewController { return Result.ok(largeScreenDataService.editMedicalValue(dtoList)); } + + /** - * 服务详情 + * 假数据查询 */ @GetMapping("dataDetail") - public Result dataDetail(@RequestParam(name = "centerId") String centerId, @RequestParam(name = "moduleId") String moduleId){ - return Result.ok(largeScreenDataService.dataDetail(centerId,moduleId)); + public Result dataDetail(@RequestParam(name = "centerId") String centerId, @RequestParam(name = "module") String module){ + return Result.ok(largeScreenDataService.dataDetail(centerId,module)); } + /** + * 假数据查询(体检人数) + */ + @GetMapping("medicalDataDetail") + public Result> medicalDataDetail(@RequestParam(name = "centerId") String centerId){ + return Result.ok(largeScreenDataService.medicalDataDetail(centerId)); + } + } diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/ILargeScreenDataService.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/ILargeScreenDataService.java index dbd29cd..08c6b82 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/ILargeScreenDataService.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/ILargeScreenDataService.java @@ -4,6 +4,7 @@ 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 com.renkang.emergency.entity.vo.MedicalDataVO; import java.util.List; @@ -19,9 +20,13 @@ public interface ILargeScreenDataService extends IService { Boolean editValue(LargeScreenDataValueDTO dto); + Boolean editData(DataDetailVO dto); + Boolean deleteValue(LargeScreenDataValueDTO dto); Boolean editMedicalValue(List dtoList); - DataDetailVO dataDetail(String centerId, String moduleId); + DataDetailVO dataDetail(String centerId, String module); + + List medicalDataDetail(String centerId); } diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenDataServiceImpl.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenDataServiceImpl.java index 9205134..dedcfd0 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenDataServiceImpl.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenDataServiceImpl.java @@ -1,6 +1,7 @@ package com.renkang.emergency.largeScreen.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -8,6 +9,7 @@ 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.entity.vo.MedicalDataVO; import com.renkang.emergency.largeScreen.mapper.LargeScreenDataMapper; import com.renkang.emergency.largeScreen.service.ILargeScreenDataService; import lombok.RequiredArgsConstructor; @@ -56,12 +58,7 @@ public class LargeScreenDataServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(LargeScreenData::getType, dto.getType()); queryWrapper.eq(LargeScreenData::getCenterId, dto.getCenterId()); + queryWrapper.eq(ObjUtil.isNotEmpty(dto.getId()),LargeScreenData::getId, dto.getId()); if (CollUtil.isNotEmpty(list())) { LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(LargeScreenData::getId, dto.getId()); updateWrapper.eq(LargeScreenData::getType, dto.getType()); + updateWrapper.eq(ObjUtil.isNotEmpty(dto.getId()),LargeScreenData::getId, dto.getId()); updateWrapper.set(LargeScreenData::getValue, dto.getValue()); updateWrapper.set(LargeScreenData::getStatus, dto.getStatus()); return update(updateWrapper); @@ -141,40 +93,227 @@ public class LargeScreenDataServiceImpl extends ServiceImpl list = new ArrayList<>(); + switch (dto.getModule()) { + case "9": + // 服务详情 + remove(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType, + Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance"))); + LargeScreenData service1 = new LargeScreenData(); + service1.setType("gross"); + service1.setStatus(dto.getLatestCallStatus()); + service1.setValue(dto.getLatestCall()); + service1.setCenterId(dto.getCenterId()); + list.add(service1); + LargeScreenData service2 = new LargeScreenData(); + service2.setType("alerdyreceive"); + service2.setStatus(dto.getLatestAcceptCallStatus()); + service2.setValue(dto.getLatestAcceptCall()); + service2.setCenterId(dto.getCenterId()); + list.add(service2); + LargeScreenData service3 = new LargeScreenData(); + service3.setType("jqqz"); + service3.setStatus(dto.getIllNumStatus()); + service3.setValue(dto.getIllNum()); + service3.setCenterId(dto.getCenterId()); + list.add(service3); + LargeScreenData service4 = new LargeScreenData(); + service4.setType("dbjy"); + service4.setStatus(dto.getEmergencyNumStatus()); + service4.setValue(dto.getEmergencyNum()); + service4.setCenterId(dto.getCenterId()); + list.add(service4); + LargeScreenData service5 = new LargeScreenData(); + service5.setType("totaldeal"); + service5.setStatus(dto.getTotalAcceptStatus()); + service5.setValue(dto.getTotalAccept()); + service5.setCenterId(dto.getCenterId()); + list.add(service5); + LargeScreenData service6 = new LargeScreenData(); + service6.setType("totalacceptance"); + service6.setStatus(dto.getTotalDisposalStatus()); + service6.setValue(dto.getTotalDisposal()); + service6.setCenterId(dto.getCenterId()); + list.add(service6); + break; + case "31": + // 主诉分类 + remove(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType, + Arrays.asList("oneTwenty", "hospital"))); + LargeScreenData type1 = new LargeScreenData(); + type1.setType("oneTwenty"); + type1.setStatus(dto.getHospitalCountStatus()); + type1.setValue(dto.getHospitalCount()); + type1.setCenterId(dto.getCenterId()); + list.add(type1); + LargeScreenData type2 = new LargeScreenData(); + type2.setType("hospital"); + type2.setStatus(dto.getEmergencyNumStatus()); + type2.setValue(dto.getEmergencyNum()); + type2.setCenterId(dto.getCenterId()); + list.add(type2); + break; + case "33": + // 健康打卡 + remove(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType, + Arrays.asList("weightLossCountDay", "weightLossCountMonth", "weightLossAbnormalCountDay", "weightLossAbnormalCountMonth", + "bloodSugarCountDay", "bloodSugarCountMonth", "bloodSugarAbnormalCountDay", "bloodSugarAbnormalCountMonth", + "bloodPressureCountDay", "bloodPressureCountMonth", "bloodPressureAbnormalCountDay", "bloodPressureAbnormalCountMonth", + "totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount"))); + + LargeScreenData sign1 = new LargeScreenData(); + sign1.setType("weightLossCountDay"); + sign1.setStatus(dto.getWeightLossCountDayStatus()); + sign1.setValue(dto.getWeightLossCountDay()); + sign1.setCenterId(dto.getCenterId()); + list.add(sign1); + LargeScreenData sign2 = new LargeScreenData(); + sign2.setType("weightLossCountMonth"); + sign2.setStatus(dto.getWeightLossCountMonthStatus()); + sign2.setValue(dto.getWeightLossCountMonth()); + sign2.setCenterId(dto.getCenterId()); + list.add(sign2); + LargeScreenData sign3 = new LargeScreenData(); + sign3.setType("weightLossAbnormalCountDay"); + sign3.setStatus(dto.getWeightLossAbnormalCountDayStatus()); + sign3.setValue(dto.getWeightLossAbnormalCountDay()); + sign3.setCenterId(dto.getCenterId()); + list.add(sign3); + LargeScreenData sign4 = new LargeScreenData(); + sign4.setType("weightLossAbnormalCountMonth"); + sign4.setStatus(dto.getWeightLossAbnormalCountMonthStatus()); + sign4.setValue(dto.getWeightLossAbnormalCountMonth()); + sign4.setCenterId(dto.getCenterId()); + list.add(sign4); + LargeScreenData sign5 = new LargeScreenData(); + sign5.setType("bloodSugarCountDay"); + sign5.setStatus(dto.getBloodSugarCountDayStatus()); + sign5.setValue(dto.getBloodSugarCountDay()); + sign5.setCenterId(dto.getCenterId()); + list.add(sign5); + LargeScreenData sign6 = new LargeScreenData(); + sign6.setType("bloodSugarCountMonth"); + sign6.setStatus(dto.getBloodSugarCountMonthStatus()); + sign6.setValue(dto.getBloodSugarCountMonth()); + sign6.setCenterId(dto.getCenterId()); + list.add(sign6); + LargeScreenData sign7 = new LargeScreenData(); + sign7.setType("bloodSugarAbnormalCountDay"); + sign7.setStatus(dto.getBloodSugarAbnormalCountDayStatus()); + sign7.setValue(dto.getBloodSugarAbnormalCountDay()); + sign7.setCenterId(dto.getCenterId()); + list.add(sign7); + LargeScreenData sign8 = new LargeScreenData(); + sign8.setType("bloodSugarAbnormalCountMonth"); + sign8.setStatus(dto.getBloodSugarAbnormalCountMonthStatus()); + sign8.setValue(dto.getBloodSugarAbnormalCountMonth()); + sign8.setCenterId(dto.getCenterId()); + list.add(sign8); + LargeScreenData sign9 = new LargeScreenData(); + sign9.setType("bloodPressureCountDay"); + sign9.setStatus(dto.getBloodPressureCountDayStatus()); + sign9.setValue(dto.getBloodPressureCountDay()); + sign9.setCenterId(dto.getCenterId()); + list.add(sign9); + LargeScreenData sign10 = new LargeScreenData(); + sign10.setType("bloodPressureCountMonth"); + sign10.setStatus(dto.getBloodPressureCountMonthStatus()); + sign10.setValue(dto.getBloodPressureCountMonth()); + sign10.setCenterId(dto.getCenterId()); + list.add(sign10); + LargeScreenData sign11 = new LargeScreenData(); + sign11.setType("bloodPressureAbnormalCountDay"); + sign11.setStatus(dto.getBloodPressureAbnormalCountDayStatus()); + sign11.setValue(dto.getBloodPressureAbnormalCountDay()); + sign11.setCenterId(dto.getCenterId()); + list.add(sign11); + LargeScreenData sign12 = new LargeScreenData(); + sign12.setType("bloodPressureAbnormalCountMonth"); + sign12.setStatus(dto.getBloodPressureAbnormalCountMonthStatus()); + sign12.setValue(dto.getBloodPressureAbnormalCountMonth()); + sign12.setCenterId(dto.getCenterId()); + list.add(sign12); + break; + case "34": + // 体检数据 + remove(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, dto.getCenterId()).in(LargeScreenData::getType, + Arrays.asList("totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount"))); + LargeScreenData medicalData1 = new LargeScreenData(); + medicalData1.setType("totalCount"); + medicalData1.setStatus(dto.getTotalCountStatus()); + medicalData1.setValue(dto.getTotalCount()); + medicalData1.setCenterId(dto.getCenterId()); + list.add(medicalData1); + LargeScreenData medicalData2 = new LargeScreenData(); + medicalData2.setType("cardiovaAbCount"); + medicalData2.setStatus(dto.getCardiovaAbCountStatus()); + medicalData2.setValue(dto.getCardiovaAbCount()); + medicalData2.setCenterId(dto.getCenterId()); + list.add(medicalData2); + LargeScreenData medicalData3 = new LargeScreenData(); + medicalData3.setType("cerebrovAbCount"); + medicalData3.setStatus(dto.getCerebrovAbCountStatus()); + medicalData3.setValue(dto.getCerebrovAbCount()); + medicalData3.setCenterId(dto.getCenterId()); + list.add(medicalData3); + LargeScreenData medicalData4 = new LargeScreenData(); + medicalData4.setType("cctaAbCount"); + medicalData4.setStatus(dto.getCctaAbCountStatus()); + medicalData4.setValue(dto.getCctaAbCount()); + medicalData4.setCenterId(dto.getCenterId()); + list.add(medicalData4); + break; + default: + break; + } + return saveBatch(list); + } + public Boolean deleteValue(LargeScreenDataValueDTO dto) { return remove(new LambdaQueryWrapper().eq(LargeScreenData::getId, dto.getId())); } @Transactional(rollbackFor = Exception.class) public Boolean editMedicalValue(List dtoList) { - remove(new LambdaQueryWrapper().eq(LargeScreenData::getType, "medical")); + remove(new LambdaQueryWrapper().in(LargeScreenData::getType,"medical","32")); if (CollUtil.isNotEmpty(dtoList)) { saveBatch(dtoList.stream().map(LargeScreenData::new).collect(Collectors.toList())); } return true; } - public DataDetailVO dataDetail(String centerId, String moduleId) { + public DataDetailVO dataDetail(String centerId, String module) { DataDetailVO vo = new DataDetailVO(); - - switch (moduleId) { + List list = new ArrayList<>(); + switch (module) { case "9": + // 查询服务详情相关数据 + list = list(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType, + Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance"))); break; case "31": - break; - case "32": + // 查询主诉分类相关数据 + list = list(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType, + Arrays.asList("oneTwenty", "hospital"))); break; case "33": + // 查询健康打卡相关数据 + list = list(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType, + Arrays.asList("weightLossCountDay", "weightLossCountMonth", "weightLossAbnormalCountDay", "weightLossAbnormalCountMonth", + "bloodSugarCountDay", "bloodSugarCountMonth", "bloodSugarAbnormalCountDay", "bloodSugarAbnormalCountMonth", + "bloodPressureCountDay", "bloodPressureCountMonth", "bloodPressureAbnormalCountDay", "bloodPressureAbnormalCountMonth", + "totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount"))); break; case "34": + // 查询体检数据相关 + list = list(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType, + Arrays.asList("totalCount", "cardiovaAbCount", "cerebrovAbCount", "cctaAbCount"))); break; default: break; } - - // 查询服务详情相关数据 - List list = list(new LambdaQueryWrapper().eq(LargeScreenData::getCenterId, centerId).in(LargeScreenData::getType, - Arrays.asList("gross", "alerdyreceive", "jqqz", "dbjy", "totaldeal", "totalacceptance"))); if (CollUtil.isEmpty(list)) { return vo; } @@ -182,21 +321,99 @@ public class LargeScreenDataServiceImpl extends ServiceImpl medicalDataDetail(String centerId){ + List list = list(new LambdaQueryWrapper() + .in(LargeScreenData::getType, "medical","32").eq(LargeScreenData::getCenterId, centerId)); + if (CollUtil.isEmpty(list)){ + return new ArrayList<>(); + } + return list.stream().map(MedicalDataVO::new).collect(Collectors.toList()); + } } diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenServiceImpl.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenServiceImpl.java index 5f15602..7f95001 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenServiceImpl.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/largeScreen/service/impl/LargeScreenServiceImpl.java @@ -13,9 +13,12 @@ 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.*; +import com.renkang.emergency.entity.vo.DataDetailVO; +import com.renkang.emergency.entity.vo.MedicalDataVO; import com.renkang.emergency.largeScreen.entity.dto.*; import com.renkang.emergency.largeScreen.entity.vo.*; import com.renkang.emergency.largeScreen.mapper.LargeScreenMapper; +import com.renkang.emergency.largeScreen.service.ILargeScreenDataService; import com.renkang.emergency.service.IEmergencyHealthRoomService; import com.renkang.emergency.largeScreen.service.ILargeScreenService; import com.renkang.emergency.service.IResourceService; @@ -30,6 +33,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Consumer; +import java.util.function.Supplier; import java.util.stream.Collectors; /** @@ -49,6 +54,7 @@ public class LargeScreenServiceImpl extends ServiceImpl medicalPeopleNumStatistics (MedicalPeopleNumStatisticsDTO dto){ - Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId()) ? - FakerDataConstant.XJ_MEDICAL_COUNT_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.XJ_MEDICAL_COUNT_ENABLE); - if (enable != null && enable) { - List vo = XjMedicalCountFakerData(dto.getCenterId()); - if (vo != null) { - return vo; - } - } List list = redisClientUtil.getList(MEDICAL,MEDICAL_PEOPLE_NUM_STATISTICS,MedicalPeopleNumStatisticsVO.class); + + // 获取假数据 + List medicalDataList = screenDataService.medicalDataDetail(dto.getCenterId()); if (CollUtil.isEmpty(list)){ - return new ArrayList<>(); + list = new ArrayList<>(); + for (MedicalDataVO medicalData : medicalDataList) { + if ("1".equals(medicalData.getStatus())){ + MedicalPeopleNumStatisticsVO vo = new MedicalPeopleNumStatisticsVO(); + vo.setHospitalName(medicalData.getName()); + vo.setCheckedCount(Integer.valueOf(medicalData.getCount())); + list.add(vo); + } + } + }else { + for (MedicalPeopleNumStatisticsVO statistics : list) { + MedicalDataVO medicalData = medicalDataList.stream().filter(item -> item.getName().equals(statistics.getHospitalName())).findFirst().orElse(null); + if (null != medicalData){ + if ("1".equals(medicalData.getStatus())){ + if (medicalData.getCount().contains("+")){ + statistics.setCheckedCount(statistics.getCheckedCount()+Integer.parseInt(medicalData.getCount())); + }else { + statistics.setCheckedCount(Integer.parseInt(medicalData.getCount())); + } + } + } + } } return list; } @Override public MedicalAbnormalStatisticsVO medicalAbnormalStatistics (MedicalAbnormalStatisticsDTO dto){ - Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId()) - ? FakerDataConstant.XJ_MEDICAL_DATA_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.XJ_MEDICAL_DATA_ENABLE); - if (enable != null && enable) { - MedicalAbnormalStatisticsVO vo = XjMedicalDataFakerDataNew(dto.getCenterId()); - if (vo != null) { - return vo; + MedicalAbnormalStatisticsVO statisticsVO = redisClientUtil.get(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,MedicalAbnormalStatisticsVO.class); + // 获取假数据 + DataDetailVO dataDetailVO = screenDataService.dataDetail(dto.getCenterId(), "34"); + if (ObjUtil.isEmpty(statisticsVO)){ + statisticsVO = new MedicalAbnormalStatisticsVO(); + if (null != dataDetailVO){ + if ("1".equals(dataDetailVO.getTotalCountStatus())){ + statisticsVO.setTotalCount(Integer.valueOf(dataDetailVO.getTotalCount())); + } + if ("1".equals(dataDetailVO.getCardiovaAbCountStatus())){ + statisticsVO.setCardiovaAbCount(Integer.valueOf(dataDetailVO.getCardiovaAbCount())); + } + if ("1".equals(dataDetailVO.getCerebrovAbCountStatus())){ + statisticsVO.setCerebrovAbCount(Integer.valueOf(dataDetailVO.getCerebrovAbCount())); + } + if ("1".equals(dataDetailVO.getCctaAbCountStatus())){ + statisticsVO.setCctaAbCount(Integer.valueOf(dataDetailVO.getCctaAbCount())); + } + } + }else { + if (null != dataDetailVO){ + if ("1".equals(dataDetailVO.getTotalCountStatus())){ + if (dataDetailVO.getTotalCount().contains("+")){ + statisticsVO.setTotalCount(statisticsVO.getTotalCount() + Integer.parseInt(dataDetailVO.getTotalCount())); + }else { + statisticsVO.setTotalCount(Integer.valueOf(dataDetailVO.getTotalCount())); + } + } + if ("1".equals(dataDetailVO.getCardiovaAbCountStatus())){ + if (dataDetailVO.getCardiovaAbCount().contains("+")){ + statisticsVO.setCardiovaAbCount(statisticsVO.getCardiovaAbCount() + Integer.parseInt(dataDetailVO.getCardiovaAbCount())); + }else { + statisticsVO.setCardiovaAbCount(Integer.valueOf(dataDetailVO.getCardiovaAbCount())); + } + } + if ("1".equals(dataDetailVO.getCerebrovAbCountStatus())){ + if (dataDetailVO.getCerebrovAbCount().contains("+")){ + statisticsVO.setCerebrovAbCount(statisticsVO.getCerebrovAbCount() + Integer.parseInt(dataDetailVO.getCerebrovAbCount())); + }else { + statisticsVO.setCerebrovAbCount(Integer.valueOf(dataDetailVO.getCerebrovAbCount())); + } + } + if ("1".equals(dataDetailVO.getCctaAbCountStatus())){ + if (dataDetailVO.getCctaAbCount().contains("+")){ + statisticsVO.setCctaAbCount(statisticsVO.getCctaAbCount() + Integer.parseInt(dataDetailVO.getCctaAbCount())); + }else { + statisticsVO.setCctaAbCount(Integer.valueOf(dataDetailVO.getCctaAbCount())); + } + } } } - MedicalAbnormalStatisticsVO statisticsVO = redisClientUtil.get(MEDICAL,MEDICAL_ABNORMAL_STATISTICS,MedicalAbnormalStatisticsVO.class); - if (ObjUtil.isEmpty(statisticsVO)){ - return new MedicalAbnormalStatisticsVO(); - } + return statisticsVO; } @Override - public HealthSignVO healthSign (HealthSignDTO dto){ - Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(dto.getCenterId()) - ? FakerDataConstant.XJ_HEALTH_SIGN_COUNT_ENABLE + ":" + dto.getCenterId() : FakerDataConstant.XJ_HEALTH_SIGN_COUNT_ENABLE); - if (enable != null && enable) { - HealthSignVO vo = XjHealthSignFakerDataNew(dto.getCenterId()); - if (vo != null) { - return vo; + public HealthSignVO healthSign(HealthSignDTO dto) { + // 健康打卡数据 + HealthSignVO vo = redisClientUtil.get(MEDICAL, HEALTH_SIGN, HealthSignVO.class); + // 获取数据 + DataDetailVO dataDetailVO = screenDataService.dataDetail(dto.getCenterId(), "33"); + + if (dataDetailVO == null) { + return vo != null ? vo : new HealthSignVO(); + } + + if (vo == null) { + vo = newHealthSignVO(dataDetailVO); + } else { + updateHealthSignVO(vo, dataDetailVO); + } + + return vo; + } + + private HealthSignVO newHealthSignVO(DataDetailVO dataDetailVO) { + HealthSignVO vo = new HealthSignVO(); + + // 减重 + setIfActive(vo::setWeightLossCountDay, dataDetailVO.getWeightLossCountDayStatus(), dataDetailVO.getWeightLossCountDay()); + setIfActive(vo::setWeightLossCountMonth, dataDetailVO.getWeightLossCountMonthStatus(), dataDetailVO.getWeightLossCountMonth()); + setIfActive(vo::setWeightLossAbnormalCountDay, dataDetailVO.getWeightLossAbnormalCountDayStatus(), dataDetailVO.getWeightLossAbnormalCountDay()); + setIfActive(vo::setWeightLossAbnormalCountMonth, dataDetailVO.getWeightLossAbnormalCountMonthStatus(), dataDetailVO.getWeightLossAbnormalCountMonth()); + + // 血糖 + setIfActive(vo::setBloodSugarCountDay, dataDetailVO.getBloodSugarCountDayStatus(), dataDetailVO.getBloodSugarCountDay()); + setIfActive(vo::setBloodSugarCountMonth, dataDetailVO.getBloodSugarCountMonthStatus(), dataDetailVO.getBloodSugarCountMonth()); + setIfActive(vo::setBloodSugarAbnormalCountDay, dataDetailVO.getBloodSugarAbnormalCountDayStatus(), dataDetailVO.getBloodSugarAbnormalCountDay()); + setIfActive(vo::setBloodSugarAbnormalCountMonth, dataDetailVO.getBloodSugarAbnormalCountMonthStatus(), dataDetailVO.getBloodSugarAbnormalCountMonth()); + + // 血压 + setIfActive(vo::setBloodPressureCountDay, dataDetailVO.getBloodPressureCountDayStatus(), dataDetailVO.getBloodPressureCountDay()); + setIfActive(vo::setBloodPressureCountMonth, dataDetailVO.getBloodPressureCountMonthStatus(), dataDetailVO.getBloodPressureCountMonth()); + setIfActive(vo::setBloodPressureAbnormalCountDay, dataDetailVO.getBloodPressureAbnormalCountDayStatus(), dataDetailVO.getBloodPressureAbnormalCountDay()); + setIfActive(vo::setBloodPressureAbnormalCountMonth, dataDetailVO.getBloodPressureAbnormalCountMonthStatus(), dataDetailVO.getBloodPressureAbnormalCountMonth()); + + return vo; + } + + private void updateHealthSignVO(HealthSignVO vo, DataDetailVO dataDetailVO) { + // 减重 + updateIfActive(vo::getWeightLossCountDay, vo::setWeightLossCountDay, + dataDetailVO.getWeightLossCountDayStatus(), dataDetailVO.getWeightLossCountDay()); + updateIfActive(vo::getWeightLossCountMonth, vo::setWeightLossCountMonth, + dataDetailVO.getWeightLossCountMonthStatus(), dataDetailVO.getWeightLossCountMonth()); + updateIfActive(vo::getWeightLossAbnormalCountDay, vo::setWeightLossAbnormalCountDay, + dataDetailVO.getWeightLossAbnormalCountDayStatus(), dataDetailVO.getWeightLossAbnormalCountDay()); + updateIfActive(vo::getWeightLossAbnormalCountMonth, vo::setWeightLossAbnormalCountMonth, + dataDetailVO.getWeightLossAbnormalCountMonthStatus(), dataDetailVO.getWeightLossAbnormalCountMonth()); + + // 血糖 + updateIfActive(vo::getBloodSugarCountDay, vo::setBloodSugarCountDay, + dataDetailVO.getBloodSugarCountDayStatus(), dataDetailVO.getBloodSugarCountDay()); + updateIfActive(vo::getBloodSugarCountMonth, vo::setBloodSugarCountMonth, + dataDetailVO.getBloodSugarCountMonthStatus(), dataDetailVO.getBloodSugarCountMonth()); + updateIfActive(vo::getBloodSugarAbnormalCountDay, vo::setBloodSugarAbnormalCountDay, + dataDetailVO.getBloodSugarAbnormalCountDayStatus(), dataDetailVO.getBloodSugarAbnormalCountDay()); + updateIfActive(vo::getBloodSugarAbnormalCountMonth, vo::setBloodSugarAbnormalCountMonth, + dataDetailVO.getBloodSugarAbnormalCountMonthStatus(), dataDetailVO.getBloodSugarAbnormalCountMonth()); + + // 血压 + updateIfActive(vo::getBloodPressureCountDay, vo::setBloodPressureCountDay, + dataDetailVO.getBloodPressureCountDayStatus(), dataDetailVO.getBloodPressureCountDay()); + updateIfActive(vo::getBloodPressureCountMonth, vo::setBloodPressureCountMonth, + dataDetailVO.getBloodPressureCountMonthStatus(), dataDetailVO.getBloodPressureCountMonth()); + updateIfActive(vo::getBloodPressureAbnormalCountDay, vo::setBloodPressureAbnormalCountDay, + dataDetailVO.getBloodPressureAbnormalCountDayStatus(), dataDetailVO.getBloodPressureAbnormalCountDay()); + updateIfActive(vo::getBloodPressureAbnormalCountMonth, vo::setBloodPressureAbnormalCountMonth, + dataDetailVO.getBloodPressureAbnormalCountMonthStatus(), dataDetailVO.getBloodPressureAbnormalCountMonth()); + } + + private void setIfActive(Consumer setter, String status, String value) { + if ("1".equals(status) && value != null) { + setter.accept(Integer.valueOf(value)); + } + } + + private void updateIfActive(Supplier getter, Consumer setter, + String status, String value) { + if ("1".equals(status) && value != null) { + int current = getter.get() != null ? getter.get() : 0; + if (value.contains("+")) { + setter.accept(current + Integer.parseInt(value.replace("+", ""))); + } else { + setter.accept(Integer.parseInt(value)); } } - HealthSignVO vo = redisClientUtil.get(MEDICAL,HEALTH_SIGN,HealthSignVO.class); - if (null == vo){ - return new HealthSignVO(); - } - return vo; } @Override diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblHelpCenterServiceImpl.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblHelpCenterServiceImpl.java index 1fc4b35..04b1e78 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblHelpCenterServiceImpl.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblHelpCenterServiceImpl.java @@ -7,6 +7,8 @@ import com.renkang.emergency.bean.response.XjDemandTypeFakerData; import com.renkang.emergency.entity.TblHelpCenter; import com.renkang.emergency.entity.TblHelpCentorVo; import com.renkang.emergency.entity.TblUserHelpVo; +import com.renkang.emergency.entity.vo.DataDetailVO; +import com.renkang.emergency.largeScreen.service.ILargeScreenDataService; import com.renkang.emergency.mapper.TblHelpCenterMapper; import com.renkang.emergency.service.ITbHelpCenterService; import lombok.extern.slf4j.Slf4j; @@ -31,6 +33,8 @@ public class TblHelpCenterServiceImpl extends ServiceImpl sicknessTypeStatistic(String sex, String depart,String centerId) { - Boolean enable = (Boolean) redisUtil.get(StrUtil.isNotEmpty(centerId) ? FakerDataConstant.XJ_DEMAND_TYPE_ENABLE + ":" + centerId : FakerDataConstant.XJ_DEMAND_TYPE_ENABLE); - if (enable != null && enable) { - List vo = XjDemandTypeFakerData(centerId); - if (vo != null) { - return vo; - } - } List statistic = emergencyOrderApiService.getSicknessTypeStatistic(sex, depart); for (TblHelpCentorVo tblHelpCentorVo : statistic) { if (tblHelpCentorVo.getType().equals("0")) { tblHelpCentorVo.setName("120"); } else if(tblHelpCentorVo.getType().equals("1")){ tblHelpCentorVo.setName("应急就医"); - }else if (tblHelpCentorVo.getType().equals("2")){ - tblHelpCentorVo.setName("急救联动"); }else { tblHelpCentorVo.setName("其他"); } } + // 获取假数据 + DataDetailVO dataDetailVO = screenDataService.dataDetail(centerId, "31"); + statistic.forEach(item->{ + if (item.getType().equals("0")) { + if ("1".equals(dataDetailVO.getHospitalCountStatus())){ + if (dataDetailVO.getHospitalCount().contains("+")){ + item.setCount(Integer.valueOf(item.getCount()+dataDetailVO.getHospitalCount())); + }else { + item.setCount(Integer.valueOf(dataDetailVO.getHospitalCount())); + } + } + } + if (item.getType().equals("1")) { + if ("1".equals(dataDetailVO.getEmergencyCountStatus())){ + if (dataDetailVO.getEmergencyCount().contains("+")){ + item.setCount(Integer.valueOf(item.getCount()+dataDetailVO.getEmergencyCount())); + }else { + item.setCount(Integer.valueOf(dataDetailVO.getEmergencyCount())); + } + } + } + }); return statistic; } diff --git a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblUserHelpServiceImpl.java b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblUserHelpServiceImpl.java index 0bd8fe8..87c0dba 100644 --- a/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblUserHelpServiceImpl.java +++ b/health-emergency/health-emergency-biz/src/main/java/com/renkang/emergency/service/impl/TblUserHelpServiceImpl.java @@ -14,6 +14,8 @@ import com.renkang.emergency.entity.TblUserHelp; import com.renkang.emergency.entity.TblUserHelpVo; import com.renkang.emergency.entity.dto.PhoneListDTO; import com.renkang.emergency.entity.dto.StatisticsDTO; +import com.renkang.emergency.entity.vo.DataDetailVO; +import com.renkang.emergency.largeScreen.service.ILargeScreenDataService; import com.renkang.emergency.mapper.TblUserHelpMapper; import com.renkang.emergency.service.ISysNotifySmsPhoneService; import com.renkang.emergency.service.ITbUserHelpMacService; @@ -70,6 +72,8 @@ public class TblUserHelpServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); if (StrUtil.isNotBlank(dto.getCondition()) && !"1".equals(dto.getCondition())) { // 1:全部,2:年,3:月,4:周 @@ -122,19 +119,70 @@ public class TblUserHelpServiceImpl extends ServiceImpl list = this.list(queryWrapper); - // 呼入电话数量 - vo.setGross(list.size()); - // 受理电话数量 - vo.setAlerdyreceive((int) list.stream().filter(a -> "1".equals(a.getStatus()) || "2".equals(a.getStatus())).count()); - // 突发重大伤病应急数量 - vo.setJqqz((int) list.stream().filter(a -> "2".equals(a.getType())).count()); - // 重大伤病应急就医数量 - vo.setDbjy((int) list.stream().filter(a -> "1".equals(a.getType())).count()); + + // 获取假数据 + DataDetailVO dataDetailVO = screenDataService.dataDetail(dto.getCenterId(), "9"); + // 呼入电话 + if ("1".equals(dataDetailVO.getLatestCallStatus())) { + if (dataDetailVO.getLatestCall().contains("+")) { + vo.setGross(list.size() + Integer.parseInt(dataDetailVO.getLatestCall())); + } else { + vo.setGross(Integer.valueOf(dataDetailVO.getLatestCall())); + } + } else { + vo.setGross(list.size()); + } + // 受理电话 + if ("1".equals(dataDetailVO.getLatestAcceptCallStatus())) { + if (dataDetailVO.getLatestAcceptCall().contains("+")) { + int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getStatus()) || "2".equals(a.getStatus())).count()); + vo.setAlerdyreceive(count + Integer.parseInt(dataDetailVO.getLatestAcceptCall())); + } else { + vo.setAlerdyreceive(Integer.parseInt(dataDetailVO.getLatestAcceptCall())); + } + } else { + int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getStatus()) || "2".equals(a.getStatus())).count()); + vo.setAlerdyreceive(count); + } + // 突发重大伤病应急 + if ("1".equals(dataDetailVO.getIllNumStatus())) { + if (dataDetailVO.getIllNum().contains("+")) { + int count = Math.toIntExact(list.stream().filter(a -> "2".equals(a.getType())).count()); + vo.setJqqz(count + Integer.parseInt(dataDetailVO.getIllNum())); + } else { + vo.setJqqz(Integer.parseInt(dataDetailVO.getIllNum())); + } + } else { + int count = Math.toIntExact(list.stream().filter(a -> "2".equals(a.getType())).count()); + vo.setJqqz(count); + } + // 重大伤病应急就医 + if ("1".equals(dataDetailVO.getEmergencyNumStatus())) { + if (dataDetailVO.getEmergencyNum().contains("+")) { + int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getType())).count()); + vo.setDbjy(count + Integer.parseInt(dataDetailVO.getEmergencyNum())); + }else { + vo.setDbjy(Integer.parseInt(dataDetailVO.getEmergencyNum())); + } + }else { + int count = Math.toIntExact(list.stream().filter(a -> "1".equals(a.getType())).count()); + vo.setDbjy(count); + } // 累计处置 - vo.setTotalacceptance(tblUserHelpMapper.getTotalAcceptance()); + Integer totalAcceptance = tblUserHelpMapper.getTotalAcceptance(); + if ("1".equals(dataDetailVO.getTotalDisposalStatus())) { + if (dataDetailVO.getTotalDisposal().contains("+")) { + vo.setTotalacceptance(totalAcceptance + Integer.parseInt(dataDetailVO.getTotalDisposal())); + }else { + vo.setTotalacceptance(Integer.parseInt(dataDetailVO.getTotalDisposal())); + } + }else { + vo.setTotalacceptance(totalAcceptance); + } return vo; }