diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveDao.java index 86a2816..9ed1511 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveDao.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/ISieveDao.java @@ -85,4 +85,5 @@ public interface ISieveDao { */ List queryList(MongoQuery sieveQuery); + void updateSieveResult(SieveResultModel model); } diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveDaoImpl.java index c128c60..64bce49 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveDaoImpl.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/SieveDaoImpl.java @@ -86,6 +86,16 @@ public class SieveDaoImpl extends BaseMongoDAOImpl implements return mongoTemplate.find(sieveQuery.convertToMongoQuery(), SieveModel.class); } + @Override + public void updateSieveResult(SieveResultModel model) { + + model.setModified(new Date()); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); + Assert.notNull(update, "execute update method must not null."); + mongoTemplate.updateMulti(new MongoQuery(new MongoCondition("id", model.getId(), MongoOper.IS)).convertToMongoQuery(), update, SieveResultModel.class); + } + /** * 查询产筛列表 * diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java index 0b761c5..85e59e7 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/SieveService.java @@ -49,6 +49,10 @@ public class SieveService { return iSieveDao.queryListSieveResult(sieveResultQuery.convertToQuery()); } + public void updateSieveRsult(SieveResultModel model) { + iSieveDao.updateSieveResult(model); + } + public void updateOneChanQianDiaSieve(SieveModel sieveModel) { sieveModel.setModified(new Date()); iSieveDao.updateChanQianSieve(sieveModel); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index 69b837a..d93e5dd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -75,8 +75,6 @@ public class TestController extends BaseController { @Autowired private SyncDataTaskService syncDataTaskService; - @Autowired - private SieveService sieveService; @Autowired private OrganizationService organizationService; @@ -133,6 +131,9 @@ public class TestController extends BaseController { private PatientMedicalRecordFacade patientMedicalRecordFacade; @Autowired + private SieveService sieveService; + + @Autowired private CdfyHisService cdfyHisService; @@ -1686,5 +1687,77 @@ public class TestController extends BaseController { return cdfyHisService.getIdByVcCardNo(code); } + @RequestMapping(value = "/handleSieveTime", method = RequestMethod.GET) + @ResponseBody + public String doSieveTime(@RequestParam(required = false) String hospitalId, + @RequestParam(required = false) String patientId) { + + SieveQuery sieveQuery = new SieveQuery(); + sieveQuery.setYn(YnEnums.YES.getId()); + sieveQuery.setHospitalId(hospitalId); + sieveQuery.setParentId(patientId); + + SieveApplyOrderQuery sieveApplyOrderQuery1 = new SieveApplyOrderQuery(); + sieveApplyOrderQuery1.setYn(YnEnums.YES.getId()); + + SieveResultQuery sieveResultQuery = new SieveResultQuery(); + sieveResultQuery.setYn(YnEnums.YES.getId()); + + List list = sieveService.queryList(sieveQuery); + if (CollectionUtils.isNotEmpty(list)) { + int batchSize = 2000; + int end = 0; + for (int i = 0; i < list.size(); i += batchSize) { + end = (end + batchSize); + if (end > list.size()) { + end = list.size(); + } + System.out.println("start:" + i + ",end:" + end); + final List sieveModels = list.subList(i, end); + for (SieveModel model : sieveModels) + { + + System.out.println(model.getParentId()); + sieveApplyOrderQuery1.setParentId(model.getParentId()); + sieveApplyOrderQuery1.setHospitalId(hospitalId); + + List list1 = applyOrderService.querySieveApplyOrderWithQuery(sieveApplyOrderQuery1); + + if (CollectionUtils.isNotEmpty(list1)) + { + SieveApplyOrderModel applyOrderModel = list1.get(0); + if (applyOrderModel.getApplyTime() == null) + { + applyOrderModel.setApplyTime(applyOrderModel.getCreated()); + applyOrderService.updateSieve(applyOrderModel); + model.setApplyTime(applyOrderModel.getCreated()); + sieveService.updateOneChanQianDiaSieve(model); + } + } + + sieveResultQuery.setParentId(model.getParentId()); + + List sieveResultModels = sieveService.queryListSieveResult(sieveResultQuery); + if (CollectionUtils.isNotEmpty(sieveResultModels)) + { + SieveResultModel sieveResultModel = sieveResultModels.get(0); + if (sieveResultModel.getDiagnosisTime() == null) + { + sieveResultModel.setDiagnosisTime(sieveResultModel.getCreated()); + sieveService.updateSieveRsult(sieveResultModel); + model.setDiagnosisTime(sieveResultModel.getCreated()); + sieveService.updateOneChanQianDiaSieve(model); + } + } + if (model.getResultTime() == null) + { + model.setResultTime(model.getModified()); + sieveService.updateOneChanQianDiaSieve(model); + } + } + } + } + return "handleSieveTime ....."; + } }