ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -154,10 +154,11 @@ log.error("进任务了吗?{}", commonTaskcallMQ); //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了 ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { //将消息从队列中剔除 return; } // if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { // //将消息从队列中剔除 // return; // } if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { //如何任务发送方式不为空 @@ -183,6 +184,9 @@ ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); ivrTaskcall.setSendstate(1L); List<ServiceSubtask> selectServiceSubtaskList = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); if (CollectionUtils.isEmpty(selectServiceSubtaskList)) { continue; } if (descByCode.equals("电话")) { for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { //先判断一下,subIds是否为空,如果不为空,只执行subIds里的患者 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -192,7 +192,7 @@ Set<String> uniqueDeptCodes = new HashSet<>(); for (SysUserDept userDept : sysUserDeptKSs) { String deptCode = userDept.getDeptCode(); if (!uniqueDeptCodes.contains(deptCode)) { if (StringUtils.isNotEmpty(deptCode) && !uniqueDeptCodes.contains(deptCode)) { distinctUserDepts.add(userDept); uniqueDeptCodes.add(deptCode); } @@ -202,7 +202,7 @@ Set<String> uniqueBQCodes = new HashSet<>(); for (SysUserDept userDept : sysUserDeptBQs) { String deptCode = userDept.getDeptCode(); if (!uniqueBQCodes.contains(deptCode)) { if (StringUtils.isNotEmpty(deptCode) && !uniqueBQCodes.contains(deptCode)) { distinctUserBQs.add(userDept); uniqueBQCodes.add(deptCode); } @@ -226,6 +226,7 @@ Map<String, Object> map = new HashMap<>(); map.put("districtCode", ""); if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("districtCode", sud.getDeptCode()); else continue; map.put("districtName", ""); if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("districtName", sud.getDeptName()); list.add(map); @@ -238,6 +239,7 @@ Map<String, Object> map = new HashMap<>(); map.put("deptCode", ""); if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode()); else continue; map.put("deptName", ""); if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName()); list.add(map); smartor/src/main/java/com/smartor/domain/ExternalDiagnosisInfo.java
@@ -49,4 +49,7 @@ @ApiModelProperty(value = "诊断名称") private String ZhenDuanMC; @ApiModelProperty(value = "Icd10") private String Icd10; } smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
@@ -614,6 +614,18 @@ private Date startOutHospTime; /** * 开始发送日期 */ @ApiModelProperty(value = "开始发送日期") private Date startSendDateTime; /** * 结束发送日期 */ @ApiModelProperty(value = "结束发送日期") private Date endSendDateTime; /** * 结束出院日期 */ @ApiModelProperty(value = "结束出院日期") @@ -640,6 +652,6 @@ /** * 排序() */ @ApiModelProperty(value = "排序:0 出院时间 1 发送时间") @ApiModelProperty(value = "排序:0 出院时间(正序) 1 出院时间(倒序) 2 发送时间(正序) 3 发送时间(倒序) ") private Integer sort; } smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java
@@ -8,10 +8,13 @@ import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.DtoConversionUtils; import com.smartor.domain.*; import com.smartor.mapper.ServiceSubtaskMapper; import com.smartor.service.CommonTaskService; import com.smartor.service.IServiceSubtaskService; import com.smartor.service.IServiceTaskService; import com.smartor.service.ISvyTaskService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +37,9 @@ public class CommonTaskServiceImpl implements CommonTaskService { @Autowired private IServiceTaskService ivrTaskService; @Autowired private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private IServiceTaskService iServiceTaskService; @@ -67,9 +73,34 @@ //任务暂停或终止 ServiceTask serviceTask = new ServiceTask(); serviceTask.setTaskid(sendTaskVO.getTaskId()); serviceTask.setStopState(ivrTask.getStopState() + 1); // serviceTask.setStopState(ivrTask.getStopState() + 1); serviceTask.setSendState(sendTaskVO.getSendState()); int i = ivrTaskService.updateServiceTask(serviceTask); //获取到该任务所有的服务,并从队列里删除 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setTaskid(serviceTask.getTaskid()); serviceSubtaskVO.setSendstate(2L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); serviceSubtaskVO.setSendstate(1L); List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.error("sfSend需要移除的subId为:{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); } } return i; } @@ -142,9 +173,33 @@ //任务暂停或终止 ServiceTask serviceTask = new ServiceTask(); serviceTask.setTaskid(sendTaskVO.getTaskId()); serviceTask.setStopState(serviceTask1.getStopState() + 1); // serviceTask.setStopState(serviceTask1.getStopState() + 1); serviceTask.setSendState(sendTaskVO.getSendState()); int i = iServiceTaskService.updateServiceTask(serviceTask); //获取到该任务所有的服务,并从队列里删除 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); serviceSubtaskVO.setSendstate(2L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); serviceSubtaskVO.setSendstate(1L); List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.error("wjSend需要移除的subId为:{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); } } return i; } @@ -219,9 +274,34 @@ //任务暂停或终止 ServiceTask serviceTask = new ServiceTask(); serviceTask.setTaskid(sendTaskVO.getTaskId()); serviceTask.setStopState(serviceTask1.getStopState() + 1); // serviceTask.setStopState(serviceTask1.getStopState() + 1); serviceTask.setSendState(sendTaskVO.getSendState()); iServiceTaskService.updateServiceTask(serviceTask); //获取到该任务所有的服务,并从队列里删除 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); serviceSubtaskVO.setSendstate(2L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); serviceSubtaskVO.setSendstate(1L); List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.error("xjSend需要移除的subId为:{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); } } return 0; } smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -149,6 +149,33 @@ //修改 patArchiveVO.setIsoperation(2); patArchiveMapper.updatePatArchive(patArchive); if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) { //不需要服务了,需要通过patid和sendstate=2或者sendstate=1去查询一下,service_subtask里是否有正在执行的任务,有的话,立即停了 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setPatid(patArchive.getId()); serviceSubtaskVO.setSendstate(2L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); serviceSubtaskVO.setSendstate(1L); List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } //去redis中,查询是否有subid,有的话移除cache-exist if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.error("需要移除的subId为:{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); } } } } if (CollectionUtils.isNotEmpty(patArchiveVO.getTagList())) { smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -437,6 +437,7 @@ patMedOuthosp.setIcd10code(externalDiagnosisInfo.getZhenDuanID()); patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID()); patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM()); patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10()); } } for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) { @@ -465,19 +466,23 @@ String FaSongJGID = XiaoXiTou.get("FaSongJGID").toString(); Icd10 icd10 = new Icd10(); icd10.setIcdcode(externalDiseaseInfo.getIcD10()); icd10.setDelFlag("0"); icd10.setOrgid(FaSongJGID); //通过icdCode查询一下,是否存在 List<Icd10> icd10s = icd10Mapper.selectIcd10List(icd10); icd10.setHisIcdid(externalDiseaseInfo.getJiBingID()); icd10.setIcdname(externalDiseaseInfo.getJiBingMC()); icd10.setGuid(externalDiseaseInfo.getZuZhiJGID()); icd10.setLastflag(externalDiseaseInfo.getMOJIBZ()); icd10.setChimedflag("" + externalDiseaseInfo.getZhongYiZDBZ()); icd10.setOrgid(FaSongJGID); // icd10Association.setIcd10AssortName(externalDiseaseInfo.getJiBingFLMC()); // icd10Association.setChineseMedicineDiagnoseSign(externalDiseaseInfo.getZhongYiZDBZ()); // icd10Association.setChineseMedicineDiagnoseAssortCode(externalDiseaseInfo.getZhongYiZDFLDM()); // icd10Association.setChineseMedicineDiagnoseAssortName(externalDiseaseInfo.getZhongYiZDFLMC()); // icd10Association.setOutpatientUseAssort(externalDiseaseInfo.getMenZhenSYBZ()); // icd10Association.setInpatientUseAssort(externalDiseaseInfo.getZhuYuanSYBZ()); icd10Mapper.insertIcd10(icd10); if (CollectionUtils.isNotEmpty(icd10s)) { icd10.setUpdateTime(new Date()); icd10.setIcdid(icd10s.get(0).getIcdid()); icd10Mapper.updateIcd10(icd10); } else { icd10.setCreateTime(new Date()); icd10Mapper.insertIcd10(icd10); } return true; } smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -259,8 +259,12 @@ //根据出院 时间倒序 List<ServiceSubtask> sortedServiceSubtaskList = null; if (serviceSubtaskVO.getSort() == null || serviceSubtaskVO.getSort() == 0) sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList()); sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList()); if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 1) sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getEndtime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList()); if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 2) sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getLongSendTime, Comparator.nullsLast(Comparator.naturalOrder()))).collect(Collectors.toList()); if (serviceSubtaskVO.getSort() != null && serviceSubtaskVO.getSort() == 3) sortedServiceSubtaskList = selectServiceSubtaskList.stream().sorted(Comparator.comparing(ServiceSubtask::getLongSendTime, Comparator.nullsLast(Comparator.naturalOrder())).reversed()).collect(Collectors.toList()); return sortedServiceSubtaskList; @@ -513,8 +517,33 @@ serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); //修改操作,需要将stopState状态+1 ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid()); long l = serviceTask1.getStopState() + 1; serviceTask.setStopState(l); // long l = serviceTask1.getStopState() + 1; // serviceTask.setStopState(l); //获取到该任务所有的服务,并从队列里删除 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); serviceSubtaskVO.setSendstate(2L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); serviceSubtaskVO.setSendstate(1L); List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.error("insertOrUpdateTask需要移除的subId为:{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); } } if (serviceTaskVO.getLibtemplateid() != null) serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString()); serviceTask.setTemplateid(serviceTaskVO.getTemplateid()); smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.HospTypeEnum; import com.ruoyi.common.enums.ServiceTaskTypeEnum; import com.ruoyi.common.enums.TaskTypeEnum; @@ -52,6 +53,9 @@ @Autowired private BaseOrganizationMapper baseOrganizationMapper; @Autowired private RedisCache redisCache; @Override public int insertOrUpdateSvyTask(ServiceTaskVO serviceTaskVO) { @@ -97,10 +101,36 @@ serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); //修改操作,需要将stopState状态+1 ServiceTask serviceTask2 = iServiceTaskService.selectServiceTaskByTaskid(serviceTaskVO.getTaskid()); serviceTask2.setStopState(serviceTask.getStopState() + 1); // serviceTask2.setStopState(serviceTask.getStopState() + 1); serviceTask2.setTemplateid(Long.valueOf(serviceTaskVO.getLibtemplateid())); iServiceTaskService.updateServiceTask(serviceTask2); //获取到该任务所有的服务,并从队列里删除 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setTaskid(serviceTask2.getTaskid()); serviceSubtaskVO.setSendstate(2L); List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); serviceSubtaskVO.setSendstate(1L); List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { for (ServiceSubtask serviceSubtask : serviceSubtaskList) { log.error("insertOrUpdateSvyTask需要移除的subId为:{}", serviceSubtask.getId().toString()); serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); } } if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) { for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) { smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -195,6 +195,13 @@ <if test="endOutHospTime != null"> AND date_format(endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d') </if> <if test="startSendDateTime != null"> AND date_format(long_send_time,'%y%m%d') >= date_format(#{startSendDateTime},'%y%m%d') </if> <if test="endSendDateTime != null"> AND date_format(long_send_time,'%y%m%d') <= date_format(#{endSendDateTime},'%y%m%d') </if> <if test="longSendTime != null"> AND date_format(long_send_time,'%y%m%d') <= date_format(#{longSendTime},'%y%m%d') </if>