diff --git a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java index 10bd53e..3c397b6 100644 --- a/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java +++ b/platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java @@ -51,10 +51,15 @@ public class QhdfyHisService { private ReferConfigService referConfigService; - public void syncLisReportTask() { - DateTime dt = new DateTime(); - dt = dt.minusDays(1); - queryLisReport(dt.toDate()); + public void syncLisReportTimer() { + Date date = new Date(); + queryLisReport(new Date(date.getTime()-1000*60*60)); + } + + public void syncLisReportTask(String dateStr) { +// DateTime dt = new DateTime(); +// dt = dt.minusDays(1); + queryLisReport(DateUtil.parseYMD(dateStr)); } public List queryLisReport(Date startDate) { @@ -75,10 +80,11 @@ public class QhdfyHisService { referValueMap.put(referValue.getCode(), referValue); } PatientsQuery patientsQuery = new PatientsQuery(); - String sql = "select top 100000 shenqinghao as hospitalId,bingrenid as patientFid,zhuyuanhao as patientHid,kahao as vcCardNo,phone,huanzhexingming as name,xingbie as sex,nianling as age,shenqingkeshidaima as deptCode,shenqingkeshimingcheng as deptName,shenqingyishengdaima as applyDoctorCode,shenqingyishengmingcheng as applyDoctorName,jianchayishengdaima as checkDoctorCode,jianchayishengxingming as checkDoctorName,baogaofabushijian as publishTime from valllist_ex_en where phone is not null and phone !='' and shenqinghao is not null order by shenqinghao desc"; + String sql = "select top 100000 shenqinghao as hospitalId,bingrenid as patientFid,zhuyuanhao as patientHid,kahao as vcCardNo,phone,huanzhexingming as name,xingbie as sex,nianling as age,shenqingkeshidaima as deptCode,shenqingkeshimingcheng as deptName,shenqingyishengdaima as applyDoctorCode,shenqingyishengmingcheng as applyDoctorName,jianchayishengdaima as checkDoctorCode,jianchayishengxingming as checkDoctorName,baogaofabushijian as publishTime from valllist_ex_en where baogaofabushijian > CONVERT(DATETIME,'"+startDate+"', 20) and phone is not null and phone !='' and shenqinghao is not null order by shenqinghao desc"; String subSql = "select top 1000 sheqingdanhao as id,xiangmudaima as code,xiangmumingcheng as name,xiangmujieguo as result,zifujieguo as charResult,shuzijieguo as numberResult,gaodibiaozhi as flag,cankaozhi as ref,danwei as unit,jieguoleixing as result from valresult_ex_en where sheqingdanhao='"; Object[] params = {startDate}; - List list = queryRunner.query(conn, sql, new BeanListHandler(LisReport.class)); + List list = queryRunner.query(conn, sql, new BeanListHandler(LisReport.class),startDate); + System.out.println("危急值====> " + list.size()); if (list.size() > 0) { MongoCondition mongoCondition = MongoCondition.newInstance("hospitalId", ""+hospitalId, MongoOper.IS); List assayConfigList = assayConfigDao.query(mongoCondition.toMongoQuery()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java index 76ba5fa..b544901 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/SyncDataController.java @@ -31,7 +31,7 @@ public class SyncDataController extends BaseController { public void findSyncData(HttpServletResponse response) { SyncDataQuery syncDataQuery = new SyncDataQuery(); syncDataQuery.setNeed("y"); - syncDataQuery.setLimit(100); + syncDataQuery.setLimit(2000); syncDataQuery.setStatus(1); List list = syncDataService.querySyncData(syncDataQuery); for (SyncDataModel model:list) { 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 53db011..8a5ad7f 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 @@ -212,8 +212,8 @@ public class TestController { @RequestMapping(value = "/syncLisReportTask", method = RequestMethod.GET) @ResponseBody - public String syncLisReportTask() { - qhdfyHisService.syncLisReportTask(); + public String syncLisReportTask(@RequestParam(required = true)String time) { + qhdfyHisService.syncLisReportTask(time); return "finish"; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java index f6e65da..47af300 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java @@ -29,6 +29,7 @@ import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import javax.print.attribute.standard.DateTimeAtCompleted; @@ -135,23 +136,60 @@ public class SyncDataTaskService { try{ - StringBuffer ids = new StringBuffer(); + String json = HttpClientUtil.doPost("https://area-qhd-api.healthbaby.com.cn:18019/findSyncData", new HashMap(), "utf-8"); if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json)) { List list = JsonUtil.toList(json, SyncDataModel.class); - for (SyncDataModel model : list) { - boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); - if (boo) { - ids.append(model.getId()); - ids.append(","); + System.out.println("syncdata size = "+ list.size()); + + + int batchSize = 200; + 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 tempList = list.subList(i, end); + new Thread(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) + { + StringBuffer ids = new StringBuffer(); + for (SyncDataModel model : tempList) { + boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); + if (boo) { + ids.append(model.getId()); + ids.append(","); + } + } + if (ids.length() > 0) { + Map params = new HashMap(); + params.put("ids", ids.toString()); + String result = HttpClientUtil.doPost("https://area-qhd-api.healthbaby.com.cn:18019/updateSyncData", params, "utf-8"); + System.out.println("exc result = "+ result); + } + } + } + }).start(); } - if (ids.length() > 0) { - Map params = new HashMap(); - params.put("ids", ids.toString()); - HttpClientUtil.doPost("https://area-qhd-api.healthbaby.com.cn:18019/updateSyncData", params, "utf-8"); - } + +// for (SyncDataModel model : list) { +// boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); +// if (boo) { +// ids.append(model.getId()); +// ids.append(","); +// } +// } +// if (ids.length() > 0) { +// Map params = new HashMap(); +// params.put("ids", ids.toString()); +// String result = HttpClientUtil.doPost("https://area-qhd-api.healthbaby.com.cn:18019/updateSyncData", params, "utf-8"); +// System.out.println("exc result = "+ result); +// } } }catch(Exception ex){ ExceptionUtils.catchException(ex, "qhdfySyncDataSSL Error."); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java index 3500f87..2854720 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/HttpClientUtil.java @@ -50,9 +50,12 @@ public class HttpClientUtil { return result; } -// public static void main(String[] args) throws Exception { -// -// String s = doPost("https://area-qhd-api.healthbaby.com.cn:18019/findSyncData", new HashMap(), "utf-8"); -// System.out.println(s); -// } + public static void main(String[] args) throws Exception { + + long start = System.currentTimeMillis(); + String s = doPost("https://area-qhd-api.healthbaby.com.cn:18019/findSyncData", new HashMap(), "utf-8"); + long end = System.currentTimeMillis(); + System.out.print(end -start); + System.out.println(s); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index ac14591..97116c3 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -38,6 +38,24 @@ + + + + + + + + + + + + + + + + + + @@ -97,6 +115,7 @@ +