diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index 8d9d29a..8724f94 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.service.impl; import com.lyms.hospitalapi.pojo.ReportModel; +import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.common.enums.CouponEnums; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.PageResult; @@ -14,7 +15,9 @@ import com.lyms.platform.operate.web.service.IReportService; import com.lyms.platform.operate.web.utils.*; import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lymsh.platform.reportdata.model.echarts.Series; import org.apache.commons.collections.MapUtils; @@ -62,6 +65,12 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService @Autowired private OrganizationService organizationService; + @Autowired + private UsersService usersService; + + @Autowired + private CommonService commonService; + private static final Map colorMap = new HashMap<>(); /** @@ -1207,31 +1216,82 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService @Override public BaseObjectResponse getCheckNumberInfo(Integer childBirth, Date startDate, Date endDate, Integer startWeek, Integer endWeek, Integer number, Integer id, Integer currentPage, Integer pageSize) { + String hospitalId = autoMatchFacade.getHospitalId(id); Map restMap = (Map) getCheckNumber(startDate, endDate, startWeek, endWeek, childBirth, id).getData(); Map> pidMap = (Map>) restMap.get("pidMap"); if(number == null) { /** 为null就查询总数 */ number = 0; } + Integer count = pidMap.get(number).size(); List ids = CollectionUtils.getPageIds(pidMap.get(number), currentPage, pageSize); - System.out.println(ids); - - + List> rest = new ArrayList<>(); + PageResult pageResult = new PageResult(count, currentPage, pageSize, rest); + for (String pid : ids) { + Map tempMap = new HashMap<>(); + PersonModel personModel = mongoTemplate.findById(pid, PersonModel.class); + if(personModel != null) { + List antenatalExaminationModels = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid)).with(new Sort(Sort.Direction.DESC, "checkDate")), AntenatalExaminationModel.class); + List antExChuModels = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid)).with(new Sort(Sort.Direction.DESC, "checkTime")), AntExChuModel.class); + tempMap.put("NAME", personModel.getName()); + tempMap.put("TOTAL_NUM", antenatalExaminationModels.size() + antExChuModels.size()); + Integer benyuan = 0; + for (AntenatalExaminationModel antenatalExaminationModel : antenatalExaminationModels) { + if(antenatalExaminationModel.getHospitalId().equals(hospitalId)) { + benyuan++; + } + } + for (AntExChuModel antExChuModel : antExChuModels) { + if(antExChuModel.getHospitalId().equals(hospitalId)) { + benyuan++; + } + } + tempMap.put("BENYUAN_NUM", benyuan); + if(CollectionUtils.isNotEmpty(antenatalExaminationModels)) { + AntenatalExaminationModel examinationModel = antenatalExaminationModels.get(0); + tempMap.put("YUNZHOU", DateUtil.getWeek(examinationModel.getLastMenses(), examinationModel.getCheckDate())); + tempMap.put("HIGH_RISK_GRADE", mongoUtil.findName(examinationModel.getRiskScore())); + tempMap.put("HIGH_RISK_FACTOR", mongoUtil.findName(examinationModel.getRiskFactor())); +// tempMap.put("EDD_DATE", examinationModel.); + tempMap.put("LAST_EXAMINE_DATE", examinationModel.getLastMenses()); + String prodDoctor = examinationModel.getCheckDoctor(); + if(StringUtils.isNotBlank(prodDoctor)) { + Users users = usersService.getUsers(Integer.parseInt(prodDoctor)); + tempMap.put("LAST_EXAMINE_DATE", users == null ? null : users.getName()); + } + } else if(CollectionUtils.isNotEmpty(antExChuModels)) { + AntExChuModel antExChuModel = antExChuModels.get(0); + tempMap.put("YUNZHOU", DateUtil.getWeek(antExChuModel.getLastMenses(), antExChuModel.getCheckTime())); + List riskLeve = commonService.findRiskLevel(commonService.findRiskLevel(antExChuModel.getHighrisk())); + tempMap.put("HIGH_RISK_GRADE", mongoUtil.findName(antExChuModel.getHighriskSocre())); /** 高危等级 */ + tempMap.put("HIGH_RISK_FACTOR", mongoUtil.findName(antExChuModel.getHighrisk())); /** 风险因素 */ + tempMap.put("EDD_DATE", antExChuModel.getDueDate()); + tempMap.put("LAST_EXAMINE_DATE", antExChuModel.getCheckTime()); + String prodDoctor = antExChuModel.getProdDoctor(); + if(StringUtils.isNotBlank(prodDoctor)) { + Users users = usersService.getUsers(Integer.parseInt(prodDoctor)); + tempMap.put("LAST_EXAMINE_DATE", users == null ? null : users.getName()); + } + } - return null; + rest.add(tempMap); + } + setColor(rest); + pageResult.setGrid(rest); + } + return RespBuilder.buildSuccess(pageResult); } private List> getCheckNumerGrid(List> datas, List yData, Map> pidMap) { /** key = pid, value = 初诊复诊记录 */ Map>> userCheckInfo = new HashMap<>(); for (Map data : datas) { - String patientId = (String) data.get("patientId"); - if(userCheckInfo.containsKey(patientId)) { - List> maps = userCheckInfo.get(patientId); - maps.add(data); + String pid = (String) data.get("pid"); + if(userCheckInfo.containsKey(pid)) { + userCheckInfo.get(pid).add(data); } else { List> maps = new ArrayList<>(); maps.add(data); - userCheckInfo.put(patientId, maps); + userCheckInfo.put(pid, maps); } } Map countMap = new HashMap<>(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java index 1744fc6..aa97ae4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/CollectionUtils.java @@ -162,7 +162,10 @@ public class CollectionUtils extends org.apache.commons.collections.CollectionUt public static List getPageIds(List data, Integer page, Integer limit) { Integer startIndex = (page - 1) * limit; Integer endIndex = startIndex + limit; - return data.subList(startIndex, endIndex); + if(data.size() > endIndex) { + return data.subList(startIndex, endIndex); + } + return data.subList(startIndex, data.size()); } }