diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java index f7200cb..aaeb644 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/BabyEyeCheck.java @@ -492,6 +492,27 @@ public class BabyEyeCheck extends BaseModel { /****************************************/ + //建档医院 + private String hospitalName; + //居住地 + private String completeAddress; + + public String getHospitalName() { + return hospitalName; + } + + public void setHospitalName(String hospitalName) { + this.hospitalName = hospitalName; + } + + public String getCompleteAddress() { + return completeAddress; + } + + public void setCompleteAddress(String completeAddress) { + this.completeAddress = completeAddress; + } + public List getHandleOpinionsIdList() { return handleOpinionsIdList; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java index f5ff731..432f37c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyEyeCheckController.java @@ -249,6 +249,46 @@ public class BabyEyeCheckController extends BaseController { map.put("QhdBasicOrganization", QhdBasicOrganizationEnums.getListMap()); return RespBuilder.buildSuccess(map); } + /** + * 区域眼保健管理-眼保健检查管理 + * @param startDate + * @param endDate + * @param doctor + * @param key 姓名/联系方式/就诊卡 + * @param yeymcId 幼儿园 + * @param currentMonthStart/currentMonthEnd 当前月龄范围 + * @param chechMonth 检查月龄 + * @param positive 是否是阳性 + * @param bookStartDate 预约开始时间 + * @param bookEndDate 预约结束时间 + * @param positive 是否是阳性 + * @param page + * @param limit + * @param request + * @param provinceId //居住地-省 + * @param cityId //居住地-市 + * @param areaId //居住地-区县 + * @param streetId //居住地-街道 + * @param hospitalProvinceId //检查医院-省 + * @param hospitalCityId //检查医院-市 + * @param hospitalAreaId //检查医院-区县 + * @param hospitalId //检查医院-医院 + * @return + */ + @ResponseBody + @TokenRequired + @RequestMapping(value = "/getQy",method = RequestMethod.GET) + public BaseResponse getQy(Date startDate, Date endDate, String doctor, String key, String yeymcId,Integer currentMonthStart, Integer currentMonthEnd, String chechMonth, boolean positive, String positiveIds, Integer page, Integer limit, HttpServletRequest request, + Date bookStartDate, Date bookEndDate, String apparatusPositive, String doctorPositive, String yin,String noPassIds,Integer classify, + String babySource,Integer healthCheckType,String healthCheckTypeScattered,Integer healthCheckTypeWhole,Integer kindergarten,Integer basicOrganization, + String provinceId,String cityId,String areaId,String streetId,String hospitalProvinceId,String hospitalCityId,String hospitalAreaId, + String hospitalId) { + return babyEyeCheckService.getQy(getUserId(request), startDate, endDate, doctor, key,yeymcId, + currentMonthStart, currentMonthEnd, chechMonth, positive, positiveIds, page, limit, + bookStartDate, bookEndDate, apparatusPositive, doctorPositive, yin, noPassIds,classify, + babySource,healthCheckType,healthCheckTypeScattered,healthCheckTypeWhole,kindergarten,basicOrganization, + provinceId,cityId,areaId,streetId,hospitalProvinceId,hospitalCityId,hospitalAreaId,hospitalId); + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java index 23571b6..417d3b5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/BabyEyeCheckService.java @@ -51,4 +51,12 @@ public interface BabyEyeCheckService extends IBaseService { BaseResponse getBabyEyeCheckInfo(String hospitalId, String babyId); public String getExcItems(BabyNerveMovementModel movementModel); + + BaseResponse getQy(Integer userId, Date startDate, Date endDate, String doctor, String key, String yeymcId, Integer currentMonthStart, + Integer currentMonthEnd, String chechMonth, boolean positive, String positiveIds, Integer page, Integer limit, + Date bookStartDate, Date bookEndDate, String apparatusPositive, String doctorPositive, String yin, String noPassIds, + Integer classify, String babySource, Integer healthCheckType, String healthCheckTypeScattered, Integer healthCheckTypeWhole, + Integer kindergarten, Integer basicOrganization, + String provinceId, String cityId, String areaId, String streetId, + String hospitalProvinceId, String hospitalCityId, String hospitalAreaId, String hospitalId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java index be674af..cc0f542 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyEyeCheckServiceImpl.java @@ -1,10 +1,9 @@ package com.lyms.platform.operate.web.service.impl; -import com.lyms.platform.biz.service.BabyBookbuildingService; -import com.lyms.platform.biz.service.BabyCheckService; -import com.lyms.platform.biz.service.YunBookbuildingService; +import com.lyms.platform.biz.service.*; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.pojo.SyncDataModel; import com.lyms.platform.common.result.*; @@ -12,18 +11,18 @@ import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.facade.OperateLogFacade; import com.lyms.platform.operate.web.facade.OrganizationGroupsFacade; +import com.lyms.platform.operate.web.result.BabyManageListResult; import com.lyms.platform.operate.web.service.BabyAfterVisitService; import com.lyms.platform.operate.web.service.BabyEyeCheckService; -import com.lyms.platform.operate.web.utils.CollectionUtils; -import com.lyms.platform.operate.web.utils.MongoUtil; -import com.lyms.platform.operate.web.utils.ReflectUtil; -import com.lyms.platform.operate.web.utils.ResponseUtil; +import com.lyms.platform.operate.web.utils.*; import com.lyms.platform.permission.dao.master.BabyEyeCheckMapper; import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.BabyModelQuery; +import com.lyms.platform.query.DataPermissionsModelQuery; import org.apache.commons.collections.map.HashedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; @@ -76,6 +75,12 @@ public class BabyEyeCheckServiceImpl extends BaseServiceImpl implements BabyEyeC @Autowired private OperateLogFacade operateLogFacade; + @Autowired + private DataPermissionService dataPermissionService; + + @Autowired + private BasicConfigService basicConfigService; + public static final String BASE_IMG_PATH = PropertiesUtils.getPropertyValue("img_path"); public static String mongo_crypto_key = Config.getItem("mongo_crypto_key", "0"); @@ -2343,4 +2348,241 @@ public class BabyEyeCheckServiceImpl extends BaseServiceImpl implements BabyEyeC } + @Override + public BaseResponse getQy(Integer userId, Date startDate, Date endDate, String doctor, String key, String yeymcId, + Integer currentMonthStart, Integer currentMonthEnd, String chechMonth, boolean positive, + String positiveIds, Integer page, Integer limit, Date bookStartDate, Date bookEndDate, + String apparatusPositive, String doctorPositive, String yin, String noPassIds, Integer classify, + String babySource, Integer healthCheckType, String healthCheckTypeScattered, Integer healthCheckTypeWhole, + Integer kindergarten, Integer basicOrganization, + String provinceId, String cityId, String areaId, String streetId, + String hospitalProvinceId, String hospitalCityId, String hospitalAreaId, String ckHospitalId) { + + boolean b = true; + Criteria criteria = Criteria.where("yn").ne("0"); + if (startDate != null && endDate != null) { + criteria.and("checkTime").gte(startDate).lt(DateUtil.addDay(endDate, 1)); + } + if (bookStartDate != null && bookEndDate != null) { + criteria.and("nextCheckTime").gte(bookStartDate).lt(DateUtil.addDay(bookEndDate, 1)); + } + if (org.apache.commons.lang.StringUtils.isNotBlank(doctor)) { + criteria.and("doctor").is(doctor); + } + List chechMonths = new ArrayList<>(); + if (b && StringUtils.isNotEmpty(chechMonth)) { + if ("1".equals(chechMonth)) { + chechMonths.add("0"); + } else if ("12".equals(chechMonth)) { + chechMonths.add("9"); + } else if ("24".equals(chechMonth)) { + chechMonths.add("18"); + } + + chechMonths.add(chechMonth); + } + if (StringUtils.isNotEmpty(chechMonth)) { + criteria.and("checkMonthId").in(chechMonths); + } + + if (currentMonthStart != null && currentMonthEnd != null) { + Date start = DateUtil.getBirthStart(currentMonthEnd); + Date end = DateUtil.getBirthEnd(currentMonthStart); + criteria.and("birth").gte(start).lt(end); + } + if (StringUtils.isNotEmpty(apparatusPositive)) { + criteria.and("apparatus").is(apparatusPositive); + } + if (StringUtils.isNotEmpty(doctorPositive)) { + criteria.and("doctorJudgement").is(doctorPositive); + } + if (StringUtils.isNotEmpty(yin)) { + criteria.and("apparatus").nin("2").and("doctorJudgement").nin("2"); + } + //秦皇岛-分类-1.近视高危、2.弱视高危、3.异常高危。 (筛选查询) + if (null!=classify) { + criteria.and("classify").is(classify); + } + //秦皇岛-来源模块 + if(StringUtils.isNotEmpty(babySource)){ + criteria.and("babySource").is(babySource); + } + if(null!=healthCheckType){ + criteria.and("healthCheckType").is(healthCheckType); + } + if(StringUtils.isNotEmpty(healthCheckTypeScattered)){ + criteria.and("healthCheckTypeScattered").is(healthCheckTypeScattered); + } + if(null!=healthCheckTypeWhole){ + criteria.and("healthCheckTypeWhole").is(healthCheckTypeWhole); + } + if(null!=kindergarten){ + criteria.and("kindergarten").is(kindergarten); + } + if(null!=basicOrganization){ + criteria.and("basicOrganization").is(basicOrganization); + } + //检查医院 + if(StringUtils.isNotEmpty(ckHospitalId)){ + criteria.and("hospitalId").is(ckHospitalId); + } + //区域医院筛选条件得到机构ID集合 + List hospitalIdList = new ArrayList <>(); + if (StringUtils.isNotEmpty(hospitalProvinceId)){ + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setProvinceId(hospitalProvinceId); + List organizationListP = organizationService.queryOrganization(organizationQuery); + for (Organization organization : organizationListP) { + hospitalIdList.add(String.valueOf(organization.getId())); + } + if (StringUtils.isNotEmpty(hospitalCityId)) { + organizationQuery.setCityId(hospitalCityId); + List organizationListC = organizationService.queryOrganization(organizationQuery); + for (Organization organization : organizationListC) { + hospitalIdList.add(String.valueOf(organization.getId())); + } + } + if (StringUtils.isNotEmpty(hospitalAreaId)) { + organizationQuery.setAreaId(hospitalAreaId); + List organizationListA = organizationService.queryOrganization(organizationQuery); + for (Organization organization : organizationListA) { + hospitalIdList.add(String.valueOf(organization.getId())); + } + } + if (StringUtils.isNotEmpty(ckHospitalId)) { + hospitalIdList.add(ckHospitalId); + } + + List permissions = new ArrayList <>(); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List dataPermissionsModelList = dataPermissionService.queryPermission(dataPermissionsModelQuery); + if (CollectionUtils.isNotEmpty(dataPermissionsModelList)) { + Set set = dataPermissionsModelList.get(0).getData().keySet(); + Iterator it = set.iterator(); + while (it.hasNext()) { + String id = it.next(); + permissions.add(id); + } + } + + if (CollectionUtils.isNotEmpty(hospitalIdList)) { + hospitalIdList.retainAll(permissions); + } else { + hospitalIdList.addAll(permissions); + } + } + + //区域查询符合条件的儿童 + if(StringUtils.isNotEmpty(key)||StringUtils.isNotEmpty(yeymcId)||CollectionUtils.isNotEmpty(hospitalIdList)||StringUtils.isNotEmpty(provinceId)){ + Criteria c = new Criteria(); + //名字、电话、证件号筛选 + if (StringUtils.isNotEmpty(key)) { + c.orOperator(Criteria.where("mphone").is(key), Criteria.where("name").regex(key), Criteria.where("mcertNo").is(key), + Criteria.where("firstPyName").is(key)).and("yn").ne(0); + } + //幼儿园筛选 + if (StringUtils.isNotEmpty(yeymcId)) { + c.and("yeymcId").is(yeymcId); + } + //机构id集合筛选 + if (CollectionUtils.isNotEmpty(hospitalIdList)) { + c.and("hospitalId").in(hospitalIdList); + } + //居住地筛选 + if(StringUtils.isNotEmpty(provinceId)){ + c.and("provinceId").is(provinceId); + if (StringUtils.isNotEmpty(cityId)){ + c.and("cityId").is(cityId); + } + if (StringUtils.isNotEmpty(areaId)){ + c.and("areaId").is(areaId); + } + if (StringUtils.isNotEmpty(streetId)){ + c.and("streetId").is(streetId); + } + } + + List babyModels = mongoUtil.findField(BabyModel.class, c, "id"); + List babyIds = CollectionUtils.getId(babyModels, "id", String.class); + criteria.and("babyId").in(babyIds); + } + + + /** + * 新加的 不通过查询条件 + * @Author: 武涛涛 + * @Date: 2020/7/21 21:56 + */ + if (StringUtils.isNotEmpty(noPassIds)) { + List ids = CollectionUtils.asList(noPassIds, String.class); + for (String id : ids) { + if ("eyeAppearance".equals(id)) { + criteria.and("eyeAppearance").is("2"); + } else if ("redReflexQhd".equals(id)) { + criteria.and("redReflexQhd").is("2"); + } else if ("blinkReflex".equals(id)) { + criteria.and("blinkReflex").is("2"); + } else if ("redBallTest".equals(id)) { + criteria.and("redBallTest").is("2"); + } else if ("behaviorObservation".equals(id)) { + criteria.and("behaviorObservation").is("2"); + } else if ("refractiveScreening".equals(id)) { + criteria.and("refractiveScreening").is("2"); + } else if ("eyePositionExamination".equals(id)) { + criteria.and("eyePositionExamination").is("2"); + } else if ("eyeMovement".equals(id)) { + criteria.and("eyeMovement").is("2"); + } + } + } + + /*end */ + if (positive) { + + Query query = new Query(criteria); + query.with(new Sort(Sort.Direction.DESC, "created")); + query.addCriteria(new Criteria().orOperator(Criteria.where("apparatus").is("2"), Criteria.where("doctorJudgement").is("2"))); + + int count = (int) mongoTemplate.count(query, BabyEyeCheck.class); + + BaseQuery param = new BaseQuery(); + param.setPage(page); + param.setLimit(limit); + param.mysqlBuild(count); + query.skip(param.getOffset()).limit(param.getLimit()); + List babyEyeChecks = mongoTemplate.find(query, BabyEyeCheck.class); + // doFilter(babyEyeChecks); + + if (StringUtils.isNotEmpty(positiveIds)) { + List ids = CollectionUtils.asList(positiveIds, String.class); + if (CollectionUtils.isNotEmpty(ids)) { + doFilter(babyEyeChecks, ids); + } + } + //Integer count = babyEyeChecks.size(); + + // List datas = CollectionUtils.getPageIds(babyEyeChecks, page, limit); + List> maps = setDatas(babyEyeChecks); + return RespBuilder.buildSuccess(new PageResult(count, page, limit, maps)); + } + PageResult pageResult = findMongoPage(BabyEyeCheck.class, new Query(criteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit); + List babyEyeChecks = (List) pageResult.getGrid(); + if(CollectionUtils.isNotEmpty(babyEyeChecks)){ + for (BabyEyeCheck babyEyeCheck : babyEyeChecks) { + BabyModel babyModels = mongoTemplate.findById(babyEyeCheck.getBabyId(), BabyModel.class); + String address = CommonsHelper.getResidence(babyModels.getProvinceId(), babyModels.getCityId(), + babyModels.getAreaId(), babyModels.getStreetId(), babyModels.getAddress(), basicConfigService); + //居住地 + babyEyeCheck.setCompleteAddress(address); + //检查医院 + if(StringUtils.isNotEmpty(babyEyeCheck.getHospitalId())){ + babyEyeCheck.setHospitalName(organizationService.getOrganization(Integer.valueOf(babyEyeCheck.getHospitalId())).getName()); + } + } + } + pageResult.setGrid(setDatas(babyEyeChecks)); + return RespBuilder.buildSuccess(pageResult); + } + }