diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ITrackDownRecordDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ITrackDownRecordDao.java index fc9a58e..c4af5d4 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ITrackDownRecordDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ITrackDownRecordDao.java @@ -35,4 +35,6 @@ public interface ITrackDownRecordDao { List queryTrackDown(MongoQuery query); Page findPage(MongoQuery query); + + void findAndModify(MongoQuery query, TrackDownRecord obj); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/TrackDownRecordDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/TrackDownRecordDaoImpl.java index a4b149c..c626bab 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/TrackDownRecordDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/TrackDownRecordDaoImpl.java @@ -6,6 +6,7 @@ import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.dao.operator.MongoQuery; import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.pojo.Patients; import com.lyms.platform.pojo.TrackDownRecord; import org.bson.types.ObjectId; import org.slf4j.Logger; @@ -34,6 +35,9 @@ public class TrackDownRecordDaoImpl extends BaseMongoDAOImpl im //日志调测器 private static final Logger logger = LoggerFactory.getLogger(TrackDownRecordDaoImpl.class); + public void findAndModify(MongoQuery query, TrackDownRecord obj) { + updateMulti(query.convertToMongoQuery(), obj); + } @Override public TrackDownRecord addTrackDown(TrackDownRecord downRecord) { return save(downRecord); 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 f91389b..0b8dcb8 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 @@ -42,6 +42,10 @@ public class TrackDownRecordService { return iTrackDownRecordDao.addTrackDown(downRecord); } + public void findAndMoidify(TrackDownRecordQuery query,TrackDownRecord downRecord){ + iTrackDownRecordDao.findAndModify(query.convertToQuery(),downRecord); + } + public void updateTrackDown(TrackDownRecord obj, String id) { obj.setModified(new Date()); iTrackDownRecordDao.updateTrackDown(obj, id); 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 c0da192..b53d2ff 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 @@ -38,6 +38,7 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ private String parentId; private List pids; private String hospitalId; + private String residentsArchiveId; /** * 末次月经 */ @@ -132,6 +133,14 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ return trackType; } + public String getResidentsArchiveId() { + return residentsArchiveId; + } + + public void setResidentsArchiveId(String residentsArchiveId) { + this.residentsArchiveId = residentsArchiveId; + } + public void setTrackType(Integer trackType) { this.trackType = trackType; } @@ -141,6 +150,9 @@ public class TrackDownRecordQuery extends BaseQuery implements IConvertToNativeQ if(StringUtils.isNotEmpty(provinceId)){ condition= condition.and("provinceId",provinceId, MongoOper.IS); } + if(StringUtils.isNotEmpty(residentsArchiveId)){ + condition= condition.and("residentsArchiveId",residentsArchiveId, MongoOper.IS); + } if(StringUtils.isNotEmpty(cityId)){ condition= condition.and("cityId",cityId, MongoOper.IS); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java index 37be7dc..33fd8fc 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/ITrackDownService.java @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.service; import com.lyms.platform.common.result.BaseObjectResponse; +import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.pojo.TrackDown; import javax.servlet.http.HttpServletResponse; @@ -8,7 +9,7 @@ import java.util.Date; public interface ITrackDownService extends IBaseService { - BaseObjectResponse add(Integer userId, TrackDown trackDown); + BaseResponse add(Integer userId, TrackDown trackDown); BaseObjectResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId); 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 c0c8e69..cb3e136 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 @@ -1,12 +1,12 @@ package com.lyms.platform.operate.web.service.impl; +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.biz.service.ResidentsArchiveService; import com.lyms.platform.biz.service.TrackDownRecordService; import com.lyms.platform.biz.service.TrackDownService; import com.lyms.platform.common.enums.*; +import com.lyms.platform.common.result.*; import com.lyms.platform.common.result.BaseObjectResponse; -import com.lyms.platform.common.result.BaseObjectResponse; -import com.lyms.platform.common.result.PageResult; -import com.lyms.platform.common.result.RespBuilder; import com.lyms.platform.common.utils.DateUtil; import com.lyms.platform.common.utils.EnumUtil; import com.lyms.platform.common.utils.StringUtils; @@ -17,6 +17,7 @@ import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.pojo.*; +import com.lyms.platform.query.PatientsQuery; import com.lyms.platform.query.TrackDownRecordQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; @@ -178,27 +179,40 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS return antexcCount + antexCount; } - public BaseObjectResponse add(Integer userId, TrackDown trackDown) { + public BaseResponse add(Integer userId, TrackDown trackDown) { String hospitalId = autoMatchFacade.getHospitalId(userId); - /* if(StringUtils.isNotEmpty(trackDown.getResidentsArchiveId())) { // 怀孕建档是lyms_resident - ResidentsArchiveModel archiveModel = mongoTemplate.findById(trackDown.getResidentsArchiveId(), ResidentsArchiveModel.class); - Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(archiveModel.getCertificateNum())).with(new Sort(Sort.Direction.DESC, "created")), Patients.class); - if(patients != null) { - String parentId = mongoUtil.doHidePatient(patients.getId(), hospitalId); - trackDown.setPid(mongoUtil.getPid(parentId)); - trackDown.setParentId(parentId); - } - } else { - String parentId = mongoUtil.doHidePatient(trackDown.getParentId(), hospitalId); - trackDown.setPid(mongoUtil.getPid(parentId)); - trackDown.setParentId(parentId); - }*/ //婚前检查 怀孕建档 的时候没有pid if (TrackDownDateEnums.A.getId() != trackDown.getTrackDownDateType() && TrackDownDateEnums.B.getId() != trackDown.getTrackDownDateType()) { String parentId = mongoUtil.doHidePatient(trackDown.getParentId(), hospitalId); trackDown.setPid(mongoUtil.getPid(parentId)); trackDown.setParentId(parentId); } + //怀孕建档扭转直孕期检查的时候需要有孕妇的档案才可以扭转 + if (TrackDownTransferEnums.B.getId() == trackDown.getTrackDownTransfer() && + TrackDownDateEnums.B.getId() == trackDown.getTrackDownDateType() + &&StringUtils.isNotEmpty(trackDown.getParentId())) { + + ResidentsArchiveModel archiveModel = residentsArchiveService.getResident(trackDown.getParentId()); + //TODO 需要去验证或者绑定孕妇的建档记录,不然不能进行后续的操作 + PatientsQuery patientsQuery1 = new PatientsQuery(); + patientsQuery1.setCardNo(archiveModel.getCertificateNum()); + patientsQuery1.setPcerteTypeId(archiveModel.getCertificateTypeId()); + patientsQuery1.setHospitalId(hospitalId); + patientsQuery1.setType(1); + patientsQuery1.setYn(YnEnums.YES.getId()); + List patientses= patientsService.queryPatient(patientsQuery1); + if(CollectionUtils.isNotEmpty(patientses)){ + TrackDownRecordQuery trackDownRecordQuery = new TrackDownRecordQuery(); + trackDownRecordQuery.setResidentsArchiveId(trackDown.getParentId()); + + TrackDownRecord trackDownRecord = new TrackDownRecord(); + trackDownRecord.setParentId(patientses.get(0).getId()); + //修改绑定建档信息的id + trackDownRecordService.findAndMoidify(trackDownRecordQuery,trackDownRecord); + }else { + return new BaseResponse().setErrorcode(4016).setErrormsg("您还没有孕妇的档案,请去医院建档."); + } + } String recordId=trackDown.getId(); trackDown.setId(null); trackDown.setYn(YnEnums.YES.getId()); @@ -245,6 +259,15 @@ public class TrackDownServiceImpl extends BaseServiceImpl implements ITrackDownS @Autowired private TrackDownRecordService trackDownRecordService; + @Autowired + private PatientsService patientsService; + + + /** + * 妇女建档 + */ + @Autowired + private ResidentsArchiveService residentsArchiveService; @Override public BaseObjectResponse list(String provinceId, String cityId, String areaId, String streetId, String key, Integer trackType, Integer page, Integer limit, Integer userId) {