From 17d17d70f08d6455a0e7b7ff6b6aa68cad1b1ec5 Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Mon, 26 Dec 2016 15:45:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E6=A3=80=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/pojo/AntExRecordModel.java | 47 ++++++++ .../com/lyms/platform/query/AntExRecordQuery.java | 14 +++ .../controller/AntenatalExaminationController.java | 15 ++- .../operate/web/facade/AntExRecordFacade.java | 112 ++++++++++++++++--- .../platform/operate/web/facade/PatientFacade.java | 2 +- .../web/request/AntExManagerQueryRequest.java | 119 +++++++++++++++++++++ .../operate/web/result/AntExManagerResult.java | 21 ++++ 7 files changed, 313 insertions(+), 17 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/AntExRecordModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/AntExRecordModel.java index bda7dca..a034372 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/AntExRecordModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/AntExRecordModel.java @@ -64,6 +64,53 @@ public class AntExRecordModel extends BaseModel { //下次产检时间 private Date nextCheckTime; + private String addressRegister; + private String provinceRegisterId; + private String cityRegisterId; + private String areaRegisterId; + private String streetRegisterId; + + + public String getAddressRegister() { + return addressRegister; + } + + public void setAddressRegister(String addressRegister) { + this.addressRegister = addressRegister; + } + + public String getProvinceRegisterId() { + return provinceRegisterId; + } + + public void setProvinceRegisterId(String provinceRegisterId) { + this.provinceRegisterId = provinceRegisterId; + } + + public String getCityRegisterId() { + return cityRegisterId; + } + + public void setCityRegisterId(String cityRegisterId) { + this.cityRegisterId = cityRegisterId; + } + + public String getAreaRegisterId() { + return areaRegisterId; + } + + public void setAreaRegisterId(String areaRegisterId) { + this.areaRegisterId = areaRegisterId; + } + + public String getStreetRegisterId() { + return streetRegisterId; + } + + public void setStreetRegisterId(String streetRegisterId) { + this.streetRegisterId = streetRegisterId; + } + public Date getNextCheckTime() { return nextCheckTime; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java index a1624d7..eed2879 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/AntExRecordQuery.java @@ -9,6 +9,7 @@ import com.lyms.platform.common.utils.StringUtils; import org.springframework.data.mongodb.core.query.Criteria; import java.util.Date; +import java.util.List; /** * Created by Administrator on 2016/6/21 0021. @@ -47,6 +48,7 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery //创建时间 private String hospitalId; + private List hospitalList; //孕妇状态 private Integer status; private String levelId; @@ -61,6 +63,14 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery private Date gteCreated; private String pid; + public List getHospitalList() { + return hospitalList; + } + + public void setHospitalList(List hospitalList) { + this.hospitalList = hospitalList; + } + public String getfId() { return fId; } @@ -190,6 +200,10 @@ public class AntExRecordQuery extends BaseQuery implements IConvertToNativeQuery if (null != hospitalId) { condition = condition.and("hospitalId", hospitalId, MongoOper.IS); } + if (null != hospitalList) { + condition = condition.and("hospitalId", hospitalList, MongoOper.IN); + } + if (null != pid) { condition = condition.and("pid", pid, MongoOper.IS); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java index 90759f3..76e9844 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java @@ -181,6 +181,19 @@ public class AntenatalExaminationController extends BaseController { @TokenRequired public BaseResponse findAntEx(@Valid AntExManagerQueryRequest antExManagerQueryRequest,HttpServletRequest request){ LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); - return antExRecordFacade.findList(antExManagerQueryRequest,loginState.getId()); + return antExRecordFacade.findList(antExManagerQueryRequest, loginState.getId(), false); + } + + /** + * 产检区域管理接口 + * + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/antex/rantexrecordlist") + @ResponseBody + @TokenRequired + public BaseResponse findRegionAntEx(@Valid AntExManagerQueryRequest antExManagerQueryRequest,HttpServletRequest request){ + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return antExRecordFacade.findList(antExManagerQueryRequest,loginState.getId(),true); } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index 9c62741..ce8ad0f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -16,16 +16,14 @@ import com.lyms.platform.operate.web.result.AntExManagerResult; import com.lyms.platform.operate.web.result.CjStatisticsListResult; import com.lyms.platform.operate.web.result.CjStatisticsResult; import com.lyms.platform.operate.web.result.HighScoreResult; +import com.lyms.platform.operate.web.utils.CommonsHelper; +import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; -import com.lyms.platform.pojo.AntExRecordModel; -import com.lyms.platform.pojo.AntenatalExaminationModel; -import com.lyms.platform.pojo.BasicConfig; -import com.lyms.platform.pojo.Patients; -import com.lyms.platform.query.AntExChuQuery; -import com.lyms.platform.query.AntExQuery; -import com.lyms.platform.query.AntExRecordQuery; -import com.lyms.platform.query.PatientsQuery; +import com.lyms.platform.pojo.*; +import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -55,26 +53,96 @@ public class AntExRecordFacade { private CommonService commonService; @Autowired private AntenatalExaminationService antExService; + @Autowired + private OrganizationService organizationService; + @Autowired + private DataPermissionService dataPermissionService; public void syncAntRecordToList(String hospitalId) { recordService.syncAntRecordToList(hospitalId); } + /** - * 产检管理 + * 组合查询请求 * - * @return + * @param userId + * @param antExManagerQueryRequest + * @param isRegion */ - public BaseResponse findList(AntExManagerQueryRequest antExManagerQueryRequest, Integer userId) { - String hospitalId = autoMatchFacade.getHospitalId(userId); + private AntExRecordQuery complayRequest(Integer userId,AntExManagerQueryRequest antExManagerQueryRequest,boolean isRegion){ + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); - antExRecordQuery.setHospitalId(hospitalId); antExRecordQuery.setNeed("1"); antExRecordQuery.setPage(antExManagerQueryRequest.getPage()); antExRecordQuery.setLimit(antExManagerQueryRequest.getLimit()); antExRecordQuery.setName(antExManagerQueryRequest.getName()); antExRecordQuery.setPhone(antExManagerQueryRequest.getPhone()); + //区域范围内孕妇 + if (isRegion) { + List hospitalList = null; + //王平说的 必须要给区域医院权限,不然他就是蠢逼 201611124 16:41 + hospitalList = new ArrayList<>(); + String hospital = autoMatchFacade.getHospitalId(userId); + if(null!=hospital){ + hospitalList.add(hospital); + } + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + List permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery); + if (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) && !hospitalList.contains(id)) { + hospitalList.add(id); + } + } + } + + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExManagerQueryRequest.gethId())) { + List orgId = new ArrayList<>(); + orgId.add(antExManagerQueryRequest.gethId()); + hospitalList.retainAll(orgId); + } else if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExManagerQueryRequest.getCprovinceId())) { + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + organizationQuery.setProvinceId(antExManagerQueryRequest.getCprovinceId()); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExManagerQueryRequest.getCcityId())) { + organizationQuery.setCityId(antExManagerQueryRequest.getCcityId()); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExManagerQueryRequest.getCareaId())) { + organizationQuery.setAreaId(antExManagerQueryRequest.getCareaId()); + } + } + List orgId = new ArrayList<>(); + List organizations = organizationService.queryOrganization(organizationQuery); + if (CollectionUtils.isNotEmpty(organizations)) { + for (Organization org : organizations) { + if (null != org.getId()) { + orgId.add(org.getId() + ""); + } + } + } + hospitalList.retainAll(orgId); + } + antExRecordQuery.setHospitalList(hospitalList); + } else { + String hospital = autoMatchFacade.getHospitalId(userId); + antExRecordQuery.setHospitalId(hospital); + } + return antExRecordQuery; + } + + /** + * 产检管理 + * + * @return + */ + public BaseResponse findList(AntExManagerQueryRequest antExManagerQueryRequest, Integer userId,boolean isRegion) { + AntExRecordQuery antExRecordQuery =complayRequest(userId,antExManagerQueryRequest,isRegion); + String hospital = autoMatchFacade.getHospitalId(userId); List data = new ArrayList<>(); List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery); if (CollectionUtils.isNotEmpty(antExRecordModelList)) { @@ -83,6 +151,20 @@ public class AntExRecordFacade { for (AntExRecordModel e : antExRecordModelList) { AntExManagerResult antExManagerResult = new AntExManagerResult(); antExManagerResult.convertToResult(e); + if(isRegion){ + //产检医院 + if(StringUtils.isNotEmpty(e.getHospitalId())){ + Organization org = organizationService.getOrganization(Integer.valueOf(e.getHospitalId())); + if(null!=org){ + antExManagerResult.setCheckHospital(org.getName()); + }else{ + antExManagerResult.setCheckHospital(e.getHospitalId()); + } + } + antExManagerResult.setAddr(CommonsHelper.getResidence(e.getProvinceRegisterId(), e.getCityRegisterId(), e.getAreaRegisterId(), e.getStreetRegisterId(), e.getAddressRegister(), basicConfigService)); + } + + //登记人 if (org.apache.commons.lang.StringUtils.isNotEmpty(e.getBuildDoctor())) { if (NumberUtils.isNumber(e.getBuildDoctor())) { @@ -121,10 +203,10 @@ public class AntExRecordFacade { int i = antExService.queryAntenatalExaminationCount(antExQuery.convertToQuery()); antExChuQuery.setHospitalId(null); int b = antExService.queryAntExChuCount(antExChuQuery.convertToQuery()); - antExQuery.setHospitalId(hospitalId); + antExQuery.setHospitalId(hospital); //本院的复诊记录 int chi = antExService.queryAntenatalExaminationCount(antExQuery.convertToQuery()); - antExChuQuery.setHospitalId(hospitalId); + antExChuQuery.setHospitalId(hospital); //本院的初诊记录 int chb = antExService.queryAntExChuCount(antExChuQuery.convertToQuery()); antExManagerResult.settTimes(i + b); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index 16cf513..2055b8f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -461,7 +461,7 @@ public class PatientFacade { patientsQuery.setId(patientQueryRequest.getId()); patientsQuery.setPhone(patientQueryRequest.getPhone()); patientsQuery.setCardNo(patientQueryRequest.getCardNo()); - String hospital = autoMatchFacade.getHospitalId(userId); + Patients patients = antenatalExaminationFacade.findOnePatient(patientQueryRequest.getCardNo(), null, patientQueryRequest.getId(), groupsFacade.findGroupHospital(userId), -1, false, patientQueryRequest.getPid(),false); PatientBaseResult patientBaseResult = new PatientBaseResult(); if (null != patients) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AntExManagerQueryRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AntExManagerQueryRequest.java index 6d55eae..ae44c79 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AntExManagerQueryRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AntExManagerQueryRequest.java @@ -15,6 +15,10 @@ public class AntExManagerQueryRequest extends BasePageQueryRequest { private String phone; //产检日期 private String cTime; + //建档时间 + private String bTime; + //预产期 + private String dueTime; //高危等级 private String level; //高危因素 @@ -22,6 +26,121 @@ public class AntExManagerQueryRequest extends BasePageQueryRequest { //条码 private String barCode; + + //户籍id + private String provinceRegisterId; + private String cityRegisterId; + private String areaRegisterId; + + //居住地 + private String provinceId; + private String cityId; + private String areaId; + + //产检医院 + private String cprovinceId; + private String ccityId; + private String careaId; + // 医院id + private String hId; + + + public String getProvinceRegisterId() { + return provinceRegisterId; + } + + public void setProvinceRegisterId(String provinceRegisterId) { + this.provinceRegisterId = provinceRegisterId; + } + + public String getCityRegisterId() { + return cityRegisterId; + } + + public void setCityRegisterId(String cityRegisterId) { + this.cityRegisterId = cityRegisterId; + } + + public String getAreaRegisterId() { + return areaRegisterId; + } + + public void setAreaRegisterId(String areaRegisterId) { + this.areaRegisterId = areaRegisterId; + } + + public String getProvinceId() { + return provinceId; + } + + public void setProvinceId(String provinceId) { + this.provinceId = provinceId; + } + + public String getCityId() { + return cityId; + } + + public void setCityId(String cityId) { + this.cityId = cityId; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getCprovinceId() { + return cprovinceId; + } + + public void setCprovinceId(String cprovinceId) { + this.cprovinceId = cprovinceId; + } + + public String getCcityId() { + return ccityId; + } + + public void setCcityId(String ccityId) { + this.ccityId = ccityId; + } + + public String getCareaId() { + return careaId; + } + + public void setCareaId(String careaId) { + this.careaId = careaId; + } + + public String gethId() { + return hId; + } + + public void sethId(String hId) { + this.hId = hId; + } + + public String getDueTime() { + return dueTime; + } + + public void setDueTime(String dueTime) { + this.dueTime = dueTime; + } + + public String getbTime() { + return bTime; + } + + public void setbTime(String bTime) { + this.bTime = bTime; + } + public String getName() { return name; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java index e1c9fa1..c7bb8f4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/AntExManagerResult.java @@ -51,6 +51,27 @@ public class AntExManagerResult { //联系电话 private String phone; + private String checkHospital; + + private String addr; + + + public String getAddr() { + return addr; + } + + public void setAddr(String addr) { + this.addr = addr; + } + + public String getCheckHospital() { + return checkHospital; + } + + public void setCheckHospital(String checkHospital) { + this.checkHospital = checkHospital; + } + public List getrLevel() { return rLevel; } -- 1.8.3.1