diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/LymsHisInfoController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/LymsHisInfoController.java index 06d2716..31425f8 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/LymsHisInfoController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/LymsHisInfoController.java @@ -89,6 +89,8 @@ public class LymsHisInfoController { } } catch (Exception e) { e.printStackTrace(); + baseResponse.setErrorcode(1); + baseResponse.setErrormsg("患者上传失败,请联系管理员"); } return baseResponse; } diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java index 09908e8..3a06e0d 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/service/impl/LymsHisInfoServiceImpl.java @@ -225,6 +225,9 @@ public class LymsHisInfoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq("pid",patient.getId()); queryWrapper.gt("status",0); diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/GetPatientInfoTask.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/GetPatientInfoTask.java index 1396a4b..f3dfd21 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/GetPatientInfoTask.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/task/GetPatientInfoTask.java @@ -1,29 +1,19 @@ package com.lyms.talkonlineweb.task; -import com.alibaba.fastjson.JSON; +import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.lyms.talkonlineweb.controller.PatientController; import com.lyms.talkonlineweb.domain.*; -import com.lyms.talkonlineweb.result.BaseResponse; import com.lyms.talkonlineweb.service.*; import com.lyms.talkonlineweb.util.*; import lombok.extern.log4j.Log4j2; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import org.springframework.validation.BindingResult; -import org.springframework.validation.MapBindingResult; import org.springframework.scheduling.annotation.Scheduled; -import org.w3c.dom.ls.LSInput; +import org.springframework.stereotype.Component; -import javax.swing.event.ListDataEvent; import java.util.*; -import static com.lyms.talkonlineweb.util.DateUtil.YYYY_MM_DD; /** * 获取医院患者信息任务 @@ -62,52 +52,60 @@ public class GetPatientInfoTask { /** * 获取医院患者信息。添加到问诊平台患者信息 - * 10分钟执行一次 + * 每小时执行一次获 */ - // @Scheduled(cron = "0 */10 * * * ?") -// @Scheduled(cron = "0 */5 * * * ?")//测试用 + @Scheduled(cron = "0 */30 * * * ?") public void getPatientInfo() throws Exception { if(!on_off){ return; } + log.info("task get qhddeyy his info start ..."); //每次执行时间范围是上一个小时 - String param = collateTime(); + //String param = collateTime(); + DateTime startDate = cn.hutool.core.date.DateUtil.offsetHour(new Date(),-3); + DateTime endDate = cn.hutool.core.date.DateUtil.offsetHour(new Date(),-1); + String startTime = cn.hutool.core.date.DateUtil.formatDateTime(startDate); + String endTime = cn.hutool.core.date.DateUtil.formatDateTime(endDate); + + String param = ("startTime="+startTime+"&endTime="+endTime).replace(" ", "+");; if (StringUtil.isNotEmpty(param)) { //返回数据 String result = HttpUtil.getData(url + "?" + param); + log.info("task get qhddeyy his info result ,{}",result); if (StringUtil.isNotEmpty(result)) { - Map resultMap = JsonUtil.str2Map(result, HashMap.class); - if (CollectionUtils.isNotEmpty(resultMap)) { - List> listMap = (List>) resultMap.get("patients"); - if (CollectionUtils.isNotEmpty(listMap)) { - for (Map map : listMap) { - //添加到数据后续页面处理 - LymsHisInfo hisInfoMap = (LymsHisInfo) BeanUtils.mapToObject(map, LymsHisInfo.class);//map转对象 - if (null != hisInfoMap) { - //今天添加过不需要重复添加 - QueryWrapper qurey = new QueryWrapper(); + List> listMap = JsonUtil.str2Obj(result, List.class); + for (Map map : listMap) { + //添加到数据后续页面处理 + LymsHisInfo hisInfoMap = (LymsHisInfo) BeanUtils.mapToObject(map, LymsHisInfo.class);//map转对象 + if (null != hisInfoMap) { + //今天添加过不需要重复添加 + QueryWrapper qurey = new QueryWrapper(); + if(StringUtil.isNotEmpty(hisInfoMap.getIdcard())){ qurey.eq("idCard", hisInfoMap.getIdcard()); - qurey.eq("diagnose", hisInfoMap.getDiagnose()); - qurey.eq("hospitalId", hospital); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - calendar.set(Calendar.HOUR_OF_DAY, 00);//时 - calendar.set(Calendar.MINUTE, 00);//分 - calendar.set(Calendar.SECOND, 00);//秒 - qurey.gt("createdtime", calendar.getTime()); - List list = lymsHisInfoService.list(qurey); - if (CollectionUtils.isEmpty(list)) { - hisInfoMap.setBirthday(StringUtil.isNotEmpty(hisInfoMap.getBirthday()) ? StringUtil.leftTruncate(hisInfoMap.getBirthday(), ' ') : null); - hisInfoMap.setUpType(0);//默认未上传 - hisInfoMap.setHospitalId(hospital);//医院id - lymsHisInfoService.save(hisInfoMap); - } + }else{ + qurey.eq("phone", hisInfoMap.getPhone()); + } + + qurey.eq("diagnose", hisInfoMap.getDiagnose()); + qurey.eq("hospitalId", hospital); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.HOUR_OF_DAY, 00);//时 + calendar.set(Calendar.MINUTE, 00);//分 + calendar.set(Calendar.SECOND, 00);//秒 + qurey.gt("createdtime", calendar.getTime()); + List list = lymsHisInfoService.list(qurey); + if (CollectionUtils.isEmpty(list)) { + hisInfoMap.setBirthday(StringUtil.isNotEmpty(hisInfoMap.getBirthday()) ? StringUtil.leftTruncate(hisInfoMap.getBirthday(), ' ') : null); + hisInfoMap.setUpType(0);//默认未上传 + hisInfoMap.setHospitalId(hospital);//医院id + lymsHisInfoService.save(hisInfoMap); } } } - } } } + log.info("task get qhddeyy his info end ..."); } /** diff --git a/talkonlineweb/src/main/resources/application-prod.yml b/talkonlineweb/src/main/resources/application-prod.yml index 3d9a85c..db0e13f 100644 --- a/talkonlineweb/src/main/resources/application-prod.yml +++ b/talkonlineweb/src/main/resources/application-prod.yml @@ -38,11 +38,11 @@ proxyPort: #获取医院患者信息配置 patient: #医院接口地址(String) - url: https://rp-zk-api.healthbaby.com.cn:8094/his/zkfy/getZkfyPatientList + url: http://121.22.117.38:9090/his/getQhddeyyHisList #需要预建医院获得医院名称(String) - hospitalName: 周口市妇幼保健院 + hospitalName: 秦皇岛市第二医院 #需要预建医院获得id(Integer) - hospital: 16 + hospital: 49 #孕产婴平台接口地址 platform: