From cd234aa09b6004356aa9ca696c9bcd2569a659df Mon Sep 17 00:00:00 2001 From: jiangjiazhi Date: Thu, 1 Dec 2016 15:56:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E6=A3=80=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/biz/dal/IAntExRecordDao.java | 2 + .../platform/biz/dal/impl/AntExRecordDaoImpl.java | 4 + .../platform/biz/service/AntExRecordService.java | 106 +++++++++++++++------ .../biz/service/AntenatalExaminationService.java | 12 ++- .../web/facade/AntenatalExaminationFacade.java | 15 +-- 5 files changed, 103 insertions(+), 36 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordDao.java index 52d9117..fa97f7d 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IAntExRecordDao.java @@ -64,4 +64,6 @@ public interface IAntExRecordDao { Integer count(MongoQuery mongoQuery); List aggregateOne(MongoQuery mongoQuery); + //删除匹配的 + void findAndMove(MongoQuery mongoQuery); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordDaoImpl.java index c1bbf9d..74f4254 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntExRecordDaoImpl.java @@ -33,6 +33,10 @@ import java.util.Map; @Repository("antExRecordDao") public class AntExRecordDaoImpl extends BaseMongoDAOImpl implements IAntExRecordDao { + + public void findAndMove(MongoQuery mongoQuery){ + super.delete(mongoQuery.convertToMongoQuery()); + } /** * 统计单个医院的产检情况 * diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java index 847e0a4..930fb11 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntExRecordService.java @@ -56,21 +56,18 @@ public class AntExRecordService { //复诊 List list = antExService.queryAntenatalExamination(antExQuery.convertToQuery()); - List data = new ArrayList<>(); for (AntenatalExaminationModel antEx : list) { AntExRecordModel record = convert(antEx); - if(null!=record){ - data.add(record); - } - if (data.size() == 50) { - antExRecordDao.batchAddRecord(data); - data.clear(); + if (null != record) { + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + antExRecordQuery.setParentId(record.getParentId()); + antExRecordQuery.setcId(record.getCheckDoctor()); + Integer count = count(antExRecordQuery); + if (null == count || 0 == count) { + antExRecordDao.addOneRecord(record); + } } } - if (!data.isEmpty()) { - antExRecordDao.batchAddRecord(data); - data.clear(); - } //初诊 @@ -82,23 +79,73 @@ public class AntExRecordService { if (CollectionUtils.isNotEmpty(antExChuModelList)) { for (AntExChuModel antEx : antExChuModelList) { AntExRecordModel record = convert(antEx); - if(null!=record){ - data.add(record); + if (null != record) { + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + antExRecordQuery.setParentId(record.getParentId()); + antExRecordQuery.setcId(record.getCheckDoctor()); + Integer count = count(antExRecordQuery); + if (null == count || 0 == count) { + antExRecordDao.addOneRecord(record); + } } - if (data.size() == 50) { - antExRecordDao.batchAddRecord(data); - data.clear(); - } - } - if (!data.isEmpty()) { - antExRecordDao.batchAddRecord(data); - data.clear(); } } } + /** + * 处理删除检查 + * + * @param parentId + */ + public void handExRecord(String parentId) { + if (StringUtils.isEmpty(parentId)) { + return; + } + + //先删除掉该人的 + AntExRecordQuery antExRecordQuery1 = new AntExRecordQuery(); + antExRecordQuery1.setParentId(parentId); + antExRecordDao.findAndMove(antExRecordQuery1.convertToQuery()); + + AntExQuery antExQuery = new AntExQuery(); + antExQuery.setYn(YnEnums.YES.getId()); + antExQuery.setParentId(parentId); + //复诊 + List list = antExService.queryAntenatalExamination(antExQuery.convertToQuery()); + for (AntenatalExaminationModel antEx : list) { + AntExRecordModel record = convert(antEx); + if (null != record) { + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + antExRecordQuery.setParentId(record.getParentId()); + antExRecordQuery.setcId(record.getCheckDoctor()); + Integer count = count(antExRecordQuery); + if (null == count || 0 == count) { + antExRecordDao.addOneRecord(record); + } + } + } + //初诊 + AntExChuQuery antExChuQuery = new AntExChuQuery(); + antExChuQuery.setYn(YnEnums.YES.getId()); + antExChuQuery.setParentId(parentId); + List antExChuModelList = antExService.queryAntExChu(antExChuQuery.convertToQuery()); + if (CollectionUtils.isNotEmpty(antExChuModelList)) { + for (AntExChuModel antEx : antExChuModelList) { + AntExRecordModel record = convert(antEx); + if (null != record) { + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + antExRecordQuery.setParentId(record.getParentId()); + antExRecordQuery.setcId(record.getCheckDoctor()); + Integer count = count(antExRecordQuery); + if (null == count || 0 == count) { + antExRecordDao.addOneRecord(record); + } + } + } + } + } public AntExRecordModel convert(AntenatalExaminationModel antEx) { @@ -115,7 +162,7 @@ public class AntExRecordService { if (null != patients) { if (patients.getType() == 1) { antExRecordModel.setStatus(2); - }else{ + } else { antExRecordModel.setStatus(1); } antExRecordModel.setBrith(patients.getBirth()); @@ -126,8 +173,8 @@ public class AntExRecordService { antExRecordModel.sethScore(patients.getRiskScore()); antExRecordModel.sethRisk(patients.getRiskFactorId()); antExRecordModel.sethLevel(JsonUtil.toList(patients.getRiskLevelId(), List.class)); - }else{ - logger.info("antex find patient by id is null. parentId:"+antEx.getParentId()); + } else { + logger.info("antex find patient by id is null. parentId:" + antEx.getParentId()); return null; } return antExRecordModel; @@ -145,7 +192,7 @@ public class AntExRecordService { if (null != patients) { if (patients.getType() == 1) { antExRecordModel.setStatus(2); - }else{ + } else { antExRecordModel.setStatus(1); } antExRecordModel.setLastMenses(patients.getLastMenses()); @@ -156,8 +203,8 @@ public class AntExRecordService { antExRecordModel.sethScore(patients.getRiskScore()); antExRecordModel.sethRisk(patients.getRiskFactorId()); antExRecordModel.sethLevel(JsonUtil.toList(patients.getRiskLevelId(), List.class)); - }else{ - logger.info("antexc find patient by id is null. parentId:"+antExChuModel.getParentId()); + } else { + logger.info("antexc find patient by id is null. parentId:" + antExChuModel.getParentId()); return null; } return antExRecordModel; @@ -183,6 +230,11 @@ public class AntExRecordService { return antExRecordDao.queryRecord(antExRecordQuery.convertToQuery()); } + + public Integer count(AntExRecordQuery antExRecordQuery) { + return antExRecordDao.count(antExRecordQuery.convertToQuery()); + } + /** * 修改单条数据 * diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java index e0e18b0..d6bb9f9 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java @@ -10,6 +10,7 @@ import com.lyms.platform.pojo.AntExChuModel; import com.lyms.platform.pojo.AntExRecordModel; import com.lyms.platform.pojo.AntenatalExaminationModel; import com.lyms.platform.query.AntExChuQuery; +import com.lyms.platform.query.AntExRecordQuery; import com.lyms.platform.query.VisitQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; @@ -103,9 +104,16 @@ public class AntenatalExaminationService { antExRecordModel = antExRecordService.convert(chu); } + if (null != antExRecordModel) { - antExRecordModel.setCreated(new Date()); - antExRecordService.addOneRecord(antExRecordModel); + AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); + antExRecordQuery.setParentId(antExRecordModel.getParentId()); + antExRecordQuery.setcId(antExRecordModel.getCheckDoctor()); + Integer count = antExRecordService.count(antExRecordQuery); + if (null == count || 0 == count) { + antExRecordModel.setCreated(new Date()); + antExRecordService.addOneRecord(antExRecordModel); + } } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java index 3cba2db..2efd2c8 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java @@ -57,7 +57,8 @@ public class AntenatalExaminationFacade { private UsersService usersService; @Autowired private DeleteProcessHandler deleteProcessHandler; - +@Autowired + private AntExRecordService recordService; /** * 修改最后一次产检时间 * @@ -147,7 +148,7 @@ public class AntenatalExaminationFacade { setLashCTimes(hospitalId, antExAddRequest.getParentId(), 2); //复诊,修改产检管理 - antenatalExaminationService.updateAntExRecord(antExAddRequest.getParentId(), 2); + antenatalExaminationService.updateAntExRecord(antExAddRequest.getId(), 2); } else { AntenatalExaminationModel model = antExAddRequest.convertToDataModel(); model.setOperator(userId); @@ -185,7 +186,7 @@ public class AntenatalExaminationFacade { //修改本院最后一次定义高危 updateLastRhTime(patients.getId(), hospitalId); //复诊,修改产检管理 - antenatalExaminationService.updateAntExRecord(antExAddRequest.getParentId(),2); + antenatalExaminationService.updateAntExRecord(model.getId(),2); if (null != patients.getBuildType() && patients.getBuildType() == 3) { ReferralApplyOrderQuery referralApplyOrderQuery = new ReferralApplyOrderQuery(); referralApplyOrderQuery.setParentId(patients.getId()); @@ -270,7 +271,7 @@ public class AntenatalExaminationFacade { setLashCTimes(hospitalId, antExChuModel.getParentId(), 1); //初诊,修改产检管理 - antenatalExaminationService.updateAntExRecord(antExChuModel.getParentId(), 1); + antenatalExaminationService.updateAntExRecord(antExChuModel.getId(), 1); } else { AntExChuQuery antExChuQuery1 = new AntExChuQuery(); @@ -312,7 +313,7 @@ public class AntenatalExaminationFacade { //修改本院最后一次定义高危 updateLastRhTime(patients.getId(), hospitalId); setLashCTimes(hospitalId, antExChuModel.getParentId(), 1); - antenatalExaminationService.updateAntExRecord(antExChuModel.getParentId(), 1); + antenatalExaminationService.updateAntExRecord(antExChuModel.getId(), 1); if (null != patients.getBuildType() && patients.getBuildType() == 3) { Patients patients1 = new Patients(); patients1.setEnable("1"); @@ -1431,7 +1432,7 @@ public class AntenatalExaminationFacade { setLashCTimes(hospital, antenatalExaminationModel.getParentId(), 2); updateLastRisk(antenatalExaminationModel.getParentId()); - + recordService.handExRecord(antenatalExaminationModel.getParentId()); } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.BUSINESS_ERROR).setErrormsg("当前产检记录不是本院最新的产检记录,不能删除"); } @@ -1479,7 +1480,7 @@ public class AntenatalExaminationFacade { AntExChuModel antExChuModel1 = antenatalExaminationService.findOne(antExQueryRequest.getId()); setLashCTimes(hospital, antExChuModel1.getParentId(), 1); updateLastRisk(antExChuModel1.getParentId()); - + recordService.handExRecord(antExChuModel1.getParentId()); } else { return new BaseResponse().setErrorcode(ErrorCodeConstants.BUSINESS_ERROR).setErrormsg("当前产检记录不是本院最新的产检记录,不能删除"); } -- 1.8.3.1