ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -177,7 +177,7 @@ } /** * 任务处理 * 任务处理 单次随访 * * @param commonTaskcallMQ */ ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -434,7 +434,7 @@ /** * * 长期任务发送 */ public void longTaskSend() { //获取任务信息 @@ -531,6 +531,10 @@ return !localDate.isAfter(today); } /** * 随访-补偿处理 * @param serviceSubtask */ public void sfHandlle(ServiceSubtask serviceSubtask) { //这里需要根据身份证去重(给微信小程序的固定任务用的) List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>(); smartor/src/main/java/com/smartor/service/IServiceExternalService.java
@@ -91,6 +91,11 @@ public Boolean addPreOutHospInfo(@RequestBody Map dataMap); /** * 离抢数据回写出院记录 */ public Boolean editRescueFinishedOutHospInfo(@RequestBody Map dataMap); /** * 新增完成接诊信息 */ public Boolean addFinshJZInfo(@RequestBody Map dataMap); smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -389,6 +389,75 @@ return 1; } public int dealOutHospInfo1(String config) { //获取任务信息 ServiceTask st = new ServiceTask(); st.setDelFlag("0"); st.setLongTask(1); List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st); log.info("【dealOutHospInfo1】获取到{}个长期任务", serviceTasks.size()); PatMedInhosp pmks = new PatMedInhosp(); //获取需要出院部门随访,未处理的数据 pmks.setDeptcheckFlag("0"); pmks.setInhospstate("1"); pmks.setFuflag("1"); List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks); log.info("dealOutHospInfo1 需要处理的出院部门患者信息:{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhosps) { String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } //科室 for (PatMedInhosp patMedInhosp1 : patMedInhosps) { //病人轮询长期任务 长期任务配置随访 for(ServiceTask serviceTask : serviceTasks) { } //获取患者信息 PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); if (Objects.isNull(patArchive)) { patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("患者基本信息为空"); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); continue; } try { //根据患者所在科室,获取该科室的长期任务 ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode()); serviceTaskdept.setDeptType("1"); serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); //如果部门模板为空(将deptIsNull设置为true) if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在科室未配置长期任务;"); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config); } // patMedInhosp1.setDeptcheckFlag("1"); // patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } } catch (Exception e) { e.printStackTrace(); log.error("人员科室处理出异常了:{}", e.getMessage()); patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("人员科室处理异常:" + e.getMessage()); patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); } } return 1; } // // @Override // public int dealOutHospInfo() { smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -7,6 +7,7 @@ import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.smartor.mapper.*; @@ -997,6 +998,48 @@ return true; } /** * 目前,从急诊抢救后转入住院的患者,其数据采集存在一个问题:有两条入院记录。 * 第一条(急诊科室的)记录缺少“出院时间”,导致该记录在统计中始终显示为“在院”, * 而第二条(转入科室的)记录是完整的。我们需要采集 JZ_ZY_LiQiang接口的数据, * 里面的离抢时间来反填第一条记录的“出院时间”,从而修正第一条记录的状态。 * @param dataMap * @return */ @Override public Boolean editRescueFinishedOutHospInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---editRescueFinishedOutHospInfo的新增的值为:{}", dataMap); Map yeWuXX = (Map) dataMap.get("YeWuXX"); //病人信息 Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null; //就诊信息 Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null; ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); PatMedInhosp patMedInhosp1 = null; if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0); if(ObjectUtils.isNotEmpty(patMedInhosp1)){ if (ObjectUtils.isNotEmpty(JiuZhenXX.get("LiQiangSJ"))) { try { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); patMedInhosp1.setEndtime(simpleDateFormat.parse(JiuZhenXX.get("LiQiangSJ").toString())); patMedInhosp1.setUpdateTime(new Date()); int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1); if (i != 1) return false; } catch (ParseException e) { e.printStackTrace(); } } return true; }else { log.error("ServiceExternalServiceImpl---editRescueFinishedOutHospInfo的没有找到对应的出院记录:{}", dataMap); return false; } } @Override public Boolean addFinshJZInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---addFinshJZInfo的新增的值为:{}", dataMap); @@ -1929,6 +1972,9 @@ case "JZ_ZY_YuChuYuan": log.info("患者预出院入参类型为:{}", type); return addPreOutHospInfo(dataMap); case "JZ_ZY_LiQiang": log.info("患者离抢入参类型为:{}", type); return editRescueFinishedOutHospInfo(dataMap); case "JG_ZZ_BingQu": log.info("病区信息入参类型为:{}", type); return addWardAreaInfo(dataMap); smartor/src/main/resources/mapper/smartor/SysUserMapper.xml
@@ -125,6 +125,9 @@ from sys_user u left join sys_dept d on u.dept_id = d.dept_id where u.del_flag = '0' <if test="orgid != null and orgid != ''"> AND u.orgid = #{orgid} </if> <if test="userId != null and userId != 0"> AND u.user_id = #{userId} </if>