diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncBaseInfoService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncBaseInfoService.java index dd79b07..4cdfe52 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncBaseInfoService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/hs/SyncBaseInfoService.java @@ -144,14 +144,14 @@ public class SyncBaseInfoService { return obj == null ? null : String.valueOf(obj); } - + private static final int BATCH_SIZE = 20; public void doHandleBirth(String ckNo1,String ckPrefix1) { int page = 0; //查询孕妇档案 do { - String sql1 = "SELECT ck_no,ck_prefix from cert_birthnocheck ORDER BY ck_opertime desc limit "+page+",100"; + String sql1 = "SELECT ck_no,ck_prefix from cert_birthnocheck ORDER BY ck_opertime desc limit "+(page * 100)+",100"; System.out.println(sql1); List> list = JDBCUtil.getMysqlListDataBySql(sql1); if (CollectionUtils.isEmpty(list)) @@ -159,29 +159,56 @@ public class SyncBaseInfoService { System.out.println("查询数据完成"); break; } - if (CollectionUtils.isNotEmpty(list)) - { - for(Map data : list) - { - String ckNo = getString(data.get("ck_no")); - String ckPrefix = getString(data.get("ck_prefix")); - - String sql = "SELECT M.CK_NO,M.CK_PREGDAY,M.CK_BABBYBIRTHDAY,M.CK_PREFIX FROM MOMMY_BIRTHNOCHECK M WHERE M.CK_NO='"+ckNo+"' AND M.CK_PREFIX='"+ckPrefix+"'"; - - List> list1 = JDBCUtil.getOracleListDataBySql(sql); - if (CollectionUtils.isNotEmpty(list1)) - { - Map obj = list1.get(0); - Date birth = HsDataUtil.getDate(obj.get("CK_BABBYBIRTHDAY")); - String day = HsDataUtil.getString(obj.get("CK_PREGDAY")); - System.out.println(DateUtil.getyyyy_MM_dd_hms(birth)); - int count = JDBCUtil.mysqlUpdate(" update cert_birthnocheck set ck_pregday="+day+",ck_babbybirthday='"+ DateUtil.getyyyy_MM_dd_hms(birth)+"' where ck_no='"+ckNo+"' and ck_prefix='"+ckPrefix+"'"); - System.out.println("update count "+count); + int batchSize = BATCH_SIZE; + int end = 0; - } + //线程数 + int threadCount = list.size() % BATCH_SIZE == 0 ? list.size() / BATCH_SIZE : list.size() / BATCH_SIZE + 1; + + final CountDownLatch countDownLatch = new CountDownLatch(threadCount); + + 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> tempList = list.subList(i, end); + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) + { + for(Map data : tempList) + { + String ckNo = getString(data.get("ck_no")); + String ckPrefix = getString(data.get("ck_prefix")); + + String sql = "SELECT M.CK_NO,M.CK_PREGDAY,M.CK_BABBYBIRTHDAY,M.CK_PREFIX FROM MOMMY_BIRTHNOCHECK M WHERE M.CK_NO='"+ckNo+"' AND M.CK_PREFIX='"+ckPrefix+"'"; + + List> list1 = JDBCUtil.getOracleListDataBySql(sql); + if (CollectionUtils.isNotEmpty(list1)) + { + Map obj = list1.get(0); + Date birth = HsDataUtil.getDate(obj.get("CK_BABBYBIRTHDAY")); + String day = HsDataUtil.getString(obj.get("CK_PREGDAY")); + System.out.println(DateUtil.getyyyy_MM_dd_hms(birth)); + int count = JDBCUtil.mysqlUpdate(" update cert_birthnocheck set ck_pregday="+day+",ck_babbybirthday='"+ DateUtil.getyyyy_MM_dd_hms(birth)+"' where ck_no='"+ckNo+"' and ck_prefix='"+ckPrefix+"'"); + System.out.println("update count "+count); + + } + } + } + countDownLatch.countDown(); + } + }); } page++; + try { + countDownLatch.await(); + Thread.sleep(5000); + } catch (InterruptedException e) { + } }while (true); } 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 929ac22..887226a 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 @@ -3559,6 +3559,7 @@ public class TestController extends BaseController { patients.setId(null); patients.setEnable("2"); patients.setHospitalId(maternalDeliverModel.getFmHospital()); + patients.setFmHospital(maternalDeliverModel.getFmHospital()); patients.setSource(source); if(StringUtils.isEmpty(patients.getBookbuildingDoctor())) @@ -3572,7 +3573,7 @@ public class TestController extends BaseController { } } - patientsService.addPatient(patients); + patients = patientsService.addPatient(patients); System.out.println(patients.getId()); maternalDeliverModel.setParentId(patients.getId()); matDeliverService.updateOne(maternalDeliverModel,maternalDeliverModel.getId()); @@ -3634,4 +3635,109 @@ public class TestController extends BaseController { return "updatePatientBuildDoctor start......"; } + + + + + @ResponseBody + @RequestMapping(value = "/updateHsFmHospital", method = RequestMethod.GET) + public String updateHsFmHospital(@RequestParam(required = false) String hospitalId,String startDate,String endDate) { + final MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); + matDeliverQuery.setYn(YnEnums.YES.getId()); + matDeliverQuery.setCreatedStart(DateUtil.parseYMD(startDate)); + matDeliverQuery.setEndStart(DateUtil.parseYMD(endDate)); + if (StringUtils.isNotEmpty(hospitalId)) { + matDeliverQuery.setFmHospital(hospitalId); + } + // 查询 + List maternalDeliverModelList = matDeliverService.query(matDeliverQuery); + System.out.println("本次读取了【" + maternalDeliverModelList.size() + "】条数据"); + int batchSize = 1000; + int end = 0; + for (int i = 0; i < maternalDeliverModelList.size(); i += batchSize) { + end = (end + batchSize); + if (end > maternalDeliverModelList.size()) { + end = maternalDeliverModelList.size(); + } + final List tempList = maternalDeliverModelList.subList(i, end); + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) { + for (MaternalDeliverModel maternalDeliverModel : tempList) { + Patients patients = patientsService.findOnePatientById(maternalDeliverModel.getParentId()); + if (patients != null && StringUtils.isNotEmpty(maternalDeliverModel.getFmHospital()) + && StringUtils.isNotEmpty(patients.getFmHospital())) { + if (!maternalDeliverModel.getFmHospital().equals(patients.getFmHospital())) + { + patients.setFmHospital(maternalDeliverModel.getFmHospital()); + patientsService.updatePatient(patients); + } + } + + PatientsQuery patientsQuery1 = new PatientsQuery(); + patientsQuery1.setHospitalId(maternalDeliverModel.getFmHospital()); + patientsQuery1.setYn(YnEnums.YES.getId()); + patientsQuery1.setSort("created"); + patientsQuery1.setPid(maternalDeliverModel.getPid()); + List list = patientsService.queryPatient(patientsQuery1); + if (CollectionUtils.isNotEmpty(list)) + { + Patients pat = list.get(0); + if (!maternalDeliverModel.getParentId().equals(pat.getId())) + { + System.out.println("分娩数据修改parentid" ); + maternalDeliverModel.setParentId(pat.getId()); + matDeliverService.updateOne(maternalDeliverModel, maternalDeliverModel.getId()); + } + + } + + } + } + } + }).start(); + } + return "updateHsFmHospital start......"; + } + + + + @ResponseBody + @RequestMapping(value = "/setPatientLastMenses", method = RequestMethod.GET) + public BaseObjectResponse setPatientLastMenses(String cardNo,String lastMenses) { + BaseObjectResponse objectResponse = new BaseObjectResponse(); + + PatientsQuery patientsQuery1 = new PatientsQuery(); + patientsQuery1.setCardNo(cardNo); + patientsQuery1.setYn(YnEnums.YES.getId()); + patientsQuery1.setSort("created"); + List list = patientsService.queryPatient(patientsQuery1); + if (CollectionUtils.isNotEmpty(list)) + { + PersonModel persons = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(cardNo)), PersonModel.class); + if (persons != null) + { + persons.setType(1); + personService.updatePerson(persons, persons.getId()); + Patients pat = list.get(0); + if ("0001-01-01".equals(DateUtil.getyyyy_MM_dd(pat.getLastMenses()))) + { + Date lastMensesDate = DateUtil.parseYMD(lastMenses); + pat.setLastMenses(lastMensesDate); + pat.setDueDate(DateUtil.addDay(lastMensesDate, 280)); + pat.setIsAutoFm(0); + pat.setType(1); + patientsService.updatePatient(pat); + this.mongoTemplate.updateFirst(new Query(Criteria.where("id").is(pat.getId())), Update.update("fmDate", null), Patients.class); + } + } + } + + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); + return new BaseObjectResponse(); + } + + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java index 4d4d23c..fa06e51 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java @@ -790,8 +790,7 @@ public class ApplyOrderFacade { } }catch (Exception e){ - e.printStackTrace(); - logger.error("调用华大接口失败", e); + ExceptionUtils.catchException(e,"调用华大接口失败"); } } return result; @@ -1790,8 +1789,9 @@ public class ApplyOrderFacade { String json = JsonUtil.obj2JsonString(map); System.out.println("saveSampleInfo param="+json); + ExceptionUtils.catchException("saveSampleInfo param="+json); String s = HttpClientUtil.doPostSSL(HUADA_URL + "/external/saveSampleInfos.do", json); - System.out.println(s); + ExceptionUtils.catchException("saveSampleInfo param=" + json+ "=======result"+s); JSONObject jsonObject = JSONObject.parseObject(s); Object codeObj = jsonObject.get("code");