From b672967646c75b7a6d94fbeee1519915b0a81cb8 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 22 Aug 2018 09:48:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A9=E4=BA=A7=E6=9C=BA=E6=9E=84=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/utils/ExcelUtil.java | 20 +- .../com/lyms/platform/query/BabyModelQuery.java | 14 + .../com/lyms/platform/query/MatDeliverQuery.java | 86 +++++ .../web/controller/MatDeliverController.java | 48 +++ .../operate/web/controller/TestController.java | 91 +---- .../operate/web/facade/MatDeliverFacade.java | 164 ++++++++- .../operate/web/worker/DueOrgCountWorker.java | 390 +++++++++++++++++++++ 7 files changed, 720 insertions(+), 93 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/DueOrgCountWorker.java diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java index 757d534..6ceedb2 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java @@ -1,8 +1,6 @@ package com.lyms.platform.common.utils; -import java.io.File; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; import java.util.*; @@ -237,13 +235,17 @@ public class ExcelUtil } - public static void readExclFile(String filePath) + public static void writeExclFile(String filePath,OutputStream out) { + File file = new File(filePath); + InputStream in = null; Workbook wb = null; try { - wb = Workbook.getWorkbook(file); - WritableWorkbook book = wb.createWorkbook(file, wb); + in = new FileInputStream(file); + wb = Workbook.getWorkbook(in); + + WritableWorkbook book = wb.createWorkbook(out,wb); WritableSheet ws = book.getSheet(0); List columNames = new ArrayList<>(); @@ -342,8 +344,8 @@ public class ExcelUtil } - public static void main(String[] args) { - ExcelUtil.readExclFile("F:\\需求文档\\my.xls"); - } + // public static void main(String[] args) { +// ExcelUtil.writeExclFile("F:\\需求文档\\my.xls"); +// } } 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 dc7b8c2..beebe95 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 @@ -176,6 +176,17 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { private Date createdTimeStart; private Date createdTimeEnd; + //是否畸形 0非畸形 1畸形 + private Integer malformation; + + public Integer getMalformation() { + return malformation; + } + + public void setMalformation(Integer malformation) { + this.malformation = malformation; + } + public Date getCreatedTimeEnd() { return createdTimeEnd; } @@ -654,6 +665,9 @@ public class BabyModelQuery extends BaseQuery implements IConvertToNativeQuery { if (null != source) { condition = condition.and("source", source, MongoOper.IS); } + if (null != malformation) { + condition = condition.and("malformation", malformation, MongoOper.IS); + } List mongoCondits = new ArrayList<>(); if (-1 != yn) { diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java index 1785dc5..713b5be 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MatDeliverQuery.java @@ -90,6 +90,20 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery private String matFollowId; + private String pregnancyOut; + + private List pregnancyOuts; + + //台数 + private Integer tireNumber; + + //会阴情况 + private String perinealCondition; + //撕裂等级 + private List siLielevels; + + //畸形 0非畸形 1畸形 + private Integer deformity; @Override public MongoQuery convertToQuery() { @@ -101,6 +115,23 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery if (CollectionUtils.isNotEmpty(ids)) { condition = condition.and("id", ids, MongoOper.IN); } + + if (CollectionUtils.isNotEmpty(pregnancyOuts)) { + condition = condition.and("baby.pregnancyOut", pregnancyOuts, MongoOper.IN); + } + + if (tireNumber != null) { + condition = condition.and("tireNumber", tireNumber, MongoOper.IS); + } + + if (perinealCondition != null) { + condition = condition.and("perinealCondition", perinealCondition, MongoOper.IS); + } + + if (CollectionUtils.isNotEmpty(siLielevels)) { + condition = condition.and("siLielevel", siLielevels, MongoOper.IN); + } + if (null != pid) { condition = condition.and("pid", pid, MongoOper.IS); } @@ -115,6 +146,14 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery condition = condition.and("fmAge", fmAge, MongoOper.IS); } + if (null != pregnancyOut) { + condition = condition.and("baby.pregnancyOut", pregnancyOut, MongoOper.IS); + } + + if (null != deformity) { + condition = condition.and("baby.deformity", deformity, MongoOper.IS); + } + if (hloseBloodType != null) { /** * 出血量: @@ -242,6 +281,53 @@ public class MatDeliverQuery extends BaseQuery implements IConvertToNativeQuery return condition.toMongoQuery(); } + public List getPregnancyOuts() { + return pregnancyOuts; + } + + public void setPregnancyOuts(List pregnancyOuts) { + this.pregnancyOuts = pregnancyOuts; + } + + public Integer getDeformity() { + return deformity; + } + + public void setDeformity(Integer deformity) { + this.deformity = deformity; + } + + public String getPerinealCondition() { + return perinealCondition; + } + + public void setPerinealCondition(String perinealCondition) { + this.perinealCondition = perinealCondition; + } + + public List getSiLielevels() { + return siLielevels; + } + + public void setSiLielevels(List siLielevels) { + this.siLielevels = siLielevels; + } + + public Integer getTireNumber() { + return tireNumber; + } + + public void setTireNumber(Integer tireNumber) { + this.tireNumber = tireNumber; + } + + public String getPregnancyOut() { + return pregnancyOut; + } + + public void setPregnancyOut(String pregnancyOut) { + this.pregnancyOut = pregnancyOut; + } public Integer getFmAge() { return fmAge; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java index a5d139b..07260f6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java @@ -393,4 +393,52 @@ public class MatDeliverController extends BaseController{ LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); matDeliverFacade.exportChildbearAgeCount(birth, loginState.getId(), hospitalId, proviceId, cityId, areaId, httpServletResponse); } + + + /** + * 助产机构报表 + * @param request + * @param time + * @param hospitalId + * @param proviceId + * @param cityId + * @param areaId + * @param httpServletResponse + */ + @TokenRequired + @ResponseBody + @RequestMapping(value = "getDueOrgCount", method = RequestMethod.GET) + public BaseObjectResponse getDueOrgCount(HttpServletRequest request, + @RequestParam(required = false) String time, + @RequestParam(required = false) String hospitalId, + @RequestParam(required = false) String proviceId, + @RequestParam(required = false) String cityId, + @RequestParam(required = false) String areaId) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return matDeliverFacade.getDueOrgCount(time, loginState.getId(), hospitalId, proviceId, cityId, areaId); + } + + + /** + *助产机构报表导出 + * @param request + * @param hospitalId + * @param proviceId + * @param cityId + * @param areaId + * @param httpServletResponse + */ + @TokenRequired + @ResponseBody + @RequestMapping(value = "exporDueOrgCount", method = RequestMethod.GET) + public void exporDueOrgCount(HttpServletRequest request, + @RequestParam(required = false) String time, + @RequestParam(required = false) String hospitalId, + @RequestParam(required = false) String proviceId, + @RequestParam(required = false) String cityId, + @RequestParam(required = false) String areaId, + HttpServletResponse httpServletResponse) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + matDeliverFacade.exporDueOrgCount(time, loginState.getId(), hospitalId, proviceId, cityId, areaId, httpServletResponse); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index a2b05a6..85088cd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -159,6 +159,9 @@ public class TestController extends BaseController { @Autowired private CdGwInterface cdGwInterface; + @Autowired + private MatDeliverFacade matDeliverFacade; + static Map highRisks = new HashMap<>(); @@ -1899,91 +1902,17 @@ public class TestController extends BaseController { } return "handleSieveTime ....."; } + + /** + * 育龄服务生孩统计 数据处理 + * @param id + * @return + */ @RequestMapping(value="/handleChildbearAgeData") @ResponseBody public String handleChildbearAgeData(@RequestParam(required = false)final String id) { - new Thread(new Runnable() { - @Override - public void run() { - int limt = 1000; - int page = 1; - PersonModelQuery personModelQuery = new PersonModelQuery(); - personModelQuery.setYn(YnEnums.YES.getId()); - personModelQuery.setTypes(new Integer[]{1, 3}); //孕妇或者产妇基本信息 - personModelQuery.setNeed("true"); - personModelQuery.setLimit(limt); - if (StringUtils.isNotEmpty(id)) - { - personModelQuery.setId(id); - } - while (true) - { - System.out.println("page======"+page); - personModelQuery.setPage(page); - - List personModels = personService.queryPersons(personModelQuery,Sort.Direction.DESC, "created"); - if (CollectionUtils.isNotEmpty(personModels)) - { - System.out.println("sss"); - int batchSize = 200; - int end = 0; - for (int i = 0; i < personModels.size(); i += batchSize) { - end = (end + batchSize); - if (end > personModels.size()) { - end = personModels.size(); - } - System.out.println("start:" + i + ",end:" + end); - final List tempList = personModels.subList(i, end); - commonThreadPool.execute(new Runnable() { - @Override - public void run() { - if (CollectionUtils.isNotEmpty(tempList)) { - for (PersonModel person : tempList) { - MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); - matDeliverQuery.setYn(YnEnums.YES.getId()); - matDeliverQuery.setPid(person.getId()); - List maternalDeliverModels = matDeliverService.query(matDeliverQuery,Sort.Direction.ASC,"created"); - if (CollectionUtils.isNotEmpty(maternalDeliverModels)) - { - int upCount = 0; - for(int i = 0 ; i < maternalDeliverModels.size() ; i++) - { - MaternalDeliverModel model = maternalDeliverModels.get(i); - List babyList = model.getBaby(); - - List fmChildTimes = new ArrayList(); - if (CollectionUtils.isNotEmpty(babyList)) - { - for (int j = 0;j < babyList.size();j++) - { - upCount+=1; - fmChildTimes.add(upCount); - model.setFmChildTimes(fmChildTimes); - } - Patients patients = patientsService.findOnePatientById(model.getParentId()); - if (patients != null) - { - model.setFmAge(DateUtil.getAge(patients.getBirth(),model.getDueDate1())); - } - } - matDeliverService.updateOne(model,model.getId()); - } - } - } - } - } - }); - } - } - else - { - break; - } - page++; - } - } - }).start(); + matDeliverFacade.handleMatDeliver(id); return "handleChildbearAgeData........"; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 0882af6..a9cf6a2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -16,6 +16,7 @@ import com.lyms.platform.operate.web.service.ITrackDownService; import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.UnitConstants; import com.lyms.platform.operate.web.worker.ChildbearAgeWorker; +import com.lyms.platform.operate.web.worker.DueOrgCountWorker; import com.lyms.platform.operate.web.worker.MaterDeliverWorker; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; @@ -35,10 +36,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.data.domain.Sort; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -200,7 +203,7 @@ public class MatDeliverFacade { deliverAddRequest.setParentId(parentId); } } - + Patients patients2 = patientsService.findOnePatientById(deliverAddRequest.getParentId()); //增加 if (StringUtils.isEmpty(deliverAddRequest.getId()) && StringUtils.isNotEmpty(deliverAddRequest.getParentId())) { MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); @@ -210,7 +213,7 @@ public class MatDeliverFacade { if (CollectionUtils.isNotEmpty(list2)) { return new BaseResponse().setErrormsg("您已分娩").setErrorcode(ErrorCodeConstants.DATA_EXIST); } - Patients patients2 = patientsService.findOnePatientById(deliverAddRequest.getParentId()); + if (CollectionUtils.isNotEmpty(patients2.getChildExtAddrs())) { List childExts = patients2.getChildExtAddrs(); String extId = childExts.get(childExts.size() - 1); @@ -363,7 +366,6 @@ public class MatDeliverFacade { MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); maternalDeliverModel.setOperator(userId); - Patients patients2 = patientsService.findOnePatientById(deliverAddRequest.getParentId()); matDeliverQuery.setPid(patients2.getPid()); matDeliverQuery.setYn(YnEnums.YES.getId()); matDeliverQuery.setDueDate(deliverAddRequest.getDueDate()); @@ -460,10 +462,105 @@ public class MatDeliverFacade { } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("parentId 为空,找不到产妇"); } + + //育龄服务生孩统计 数据处理 + if (StringUtils.isNotEmpty(patients2.getPid())) + { + handleMatDeliver(patients2.getPid()); + } + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } + + public void handleMatDeliver(final String pid) + { + new Thread(new Runnable() { + @Override + public void run() { + int limt = 1000; + int page = 1; + PersonModelQuery personModelQuery = new PersonModelQuery(); + personModelQuery.setYn(YnEnums.YES.getId()); + personModelQuery.setTypes(new Integer[]{1, 3}); //孕妇或者产妇基本信息 + personModelQuery.setNeed("true"); + personModelQuery.setLimit(limt); + if (StringUtils.isNotEmpty(pid)) + { + personModelQuery.setId(pid); + } + while (true) + { + System.out.println("page======"+page); + personModelQuery.setPage(page); + + List personModels = personService.queryPersons(personModelQuery, Sort.Direction.DESC, "created"); + if (CollectionUtils.isNotEmpty(personModels)) + { + System.out.println("sss"); + int batchSize = 200; + int end = 0; + for (int i = 0; i < personModels.size(); i += batchSize) { + end = (end + batchSize); + if (end > personModels.size()) { + end = personModels.size(); + } + System.out.println("start:" + i + ",end:" + end); + final List tempList = personModels.subList(i, end); + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) { + for (PersonModel person : tempList) { + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setYn(YnEnums.YES.getId()); + matDeliverQuery.setPid(person.getId()); + List maternalDeliverModels = matDeliverService.query(matDeliverQuery,Sort.Direction.ASC,"created"); + if (CollectionUtils.isNotEmpty(maternalDeliverModels)) + { + int upCount = 0; + for(int i = 0 ; i < maternalDeliverModels.size() ; i++) + { + MaternalDeliverModel model = maternalDeliverModels.get(i); + List babyList = model.getBaby(); + + List fmChildTimes = new ArrayList(); + if (CollectionUtils.isNotEmpty(babyList)) + { + for (int j = 0;j < babyList.size();j++) + { + upCount+=1; + fmChildTimes.add(upCount); + model.setFmChildTimes(fmChildTimes); + } + Patients patients = patientsService.findOnePatientById(model.getParentId()); + if (patients != null) + { + model.setFmAge(DateUtil.getAge(patients.getBirth(),model.getDueDate1())); + } + } + matDeliverService.updateOne(model,model.getId()); + } + } + } + } + } + }); + } + } + else + { + break; + } + page++; + } + } + }).start(); + } + + + /** * 分娩添加或更新追访信息 * @@ -2505,4 +2602,65 @@ public class MatDeliverFacade { ExceptionUtils.catchException(e,"exportChildbearAgeCount error"); } } + + public void exporDueOrgCount(String time, Integer userId, String hospitalId, String proviceId, + String cityId, String areaId, HttpServletResponse httpServletResponse) { + + try { + httpServletResponse.setContentType("application/force-download"); + httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + new String(("助产机构报表.xls").getBytes("UTF-8"), "ISO-8859-1")); + ExcelUtil.writeExclFile("F:\\需求文档\\my.xls", httpServletResponse.getOutputStream()); + } catch (IOException e) { + ExceptionUtils.catchException(e, "exporDueOrgCount error"); + } + } + + public BaseObjectResponse getDueOrgCount(String time, Integer userId, String hospitalId, String proviceId, String cityId, String areaId) { + + + Map params = new HashMap<>(); + params.put("proviceId",proviceId); + params.put("cityId",cityId); + params.put("areaId",areaId); + + List hospitalIds = new ArrayList<>(); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(hospitalId)) { + hospitalIds.add(hospitalId); + } else { + //获取用户拥有的权限医院和条件筛选的医院交集 + hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, proviceId, + cityId, areaId); + } + + List> list = new ArrayList<>(); + + int batchSize = 5; + int end = 0; + List futures = new ArrayList<>(); + for (int i = 0; i < hospitalIds.size(); i += batchSize) { + end = (end + batchSize); + if (end > hospitalIds.size()) { + end = hospitalIds.size(); + } + List hids = hospitalIds.subList(i, end); + Callable c = new DueOrgCountWorker(time,hids,matDeliverService,organizationService,patientsService,babyService,params); + Future f = commonThreadPool.submit(c); + futures.add(f); + } + + if (CollectionUtils.isNotEmpty(futures)) { + for (Future f : futures) { + try { + list.addAll((List>) f.get()); + } catch (Exception e) { + ExceptionUtils.catchException(e, "getChildbearAgeCount list error."); + } + } + } + + + + + return null; + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/DueOrgCountWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/DueOrgCountWorker.java new file mode 100644 index 0000000..f45afed --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/DueOrgCountWorker.java @@ -0,0 +1,390 @@ +package com.lyms.platform.operate.web.worker; + + +import com.lyms.platform.biz.service.BabyService; +import com.lyms.platform.biz.service.MatDeliverService; +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.operate.web.utils.CommonsHelper; +import com.lyms.platform.permission.service.OrganizationService; +import com.lyms.platform.pojo.MaternalDeliverModel; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.BabyModelQuery; +import com.lyms.platform.query.MatDeliverQuery; +import com.lyms.platform.query.PatientsQuery; +import org.springframework.data.domain.Sort; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; + +/** + * Created by Administrator on 2018-08-14. + */ +public class DueOrgCountWorker implements Callable>> { + + private String time; + + private List hospitalIds; + private MatDeliverService matDeliverService; + private OrganizationService organizationService; + private BabyService babyService; + + private PatientsService patientsService; + + private Map params; + public DueOrgCountWorker(String time, + List hospitalIds, + MatDeliverService matDeliverService, + OrganizationService organizationService, + PatientsService patientsService, + BabyService babyService, + Map params + ) + { + this.time = time; + this.hospitalIds = hospitalIds; + this.matDeliverService = matDeliverService; + this.organizationService = organizationService; + this.patientsService = patientsService; + this.babyService = babyService; + this.params = params; + } + + @Override + public List> call() throws Exception { + + + List> list = new ArrayList<>(); + for (String hospialId : hospitalIds) + { + Map map = new HashMap<>(); + + + //机构名称 + String orgName = CommonsHelper.getHospitalName(hospialId,organizationService); + map.put("orgName", orgName); + + + //产妇数 + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery.setFmHospital(hospialId); + int chanCount = matDeliverService.count(matDeliverQuery); + map.put("chanCount", String.valueOf(chanCount)); + + + + //高危孕产妇数 + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setIsHighRisk(true); + patientsQuery.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + patientsQuery.setCreatedTimeStart(DateUtil.getSNDate(time)[0]); + patientsQuery.setCreatedTimeEnd(DateUtil.getSNDate(time)[1]); + } + int riskCount = patientsService.queryPatientCount(patientsQuery); + map.put("riskCount", String.valueOf(riskCount)); + + //活产数 + BabyModelQuery babyModelQuery = new BabyModelQuery(); + babyModelQuery.setDataStatus(false); + babyModelQuery.setHospitalId(hospialId); + if (StringUtils.isNotEmpty(time)) + { + babyModelQuery.setBuildDateStart(DateUtil.getSNDate(time)[0]); + babyModelQuery.setBuildDateEnd(DateUtil.getSNDate(time)[1]); + } + babyModelQuery.setBuildType(2); + babyModelQuery.setOrder("birth"); + int huoChanCount = babyService.queryBabyCount(babyModelQuery); + map.put("huoChanCount", String.valueOf(huoChanCount)); + + //双胎数 + MatDeliverQuery matDeliverQuery1 = new MatDeliverQuery(); + matDeliverQuery1.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery1.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery1.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery1.setTireNumber(2); + matDeliverQuery1.setFmHospital(hospialId); + int doubleCount = matDeliverService.count(matDeliverQuery1); + map.put("doubleCount", String.valueOf(doubleCount)); + + + //非自然妊娠双胎 + MatDeliverQuery matDeliverQuery2 = new MatDeliverQuery(); + matDeliverQuery2.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery2.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery2.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery2.setTireNumber(2); + matDeliverQuery2.setDeliveryModeQueryJson("\"fmfs\":\"1\""); + matDeliverQuery2.setFmHospital(hospialId); + int fzrDoubleCount = matDeliverService.count(matDeliverQuery2); + map.put("fzrDoubleCount", String.valueOf(fzrDoubleCount)); + + //男 + BabyModelQuery babyModelQuery1 = new BabyModelQuery(); + babyModelQuery1.setDataStatus(false); + babyModelQuery1.setHospitalId(hospialId); + babyModelQuery1.setBuildType(2); + if (StringUtils.isNotEmpty(time)) + { + babyModelQuery1.setBuildDateStart(DateUtil.getSNDate(time)[0]); + babyModelQuery1.setBuildDateEnd(DateUtil.getSNDate(time)[1]); + } + babyModelQuery1.setOrder("birth"); + babyModelQuery1.setSex(1); + int boyCount = babyService.queryBabyCount(babyModelQuery1); + map.put("boyCount", String.valueOf(boyCount)); + + + //女 + BabyModelQuery babyModelQuery2 = new BabyModelQuery(); + babyModelQuery2.setDataStatus(false); + babyModelQuery2.setHospitalId(hospialId); + + if (StringUtils.isNotEmpty(time)) + { + babyModelQuery2.setBuildDateStart(DateUtil.getSNDate(time)[0]); + babyModelQuery2.setBuildDateEnd(DateUtil.getSNDate(time)[1]); + } + + babyModelQuery2.setBuildType(2); + babyModelQuery2.setOrder("birth"); + babyModelQuery2.setSex(0); + int girlCount = babyService.queryBabyCount(babyModelQuery2); + map.put("girlCount", String.valueOf(girlCount)); + + //分娩方式 顺产 + MatDeliverQuery matDeliverQuery4 = new MatDeliverQuery(); + matDeliverQuery4.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery4.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery4.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery4.setDeliveryModeQueryJson("\"fmfs\":\"1\""); + matDeliverQuery4.setFmHospital(hospialId); + int fmShunChanCount = matDeliverService.count(matDeliverQuery4); + map.put("fmShunChanCount", String.valueOf(fmShunChanCount)); + + + //分娩方式 剖宫产 + MatDeliverQuery matDeliverQuery5 = new MatDeliverQuery(); + matDeliverQuery5.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery5.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery5.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery5.setDeliveryModeQueryJson("\"fmfs\":\"2\""); + matDeliverQuery5.setFmHospital(hospialId); + int fmPoGongCount = matDeliverService.count(matDeliverQuery5); + map.put("fmPoGongCount", String.valueOf(fmPoGongCount)); + + //分娩方式 小计 + map.put("fmCount", String.valueOf(fmPoGongCount+fmShunChanCount)); + + + //分娩方式 其他 + map.put("fmOtherCount", ""); + + + + //会阴情况 完好 + MatDeliverQuery matDeliverQuery6 = new MatDeliverQuery(); + matDeliverQuery6.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery6.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery6.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery6.setPerinealCondition("full"); + matDeliverQuery6.setFmHospital(hospialId); + int huiYinFullCount = matDeliverService.count(matDeliverQuery6); + map.put("huiYinFullCount", String.valueOf(huiYinFullCount)); + + + //会阴情况 切开 + MatDeliverQuery matDeliverQuery7 = new MatDeliverQuery(); + matDeliverQuery7.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery7.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery7.setEndStart(DateUtil.getSNDate(time)[1]); + } + matDeliverQuery7.setPerinealCondition("split"); + matDeliverQuery7.setFmHospital(hospialId); + int huiYinSpitCount = matDeliverService.count(matDeliverQuery7); + map.put("huiYinSpitCount", String.valueOf(huiYinSpitCount)); + + + //会阴情况 Ⅰ-Ⅱ°裂伤 + MatDeliverQuery matDeliverQuery8 = new MatDeliverQuery(); + matDeliverQuery8.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery8.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery8.setEndStart(DateUtil.getSNDate(time)[1]); + } + List levels = new ArrayList<>(); + levels.add(1); + levels.add(2); + matDeliverQuery8.setSiLielevels(levels); + matDeliverQuery8.setFmHospital(hospialId); + int siLielevelCount = matDeliverService.count(matDeliverQuery8); + map.put("siLielevelCount", String.valueOf(siLielevelCount)); + + + //会阴情况 重度裂伤 + MatDeliverQuery matDeliverQuery9 = new MatDeliverQuery(); + matDeliverQuery9.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery9.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery9.setEndStart(DateUtil.getSNDate(time)[1]); + } + List levels1 = new ArrayList<>(); + levels1.add(3); + matDeliverQuery9.setSiLielevels(levels1); + matDeliverQuery9.setFmHospital(hospialId); + int siLielevelYzCount = matDeliverService.count(matDeliverQuery9); + map.put("siLielevelYzCount", String.valueOf(siLielevelYzCount)); + + + map.put("huiYingTotalCount", String.valueOf(siLielevelYzCount+huiYinFullCount+siLielevelCount)); + + + //出生缺陷数 + BabyModelQuery babyModelQuery3 = new BabyModelQuery(); + babyModelQuery3.setDataStatus(false); + babyModelQuery3.setHospitalId(hospialId); + if (StringUtils.isNotEmpty(time)) + { + babyModelQuery3.setBuildDateStart(DateUtil.getSNDate(time)[0]); + babyModelQuery3.setBuildDateEnd(DateUtil.getSNDate(time)[1]); + } + //0非畸形 1畸形 + babyModelQuery3.setBuildType(2); + babyModelQuery3.setMalformation(1); + int queXianBabyCount = babyService.queryBabyCount(babyModelQuery3); + map.put("queXianBabyCount", String.valueOf(queXianBabyCount)); + + //新生儿死亡数 + map.put("babySiWangCount", ""); + + + //死胎数 + //死产数 + MatDeliverQuery matDeliverQuery10 = new MatDeliverQuery(); + matDeliverQuery10.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + matDeliverQuery10.setCreatedStart(DateUtil.getSNDate(time)[0]); + matDeliverQuery10.setEndStart(DateUtil.getSNDate(time)[1]); + } + List PregnancyOuts = new ArrayList<>(); + PregnancyOuts.add("1"); + PregnancyOuts.add("3"); + + matDeliverQuery10.setPregnancyOuts(PregnancyOuts); + matDeliverQuery10.setFmHospital(hospialId); + int babySiChanCount = 0; + int babySiTaiCount = 0; + List babySiWangList = matDeliverService.query(matDeliverQuery10); + if (CollectionUtils.isNotEmpty(babySiWangList)) + { + for (MaternalDeliverModel model : babySiWangList) + { + List babies = model.getBaby(); + if (CollectionUtils.isNotEmpty(babies)) + { + for (MaternalDeliverModel.Baby baby : babies) + { + if (baby.getPregnancyOut() != null && "3".equals(baby.getPregnancyOut()) ) + { + babySiChanCount++; + } + else if (baby.getPregnancyOut() != null && "1".equals(baby.getPregnancyOut())) + { + babySiTaiCount++; + } + } + } + } + } + babySiWangList.clear(); + map.put("babySiChanCount", String.valueOf(babySiChanCount)); + map.put("babySiTaiCount", String.valueOf(babySiTaiCount)); + + //巨大儿数 + map.put("bigBoyCount", ""); + //低出生体重数 + map.put("lowWeightCount", ""); + + //早产儿数 + int zcBabyCount = 0; + PatientsQuery patientsQuery1 = new PatientsQuery(); + patientsQuery1.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(time)) + { + patientsQuery1.setFmDateStart(DateUtil.getSNDate(time)[0]); + patientsQuery1.setFmDateEnd(DateUtil.getSNDate(time)[1]); + } + patientsQuery1.setFmHospital(hospialId); + patientsQuery1.setFmWeekStart(0); + patientsQuery1.setFmWeekEnd(36); + List patientses = patientsService.queryPatient(patientsQuery1); + if (CollectionUtils.isNotEmpty(patientses)) + { + List ids = new ArrayList<>(); + for (Patients pat : patientses) + { + ids.add(pat.getId()); + } + + if (CollectionUtils.isNotEmpty(ids)) + { + MatDeliverQuery matDeliverQuery11 = new MatDeliverQuery(); + matDeliverQuery11.setYn(YnEnums.YES.getId()); + matDeliverQuery11.setParentIdList(ids); + List fmList = matDeliverService.query(matDeliverQuery11); + if (CollectionUtils.isNotEmpty(fmList)) + { + for (MaternalDeliverModel fm : fmList) + { + zcBabyCount+=fm.getBaby().size(); + } + } + fmList.clear(); + } + ids.clear(); + } + patientses.clear(); + + map.put("zcBabyCount", String.valueOf(zcBabyCount)); + + + list.add(map); + } + + return list; + } +} -- 1.8.3.1