diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java index 4bf6949..571983b 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/TrackDownRecordService.java @@ -66,7 +66,6 @@ public class TrackDownRecordService { public List queryTrackDown(TrackDownRecordQuery query) { MongoQuery query1 = query.convertToQuery(); - if (StringUtils.isNotEmpty(query.getNeed())) { query.mysqlBuild(iTrackDownRecordDao.queryTrackDownCount(query1)); query1.start(query.getOffset()).end(query.getLimit()); diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java index da84fcb..1ce110e 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MaternalDeliverModel.java @@ -1,7 +1,6 @@ package com.lyms.platform.pojo; import com.lyms.platform.beans.SerialIdEnum; -import com.lyms.platform.common.enums.TrackDownDateEnums; import com.lyms.platform.common.result.BaseModel; import org.apache.commons.lang.math.NumberUtils; import org.springframework.data.mongodb.core.mapping.Document; @@ -809,29 +808,4 @@ public class MaternalDeliverModel extends BaseModel { this.extPlacentas = extPlacentas; } - public TrackDownRecord build(Patients patients) { - if (null == patients) { - return null; - } - TrackDownRecord downRecord = new TrackDownRecord(); - downRecord.setParentId(getParentId()); - downRecord.setPid(getPid()); - downRecord.setLastMenses(patients.getLastMenses()); - downRecord.setUsername(patients.getUsername()); - downRecord.setCityRegisterId(patients.getCityRegisterId()); - downRecord.setBirth(patients.getBirth()); - downRecord.setAreaRegisterId(patients.getAreaRegisterId()); - downRecord.setCardNo(patients.getCardNo()); - downRecord.setAddressRegister(patients.getAddressRegister()); - downRecord.setPhone(patients.getPhone()); - downRecord.setStreetRegisterId(patients.getStreetRegisterId()); - downRecord.setAreaRegisterId(patients.getAreaRegisterId()); - - //默认值 - downRecord.setSource(getId()); - downRecord.setHospitalId(getHospitalId()); - downRecord.setStatus(1); - downRecord.setTrackType(TrackDownDateEnums.F.getId()); - return downRecord; - } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index 61c5c06..981c9e3 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -284,7 +284,7 @@ public class MatDeliverFacade { //添加产后追访信息 if (CollectionUtils.isNotEmpty(patients)) { - addTrackDownInfo(userId,maternalDeliverModel,patients.get(0)); + addTrackDownInfo(userId,patients.get(0)); } operateLogFacade.addAddOptLog(userId, Integer.parseInt(hospitalId), maternalDeliverModel, OptActionEnums.ADD.getId(), "添加分娩"); @@ -394,24 +394,39 @@ public class MatDeliverFacade { /** * 分娩添加或更新追访信息 * @param userId - * @param patient - * @param patient */ - public void addTrackDownInfo(Integer userId, MaternalDeliverModel deliverModel, Patients patient) { + public void addTrackDownInfo(Integer userId, Patients patients) { //添加产后追访信息 - TrackDownRecord trackDownRecord = deliverModel.build(patient); - trackDownRecord.setHospitalId(deliverModel.getHospitalId()); - trackDownRecord.setSource(deliverModel.getId()); - - //根据patient查询是否存在追访信息 - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setParentId(patient.getId()); - List records = trackDownRecordService.queryTrackDown(downRecordQuery); - if (CollectionUtils.isNotEmpty(records)) {//存在则进行修改,只修改基本信息,不修改显示状态和追访类型 - TrackDownRecord trackDownRecord1 = records.get(0); - trackDownRecord.setId(trackDownRecord1.getId()); + int day = DateUtil.daysBetween(patients.getFmDate(), new Date()); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + if (null != patients) { + TrackDownRecord trackDownRecord = patients.build(); + if(patients.getDueStatus() == 1){//终止妊娠 + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); + //当前孕妇是孕28周后,进入产后复查追访,否则结束流程 + int dueWeek = DateUtil.getWeek2(patients.getLastMenses(), patients.getFmDate()); + + if(dueWeek>=28){//进入产后复查 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + }else{//结束流程 + trackDownRecord.setStatus(0); + } + } + //查询是否存在追访记录,如果有则修改,没有则新增 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setParentId(patients.getId()); + List records = trackDownRecordService.queryTrackDown(downRecordQuery); + logger.info("CHTrackDownDataLoader addTrackDown by id :" + patients.getId()); + if (CollectionUtils.isNotEmpty(records)) { + TrackDownRecord track = records.get(0); + trackDownRecord.setId(track.getId()); + } + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } + trackDownService.addOrupdateTrackDownRecord(patients.getOperator(), trackDownRecord); + } } - trackDownService.addOrupdateTrackDownRecord(userId, trackDownRecord); } /** 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 033a81a..01134ad 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 @@ -52,7 +52,6 @@ public class TrackDownJobFacade { private ThreadPoolTaskExecutor commonThreadPool; - @Autowired private PatientsService patientsService; /** @@ -112,15 +111,15 @@ public class TrackDownJobFacade { @PostConstruct private void init() { //婚前检查数据加载 - // downJobHandlers.add(new HJTrackDownDataLoader()); + 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()); } @@ -158,7 +157,7 @@ public class TrackDownJobFacade { //查询妇女建档 data = patientsService.queryPatient(patientsQuery1); - System.out.println("开始处理产检追访数据!一共"+patientsQuery1.getCount()+",当前第:"+page+"页"); + System.out.println("开始处理产检追访数据!一共" + patientsQuery1.getCount() + ",当前第:" + page + "页"); if (CollectionUtils.isNotEmpty(data)) { for (Patients model : data) { handOneByOne(model); @@ -172,9 +171,6 @@ public class TrackDownJobFacade { //孕妇档案生成产检追访 @Override public void handOneByOne(Patients model) { - if(model.getId().equals("5a6adaca0cf25c05e1262d83")){ - System.out.println(model.toString()); - } logger.info("CJTrackDownDataLoader addTrackDown by id :" + model.getId()); //添加产检追访信息 TrackDownRecord trackDownRecord = model.build(); @@ -198,8 +194,8 @@ public class TrackDownJobFacade { trackDownRecord.setId(trackDownRecord1.getId()); } } - int week = DateUtil.getWeek2(model.getLastMenses(),new Date()); - if(week>20){//不能做产前筛查追访,显示产前检查追访 + int week = DateUtil.getWeek2(model.getLastMenses(), new Date()); + if (week > 20) {//不能做产前筛查追访,显示产前检查追访 trackDownRecord.setTrackType(TrackDownDateEnums.I.getId()); } trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord); @@ -283,7 +279,7 @@ public class TrackDownJobFacade { downRecord.setId(trackDownRecord1.getId()); } } - if (downRecord.getSex().equals(SystemConfig.MAN_ID)) {//男结束流程 + if (downRecord.getSex().equals(SystemConfig.MAN_ID)) {//男结束流程 //新增婚检追访信息 downRecord.setStatus(0); } @@ -399,72 +395,78 @@ public class TrackDownJobFacade { } - /** * 产后访视/产后复查追访数据加载 * 1.有分娩记录的产妇 */ - class CHTrackDownDataLoader implements TrackDownDataLoader { + class CHTrackDownDataLoader implements TrackDownDataLoader { @Override public void execute() { int page = 0; - List data = null; + List data = null; do { - logger.info("CHTrackDownDataLoader execute "); - - MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); - matDeliverQuery.setYn(YnEnums.YES.getId()); - - matDeliverQuery.setSort("createDate asc"); - matDeliverQuery.setNeed("1"); - matDeliverQuery.setPage(page); - matDeliverQuery.setLimit(limit); - - data = matDeliverService.query(matDeliverQuery); - + //查询出满足预产期前两周的孕妇 + Date endDate = DateUtil.addDay(DateUtil.formatDate(new Date()), -60); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setFmDateStart(endDate); + patientsQuery.setFmDateEnd(new Date()); + patientsQuery.setPage(page); + patientsQuery.setLimit(limit); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setNeed("1"); + patientsQuery.setType(3); + + data = patientsService.queryPatient(patientsQuery); + System.out.println("开始产后访视/产后复查追访数据!一共" + patientsQuery.getCount() + ",当前第:" + page + "页"); //查询妇女建档 if (CollectionUtils.isNotEmpty(data)) { - for (MaternalDeliverModel model : data) { + for (Patients model : data) { handOneByOne(model); + // if (model.getId().equals("5a98f71fc07d3a2c0da220f8")) { + // } } } page++; } while (CollectionUtils.isNotEmpty(data) && data.size() == limit); + System.out.println("产后访视/产后复查追访数据结束!"); } @Override - public void handOneByOne(MaternalDeliverModel model) { - Date currDate = new Date(); - //分娩日期不为空 - if (StringUtils.isNotEmpty(model.getDueDate())) { - //分娩距当前时间天数 - int day = DateUtil.daysBetween(DateUtil.parseYMD(model.getDueDate()), currDate); - if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 - Patients patients = patientsService.findOnePatientById(model.getParentId()); - if (null != patients) { - TrackDownRecord trackDownRecord = model.build(patients); - - //查询是否存在追访记录,如果有则修改,没有则新增 - TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); - downRecordQuery.setParentId(model.getId()); - List records = downRecordService.queryTrackDown(downRecordQuery); - if (CollectionUtils.isNotEmpty(records)) { - logger.info("CHTrackDownDataLoader addTrackDown by id :" + model.getId()); - TrackDownRecord track = records.get(0); - trackDownRecord.setId(track.getId()); - } + public void handOneByOne(Patients patients) { - if(day>42){//不需要做产后访视追访记录,只做产后复查追访 + //分娩日期不为空 + //分娩距当前时间天数 + int day = DateUtil.daysBetween(patients.getFmDate(), new Date()); + if (day <= 60) {//产后60天内,可做产后访视或产后复查环节 + if (null != patients) { + TrackDownRecord trackDownRecord = patients.build(); + trackDownRecord.setTrackType(TrackDownDateEnums.F.getId()); + if (patients.getDueStatus() == 1) {//终止妊娠 + //当前孕妇是孕28周后,进入产后复查追访,否则结束流程 + int dueWeek = DateUtil.getWeek2(patients.getLastMenses(), patients.getFmDate()); + if (dueWeek >= 28) {//进入产后复查 trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } else {//结束流程 + trackDownRecord.setStatus(0); } - if (null != trackDownRecord) { - trackDownService.addOrupdateTrackDownRecord(model.getOperator(), trackDownRecord); - } } + //查询是否存在追访记录,如果有则修改,没有则新增 + TrackDownRecordQuery downRecordQuery = new TrackDownRecordQuery(); + downRecordQuery.setParentId(patients.getId()); + List records = downRecordService.queryTrackDown(downRecordQuery); + logger.info("CHTrackDownDataLoader addTrackDown by id :" + patients.getId()); + if (CollectionUtils.isNotEmpty(records)) { + TrackDownRecord track = records.get(0); + trackDownRecord.setId(track.getId()); + } + if (day > 42) {//不需要做产后访视追访记录,只做产后复查追访 + trackDownRecord.setTrackType(TrackDownDateEnums.J.getId()); + } + trackDownService.addOrupdateTrackDownRecord(patients.getOperator(), trackDownRecord); } } } 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 c775613..754d16b 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 @@ -111,8 +111,6 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS private List> getResidentMainData(List residentsArchiveModels) { List> archiveModelList = new ArrayList<>(); - List> restList = new ArrayList<>(); - for (ResidentsArchiveModel archiveModel : residentsArchiveModels) { Map temp = new HashMap<>(); temp.put("bookbuild", 3);//孕期建档默认空白 @@ -138,7 +136,7 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS if (CollectionUtils.isNotEmpty(patientsList)) { Patients patients = patientsList.get(0); temp.put("bookbuild", 1); // 孕期建档 1=勾勾 2=叉叉 - temp.put("bookbuildDate", patients.getBookbuildingDate()); + temp.put("bookbuildDate", DateUtil.getyyyy_MM_dd(patients.getBookbuildingDate())); if (patients.getType() == 3) { temp.put("fm", 1); // 孕期建档 1=勾勾 2=叉叉 temp.put("fmType", patients.getFmType()); // 分娩方式 1: 顺产,2:剖宫产 @@ -218,7 +216,6 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS //建档时间 temp.put("bookbuildDate", DateUtil.getyyyy_MM_dd(patient.getBookbuildingDate())); temp.put("bookbuild", 1); // 孕期建档 1=勾勾 2=叉叉 - temp.put("bookbuildDate", patient.getBookbuildingDate()); //已分娩 if (patient.getType() == 3) {