From dd903edc507c84ae02ac00c49394de6df6dd766e Mon Sep 17 00:00:00 2001 From: liquanyu Date: Thu, 3 Sep 2020 15:12:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=84=BF=E7=AB=A5=E8=BF=BD=E8=AE=BF=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/BabyAfterVisitBuildListRequest.java | 39 ++++++++++ .../operate/web/request/BabyAfterVisitRequest.java | 38 ++++++++++ .../service/impl/BabyAfterVisitServiceImpl.java | 87 +++++++++++++--------- 3 files changed, 130 insertions(+), 34 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitBuildListRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitBuildListRequest.java index e81931a..10d495d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitBuildListRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitBuildListRequest.java @@ -112,6 +112,45 @@ public class BabyAfterVisitBuildListRequest extends BaseQuery implements Seriali private boolean isArea; + + + private String orgProvinceId; + private String orgCityId; + private String orgAreaId; + private String hospitalId; + + public String getOrgProvinceId() { + return orgProvinceId; + } + + public void setOrgProvinceId(String orgProvinceId) { + this.orgProvinceId = orgProvinceId; + } + + public String getOrgCityId() { + return orgCityId; + } + + public void setOrgCityId(String orgCityId) { + this.orgCityId = orgCityId; + } + + public String getOrgAreaId() { + return orgAreaId; + } + + public void setOrgAreaId(String orgAreaId) { + this.orgAreaId = orgAreaId; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + public String getProvinceId() { return provinceId; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitRequest.java index b3d9f1b..c684da8 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitRequest.java @@ -70,6 +70,44 @@ public class BabyAfterVisitRequest extends BaseQuery { private String streetId; private boolean isArea; + + private String orgProvinceId; + private String orgCityId; + private String orgAreaId; + private String hospitalId; + + public String getOrgProvinceId() { + return orgProvinceId; + } + + public void setOrgProvinceId(String orgProvinceId) { + this.orgProvinceId = orgProvinceId; + } + + public String getOrgCityId() { + return orgCityId; + } + + public void setOrgCityId(String orgCityId) { + this.orgCityId = orgCityId; + } + + public String getOrgAreaId() { + return orgAreaId; + } + + public void setOrgAreaId(String orgAreaId) { + this.orgAreaId = orgAreaId; + } + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + public boolean isArea() { return isArea; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java index 0c18fd1..196a467 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java @@ -2,6 +2,7 @@ package com.lyms.platform.operate.web.service.impl; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.lyms.platform.biz.service.BabyBookbuildingService; +import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.biz.service.DataPermissionService; import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.SexEnum; @@ -11,6 +12,7 @@ import com.lyms.platform.common.result.BaseListResponse; import com.lyms.platform.common.result.BaseModel; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.*; +import com.lyms.platform.operate.web.facade.AreaCountFacade; import com.lyms.platform.operate.web.facade.AutoMatchFacade; import com.lyms.platform.operate.web.request.BabyAfterVisitBuildListRequest; import com.lyms.platform.operate.web.request.BabyAfterVisitInfoDetailListRequest; @@ -18,6 +20,7 @@ import com.lyms.platform.operate.web.request.BabyAfterVisitInfoDetailRequest; import com.lyms.platform.operate.web.request.BabyAfterVisitRequest; import com.lyms.platform.operate.web.service.BabyAfterVisitService; import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.EncryptUtil; import com.lyms.platform.operate.web.utils.InitDataUtils; import com.lyms.platform.operate.web.worker.BabyAfterVisitInfoModelWork; @@ -25,8 +28,8 @@ import com.lyms.platform.operate.web.worker.BabyAfterVisitStatisticsModelWork; import com.lyms.platform.permission.dao.master.BabyPatientExtendEarScreenMapper; import com.lyms.platform.permission.dao.master.MasterUsersMapper; import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.pojo.*; -import com.lyms.platform.query.DataPermissionsModelQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -61,10 +64,16 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { private AutoMatchFacade autoMatchFacade; @Autowired + private AreaCountFacade areaCountFacade; + + @Autowired private BabyBookbuildingService babyBookbuildingService; @Autowired - private DataPermissionService dataPermissionService; + private OrganizationService organizationService; + + @Autowired + private BasicConfigService basicConfigService; /** * 追访管理 - 追访列表 @@ -96,23 +105,16 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { } if (request.isArea()) { - //权限所有的医院 - List allHospitalList = new ArrayList<>(); - DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); - dataPermissionsModelQuery.setUserId(userId); - List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); - if (org.apache.commons.collections.CollectionUtils.isNotEmpty(permissionsModels)) { - Set set = permissionsModels.get(0).getData().keySet(); - Iterator it = set.iterator(); - while (it.hasNext()) { - String id = it.next(); - if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id)) { - allHospitalList.add(id); - } - } + //获取当前用户能看到的那些医院 + List hospitalIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(request.getHospitalId())) { + hospitalIds.add(request.getHospitalId()); + } else { + //获取用户拥有的权限医院和条件筛选的医院交集 + hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, request.getOrgProvinceId(), request.getOrgCityId(), request.getOrgAreaId()); + hospitalIds.add(hospitalId); } - allHospitalList.add(hospitalId); - query.addCriteria(Criteria.where("hospitalId").in(allHospitalList)); + query.addCriteria(Criteria.where("hospitalId").in(hospitalIds)); } else { @@ -177,6 +179,19 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { highRiskType = exists ? -1 : highRiskType; } objectMap.put("highRiskType", highRiskType); + if (request.isArea()) + { + objectMap.put("hospitalName", CommonsHelper.getHospitalName(model.getHospitalId(), organizationService)); + BabyModel babyModel = babyBookbuildingService.queryBabyBuildById(model.getBabyId()); + String address = ""; + if (babyModel != null) + { + address = CommonsHelper.getResidence(babyModel.getProvinceId(), babyModel.getCityId(), + babyModel.getAreaId(), babyModel.getStreetId(), babyModel.getAddress(), basicConfigService); + } + objectMap.put("address", address); + } + objectMap.put("mphone", "1".equals(request.getIsEncrypt()) ? EncryptUtil.numberEncrypt(model.getMphone()) : model.getMphone()); objectMap.put("mcertNo", "1".endsWith(request.getIsEncrypt()) ? EncryptUtil.numberEncrypt(model.getMcertNo()) : model.getMcertNo()); @@ -290,23 +305,16 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { if (request.isArea()) { - //权限所有的医院 - List allHospitalList = new ArrayList<>(); - DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); - dataPermissionsModelQuery.setUserId(userId); - List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); - if (org.apache.commons.collections.CollectionUtils.isNotEmpty(permissionsModels)) { - Set set = permissionsModels.get(0).getData().keySet(); - Iterator it = set.iterator(); - while (it.hasNext()) { - String id = it.next(); - if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id)) { - allHospitalList.add(id); - } - } + //获取当前用户能看到的那些医院 + List hospitalIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(request.getHospitalId())) { + hospitalIds.add(request.getHospitalId()); + } else { + //获取用户拥有的权限医院和条件筛选的医院交集 + hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, request.getOrgProvinceId(), request.getOrgCityId(), request.getOrgAreaId()); + hospitalIds.add(hospitalId); } - allHospitalList.add(hospitalId); - query.addCriteria(Criteria.where("hospitalId").in(allHospitalList)); + query.addCriteria(Criteria.where("hospitalId").in(hospitalIds)); } else { @@ -499,6 +507,17 @@ public class BabyAfterVisitServiceImpl implements BabyAfterVisitService { // 脱敏处理 objectMap.put("mphone", "1".equals(request.getIsEncrypt()) ? EncryptUtil.numberEncrypt(model.getMphone()) : model.getMphone()); + if (request.isArea()) + { + objectMap.put("hospitalName", CommonsHelper.getHospitalName(model.getHospitalId(), organizationService)); + BabyModel babyModel = babyBookbuildingService.queryBabyBuildById(model.getBabyId()); + if (babyModel != null) + { + objectMap.put("address", CommonsHelper.getResidence(babyModel.getProvinceId(), babyModel.getCityId(), + babyModel.getAreaId(), babyModel.getStreetId(), babyModel.getAddress(), basicConfigService)); + } + } + // 预约时间 Date appointmentTime = model.getAppointmentTime(); if (appointmentTime != null) { -- 1.8.3.1