From 563ad80415d216e0ef01cd084e7ea936f5f003a3 Mon Sep 17 00:00:00 2001 From: hujiaqi Date: Fri, 2 Dec 2016 14:43:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=A4=84=E7=90=86=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E4=BA=A7=E6=A3=80=E5=8C=BB=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/biz/dal/IPatientDao.java | 2 + .../lyms/platform/biz/dal/impl/PatientDaoImpl.java | 5 ++ .../lyms/platform/biz/service/PatientsService.java | 4 ++ .../operate/web/controller/TestController.java | 80 ++++++++++++++++++++-- 4 files changed, 86 insertions(+), 5 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java index b6f393c..e7e98de 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IPatientDao.java @@ -34,6 +34,8 @@ public interface IPatientDao { void updatePatientOneCol(String id, Object colValue); + void updatePatientLastCheckEmployeeIdOne(String id, String lastCheckEmployeeId); + List predictedStatistics(); List aggregateOne(MongoQuery mongoQuery); diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java index 25caa39..327a0ab 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/PatientDaoImpl.java @@ -43,6 +43,11 @@ public class PatientDaoImpl extends BaseMongoDAOImpl implements IPatie } @Override + public void updatePatientLastCheckEmployeeIdOne(String id, String lastCheckEmployeeId){ + this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(id)), Update.update("lastCheckEmployeeId", lastCheckEmployeeId), Patients.class); + } + + @Override public List predictedStatistics() { // List predictedStatisticsCountModelList = new ArrayList<>(); // DBCollection dbCollection = this.mongoTemplate.getCollection("lyms_patient"); diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java index 27c99f9..8faec2e 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/PatientsService.java @@ -117,6 +117,10 @@ public class PatientsService { iPatientDao.updatePatientOneCol(id,colValue); } + public void updatePatientLastCheckEmployeeIdOne(String id, String lastCheckEmployeeId) { + iPatientDao.updatePatientLastCheckEmployeeIdOne(id, lastCheckEmployeeId); + } + /** * 满足孕15+3至20+6之间和有产筛申请单的数据 */ 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 9e718c4..e3c86f9 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 @@ -1,7 +1,6 @@ package com.lyms.platform.operate.web.controller; import com.lyms.hospitalapi.qhdfy.QhdfyHisService; -import com.lyms.platform.biz.JdbcUtil; import com.lyms.platform.biz.service.AntenatalExaminationService; import com.lyms.platform.biz.service.AssayConfigService; import com.lyms.platform.biz.service.PatientsService; @@ -9,7 +8,6 @@ import com.lyms.platform.biz.service.SieveService; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.JsonUtil; -import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.service.SyncDataTaskService; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.pojo.AntExChuModel; @@ -21,6 +19,7 @@ import com.lyms.platform.query.AntExQuery; import com.lyms.platform.query.PatientsQuery; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -31,8 +30,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.io.File; -import java.io.IOException; -import java.text.CollationElementIterator; import java.util.*; /** @@ -341,12 +338,85 @@ public class TestController { } } } - }); + }).start(); } return "syncPatNextTime finish"; } + @ResponseBody + @RequestMapping(value = "/syncPatientsLastCheckEmployeeId", method = RequestMethod.GET) + public void syncPatientsLastCheckEmployeeId(@RequestParam String hospitalId, + @RequestParam(required = false) int batchSize) { + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setYn(YnEnums.YES.getId()); + // 医院id + patientsQuery.setHospitalId(hospitalId); + List typeList = new ArrayList<>(); + // 孕妇 + typeList.add(1); + // 产妇 + typeList.add(3); + patientsQuery.setTypeList(typeList); + // 查询 + List patientsList = patientsService.queryPatient(patientsQuery); + System.out.println("本次读取了【" + patientsList.size() + "】条数据"); + + if (batchSize == 0) { + batchSize = 1000; + } + int end = 0; + + for (int i = 0; i < patientsList.size(); i += batchSize) { + end = (end + batchSize); + if (end > patientsList.size()) { + end = patientsList.size(); + } + final List tempList = patientsList.subList(i, end); + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) { + for (Patients patients : tempList) { + + String id = patients.getId(); + String hospitalId = patients.getHospitalId(); + + String lastCheckEmployeeId = null; + String flag; + + // 查询复诊,如果没有再查询初诊 + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setYn(YnEnums.YES.getId()); + antExQuery.setParentId(id); + antExQuery.setHospitalId(hospitalId); + List antenatalExaminationModelList = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery().addOrder(Sort.Direction.DESC, "created")); + if (CollectionUtils.isNotEmpty(antenatalExaminationModelList)) { + lastCheckEmployeeId = antenatalExaminationModelList.get(0).getCheckDoctor(); + flag = "复诊"; + } else { + // 查询初诊 + AntExChuQuery antExChuQuery = new AntExChuQuery(); + antExChuQuery.setYn(YnEnums.YES.getId()); + antExChuQuery.setParentId(id); + antExChuQuery.setHospitalId(hospitalId); + List antExChuModelList = antenatalExaminationService.queryAntExChu(antExChuQuery); + if (antExChuModelList.size() == 1) { + lastCheckEmployeeId = antExChuModelList.get(0).getProdDoctor(); + } + flag = "初诊"; + } + if (!StringUtils.isEmpty(lastCheckEmployeeId)) { + patientsService.updatePatientLastCheckEmployeeIdOne(id, lastCheckEmployeeId); + System.out.println("更新lyms_patient:id=" + id + ",lastCheckEmployeeId=" + lastCheckEmployeeId + ",来自" + flag); + } + } + } + } + }).start(); + } + } + @RequestMapping(value = "/initCardNo", method = RequestMethod.GET) @ResponseBody public String initCardNo() { -- 1.8.3.1