From 1d5829d6b94f1d10dfe9307d899aa545695f6aa0 Mon Sep 17 00:00:00 2001 From: yangfei Date: Tue, 6 Mar 2018 16:30:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B7=E6=80=A7=E5=A9=9A=E5=89=8D=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E6=B5=81=E8=BD=AC=E5=88=B0=E4=B8=8B=E4=B8=80=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/biz/service/PatientsService.java | 129 ++++++++++++--------- .../lyms/platform/query/ResidentsArchiveQuery.java | 3 + .../lyms/platform/query/TrackDownRecordQuery.java | 8 +- .../operate/web/facade/TrackDownJobFacade.java | 45 +++++-- .../web/service/impl/TrackDownServiceImpl.java | 3 +- .../resources/spring/applicationContext-quartz.xml | 27 +++++ 6 files changed, 149 insertions(+), 66 deletions(-) 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 8a85a52..ca0789e 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 @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -28,7 +29,7 @@ import java.util.List; public class PatientsService { private Logger logger = LoggerFactory.getLogger("SIEVE-JOB"); - public static final String his_version = PropertiesUtils.getPropertyValue("his_version"); + public static final String his_version = PropertiesUtils.getPropertyValue("his_version"); @Autowired private IPatientDao iPatientDao; @@ -78,11 +79,11 @@ public class PatientsService { query.start(patientsQuery.getOffset()).end(patientsQuery.getLimit()); } - if(!StringUtils.isEmpty(patientsQuery.getDesc())){ + if (!StringUtils.isEmpty(patientsQuery.getDesc())) { return iPatientDao.queryPatient(query.addOrder(Sort.Direction.DESC, patientsQuery.getSort())); } - if(!StringUtils.isEmpty(patientsQuery.getSort())){ - return iPatientDao.queryPatient(query.addOrder(Sort.Direction.ASC, patientsQuery.getSort())); + if (!StringUtils.isEmpty(patientsQuery.getSort())) { + return iPatientDao.queryPatient(query.addOrder(Sort.Direction.ASC, patientsQuery.getSort())); } return iPatientDao.queryPatient(query.addOrder(Sort.Direction.DESC, "id")); @@ -102,7 +103,7 @@ public class PatientsService { return iPatientDao.queryPatient(query.addOrder(Sort.Direction.DESC, field)); } - public List queryPatientBySort(PatientsQuery patientsQuery, String field,String sort) { + public List queryPatientBySort(PatientsQuery patientsQuery, String field, String sort) { MongoQuery query = patientsQuery.convertToQuery(); if (StringUtils.isNotEmpty(patientsQuery.getNeed())) { patientsQuery.mysqlBuild(iPatientDao.queryPatientCount(query)); @@ -140,8 +141,7 @@ public class PatientsService { return iPatientDao.getPatient(id); } - public void updatePatientOneCol(String id,Object colValue) - { + public void updatePatientOneCol(String id, Object colValue) { iPatientDao.updatePatientOneCol(id, colValue); } @@ -151,25 +151,25 @@ public class PatientsService { * @param nextCheckTime * @param id */ - public void updateNextCheckTime(String nextCheckTime,String id){ - if(StringUtils.isNotEmpty(id)){ - Patients patients= findOnePatientById(id); + public void updateNextCheckTime(String nextCheckTime, String id) { + if (StringUtils.isNotEmpty(id)) { + Patients patients = findOnePatientById(id); //修改主档 - if(null!=patients&&StringUtils.isNotEmpty(patients.getSource())){ + if (null != patients && StringUtils.isNotEmpty(patients.getSource())) { Patients p = findOnePatientById(patients.getSource()); - updatePatientOneCol(p.getId(),com.lyms.platform.common.utils.StringUtils.isEmpty(nextCheckTime) == true ? null : DateUtil.parseYMD(nextCheckTime)); - }else if(null!=patients){ - PatientsQuery patientsQuery1=new PatientsQuery(); + updatePatientOneCol(p.getId(), com.lyms.platform.common.utils.StringUtils.isEmpty(nextCheckTime) == true ? null : DateUtil.parseYMD(nextCheckTime)); + } else if (null != patients) { + PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setSource(id); patientsQuery1.setYn(YnEnums.YES.getId()); - List list= queryPatient(patientsQuery1); - if(CollectionUtils.isNotEmpty(list)){ - for(Patients p:list){ - updatePatientOneCol(p.getId(),com.lyms.platform.common.utils.StringUtils.isEmpty(nextCheckTime) == true ? null : DateUtil.parseYMD(nextCheckTime)); + List list = queryPatient(patientsQuery1); + if (CollectionUtils.isNotEmpty(list)) { + for (Patients p : list) { + updatePatientOneCol(p.getId(), com.lyms.platform.common.utils.StringUtils.isEmpty(nextCheckTime) == true ? null : DateUtil.parseYMD(nextCheckTime)); } } } - updatePatientOneCol(id,com.lyms.platform.common.utils.StringUtils.isEmpty(nextCheckTime) == true ? null : DateUtil.parseYMD(nextCheckTime)); + updatePatientOneCol(id, com.lyms.platform.common.utils.StringUtils.isEmpty(nextCheckTime) == true ? null : DateUtil.parseYMD(nextCheckTime)); } } @@ -186,9 +186,8 @@ public class PatientsService { Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -105); Date start = DateUtil.addDay(DateUtil.formatDate(new Date()), -146); //诸城产筛范围未11到 20+6 - if(his_version != null && "21".equals(his_version)) - { - endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -77); + if (his_version != null && "21".equals(his_version)) { + endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -77); } PatientsQuery patientsQuery = new PatientsQuery(); @@ -246,7 +245,7 @@ public class PatientsService { /** * 处理预产期前两周的孕妇数据,进入分娩住院追访 */ - public void dandleReachDue(){ + public void dandleReachDue() { //查询出满足预产期前两周的孕妇 Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), +14); PatientsQuery patientsQuery = new PatientsQuery(); @@ -258,10 +257,7 @@ public class PatientsService { List patientses = iPatientDao.queryPatient(patientsQuery.convertToQuery()); if (CollectionUtils.isNotEmpty(patientses)) { logger.info("处理预产期前两周的孕妇数据,进入分娩住院追访 size:" + patientses.size()); - for(Patients patient:patientses){ - if(patient.getHospitalId().equals("216")){ - System.out.println("cardNo:"+patient.getCardNo()); - } + for (Patients patient : patientses) { //添加产后追访信息 TrackDownRecord trackDownRecord = patient.build(); //添加产后追访信息 @@ -269,21 +265,48 @@ public class PatientsService { downRecordQuery.setParentId(trackDownRecord.getParentId()); List records = trackDownRecordService.queryTrackDown(downRecordQuery); //不存在追访或者追访未结束流程并且追访类型小于分娩住院 - if(CollectionUtils.isEmpty(records)||(records.get(0).getStatus() == 1 && records.get(0).getTrackType() records = trackDownRecordService.queryTrackDown(downRecordQuery); + for (TrackDownRecord tr : records) { + Patients patients = iPatientDao.getPatient(tr.getParentId()); + if (patients != null&&patients.getFmDate()!=null) {//分娩时间不为空 + //分娩距当前时间天数 + int day = DateUtil.daysBetween(patients.getFmDate(), new Date()); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访 + if(tr.getTrackType() == TrackDownDateEnums.K.getId()){//如果已经是产后复查已经转出,则不显示数据了 + tr.setStatus(0); + }else{//否则进入产后复查追访 + tr.setTrackType(TrackDownDateEnums.J.getId()); + } + trackDownRecordService.updateTrackDown(tr, tr.getId()); + } + } + } + } + } /** @@ -335,7 +358,7 @@ public class PatientsService { // remoteService.invalidCoupon(patients.getPid(), "2", RemoteUrlEnum.INVALID_COUPON_URL); //作废产检劵 - /* patientCheckTicketService.cancelCheckTicket(patients.getHospitalId(), patients.getId());*/ + /* patientCheckTicketService.cancelCheckTicket(patients.getHospitalId(), patients.getId());*/ PersonModelQuery personYunModelQuery = new PersonModelQuery(); personYunModelQuery.setYn(YnEnums.YES.getId()); personYunModelQuery.setId(patients.getPid()); @@ -365,15 +388,15 @@ public class PatientsService { /** * 修改非建档医院基本信息 */ - public void updateBaseData(Patients patients){ - PatientsQuery patientsQuery2=new PatientsQuery(); + public void updateBaseData(Patients patients) { + PatientsQuery patientsQuery2 = new PatientsQuery(); patientsQuery2.setPid(patients.getPid()); patientsQuery2.setEnable("2"); patientsQuery2.setSource(patients.getId()); //查询出其他医院的隐藏建档 - List patientses=queryPatient(patientsQuery2); - if(CollectionUtils.isNotEmpty(patientses)){ - for(Patients patients1:patientses){ + List patientses = queryPatient(patientsQuery2); + if (CollectionUtils.isNotEmpty(patientses)) { + for (Patients patients1 : patientses) { patients.setId(patients1.getId()); // patients.setBookbuildingDate(patients1.getBookbuildingDate()); patients.setHospitalId(patients1.getHospitalId()); @@ -386,13 +409,14 @@ public class PatientsService { } } } + //修改产检管理的孕妇基本信息 - private void updateExRecord(Patients patients){ - AntExRecordQuery antExRecordQuery=new AntExRecordQuery(); + private void updateExRecord(Patients patients) { + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); antExRecordQuery.setParentId(patients.getId()); - if(iAntExRecordDao.count(antExRecordQuery.convertToQuery())>0){ - AntExRecordModel antExRecordModel=new AntExRecordModel(); + if (iAntExRecordDao.count(antExRecordQuery.convertToQuery()) > 0) { + AntExRecordModel antExRecordModel = new AntExRecordModel(); antExRecordModel.setLastMenses(patients.getLastMenses()); antExRecordModel.setBuildTime(patients.getBookbuildingDate()); antExRecordModel.setDueDate(patients.getDueDate()); @@ -408,9 +432,9 @@ public class PatientsService { antExRecordModel.setCardNo(patients.getCardNo()); Patients dbPatients = findOnePatientById(patients.getId()); - if(dbPatients.getType()==1){ + if (dbPatients.getType() == 1) { antExRecordModel.setStatus(2); - }else { + } else { antExRecordModel.setStatus(1); } antExRecordModel.setModified(new Date()); @@ -418,6 +442,7 @@ public class PatientsService { iAntExRecordDao.batchUpdateRecord(antExRecordModel, antExRecordQuery.convertToQuery()); } } + /** * 修改产筛数据 * @@ -444,7 +469,7 @@ public class PatientsService { sieveModel.setName(patients.getUsername()); sieveModel.setLastMenses(patients.getLastMenses()); sieveModel.setCardNo(patients.getCardNo()); - if (null != sieveModel.getDueWeek()&&null!=sieveModel.getApplyDate()) { + if (null != sieveModel.getDueWeek() && null != sieveModel.getApplyDate()) { sieveModel.setDueWeek(DateUtil.daysBetween(patients.getLastMenses(), sieveModel.getApplyDate())); } SieveService.handOrder(sieveModel); @@ -482,7 +507,7 @@ public class PatientsService { sieveModel.setName(patients.getUsername()); sieveModel.setLastMenses(patients.getLastMenses()); sieveModel.setCardNo(patients.getCardNo()); - if (null != sieveModel.getDueWeek() &&null!=sieveModel.getApplyDate()) { + if (null != sieveModel.getDueWeek() && null != sieveModel.getApplyDate()) { sieveModel.setDueWeek(DateUtil.daysBetween(patients.getLastMenses(), sieveModel.getApplyDate())); } SieveService.handOrder(sieveModel); @@ -506,7 +531,7 @@ public class PatientsService { referralApplyOrderModel1.setBirth(babyModel.getBirth()); referralApplyOrderModel1.setName(babyModel.getName()); referralApplyOrderModel1.setCardNo(babyModel.getCardNo()); - if(null!=patients){ + if (null != patients) { referralApplyOrderModel1.setPhone(patients.getPhone()); referralApplyOrderModel1.setmCardNo(patients.getCardNo()); referralApplyOrderModel1.setMname(patients.getUsername()); @@ -594,21 +619,21 @@ public class PatientsService { sieveQuery.setParentId(patient.getId()); List list = sieveDao.queryList(sieveQuery.convertToQuery()); if (CollectionUtils.isEmpty(list)) { - logger.info("find sieve empty parentid:"+patient.getId()); + logger.info("find sieve empty parentid:" + patient.getId()); SieveModel sieveModel = convertToModel(patient); sieveModel.setFrom("0"); - SieveApplyOrderQuery sieveApplyOrderQuery=new SieveApplyOrderQuery(); + SieveApplyOrderQuery sieveApplyOrderQuery = new SieveApplyOrderQuery(); sieveApplyOrderQuery.setParentId(patient.getId()); sieveApplyOrderQuery.setYn(YnEnums.YES.getId()); List orders = sieveApplyOrderDao.queryList(sieveApplyOrderQuery.convertToQuery()); - if(CollectionUtils.isNotEmpty(orders)){ + if (CollectionUtils.isNotEmpty(orders)) { sieveModel.setStatus(SieveStatusEnums.O1.getId()); - SieveResultQuery sieveResultQuery=new SieveResultQuery(); + SieveResultQuery sieveResultQuery = new SieveResultQuery(); sieveResultQuery.setParentId(patient.getId()); sieveResultQuery.setYn(YnEnums.YES.getId()); - List result= sieveDao.queryListSieveResult(sieveResultQuery.convertToQuery()); - if(CollectionUtils.isNotEmpty(result)){ + List result = sieveDao.queryListSieveResult(sieveResultQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(result)) { sieveModel.setStatus(SieveStatusEnums.O2.getId()); } } 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 6e8197e..38b3f45 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 @@ -179,6 +179,9 @@ public class ResidentsArchiveQuery extends BaseQuery implements IConvertToNative if (created != null) { condition = condition.and("created", created, MongoOper.IS); } + if (marriageId != null) { + condition = condition.and("marriageId", marriageId, MongoOper.IS); + } if (StringUtils.isNotBlank(buildDoctor)) { condition = condition.and("buildDoctor", buildDoctor, 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 2bb4356..902c876 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 @@ -39,7 +39,7 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ private String hospitalId; private String residentsArchiveId; private String source; - private String status; + private Integer status; private String cardNo; private String phone; /** @@ -88,11 +88,11 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ this.source = source; } - public String getStatus() { + public Integer getStatus() { return status; } - public void setStatus(String status) { + public void setStatus(Integer status) { this.status = status; } @@ -200,7 +200,7 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); - if (StringUtils.isNotEmpty(status)) { + if (status!=null) { condition = condition.and("status", status, MongoOper.IS); } else { //默认只查询显示的数据 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java index e275b3e..4535534 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownJobFacade.java @@ -114,13 +114,13 @@ public class TrackDownJobFacade { //婚前检查数据加载 downJobHandlers.add(new HJTrackDownDataLoader()); //怀孕建档数据加载 - downJobHandlers.add(new HYTrackDownDataLoader()); + // downJobHandlers.add(new HYTrackDownDataLoader()); //产检数据加载 - downJobHandlers.add(new CJTrackDownDataLoader()); + // downJobHandlers.add(new CJTrackDownDataLoader()); //分娩数据加载,有自动任务处理 // downJobHandlers.add(new FMTrackDownDataLoader()); //产后访视和产后复查的数据加载 产后访视和产后复查的规则一样 - downJobHandlers.add(new CHTrackDownDataLoader()); + // downJobHandlers.add(new CHTrackDownDataLoader()); } @@ -294,11 +294,14 @@ public class TrackDownJobFacade { @Override public void execute() { + System.out.println("开始生成妇女档案生成追访数据!"); int page = 1; List data = null; + //处理女性档案 do { ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); archiveQuery.setYn(YnEnums.YES.getId()); + archiveQuery.setSex("c23779f1-cb6e-44d0-9fc8-0a990bf6184c"); archiveQuery.setSort("created asc"); archiveQuery.setNeed("1"); archiveQuery.setPage(page); @@ -313,6 +316,30 @@ public class TrackDownJobFacade { } page++; } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); + + //处理男性未婚档案 + page = 1; + do { + ResidentsArchiveQuery archiveQuery = new ResidentsArchiveQuery(); + archiveQuery.setYn(YnEnums.YES.getId()); + archiveQuery.setSort("created asc"); + archiveQuery.setMarriageId("d049eaaa-7265-4cdb-879f-992ab6320a3a"); + archiveQuery.setSex("5d0b782f-b61b-441b-b8c5-4bf55eece273"); + archiveQuery.setNeed("1"); + archiveQuery.setPage(page); + archiveQuery.setLimit(limit); + //查询妇女建档 + data = residentsArchiveService.queryResident(archiveQuery); + if (CollectionUtils.isNotEmpty(data)) { + for (ResidentsArchiveModel model : data) { + //单条数据处理 + handOneByOne(model); + } + } + page++; + } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); + + System.out.println("妇女档案生成追访数据完成!"); } /** @@ -322,11 +349,11 @@ public class TrackDownJobFacade { * @param model */ public void handOneByOne(ResidentsArchiveModel model) { - if ("5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(model.getSex())) {//男 - if ("d75d1902-61a5-4a17-a68a-5b8a9826537b".equals(model.getMarriageId())) {//已婚,不添加追访信息 - return; - } - } + // if ("5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(model.getSex())) {//男 + // if ("d75d1902-61a5-4a17-a68a-5b8a9826537b".equals(model.getMarriageId())) {//已婚,不添加追访信息 + // return; + // } + // } if (null != model && StringUtils.isNotEmpty(model.getId())) { PremaritalCheckupQuery premaritalCheckupQuery = new PremaritalCheckupQuery(); @@ -340,7 +367,7 @@ public class TrackDownJobFacade { TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); downRecordQuery.setHospitalId(model.getHospitalId()); if (StringUtils.isNotEmpty(model.getCertificateNum())) { - downRecordQuery.setKey(model.getCertificateNum()); + downRecordQuery.setCardNo(model.getCertificateNum()); } else if (StringUtils.isNotEmpty(model.getPhone())) { downRecordQuery.setPhone(model.getPhone()); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java index a55d435..f3e8cd1 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java @@ -225,7 +225,8 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS return RespBuilder.buildErro(ResponseCode.DATA_ERROR, "数据已经被修改请回到列表刷新后再操作!"); } if (TrackDownDateEnums.A.getId() == trackDown.getTrackDownDateType() - && "5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(trackDownRecord.getSex())) {//性别男:特殊处理,流转到下一流程时结束流程 + && "5d0b782f-b61b-441b-b8c5-4bf55eece273".equals(trackDownRecord.getSex()) + &&TrackDownTransferEnums.B.getId() == trackDown.getTrackDownTransfer()) {//性别男:特殊处理,流转到下一流程时结束流程 trackDown.setTrackDownTransfer(TrackDownTransferEnums.C.getId()); } } diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index 7085102..9ba6e51 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -71,6 +71,16 @@ + + + + + + + + + + @@ -156,6 +166,11 @@ + + + + + @@ -212,6 +227,14 @@ + + + + + + + + @@ -262,6 +285,10 @@ + + + + -- 1.8.3.1