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 e09fbac..60b11e2 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 @@ -16,6 +16,8 @@ import com.lyms.platform.operate.web.facade.BabyCheckFacade; import com.lyms.platform.operate.web.facade.SieveFacade; import com.lyms.platform.operate.web.result.HighScoreResult; import com.lyms.platform.operate.web.service.SyncDataTaskService; +import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; @@ -348,36 +350,70 @@ public class TestController { */ @RequestMapping(value = "/updatePostViewTimes", method = RequestMethod.GET) @ResponseBody - public String updatePostViewTimes(@RequestParam(required = true) String hospitalId,@RequestParam(required = false) String patientId) { + public String updatePostViewTimes(@RequestParam(required = false) String hospitalId,@RequestParam(required = false) String patientId) { + + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(hospitalId)) + { + organizationQuery.setId(Integer.parseInt(hospitalId)); + } + List organizationList = organizationService.queryOrganization(organizationQuery); + PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setYn(YnEnums.YES.getId()); - patientsQuery1.setHospitalId(hospitalId); + patientsQuery1.setType(3); //查询产妇 patientsQuery1.setExtEnable(false); patientsQuery1.setId(patientId); - List pats = patientsService.queryPatient(patientsQuery1); - System.out.println("main=" + pats.size()); - if (CollectionUtils.isNotEmpty(pats)) { - for (Patients pat : pats) { - if (StringUtils.isNotEmpty(pat.getPid())) - { - PostReviewQuery postReviewQuery = new PostReviewQuery(); - postReviewQuery.setPid(pat.getPid()); - postReviewQuery.setYn(YnEnums.YES.getId()); - List postReviewModels = postReviewService.findWithList(postReviewQuery); - if (CollectionUtils.isNotEmpty(postReviewModels)) - { - System.out.println("postReviewModels=" + postReviewModels.size() + ";patientid=" + pat.getId()); - for(PostReviewModel postReviewModel : postReviewModels) - { - Patients patients = patientsService.findOnePatientById(postReviewModel.getParentId()); - patients.setPostViewTimes(postReviewModels.size()); - patientsService.updatePatient(patients); - } + + if (CollectionUtils.isNotEmpty(organizationList)) + { + for (Organization organization : organizationList) { + + patientsQuery1.setHospitalId(organization.getId()+""); + List pats = patientsService.queryPatient(patientsQuery1); + + int batchSize = 500; + int end = 0; + for (int i = 0; i < pats.size(); i += batchSize) { + end = (end + batchSize); + if (end > pats.size()) { + end = pats.size(); } + System.out.println("start:" + i + ",end:" + end); + final List tempList = pats.subList(i, end); + + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) { + for (Patients pat : tempList) { + if (StringUtils.isNotEmpty(pat.getPid())) + { + PostReviewQuery postReviewQuery = new PostReviewQuery(); + postReviewQuery.setPid(pat.getPid()); + postReviewQuery.setYn(YnEnums.YES.getId()); + List postReviewModels = postReviewService.findWithList(postReviewQuery); + if (CollectionUtils.isNotEmpty(postReviewModels)) + { + System.out.println("postReviewModels=" + postReviewModels.size() + ";patientid=" + pat.getId()); + for(PostReviewModel postReviewModel : postReviewModels) + { + Patients patients = patientsService.findOnePatientById(postReviewModel.getParentId()); + patients.setPostViewTimes(postReviewModels.size()); + patientsService.updatePatient(patients); + } + } - } + } + + } + } + } + }).start(); + } } } return "updatePostViewTimes finish"; @@ -391,22 +427,51 @@ public class TestController { */ @RequestMapping(value = "/updatePatBuildDays", method = RequestMethod.GET) @ResponseBody - public String updatePatBuildDays(@RequestParam(required = true) String hospitalId) { + public String updatePatBuildDays(@RequestParam(required = false) String hospitalId) { + OrganizationQuery organizationQuery = new OrganizationQuery(); + organizationQuery.setYn(YnEnums.YES.getId()); + if (StringUtils.isNotEmpty(hospitalId)) + { + organizationQuery.setId(Integer.parseInt(hospitalId)); + } + List organizationList = organizationService.queryOrganization(organizationQuery); PatientsQuery patientsQuery1 = new PatientsQuery(); patientsQuery1.setYn(YnEnums.YES.getId()); - patientsQuery1.setHospitalId(hospitalId); - List pats = patientsService.queryPatient(patientsQuery1); - System.out.println("main="+pats.size()); - if (CollectionUtils.isNotEmpty(pats)) { - for (Patients pat : pats) { - if (StringUtils.isNotEmpty(pat.getPid())) - { - pat.setBuildDays(DateUtil.getDays(pat.getLastMenses(), pat.getBookbuildingDate())); - patientsService.updatePatient(pat); - } + if (CollectionUtils.isNotEmpty(organizationList)) { + for (Organization organization : organizationList) { + patientsQuery1.setHospitalId(organization.getId()+""); + List pats = patientsService.queryPatient(patientsQuery1); + + int batchSize = 500; + int end = 0; + for (int i = 0; i < pats.size(); i += batchSize) { + end = (end + batchSize); + if (end > pats.size()) { + end = pats.size(); + } + System.out.println("start:" + i + ",end:" + end); + final List tempList = pats.subList(i, end); + + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) { + for (Patients pat : tempList) { + if (StringUtils.isNotEmpty(pat.getPid())) + { + pat.setBuildDays(DateUtil.getDays(pat.getLastMenses(), pat.getBookbuildingDate())); + patientsService.updatePatient(pat); + } + } + } + + } + }).start(); + } } } + return "updatePatBuildDays finish"; }