From cbcbaefdddc4c01ef5210769bbea8796c2cbc34d Mon Sep 17 00:00:00 2001 From: "[wangbo]" Date: Tue, 27 Aug 2019 17:46:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=95=E5=A6=87=E8=BF=BD=E8=AE=BF=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E5=AE=8C=E7=BE=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/biz/service/MatDeliverService.java | 15 ++-- .../main/java/com/lyms/platform/pojo/Patients.java | 21 +++++ .../lyms/platform/pojo/ResidentsArchiveModel.java | 13 ++++ .../com/lyms/platform/pojo/TrackDownRecord.java | 9 +++ .../com/lyms/platform/query/PatientsQuery.java | 16 +++- .../lyms/platform/query/ResidentsArchiveQuery.java | 15 ++++ .../lyms/platform/query/TrackDownRecordQuery.java | 53 +++++++++++++ .../web/controller/TrackDownController.java | 1 + .../operate/web/facade/BookbuildingFacade.java | 2 + .../operate/web/facade/TrackDownFacade.java | 86 ++++++++++++++++++-- .../operate/web/worker/ChaseVisitHistory.java | 16 +++- .../operate/web/worker/GravidaVisitHistory.java | 91 ++++++++++++++++++++++ .../operate/web/worker/TrackDownHistory.java | 83 ++++++++++++++++++++ 13 files changed, 403 insertions(+), 18 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/GravidaVisitHistory.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/TrackDownHistory.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverService.java index b79cf95..a89a368 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MatDeliverService.java @@ -23,11 +23,9 @@ public class MatDeliverService { private IMatDeliverDao iMatDeliverDao; /** - * * 增加一条分娩记录 * * @param deliverModel 产妇分娩记录 - * * @return */ public MaternalDeliverModel addMatDeliver(MaternalDeliverModel deliverModel) { @@ -37,27 +35,28 @@ public class MatDeliverService { return iMatDeliverDao.addMatDeliver(deliverModel); } - public List query(MatDeliverQuery deliverQuery){ + public List query(MatDeliverQuery deliverQuery) { return iMatDeliverDao.queryWithList(deliverQuery.convertToQuery().addOrder(Sort.Direction.DESC, "created")); } - public List query(MatDeliverQuery deliverQuery,Sort.Direction sort,String field){ + public List query(MatDeliverQuery deliverQuery, Sort.Direction sort, String field) { return iMatDeliverDao.queryWithList(deliverQuery.convertToQuery().addOrder(sort, field)); } - public void deleteOne(String id){ + public void deleteOne(String id) { iMatDeliverDao.deleteOne(id); } - public void updateOne(MaternalDeliverModel deliverModel,String id){ + public void updateOne(MaternalDeliverModel deliverModel, String id) { deliverModel.setModified(new Date()); iMatDeliverDao.updateOneById(deliverModel, id); } - public int count(MatDeliverQuery matDeliverQuery){ + public int count(MatDeliverQuery matDeliverQuery) { return iMatDeliverDao.queryCount(matDeliverQuery.convertToQuery()); } - public MaternalDeliverModel getOneMatDeliver(String id){ + + public MaternalDeliverModel getOneMatDeliver(String id) { return iMatDeliverDao.getById(id); } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java b/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java index 4be2c90..3bd52bf 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/Patients.java @@ -49,6 +49,7 @@ public class Patients extends BaseModel { // 月经停留开始天数 private String mensStopEndDay; + private boolean isHistory; // 初诊复诊发送推送消息时间 private Date sendMsgTime; @@ -311,6 +312,26 @@ public class Patients extends BaseModel { //孕妇追访分娩方式冗余 private String fmMode; + //是否分娩 + private String isDeliver; + + + public boolean isHistory() { + return isHistory; + } + + public void setHistory(boolean history) { + isHistory = history; + } + + public String getIsDeliver() { + return isDeliver; + } + + public void setIsDeliver(String isDeliver) { + this.isDeliver = isDeliver; + } + public String getFmMode() { return fmMode; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/ResidentsArchiveModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/ResidentsArchiveModel.java index 7498ab7..59cd996 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/ResidentsArchiveModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/ResidentsArchiveModel.java @@ -132,6 +132,11 @@ public class ResidentsArchiveModel extends BaseModel { //是否终止流程 0 正常流程 1 终止流程 private String stop; + + //历史数据是否同步 + private boolean isHistory; + + /***********荣成新增男性建档字段**********/ private String isOrNotrdl;//是否进食肉、蛋类(0:否;1:是;默认为1) private String isOrNotSc;//是否厌食蔬菜(0:否;1:是;默认为0) @@ -187,6 +192,14 @@ public class ResidentsArchiveModel extends BaseModel { } + public boolean isHistory() { + return isHistory; + } + + public void setHistory(boolean history) { + isHistory = history; + } + public String getCheckup() { return checkup; } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDownRecord.java b/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDownRecord.java index 95e5852..f04a5cf 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDownRecord.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/TrackDownRecord.java @@ -78,7 +78,16 @@ public class TrackDownRecord extends BaseModel { //特殊 产筛追访日期 private Date fmzyTrackDownDate; + //历史数据是否处理 + private boolean isHistory; + public boolean isHistory() { + return isHistory; + } + + public void setHistory(boolean history) { + isHistory = history; + } public Date getFmzyAppointmentDate() { return fmzyAppointmentDate; diff --git a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java index a9bee4a..1e72ea4 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/PatientsQuery.java @@ -349,6 +349,17 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { //分娩方式 private String fmMode; + //历史数据是否处理 + private boolean isHistory; + + public boolean isHistory() { + return isHistory; + } + + public void setHistory(boolean history) { + isHistory = history; + } + public String getFmMode() { return fmMode; } @@ -416,8 +427,11 @@ public class PatientsQuery extends BaseQuery implements IConvertToNativeQuery { if (null != serviceTypeIsExist) { condition = condition.and("serviceType", serviceTypeIsExist, MongoOper.EXISTS); } + if (isHistory) { + condition = condition.and("isHistory", false, MongoOper.EXISTS); + } if (null != isDeliver) { - condition = condition.and("fmDate", isDeliver, MongoOper.EXISTS); + condition = condition.and("isDeliver", isDeliver, MongoOper.IS); } if (null != fmMode) { condition = condition.and("fmMode", fmMode, MongoOper.IS); diff --git a/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java index 8200098..2be3d9a 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/ResidentsArchiveQuery.java @@ -132,6 +132,17 @@ public class ResidentsArchiveQuery extends BaseQuery implements IConvertToNative //追访状态 0 正常 1. 待追访 2.已终止 private Integer followupStatus; + //历史数据是否同步 + private boolean isHistory; + + public boolean isHistory() { + return isHistory; + } + + public void setHistory(boolean history) { + isHistory = history; + } + public Date getCreatedStart() { return createdStart; } @@ -190,6 +201,10 @@ public class ResidentsArchiveQuery extends BaseQuery implements IConvertToNative if (StringUtils.isNotEmpty(checkup)) { condition = condition.and("checkup", checkup, MongoOper.IS); } + if (isHistory) { + condition = condition.and("isHistory", false, MongoOper.EXISTS); + } + if (StringUtils.isNotEmpty(pregnantBuild)) { condition = condition.and("pregnantBuild", pregnantBuild, MongoOper.IS); } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java index deba864..70c8579 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/TrackDownRecordQuery.java @@ -44,6 +44,10 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ private Integer status; private String cardNo; private String phone; + private Date startCreated; + private Date endCreated; + + /** * 末次月经 */ @@ -87,6 +91,33 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ //查询TrackType; private Integer queryTrackType; + // + private boolean isHistory; + + public boolean isHistory() { + return isHistory; + } + + public void setHistory(boolean history) { + isHistory = history; + } + + public Date getStartCreated() { + return startCreated; + } + + public void setStartCreated(Date startCreated) { + this.startCreated = startCreated; + } + + public Date getEndCreated() { + return endCreated; + } + + public void setEndCreated(Date endCreated) { + this.endCreated = endCreated; + } + public Integer getQueryTrackType() { return queryTrackType; } @@ -345,6 +376,10 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ condition = condition.and("cardNo", cardNo, MongoOper.IS); } + if (isHistory) { + condition = condition.and("isHistory", false, MongoOper.EXISTS); + } + if (StringUtils.isNotEmpty(provinceId)) { condition = condition.and("provinceRegisterId", provinceId, MongoOper.IS); } @@ -615,6 +650,24 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ } } } + + + if (null != startCreated) { + if (null != c1) { + c1 = c1.and("created").gte(startCreated); + } else { + c1 = Criteria.where("created").gte(startCreated); + } + } + if (null != endCreated) { + if (c1 != null) { + c1 = c1.lte(endCreated); + } else { + c1 = Criteria.where("created").lte(endCreated); + } + } + + if (null != c1) { condition = condition.andCondition(new MongoCondition(c1)); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java index 3d52704..14c5235 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java @@ -146,6 +146,7 @@ public class TrackDownController extends BaseController { * 孕妇追访管理历史数据处理 */ @RequestMapping(value = "/historyData", method = RequestMethod.GET) + @ResponseBody public void historyData(Date startTime, Date endTime, String hospitalId) { downFacade.historyData(startTime, endTime, hospitalId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index cc2c596..c3cf3b3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -1447,6 +1447,8 @@ public class BookbuildingFacade { public Patients getPatientsData(YunBookbuildingAddRequest yunRequest) { Patients patient = new Patients(); patient.setChildExtAddrs(yunRequest.getChildExtAddrs()); + //默认为未分娩 + patient.setIsDeliver("0"); patient.setSendCareMan(yunRequest.getSendCareMan()); patient.setReqHusband(yunRequest.getReqHusband()); patient.setFuckLastMens(DateUtil.parseYMD(yunRequest.getFuckLastMens())); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java index edc88e9..27463e6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java @@ -14,8 +14,8 @@ import com.lyms.platform.operate.web.result.HighScoreResult; import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.operate.web.worker.ChaseVisitHistory; -import com.lyms.platform.operate.web.worker.babyStatisticalProbabilityWorker; -import com.lyms.platform.permission.model.ServiceListQuery; +import com.lyms.platform.operate.web.worker.GravidaVisitHistory; +import com.lyms.platform.operate.web.worker.TrackDownHistory; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; import org.apache.commons.collections.CollectionUtils; @@ -31,9 +31,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.Callable; import java.util.concurrent.Future; @@ -1103,14 +1101,19 @@ public class TrackDownFacade { @Autowired private PremaritalCheckupService premaritalCheckupService; + @Autowired + private AntenatalExaminationService antenatalExaminationService; + + public void historyData(Date startTime, Date endTime, String hospitalId) { + List> dataRequest = new ArrayList<>(); if (null != startTime && null != endTime && StringUtils.isNotEmpty(hospitalId)) { //1.处理是否妇女是否有婚检 ResidentsArchiveQuery query = new ResidentsArchiveQuery(); - List> dataRequest = new ArrayList<>(); query.setCreatedStart(startTime); query.setCreatedEnd(endTime); query.setHospitalId(hospitalId); + query.setHistory(true); List archiveModels = residentsArchiveService.queryResident(query); if (CollectionUtils.isNotEmpty(archiveModels)) { int batchSize = 5; @@ -1122,7 +1125,7 @@ public class TrackDownFacade { ends = archiveModels.size(); } List mlist = archiveModels.subList(i, ends); - Callable c = new ChaseVisitHistory(mlist, residentsArchiveService,mongoTemplate); + Callable c = new ChaseVisitHistory(mlist, residentsArchiveService, mongoTemplate); Future f = commonThreadPool.submit(c); if (f != null) { futures.add(f); @@ -1138,10 +1141,81 @@ public class TrackDownFacade { } } } + //处理孕妇建档处历史数据 + PatientsQuery patients = new PatientsQuery(); + patients.setCreatedTimeStart(startTime); + patients.setCreatedTimeEnd(endTime); + patients.setHospitalId(hospitalId); + patients.setHistory(true); + List patientsList = patientsService.queryPatient(patients); + if (CollectionUtils.isNotEmpty(patientsList)) { + int batchSize = 5; + int ends = 0; + List futures = new ArrayList<>(); + for (int i = 0; i < patientsList.size(); i += batchSize) { + ends = (ends + batchSize); + if (ends > patientsList.size()) { + ends = patientsList.size(); + } + List mlist = patientsList.subList(i, ends); + Callable c = new GravidaVisitHistory(mlist, matDeliverService, patientsService, antenatalExaminationService); + Future f = commonThreadPool.submit(c); + if (f != null) { + futures.add(f); + } + } + if (CollectionUtils.isNotEmpty(futures)) { + for (Future f : futures) { + try { + dataRequest.add((Map) f.get()); + } catch (Exception e) { + ExceptionUtils.catchException(e, "fm list error."); + } + } + } + } + //追访详情历史数据处理 + TrackDownRecordQuery trackDownRecordQuery = new TrackDownRecordQuery(); + trackDownRecordQuery.setStartCreated(startTime); + trackDownRecordQuery.setEndCreated(endTime); + trackDownRecordQuery.setHospitalId(hospitalId); + trackDownRecordQuery.setHistory(true); + List trackDownRecords = trackDownRecordService.queryTrackDown(trackDownRecordQuery); + if (CollectionUtils.isNotEmpty(trackDownRecords)) { + int batchSize = 5; + int ends = 0; + List futures = new ArrayList<>(); + for (int i = 0; i < trackDownRecords.size(); i += batchSize) { + ends = (ends + batchSize); + if (ends > trackDownRecords.size()) { + ends = trackDownRecords.size(); + } + List mlist = trackDownRecords.subList(i, ends); + Callable c = new TrackDownHistory(mlist, antenatalExaminationService, trackDownRecordService); + Future f = commonThreadPool.submit(c); + if (f != null) { + futures.add(f); + } + } + if (CollectionUtils.isNotEmpty(futures)) { + for (Future f : futures) { + try { + dataRequest.add((Map) f.get()); + } catch (Exception e) { + ExceptionUtils.catchException(e, "fm list error."); + } + } + } + } + System.out.println("妇女处理历史数据 " + archiveModels.size()); + System.out.println("孕妇处理历史数据 " + patientsList.size()); + System.out.println("追访详情处理历史数据" + trackDownRecords.size()); + System.out.println("处理范围 时间" + DateUtil.getyyyy_MM_dd(startTime) + "到" + DateUtil.getyyyy_MM_dd(endTime) + "医院id" + hospitalId); } + } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/ChaseVisitHistory.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/ChaseVisitHistory.java index 11b7d63..efb53cb 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/ChaseVisitHistory.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/ChaseVisitHistory.java @@ -11,6 +11,7 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -32,6 +33,9 @@ public class ChaseVisitHistory implements Callable> { @Override public Map call() throws Exception { + //妇女建档历史数据处理 + int i = 0; + Map data = new HashMap<>(); for (ResidentsArchiveModel archive : archiveModel) { PremaritalCheckup checkup = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(archive.getId())), PremaritalCheckup.class); if (null != checkup) { @@ -47,10 +51,16 @@ public class ChaseVisitHistory implements Callable> { } //默认正常 archive.setStop("0"); - + //数据已处理 + archive.setHistory(true); + //预约追访时间改成创建时间 + archive.setFollowupTime(archive.getCreated()); residentsArchiveService.updateResident(archive, archive.getId()); - + i++; + System.out.println("处理妇女数据 " + archive.getId()); } - return null; + System.out.println("妇女数据已处理=====》" + i); + data.put("woman", archiveModel.size()); + return data; } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/GravidaVisitHistory.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/GravidaVisitHistory.java new file mode 100644 index 0000000..b5429bd --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/GravidaVisitHistory.java @@ -0,0 +1,91 @@ +package com.lyms.platform.operate.web.worker; + +import com.lyms.platform.biz.service.AntenatalExaminationService; +import com.lyms.platform.biz.service.MatDeliverService; +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.pojo.AntExChuModel; +import com.lyms.platform.pojo.AntenatalExaminationModel; +import com.lyms.platform.pojo.MaternalDeliverModel; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.query.AntExQuery; +import com.lyms.platform.query.MatDeliverQuery; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; + +public class GravidaVisitHistory implements Callable> { + private List patients; + + private MatDeliverService matDeliverService; + + private PatientsService patientsService; + + private AntenatalExaminationService antenatalExaminationService; + + public GravidaVisitHistory(List patients, MatDeliverService matDeliverService, PatientsService patientsService, + AntenatalExaminationService antenatalExaminationService) { + this.patients = patients; + this.matDeliverService = matDeliverService; + this.patientsService = patientsService; + this.antenatalExaminationService = antenatalExaminationService; + } + + @Override + public Map call() throws Exception { + Map data = new HashMap<>(); + int i = 0; + for (Patients p : patients) { + MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setParentId(p.getId()); + matDeliverQuery.setYn(YnEnums.YES.getId()); + List maternalDeliverModels = matDeliverService.query(matDeliverQuery); + if (CollectionUtils.isNotEmpty(maternalDeliverModels)) { + p.setIsDeliver("0"); + } else { + p.setIsDeliver("1"); + } + p.setStop("0"); + //查询复诊 + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setParentId(p.getId()); + antExQuery.setYn(YnEnums.YES.getId()); + Map map = new HashMap<>(); + List list = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(list)) { + for (AntenatalExaminationModel examinationModel : list) { + if (null != examinationModel.getNextCheckTime()) { + //p.setFollowupTime(examinationModel.getNextCheckTime()); + map.put("time", examinationModel.getNextCheckTime()); + break; + } + } + } else { + //查询初诊 + List antExChuModels = antenatalExaminationService.queryAntExChu(antExQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(antExChuModels)) { + for (AntExChuModel antExChuModel : antExChuModels) { + if (antExChuModel.getNextCheckTime() != null) { + map.put("time", antExChuModel.getNextCheckTime()); + } + } + } + } + if ((Date) map.get("time") != null) { + p.setFollowupTime((Date) map.get("time")); + } else { + p.setFollowupTime(p.getCreated()); + } + patientsService.updatePatientOne(p, p.getId()); + i++; + System.out.println("处理数据“孕妇ID" + p.getId()); + } + System.out.println("========>已处理孕妇数据" + i); + data.put("gravida", patients.size()); + return data; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/TrackDownHistory.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/TrackDownHistory.java new file mode 100644 index 0000000..a6fc75c --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/TrackDownHistory.java @@ -0,0 +1,83 @@ +package com.lyms.platform.operate.web.worker; + +import com.lyms.platform.biz.service.AntenatalExaminationService; +import com.lyms.platform.biz.service.TrackDownRecordService; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.pojo.AntExChuModel; +import com.lyms.platform.pojo.AntenatalExaminationModel; +import com.lyms.platform.pojo.TrackDownRecord; +import com.lyms.platform.query.AntExQuery; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; + +public class TrackDownHistory implements Callable> { + + private List trackDownRecords; + + private AntenatalExaminationService antenatalExaminationService; + + private TrackDownRecordService trackDownRecordService; + + public TrackDownHistory(List trackDownRecords, AntenatalExaminationService antenatalExaminationService, TrackDownRecordService trackDownRecordService) { + this.trackDownRecords = trackDownRecords; + this.antenatalExaminationService = antenatalExaminationService; + this.trackDownRecordService = trackDownRecordService; + } + + @Override + public Map call() throws Exception { + int i = 0; + Map map = new HashMap<>(); + for (TrackDownRecord track : trackDownRecords) { + //先查询复诊 + AntExQuery antExQuery = new AntExQuery(); + Map data = new HashMap<>(); + antExQuery.setParentId(track.getParentId()); + antExQuery.setYn(YnEnums.YES.getId()); + antExQuery.setSort("checkDate"); + + List list = antenatalExaminationService.queryAntenatalExamination(antExQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(list)) { + for (AntenatalExaminationModel examinationModel : list) { + if (examinationModel.getNextCheckTime() != null) { + data.put("time", examinationModel.getNextCheckTime()); + break; + } + } + } else { + //初诊 + List antExChuModels = antenatalExaminationService.queryAntExChu(antExQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(antExChuModels)) { + for (AntExChuModel antExChuModel : antExChuModels) { + if (antExChuModel.getNextCheckTime() != null) { + data.put("time", antExChuModel.getNextCheckTime()); + } + } + } + } + track.setStop("0"); + + //表示已处理 + track.setHistory(true); + if (null != (Date) data.get("time")) { + track.setAppointmentDate((Date) data.get("time")); + track.setFmzyAppointmentDate((Date) data.get("time")); + track.setSieveAppointmentDate((Date) data.get("time")); + } else { + track.setAppointmentDate(track.getCreated()); + track.setFmzyAppointmentDate(track.getCreated()); + track.setSieveAppointmentDate(track.getCreated()); + } + trackDownRecordService.updateTrackDown(track, track.getId()); + i++; + } + System.out.println("追访详情已处理数据" + i); + map.put("trackDown", trackDownRecords.size()); + return map; + } +} -- 1.8.3.1