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 0ac5feb..21cb408 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 @@ -26,9 +26,9 @@ import javax.validation.Valid; * 儿保检查 */ @Controller -public class BabyCheckController extends BaseController{ +public class BabyCheckController extends BaseController { + - @Autowired private BabyCheckFacade babyCheckFacade; @@ -40,19 +40,19 @@ public class BabyCheckController extends BaseController{ /** - * 儿保检查添加或者修改 + * 儿保检查添加或者修改 + * * @param request * @return */ @RequestMapping(method = RequestMethod.POST, value = "/addOrUpBabyCheck") @ResponseBody @TokenRequired - public BaseResponse addOrUpBabyCheck(@Valid @RequestBody BabyCheckRequest request,HttpServletRequest httpServletRequest) { + public BaseResponse addOrUpBabyCheck(@Valid @RequestBody BabyCheckRequest request, HttpServletRequest httpServletRequest) { LoginContext loginState = (LoginContext) httpServletRequest.getAttribute("loginContext"); - if (request != null && !StringUtils.isEmpty(request.getId())) - { + if (request != null && !StringUtils.isEmpty(request.getId())) { BaseResponse baseResponse = babyCheckFacade.updateBabyCheck(request, loginState.getId()); baseResponse.setObject(couponService.getPatientsInfoByCode(request.getCouponCode())); return baseResponse; @@ -64,13 +64,14 @@ public class BabyCheckController extends BaseController{ /** * 删除儿保检查 + * * @param id * @return */ @RequestMapping(value = "/deleteBabyCheckById/{id}", method = RequestMethod.DELETE) @ResponseBody @TokenRequired - public BaseResponse deleteBabyBuildById(@PathVariable("id")String id,HttpServletRequest request){ + public BaseResponse deleteBabyBuildById(@PathVariable("id") String id, HttpServletRequest request) { babyCheckFacade.deleteBabyCheckById(id, getUserId(request)); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } @@ -78,40 +79,44 @@ public class BabyCheckController extends BaseController{ /** * 查询儿保检查记录 + * * @param id * @return */ @RequestMapping(value = "/queryBabyCheckRecord/{id}", method = RequestMethod.GET) @ResponseBody - public BaseObjectResponse queryBabyCheckRecord(@PathVariable("id")String id){ - return babyCheckFacade.queryBabyCheckRecord(id); + public BaseObjectResponse queryBabyCheckRecord(@PathVariable("id") String id) { + return babyCheckFacade.queryBabyCheckRecord(id); } /** * 查询儿保检查记录 + * * @param id * @return */ @RequestMapping(value = "/queryBabyBaseInfo/{id}", method = RequestMethod.GET) @ResponseBody - public BaseObjectResponse queryBabyBaseInfo(@PathVariable("id")String id){ - return babyCheckFacade.queryBabyBaseInfo(id); + public BaseObjectResponse queryBabyBaseInfo(@PathVariable("id") String id) { + return babyCheckFacade.queryBabyBaseInfo(id); } /** * 查询儿保检查详情 + * * @param id * @return */ @RequestMapping(value = "/queryBabyCheckInfo/{id}", method = RequestMethod.GET) @ResponseBody - public BaseObjectResponse queryBabyCheckInfo(@PathVariable("id")String id){ - return babyCheckFacade.queryBabyCheckInfo(id); + public BaseObjectResponse queryBabyCheckInfo(@PathVariable("id") String id) { + return babyCheckFacade.queryBabyCheckInfo(id); } /** * 查询可选择的儿童 + * * @param vcCardNo * @param cardNo * @return @@ -119,33 +124,47 @@ public class BabyCheckController extends BaseController{ @RequestMapping(value = "/queryChooseBabys", method = RequestMethod.GET) @ResponseBody @TokenRequired - public BaseObjectResponse queryChooseBabys(HttpServletRequest request,@RequestParam(required = false)String vcCardNo, - @RequestParam(required = false)String cardNo, String coupon, @RequestParam(required = false)String ynStatus){ + public BaseObjectResponse queryChooseBabys(HttpServletRequest request, @RequestParam(required = false) String vcCardNo, + @RequestParam(required = false) String cardNo, String coupon, @RequestParam(required = false) String ynStatus) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return babyCheckFacade.queryChooseBabys(vcCardNo, cardNo, loginState.getId(), coupon, ynStatus); + return babyCheckFacade.queryChooseBabys(vcCardNo, cardNo, loginState.getId(), coupon, ynStatus); } /** * 删除儿保检查 + * * @param id 儿保检查Id * @return */ @RequestMapping(value = "/deleteBabyCheckById/{id}", method = RequestMethod.GET) @ResponseBody @TokenRequired - public BaseResponse deleteBabyCheckById(@PathVariable("id")String id,HttpServletRequest request){ - babyCheckFacade.deleteBabyCheckById(id,getUserId(request)); + public BaseResponse deleteBabyCheckById(@PathVariable("id") String id, HttpServletRequest request) { + babyCheckFacade.deleteBabyCheckById(id, getUserId(request)); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } /** + * 查询所有儿保检查记录 + * + * @param + */ + public BaseResponse list(Integer page, Integer limit) { + + + return null; + } + + + /** * 查询身长别体重值 - * @param height 身长 - * @param weight 体重 - * @param sex 性别 - * @param birth 生日 + * + * @param height 身长 + * @param weight 体重 + * @param sex 性别 + * @param birth 生日 * @return */ @RequestMapping(value = "/queryHWByHeight", method = RequestMethod.GET) @@ -156,7 +175,7 @@ public class BabyCheckController extends BaseController{ @RequestParam(required = true) Integer sex, @RequestParam(required = true) String birth, @RequestParam(required = false) String dueDate, - @RequestParam(required = false) String checkDate){ + @RequestParam(required = false) String checkDate) { return babyCheckFacade.queryHWByHeight(height, weight, sex, birth, dueDate, checkDate); } @@ -164,6 +183,7 @@ public class BabyCheckController extends BaseController{ /** * 查询儿童的健康状态 + * * @param value * @param sex * @param type 0 体重 1 身长 2 头围 @@ -177,7 +197,7 @@ public class BabyCheckController extends BaseController{ @RequestParam(required = true) String birth, @RequestParam(required = false) String babyId, @RequestParam(required = false) String dueDate, - @RequestParam(required = false) String checkDate){ + @RequestParam(required = false) String checkDate) { return babyCheckFacade.queryBabyHealthStatus(birth, value, sex, type, dueDate, babyId, checkDate); } @@ -185,18 +205,19 @@ public class BabyCheckController extends BaseController{ /** * 计算体格发育评价 + * * @param height 身长 - * @param sex 性别 - * @param birth 生日 + * @param sex 性别 + * @param birth 生日 * @param weight 体重 * @return */ @RequestMapping(value = "/queryGrowthEvaluate", method = RequestMethod.GET) @ResponseBody - public BaseObjectResponse queryGrowthEvaluate(@RequestParam(required = true) Double height,@RequestParam(required = true) Integer sex - ,@RequestParam(required = true) String birth,@RequestParam(required = true) Double weight, + public BaseObjectResponse queryGrowthEvaluate(@RequestParam(required = true) Double height, @RequestParam(required = true) Integer sex + , @RequestParam(required = true) String birth, @RequestParam(required = true) Double weight, @RequestParam(required = false) String dueDate, - @RequestParam(required = false) String checkDate){ + @RequestParam(required = false) String checkDate) { return babyCheckFacade.queryGrowthEvaluate(height, sex, birth, weight, dueDate, checkDate); } @@ -206,7 +227,7 @@ public class BabyCheckController extends BaseController{ */ @RequestMapping(value = "/getBaseConfig", method = RequestMethod.GET) @ResponseBody - public BaseObjectResponse getBaseConfig(){ + public BaseObjectResponse getBaseConfig() { return babyCheckFacade.getBaseConfig(); } @@ -217,7 +238,7 @@ public class BabyCheckController extends BaseController{ @ResponseBody public BaseObjectResponse getBabyMonthAge( @RequestParam(required = true) String birth, - @RequestParam(required = false) String checkDate){ + @RequestParam(required = false) String checkDate) { return babyCheckFacade.getBabyMonthAge(birth, checkDate); } @@ -228,14 +249,15 @@ public class BabyCheckController extends BaseController{ public BaseObjectResponse getHighBabyMonthAge( @RequestParam(required = true) String babyId, @RequestParam(required = true) String checkDate, - @RequestParam(required = true) Boolean isHighRisk){ + @RequestParam(required = true) Boolean isHighRisk) { return babyCheckFacade.getHighBabyMonthAge(babyId, checkDate, isHighRisk); } /** - *儿童检查曲线图 + * 儿童检查曲线图 + * * @param babyId * @param request * @return @@ -243,7 +265,7 @@ public class BabyCheckController extends BaseController{ @RequestMapping(method = RequestMethod.GET, value = "/getBabyCurve") @ResponseBody @TokenRequired - public BaseResponse getBabyCurve(@RequestParam(required = true) String babyId,HttpServletRequest request) { + public BaseResponse getBabyCurve(@RequestParam(required = true) String babyId, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return babyCheckFacade.getBabyCurve(babyId, loginState.getId()); } @@ -251,13 +273,14 @@ public class BabyCheckController extends BaseController{ /** * 当天检查的儿童列表 + * * @param request * @return */ @RequestMapping("/currentCheckBabyList") @ResponseBody @TokenRequired - public BaseObjectResponse currentCheckBabyList(HttpServletRequest request){ + public BaseObjectResponse currentCheckBabyList(HttpServletRequest request) { return babyCheckFacade.getCurrentDayCheckBabies(getUserId(request)); } @@ -265,6 +288,7 @@ public class BabyCheckController extends BaseController{ /** * 儿童报表 + * * @param request * @param babyId * @return @@ -273,9 +297,9 @@ public class BabyCheckController extends BaseController{ @ResponseBody @TokenRequired public BaseObjectResponse getBabyReport(HttpServletRequest request, - @RequestParam(required = true) String babyId){ + @RequestParam(required = true) String babyId) { - return babyCheckFacade.getBabyReport(getUserId(request),babyId); + return babyCheckFacade.getBabyReport(getUserId(request), babyId); } /** @@ -286,7 +310,7 @@ public class BabyCheckController extends BaseController{ */ @RequestMapping(method = RequestMethod.POST, value = "/wx/babyMeasureInfo/saveOrUpdate") @ResponseBody - public BaseResponse babyMeasureInfoSaveOrUpdate(@RequestBody WxBabyMeasureRequest param){ + public BaseResponse babyMeasureInfoSaveOrUpdate(@RequestBody WxBabyMeasureRequest param) { return babyCheckFacade.babyMeasureInfoSaveOrUpdate(param); } @@ -298,12 +322,12 @@ public class BabyCheckController extends BaseController{ */ @RequestMapping(method = RequestMethod.POST, value = "/wx/babyMeasureInfo/list") @ResponseBody - public BaseResponse babyMeasureInfoList(@RequestBody BaseQuery param){ + public BaseResponse babyMeasureInfoList(@RequestBody BaseQuery param) { return babyCheckFacade.babyMeasureInfoList(param); } /** - * 获取在儿保小程序中当天填入的最新测量信息 + * 获取在儿保小程序中当天填入的最新测量信息 * * @param param * @return @@ -311,7 +335,7 @@ public class BabyCheckController extends BaseController{ @RequestMapping(method = RequestMethod.POST, value = "/babyMeasureInfo/detail") @TokenRequired @ResponseBody - public BaseResponse babyMeasureInfoDetail(@RequestBody BaseQuery param){ + public BaseResponse babyMeasureInfoDetail(@RequestBody BaseQuery param) { return babyCheckFacade.babyMeasureInfoDetail(param); } 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 9dfd806..ea8042a 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 @@ -8,14 +8,13 @@ import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.enums.*; -import com.lyms.platform.common.result.BaseListResponse; -import com.lyms.platform.common.result.BaseObjectResponse; -import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.result.*; import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.request.BabyCheckRequest; import com.lyms.platform.operate.web.request.WxBabyMeasureRequest; import com.lyms.platform.operate.web.result.*; import com.lyms.platform.operate.web.service.PatientWeightService; +import com.lyms.platform.operate.web.service.impl.BaseServiceImpl; import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.permission.model.Organization; @@ -36,7 +35,7 @@ import java.util.*; import java.util.regex.Pattern; @Component -public class BabyCheckFacade { +public class BabyCheckFacade extends BaseServiceImpl { @Autowired private BabyCheckService babyCheckService; @@ -757,6 +756,59 @@ public class BabyCheckFacade { } + public BaseResponse babyCheckList(Integer page, Integer limit, Integer userId) { + + + boolean flag = true; + List hospital = groupsFacade.findGroupHospital(userId, false); + Criteria criteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospital); + Criteria pCriteria = Criteria.where("yn").ne("0").and("hospitalId").in(hospital); + /*if (org.apache.commons.lang.StringUtils.isNotBlank(key)) { + pCriteria.orOperator(Criteria.where("phone").regex(key), Criteria.where("userName").regex(key), Criteria.where("cardID").regex(key)); + flag = true; + } + if (stateWeek != null && endWeek != null) { + Date start = DateUtil.getWeekStart(endWeek); + Date end = DateUtil.getWeekEnd(stateWeek); + pCriteria.and("lastMenses").gt(start).lte(end); + flag = true; + } + if (age != null) { + Date start = DateUtil.getBeforeAge(age); + Date end = DateUtil.getBeforeAge(age + 1); + pCriteria.and("birth").gt(end).lte(start); + flag = true; + }*/ + if (flag) { + List babyCheckModelsList = mongoTemplate.find(Query.query(pCriteria), BabyCheckModel.class); + List ids = new ArrayList<>(); + if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(babyCheckModelsList)) { + for (BabyCheckModel babyCheckModel : babyCheckModelsList) { + ids.add(babyCheckModel.getId()); + } + } + criteria.and("_id").in(ids); + } + PageResult pageResult = findMongoPage(BabyCheckModel.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit); + List babyCheckModelList = (List) pageResult.getGrid(); + List list = new ArrayList(); + for (BabyCheckModel babyCheckModel : babyCheckModelList) { + Map map = new HashMap<>(); + if (StringUtils.isNotEmpty(babyCheckModel.getBuildId())) { + /*** + *儿保列表展示暂未开放 + * + */ + + + } + list.add(map); + } + pageResult.setGrid(list); + return RespBuilder.buildSuccess(pageResult); + } + + public void getBabyCheckList(String[] ids, PersonModel personModel, List> list) { List checkModels; if (personModel != null) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java index 4c4aa08..d582eff 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java @@ -28,8 +28,6 @@ import com.lyms.platform.permission.service.MeasureUserInfoService; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; -import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.dbutils.DbUtils; @@ -38,12 +36,10 @@ import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; -import java.math.BigDecimal; import java.sql.Connection; import java.util.*; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java index eecb9a1..57ca92c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java @@ -129,8 +129,7 @@ public class SieveFacade { List list = sieveService.queryList(sieveQuery); - if (CollectionUtils.isNotEmpty(list)) - { + if (CollectionUtils.isNotEmpty(list)) { SieveModel sieveModel1 = sieveService.findOneById(list.get(0).getId()); sieveModel1.setStatus(3); sieveModel1.setZtfx(sieveAddRequest.getMax()); @@ -336,6 +335,13 @@ public class SieveFacade { } else { siveStatus = SieveEnums.getTitle(model.getZtfx()); } + /** + * 栾平妇幼定制 + * */ + if ("2100001377".equals(hospitalId)) { + siveStatus = "已产筛"; + } + } else { SieveApplyOrderQuery sieveApplyOrderQuery1 = new SieveApplyOrderQuery(); sieveApplyOrderQuery1.setParentId(patientId); @@ -485,7 +491,7 @@ public class SieveFacade { if (end > list.size()) { end = list.size(); } - listFuture.add(commonThreadPool.submit(new SieveWorker(hospitalId, list.subList(i, end), antenatalExaminationService, patientsService, applyOrderService, organizationService,diagnosisService))); + listFuture.add(commonThreadPool.submit(new SieveWorker(hospitalId, list.subList(i, end), antenatalExaminationService, patientsService, applyOrderService, organizationService, diagnosisService))); } for (Future f : listFuture) { try { @@ -644,9 +650,7 @@ public class SieveFacade { } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有档案,请建档后申请产筛"); } - } - else - { + } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有档案,请建档后申请产筛"); } } @@ -682,26 +686,26 @@ public class SieveFacade { //查询产前诊断 int a = 0; - List> mList = new ArrayList>(); - Map map = new HashMap(); - map.put("cqSieve","0");//0,未申请;1,已申请;2,已接收;3,已诊断 - map.put("diaProject",""); - map.put("diaResult","");//(0,阴性;1,阳性) + List> mList = new ArrayList>(); + Map map = new HashMap(); + map.put("cqSieve", "0");//0,未申请;1,已申请;2,已接收;3,已诊断 + map.put("diaProject", ""); + map.put("diaResult", "");//(0,阴性;1,阳性) DiagnosisQuery diagnosisQuery = new DiagnosisQuery(); diagnosisQuery.setParentId(pat.getId()); diagnosisQuery.setHospitalId(hospitalId); List diaList = diagnosisService.queryDiagnosis(diagnosisQuery); - if(CollectionUtils.isNotEmpty(diaList)){ - for(DiagnosisModel diagnosisModel : diaList){ - Map m = new HashMap(); - m.put("cqSieve",diagnosisModel.getDiaStatus());//0,未申请;1,已申请;2,已接收;3,已诊断 - m.put("diaProject",diagnosisModel.getDiaProject()); - m.put("diaResult",diagnosisModel.getDiaResult());//(0,阴性;1,阳性) - a=1; + if (CollectionUtils.isNotEmpty(diaList)) { + for (DiagnosisModel diagnosisModel : diaList) { + Map m = new HashMap(); + m.put("cqSieve", diagnosisModel.getDiaStatus());//0,未申请;1,已申请;2,已接收;3,已诊断 + m.put("diaProject", diagnosisModel.getDiaProject()); + m.put("diaResult", diagnosisModel.getDiaResult());//(0,阴性;1,阳性) + a = 1; mList.add(m); } } - if(a == 0){ + if (a == 0) { mList.add(map); } patientBaseResult.setDia(mList); @@ -805,8 +809,7 @@ public class SieveFacade { result.put("mensesWeek", sieveApply.getMensesWeek()); result.put("experimentNum", ""); - if (type == 1) - { + if (type == 1) { result.put("couponCode", couponService.findByUsedId(sieveApply.getId())); } @@ -1142,12 +1145,9 @@ public class SieveFacade { ids = new ArrayList<>(); if (CollectionUtils.isNotEmpty(permissionsModels)) { List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); - if (CollectionUtils.isNotEmpty(addressBeanList)) - { - for (AddressBean bean : addressBeanList) - { - if (bean != null && bean.getP() != null && bean.getP().equals(cqSieveQueryRequest.getProvinceId()) && StringUtils.isNotEmpty(bean.getC())) - { + if (CollectionUtils.isNotEmpty(addressBeanList)) { + for (AddressBean bean : addressBeanList) { + if (bean != null && bean.getP() != null && bean.getP().equals(cqSieveQueryRequest.getProvinceId()) && StringUtils.isNotEmpty(bean.getC())) { ids.add(bean.getC()); } } @@ -1160,12 +1160,9 @@ public class SieveFacade { ids = new ArrayList<>(); if (CollectionUtils.isNotEmpty(permissionsModels)) { List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); - if (CollectionUtils.isNotEmpty(addressBeanList)) - { - for (AddressBean bean : addressBeanList) - { - if (bean != null && bean.getC() != null && bean.getC().equals(cqSieveQueryRequest.getCityId()) && StringUtils.isNotEmpty(bean.getA())) - { + if (CollectionUtils.isNotEmpty(addressBeanList)) { + for (AddressBean bean : addressBeanList) { + if (bean != null && bean.getC() != null && bean.getC().equals(cqSieveQueryRequest.getCityId()) && StringUtils.isNotEmpty(bean.getA())) { ids.add(bean.getA()); } } @@ -1179,8 +1176,7 @@ public class SieveFacade { List xAxis = new ArrayList<>(); //获取地址列表 List configList = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(ids)) - { + if (CollectionUtils.isNotEmpty(ids)) { configList = basicConfigService.queryBasicConfig(basicQuery); } @@ -1223,8 +1219,7 @@ public class SieveFacade { List orgs = organizationService.queryOrganization(idQuery); List hids = getConditionHospitalIds(currentUserHospPermissions, orgs); - if (CollectionUtils.isNotEmpty(hids)) - { + if (CollectionUtils.isNotEmpty(hids)) { SieveQuery sieveQuery = new SieveQuery(); sieveQuery.setHospitalIds(hids); sieveQuery.setYn(YnEnums.YES.getId()); @@ -1252,9 +1247,7 @@ public class SieveFacade { } int diagnosisCount = diagnosisService.queryDiagnosisCount(diagnosisQuery); dItems.add(String.valueOf(diagnosisCount)); - } - else - { + } else { csItems.add("0"); dItems.add("0"); } @@ -1270,8 +1263,7 @@ public class SieveFacade { List> result = new ArrayList<>(); int num = 1; - if (CollectionUtils.isNotEmpty(configList)) - { + if (CollectionUtils.isNotEmpty(configList)) { for (BasicConfig c : configList) { List items = new ArrayList<>(); @@ -1292,8 +1284,7 @@ public class SieveFacade { List hids = getConditionHospitalIds(currentUserHospPermissions, orgs); - if (CollectionUtils.isNotEmpty(hids)) - { + if (CollectionUtils.isNotEmpty(hids)) { //应筛查人数 SieveQuery ySieveQuery = new SieveQuery(); ySieveQuery.setHospitalIds(hids); @@ -1338,9 +1329,7 @@ public class SieveFacade { } int diagnosisCountAll = diagnosisService.queryDiagnosisCount(diagnosisQuery1); items.add(String.valueOf(diagnosisCountAll)); - } - else - { + } else { items.add("0"); items.add("0"); items.add("0"); @@ -1379,9 +1368,8 @@ public class SieveFacade { private DataPermissionService dataPermissionService; - private List> getSieveDatas(List hospitalIds,String[] dates,String cityId,Integer userId) - { - List> list = new ArrayList<>(); + private List> getSieveDatas(List hospitalIds, String[] dates, String cityId, Integer userId) { + List> list = new ArrayList<>(); BasicConfigQuery basicQuery = new BasicConfigQuery(); @@ -1396,12 +1384,9 @@ public class SieveFacade { List ids = new ArrayList<>(); if (CollectionUtils.isNotEmpty(permissionsModels)) { List addressBeanList = JsonUtil.toList(permissionsModels.get(0).getAreaPermission(), AddressBean.class); - if (CollectionUtils.isNotEmpty(addressBeanList)) - { - for (AddressBean bean : addressBeanList) - { - if (bean != null && bean.getC() != null && bean.getC().equals(cityId) && StringUtils.isNotEmpty(bean.getA())) - { + if (CollectionUtils.isNotEmpty(addressBeanList)) { + for (AddressBean bean : addressBeanList) { + if (bean != null && bean.getC() != null && bean.getC().equals(cityId) && StringUtils.isNotEmpty(bean.getA())) { ids.add(bean.getA()); } } @@ -1411,8 +1396,7 @@ public class SieveFacade { //获取地址列表 List configList = basicConfigService.queryBasicConfig(basicQuery); - for (BasicConfig bc : configList) - { + for (BasicConfig bc : configList) { int ySieveCount = 0; int sSieveCount = 0; @@ -1420,7 +1404,7 @@ public class SieveFacade { int st1813Count = 0; int sjqxCount = 0; - int sieveCount=0; + int sieveCount = 0; int disCount = 0; int disExcCount = 0; @@ -1431,7 +1415,7 @@ public class SieveFacade { int dnaSieveLowCount = 0; int dnaSieveHighCount = 0; - Map mapData = new LinkedHashMap<>(); + Map mapData = new LinkedHashMap<>(); mapData.put("areaName", bc.getName());//县市区 PatientsQuery patientsQuery = new PatientsQuery(); @@ -1442,16 +1426,13 @@ public class SieveFacade { patientsQuery.setType(1); List patientses = patientsService.queryPatient(patientsQuery); List patientIds = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(patientses)) - { - for (Patients pat : patientses) - { + if (CollectionUtils.isNotEmpty(patientses)) { + for (Patients pat : patientses) { patientIds.add(pat.getId()); } } - if (CollectionUtils.isNotEmpty(patientIds)) - { + if (CollectionUtils.isNotEmpty(patientIds)) { SieveQuery ySieveQuery = new SieveQuery(); ySieveQuery.setParentIds(patientIds); @@ -1521,7 +1502,7 @@ public class SieveFacade { sieveResultQuery.setSjgjx("2"); sjqxCount = sieveService.queryListSieveResultCount(sieveResultQuery); - sieveCount=st21Count+st1813Count+sjqxCount; + sieveCount = st21Count + st1813Count + sjqxCount; //羊水穿刺产前诊断 诊断项目(1,羊水穿刺;2,绒毛穿刺;3,脐带血检测) @@ -1554,27 +1535,27 @@ public class SieveFacade { mapData.put("ySieveCount", String.valueOf(ySieveCount));//应筛查户籍人数 mapData.put("sSieveCount", String.valueOf(sSieveCount));//实筛查户籍人数 - mapData.put("sieveCount",String.valueOf(sieveCount));//合计 + mapData.put("sieveCount", String.valueOf(sieveCount));//合计 mapData.put("st21Count", String.valueOf(st21Count));//21-三体 - mapData.put("st1813Count",String.valueOf(st1813Count));//18、13三体 + mapData.put("st1813Count", String.valueOf(st1813Count));//18、13三体 - mapData.put("sjqxCount",String.valueOf(sjqxCount));//神经管缺陷 + mapData.put("sjqxCount", String.valueOf(sjqxCount));//神经管缺陷 - mapData.put("disCount",String.valueOf(disCount));//诊断数 + mapData.put("disCount", String.valueOf(disCount));//诊断数 - mapData.put("disExcCount",String.valueOf(disExcCount));//异常数 + mapData.put("disExcCount", String.valueOf(disExcCount));//异常数 - mapData.put("sjDisCount","-");//诊断数 + mapData.put("sjDisCount", "-");//诊断数 - mapData.put("sjDisExcCount","-");//异常数 + mapData.put("sjDisExcCount", "-");//异常数 - mapData.put("dnaSieveCount","-");//筛查数 + mapData.put("dnaSieveCount", "-");//筛查数 - mapData.put("dnaSieveLowCount","-");//低风险人数 + mapData.put("dnaSieveLowCount", "-");//低风险人数 - mapData.put("dnaSieveHighCount","-");//高风险人数 + mapData.put("dnaSieveHighCount", "-");//高风险人数 // mapData.put("sjDisCount",String.valueOf(sjDisCount));//诊断数 @@ -1602,7 +1583,7 @@ public class SieveFacade { int st21Count = 0; int st1813Count = 0; int sjqxCount = 0; - int sieveCount=0; + int sieveCount = 0; int disCount = 0; int disExcCount = 0; int sjDisCount = 0; @@ -1612,10 +1593,8 @@ public class SieveFacade { int dnaSieveLowCount = 0; int dnaSieveHighCount = 0; - if (CollectionUtils.isNotEmpty(list)) - { - for (Map map : list) - { + if (CollectionUtils.isNotEmpty(list)) { + for (Map map : list) { ySieveCount += Integer.parseInt(map.get("ySieveCount")); sSieveCount += Integer.parseInt(map.get("sSieveCount")); st21Count += Integer.parseInt(map.get("st21Count")); @@ -1631,21 +1610,21 @@ public class SieveFacade { // dnaSieveHighCount += Integer.parseInt(map.get("dnaSieveHighCount")); } } - Map totalMap = new LinkedHashMap<>(); - totalMap.put("orgName","合计"); - totalMap.put("ySieveCount",String.valueOf(ySieveCount)); - totalMap.put("sSieveCount",String.valueOf(sSieveCount)); - totalMap.put("sieveCount",String.valueOf(sieveCount)); - totalMap.put("st21Count",String.valueOf(st21Count)); - totalMap.put("st1813Count",String.valueOf(st1813Count)); - totalMap.put("sjqxCount",String.valueOf(sjqxCount)); - totalMap.put("disCount",String.valueOf(disCount)); - totalMap.put("disExcCount",String.valueOf(disExcCount)); - totalMap.put("sjDisCount","-"); - totalMap.put("sjDisExcCount","-"); - totalMap.put("dnaSieveCount","-"); - totalMap.put("dnaSieveLowCount","-"); - totalMap.put("dnaSieveHighCount","-"); + Map totalMap = new LinkedHashMap<>(); + totalMap.put("orgName", "合计"); + totalMap.put("ySieveCount", String.valueOf(ySieveCount)); + totalMap.put("sSieveCount", String.valueOf(sSieveCount)); + totalMap.put("sieveCount", String.valueOf(sieveCount)); + totalMap.put("st21Count", String.valueOf(st21Count)); + totalMap.put("st1813Count", String.valueOf(st1813Count)); + totalMap.put("sjqxCount", String.valueOf(sjqxCount)); + totalMap.put("disCount", String.valueOf(disCount)); + totalMap.put("disExcCount", String.valueOf(disExcCount)); + totalMap.put("sjDisCount", "-"); + totalMap.put("sjDisExcCount", "-"); + totalMap.put("dnaSieveCount", "-"); + totalMap.put("dnaSieveLowCount", "-"); + totalMap.put("dnaSieveHighCount", "-"); // totalMap.put("sjDisCount",String.valueOf(sjDisCount)); // totalMap.put("sjDisExcCount",String.valueOf(sjDisExcCount)); @@ -1656,7 +1635,7 @@ public class SieveFacade { list.add(totalMap); } - public void exportSieveReportExcl(CqSieveQueryRequest cqSieveQueryRequest, Integer userId,HttpServletResponse response) { + public void exportSieveReportExcl(CqSieveQueryRequest cqSieveQueryRequest, Integer userId, HttpServletResponse response) { try { //获取用户权限医院和筛选条件的交集 @@ -1666,13 +1645,13 @@ public class SieveFacade { String titleName = "孕妇产前筛查和诊断情况月报表"; if (StringUtils.isNotEmpty(cqSieveQueryRequest.getTime())) { dates = cqSieveQueryRequest.getTime().split(" - "); - titleName+=cqSieveQueryRequest.getTime(); + titleName += cqSieveQueryRequest.getTime(); } - List> list = getSieveDatas(currentUserHospPermissions,dates,cqSieveQueryRequest.getCityId(),userId); + List> list = getSieveDatas(currentUserHospPermissions, dates, cqSieveQueryRequest.getCityId(), userId); response.setContentType("application/force-download"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(("孕妇产前筛查和诊断情况月报表.xls").getBytes("UTF-8"), "ISO-8859-1")); - String path = this.getClass().getResource("/").getPath()+ "whfy_sieve.xls"; - ExcelUtil.writeWhSieveExclFile(path, response.getOutputStream(), list,titleName); + String path = this.getClass().getResource("/").getPath() + "whfy_sieve.xls"; + ExcelUtil.writeWhSieveExclFile(path, response.getOutputStream(), list, titleName); } catch (Exception e) { ExceptionUtils.catchException(e, "exportSieveReportExcl error"); @@ -1686,20 +1665,20 @@ public class SieveFacade { Organization org = organizationService.getOrganization(Integer.parseInt(hospitalId)); String titleName = "产前诊断及新生儿疾病筛查工作情况表"; - String h1 = "填报单位(签章): "+org.getName(); + String h1 = "填报单位(签章): " + org.getName(); String[] dates = null; if (StringUtils.isNotEmpty(cqSieveQueryRequest.getTime())) { dates = cqSieveQueryRequest.getTime().split(" - "); - h1+=" "+cqSieveQueryRequest.getTime(); + h1 += " " + cqSieveQueryRequest.getTime(); } //获取用户权限医院和筛选条件的交集 List currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions2(userId, cqSieveQueryRequest.getProvinceId(), cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId()); - List> list = getDiaDatas(currentUserHospPermissions, dates); + List> list = getDiaDatas(currentUserHospPermissions, dates); response.setContentType("application/force-download"); response.setHeader("Content-Disposition", "attachment;filename=" + new String(("产前诊断及新生儿疾病筛查工作情况表.xls").getBytes("UTF-8"), "ISO-8859-1")); - String path = this.getClass().getResource("/").getPath()+ "whfy_diagnosis.xls"; + String path = this.getClass().getResource("/").getPath() + "whfy_diagnosis.xls"; ExcelUtil.writeWhDiagnosisExclFile(path, response.getOutputStream(), list, titleName, h1); } catch (Exception e) { @@ -1710,8 +1689,7 @@ public class SieveFacade { private List> getDiaDatas(List hospitalIds, String[] dates) { List> list = new ArrayList<>(); - for (String hid : hospitalIds) - { + for (String hid : hospitalIds) { int sieveCount = 0; int st21Count = 0; @@ -1754,7 +1732,7 @@ public class SieveFacade { int hjStopCount = 0; Map dataMap = new LinkedHashMap<>(); - dataMap.put("areaName",organizationService.getOrganization(Integer.parseInt(hid)).getName()); + dataMap.put("areaName", organizationService.getOrganization(Integer.parseInt(hid)).getName()); PatientsQuery patientsQuery = new PatientsQuery(); @@ -1763,16 +1741,13 @@ public class SieveFacade { patientsQuery.setType(1); List patientses = patientsService.queryPatient(patientsQuery); List patientIds = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(patientses)) - { - for (Patients pat : patientses) - { + if (CollectionUtils.isNotEmpty(patientses)) { + for (Patients pat : patientses) { patientIds.add(pat.getId()); } } - if (CollectionUtils.isNotEmpty(patientIds)) - { + if (CollectionUtils.isNotEmpty(patientIds)) { //筛查孕妇数 SieveQuery sieveQuery1 = new SieveQuery(); sieveQuery1.setHospitalId(hid); @@ -1840,7 +1815,7 @@ public class SieveFacade { sieveResultQuery.setSjgjx("2"); sjqxCount = sieveService.queryListSieveResultCount(sieveResultQuery); - sieveExcCountAll = st21Count+st1813Count+sjqxCount; + sieveExcCountAll = st21Count + st1813Count + sjqxCount; //羊水穿刺产前诊断 诊断项目(1,羊水穿刺;2,绒毛穿刺;3,脐带血检测) @@ -1933,39 +1908,39 @@ public class SieveFacade { teDiaExcCount = diagnosisService.queryDiagnosisCount(diagnosisQuery1); //合计诊断数 - hjDiaCount=disCount+csDiaCount+ysDiaCount+rmDiaCount+teDiaCount+qtDiaCount; - hjDiaExcCount=disExcCount+csDiaCount+ysDiaExcCount+rmDiaExcCount+teDiaExcCount+qtDiaExcCount; - hjStopCount=disStopCount; + hjDiaCount = disCount + csDiaCount + ysDiaCount + rmDiaCount + teDiaCount + qtDiaCount; + hjDiaExcCount = disExcCount + csDiaCount + ysDiaExcCount + rmDiaExcCount + teDiaExcCount + qtDiaExcCount; + hjStopCount = disStopCount; } - dataMap.put("sieveCount",String.valueOf(sieveCount)); - dataMap.put("st21Count",String.valueOf(st21Count)); - dataMap.put("st1813Count",String.valueOf(st1813Count)); - dataMap.put("sjqxCount",String.valueOf(sjqxCount)); - dataMap.put("sieveExcCountAll",String.valueOf(sieveExcCountAll)); - dataMap.put("disCount",String.valueOf(disCount)); - dataMap.put("disExcCount",String.valueOf(disExcCount)); - dataMap.put("disStopCount",String.valueOf(disStopCount)); - dataMap.put("csDiaCount","-"); - dataMap.put("csClCount","-"); - dataMap.put("csDzCount","-"); - dataMap.put("csXzbCount","-"); - dataMap.put("csSjgqxCount","-"); - dataMap.put("csNjsCount","-"); - dataMap.put("csZtdsCount","-"); - dataMap.put("csQtCount","-"); - dataMap.put("csJxCount","-"); - dataMap.put("ysDiaCount","-"); - dataMap.put("ysDiaExcCount","-"); - dataMap.put("rmDiaCount",String.valueOf(rmDiaCount)); - dataMap.put("rmDiaExcCount",String.valueOf(rmDiaExcCount)); - dataMap.put("teDiaCount",String.valueOf(teDiaCount)); - dataMap.put("teDiaExcCount",String.valueOf(teDiaExcCount)); - dataMap.put("qtDiaCount","-"); - dataMap.put("qtDiaExcCount","-"); - dataMap.put("hjDiaCount",String.valueOf(hjDiaCount)); - dataMap.put("hjDiaExcCount",String.valueOf(hjDiaExcCount)); - dataMap.put("hjStopCount",String.valueOf(hjStopCount)); + dataMap.put("sieveCount", String.valueOf(sieveCount)); + dataMap.put("st21Count", String.valueOf(st21Count)); + dataMap.put("st1813Count", String.valueOf(st1813Count)); + dataMap.put("sjqxCount", String.valueOf(sjqxCount)); + dataMap.put("sieveExcCountAll", String.valueOf(sieveExcCountAll)); + dataMap.put("disCount", String.valueOf(disCount)); + dataMap.put("disExcCount", String.valueOf(disExcCount)); + dataMap.put("disStopCount", String.valueOf(disStopCount)); + dataMap.put("csDiaCount", "-"); + dataMap.put("csClCount", "-"); + dataMap.put("csDzCount", "-"); + dataMap.put("csXzbCount", "-"); + dataMap.put("csSjgqxCount", "-"); + dataMap.put("csNjsCount", "-"); + dataMap.put("csZtdsCount", "-"); + dataMap.put("csQtCount", "-"); + dataMap.put("csJxCount", "-"); + dataMap.put("ysDiaCount", "-"); + dataMap.put("ysDiaExcCount", "-"); + dataMap.put("rmDiaCount", String.valueOf(rmDiaCount)); + dataMap.put("rmDiaExcCount", String.valueOf(rmDiaExcCount)); + dataMap.put("teDiaCount", String.valueOf(teDiaCount)); + dataMap.put("teDiaExcCount", String.valueOf(teDiaExcCount)); + dataMap.put("qtDiaCount", "-"); + dataMap.put("qtDiaExcCount", "-"); + dataMap.put("hjDiaCount", String.valueOf(hjDiaCount)); + dataMap.put("hjDiaExcCount", String.valueOf(hjDiaExcCount)); + dataMap.put("hjStopCount", String.valueOf(hjStopCount)); list.add(dataMap); @@ -2014,10 +1989,8 @@ public class SieveFacade { int hjStopCount = 0; - if (CollectionUtils.isNotEmpty(list)) - { - for (Map map : list) - { + if (CollectionUtils.isNotEmpty(list)) { + for (Map map : list) { sieveCount += Integer.parseInt(map.get("sieveCount")); st21Count += Integer.parseInt(map.get("st21Count")); st1813Count += Integer.parseInt(map.get("st1813Count")); @@ -2048,28 +2021,28 @@ public class SieveFacade { hjStopCount += Integer.parseInt(map.get("hjStopCount")); } } - Map dataMap = new LinkedHashMap<>(); - dataMap.put("areaName","合计"); - dataMap.put("sieveCount",String.valueOf(sieveCount)); - dataMap.put("st21Count",String.valueOf(st21Count)); - dataMap.put("st1813Count",String.valueOf(st1813Count)); - dataMap.put("sjqxCount",String.valueOf(sjqxCount)); - dataMap.put("sieveExcCountAll",String.valueOf(sieveExcCountAll)); - dataMap.put("disCount",String.valueOf(disCount)); - dataMap.put("disExcCount",String.valueOf(disExcCount)); - dataMap.put("disStopCount",String.valueOf(disStopCount)); - - dataMap.put("csDiaCount","-"); - dataMap.put("csClCount","-"); - dataMap.put("csDzCount","-"); - dataMap.put("csXzbCount","-"); - dataMap.put("csSjgqxCount","-"); - dataMap.put("csNjsCount","-"); - dataMap.put("csZtdsCount","-"); - dataMap.put("csQtCount","-"); - dataMap.put("csJxCount","-"); - dataMap.put("ysDiaCount","-"); - dataMap.put("ysDiaExcCount","-"); + Map dataMap = new LinkedHashMap<>(); + dataMap.put("areaName", "合计"); + dataMap.put("sieveCount", String.valueOf(sieveCount)); + dataMap.put("st21Count", String.valueOf(st21Count)); + dataMap.put("st1813Count", String.valueOf(st1813Count)); + dataMap.put("sjqxCount", String.valueOf(sjqxCount)); + dataMap.put("sieveExcCountAll", String.valueOf(sieveExcCountAll)); + dataMap.put("disCount", String.valueOf(disCount)); + dataMap.put("disExcCount", String.valueOf(disExcCount)); + dataMap.put("disStopCount", String.valueOf(disStopCount)); + + dataMap.put("csDiaCount", "-"); + dataMap.put("csClCount", "-"); + dataMap.put("csDzCount", "-"); + dataMap.put("csXzbCount", "-"); + dataMap.put("csSjgqxCount", "-"); + dataMap.put("csNjsCount", "-"); + dataMap.put("csZtdsCount", "-"); + dataMap.put("csQtCount", "-"); + dataMap.put("csJxCount", "-"); + dataMap.put("ysDiaCount", "-"); + dataMap.put("ysDiaExcCount", "-"); // dataMap.put("csDiaCount",String.valueOf(csDiaCount)); // dataMap.put("csClCount",String.valueOf(csClCount)); @@ -2082,17 +2055,17 @@ public class SieveFacade { // dataMap.put("csJxCount",String.valueOf(csJxCount)); // dataMap.put("ysDiaCount",String.valueOf(ysDiaCount)); // dataMap.put("ysDiaExcCount",String.valueOf(ysDiaExcCount)); - dataMap.put("rmDiaCount",String.valueOf(rmDiaCount)); - dataMap.put("rmDiaExcCount",String.valueOf(rmDiaExcCount)); - dataMap.put("teDiaCount",String.valueOf(teDiaCount)); - dataMap.put("teDiaExcCount",String.valueOf(teDiaExcCount)); + dataMap.put("rmDiaCount", String.valueOf(rmDiaCount)); + dataMap.put("rmDiaExcCount", String.valueOf(rmDiaExcCount)); + dataMap.put("teDiaCount", String.valueOf(teDiaCount)); + dataMap.put("teDiaExcCount", String.valueOf(teDiaExcCount)); // dataMap.put("qtDiaCount",String.valueOf(qtDiaCount)); // dataMap.put("qtDiaExcCount",String.valueOf(qtDiaExcCount)); - dataMap.put("qtDiaCount","-"); - dataMap.put("qtDiaExcCount","-"); - dataMap.put("hjDiaCount",String.valueOf(hjDiaCount)); - dataMap.put("hjDiaExcCount",String.valueOf(hjDiaExcCount)); - dataMap.put("hjStopCount",String.valueOf(hjStopCount)); + dataMap.put("qtDiaCount", "-"); + dataMap.put("qtDiaExcCount", "-"); + dataMap.put("hjDiaCount", String.valueOf(hjDiaCount)); + dataMap.put("hjDiaExcCount", String.valueOf(hjDiaExcCount)); + dataMap.put("hjStopCount", String.valueOf(hjStopCount)); list.add(dataMap); } diff --git a/platform-operate-api/src/main/resources/sfdjb.docx b/platform-operate-api/src/main/resources/sfdjb.docx index 410990d8247f51e041ae77bd6f4510d4ecb12454..aefffc127821aacbc243f1ecb24393fb188a3c2e 100644 GIT binary patch delta 5200 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 K+=rrnkpBQzNf9#u delta 5081 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