From bd60bc19a4caf6d6d76ceed3c5154d50e7707da8 Mon Sep 17 00:00:00 2001 From: shiyang <316555390@qq.com> Date: Wed, 19 Jan 2022 16:58:30 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BE=8E=E7=94=9F=E5=8E=BF=E5=8C=BB=E9=99=A2?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=95=B0=E6=8D=AE=E5=88=86=E6=9E=90=E6=8A=A5?= =?UTF-8?q?=E5=91=8A-4.3.2.=E9=AB=98=E5=8D=B1=E9=A2=84=E8=AF=8A=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/query/BabyModelQuery.java | 6 +- .../web/controller/BabyCheckController.java | 15 ++++ .../operate/web/facade/BabyCheckFacade.java | 96 +++++++++++++++++++++- .../operate/web/result/BabyRiskSortResult.java | 41 +++++++++ 4 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyRiskSortResult.java diff --git a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java index 369dc17..379c736 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/BabyModelQuery.java @@ -1577,7 +1577,11 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { } if (!StringUtils.isEmpty(highRiskInfo)) { - condition = condition.and("highRiskInfo", highRiskInfo, MongoOper.IN); + if(StringUtils.isNotEmpty(hospitalId)&&"216".equals(hospitalId)){ + condition = condition.and("qhdHighRiskInfo.id", highRiskInfo, MongoOper.IN); + }else { + condition = condition.and("highRiskInfo", highRiskInfo, MongoOper.IN); + } } if (!StringUtils.isEmpty(weakSonInfo)) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java index 2fd10bb..b37d1f4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyCheckController.java @@ -17,6 +17,7 @@ import com.lyms.platform.operate.web.request.*; import com.lyms.platform.operate.web.service.PatientWeightService; import com.lyms.platform.permission.service.CouponService; import com.lyms.platform.pojo.AntExChuModel; +import com.lyms.platform.pojo.BabyModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -678,4 +679,18 @@ public class BabyCheckController extends BaseController { @RequestParam(required = true)Date endDate) { return babyCheckFacade.getBabyCheckStatis(hospitalId, startDate, endDate); } + /** + * 统计管理-孕产妇数据统计-高危预诊断(建档儿童的高危统计) + * + * @param buildTime + * @param request + * @return + */ + @RequestMapping(value = "/getBabyRiskStatis", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse getBabyRiskStatis(@RequestParam(required = true) String buildTime, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return babyCheckFacade.getBabyRiskStatis(buildTime, loginState.getId()); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java index da4b19c..69ad47a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java @@ -23,9 +23,7 @@ import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; -import com.mchange.lang.IntegerUtils; import com.mongodb.BasicDBObject; -import jdk.nashorn.internal.ir.LiteralNode; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.map.HashedMap; import org.springframework.beans.factory.annotation.Autowired; @@ -4972,4 +4970,98 @@ public class BabyCheckFacade extends BaseServiceImpl { br.setObject(map); return br; } + + public BaseResponse getBabyRiskStatis(final String buildTime, Integer userId) { + BaseResponse br=new BaseResponse(); + final String hospitalId = autoMatchFacade.getHospitalId(userId); + BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); + basicConfigQuery.setYn(YnEnums.YES.getId()); + basicConfigQuery.setTypeId(SystemConfig.BABY_HIGH_RISK_ID); + basicConfigQuery.setEnable(1); + List data = new ArrayList <>(); + List riskLevelConfig = basicConfigService.queryBasicConfig(basicConfigQuery); + + if (CollectionUtils.isNotEmpty(riskLevelConfig)) { + + int batchSize = 20; + int end = 0; + List listFuture = new ArrayList <>(); + for (int i = 0; i < riskLevelConfig.size(); i += batchSize) { + end = (end + batchSize); + if (end > riskLevelConfig.size()) { + end = riskLevelConfig.size(); + } + final List risks = riskLevelConfig.subList(i, end); + listFuture.add(commonThreadPool.submit(new Callable() { + @Override + public Object call() throws Exception { + if (CollectionUtils.isNotEmpty(risks)) + { + List data1 = new ArrayList <>(); + for (final BasicConfig config : risks) + { + if("d42eec03-aa86-45b8-a4e0-78a0ff365fb6".equals(config.getId())) + { + continue; + } + + BabyModelQuery babyModelQuery = new BabyModelQuery(); + babyModelQuery.setYn(YnEnums.YES.getId()); + babyModelQuery.setHospitalId(hospitalId); + babyModelQuery.setHighRisk(1); + babyModelQuery.setHighRiskInfo(config.getId()); + + //建档时间 + if (StringUtils.isNotEmpty(buildTime)) { + String nextDateStr = buildTime; + String[] dates = nextDateStr.split(" - "); + + babyModelQuery.setBuildDateStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + babyModelQuery.setBuildDateEnd(DateUtil.parseYMD(dates[1])); + } + } + + //总的儿童条数 + int allBabyRiskCount = babyBookbuildingService.queryBabyCount(babyModelQuery); + if (allBabyRiskCount == 0) + { + continue; + } + data1.add(new BabyRiskSortResult(config.getName(),allBabyRiskCount)); + } + return data1; + } + return null; + } + })); + } + for (Future f : listFuture) { + try { + data.addAll((List) f.get(30, TimeUnit.SECONDS)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "convertToQuanPatient get result Future error."); + } + } + if (data.size() >0) + { + Collections.sort(data); + data = data.subList(0,10); + int all = 0; + for (BabyRiskSortResult result : data) + { + all+=result.getCount(); + } + for (BabyRiskSortResult result : data) + { + result.setPercent(StringUtils.getPercent(result.getCount(),all)); + } + } + + } + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + br.setObject(data); + return br; + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyRiskSortResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyRiskSortResult.java new file mode 100644 index 0000000..fff1e63 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyRiskSortResult.java @@ -0,0 +1,41 @@ +package com.lyms.platform.operate.web.result; + +public class BabyRiskSortResult implements Comparable{ + private String riskName; + private Integer count; + private String percent; + + public BabyRiskSortResult(String riskName, Integer count) { + this.riskName = riskName; + this.count = count; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public String getRiskName() { + return riskName; + } + + public void setRiskName(String riskName) { + this.riskName = riskName; + } + + public String getPercent() { + return percent; + } + + public void setPercent(String percent) { + this.percent = percent; + } + + @Override + public int compareTo(BabyRiskSortResult o) { + return o.getCount().compareTo(this.getCount()); + } +} -- 1.8.3.1