From 1ccb709f723a759597dcdc7239d8885cef84d3ce Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 04 十二月 2024 17:56:19 +0800 Subject: [PATCH] 代码提交 --- ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 229 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 184 insertions(+), 45 deletions(-) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index 0d260ff..3d8dfb0 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -18,11 +18,13 @@ import com.ruoyi.common.utils.http.HttpUtils; import com.smartor.common.SendService; import com.smartor.domain.*; +import com.smartor.mapper.ServiceSubtaskMapper; import com.smartor.mapper.ServiceTaskMapper; import com.smartor.mapper.SysUserImportMapper; import com.smartor.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -42,6 +44,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; @@ -70,6 +73,9 @@ private IServiceSubtaskService iServiceSubtaskService; @Autowired + private IServicePatientTempService iServicePatientTempService; + + @Autowired private PlatformTransactionManager transactionManager; @Autowired @@ -94,7 +100,7 @@ private ServiceTaskMapper serviceTaskMapper; @Autowired - private SendService sendService; + private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private RedisCache redisCache; @@ -116,6 +122,9 @@ @Autowired ISvyTaskTemplateService svyTaskTemplateService; + + @Autowired + IIvrTaskTemplateService iIvrTaskTemplateService; @Value("${hosp_info_url}") private String hospInfoUrl; @@ -186,8 +195,13 @@ //灏嗘偅鑰呬俊鎭�佸嚭闄€�侀棬璇婃暟鎹叏閮ㄩ噰闆� // 鑾峰彇褰撳墠鏃ユ湡鍜屾椂闂� LocalDateTime endTime = LocalDateTime.now(); + endTime = endTime.with(LocalTime.MIN); +// String dateStr = "2024/11/30 00:00:00"; +// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); +// LocalDateTime endTime = LocalDateTime.parse(dateStr, formatter); // 鑾峰彇鍓嶄竴澶╃殑鏃ユ湡鍜屾椂闂� LocalDateTime startTime = endTime.minusDays(1); + startTime = startTime.with(LocalTime.MIN); getInHospInfo("0", startTime, endTime); getInHospInfo("1", startTime, endTime); @@ -223,8 +237,102 @@ iPatMedInhospService.dealOutHospInfo(); } +// /** +// * 澶勭悊鎮h�呬俊鎭紝杩涘叆瀛愪换鍔¤〃(寰俊灏忕▼搴�) +// */ +// public void dealOutHospInfoXHC() { +// PatMedInhosp patMedInhosp = new PatMedInhosp(); +// //鑾峰彇鏈鐞嗙殑鏁版嵁 +// List<ServicePatientTemp> servicePatientTemps = iServicePatientTempService.selectServicePatientTempList(new ServicePatientTemp()); +// +// for (ServicePatientTemp servicePatientTemp : servicePatientTemps) { +// Long tid = null; +// if (servicePatientTemp.getType() != null && servicePatientTemp.getType() == 1) { +// IvrTaskTemplate ivrTaskTemplate = iIvrTaskTemplateService.selectIvrTaskTemplateByID(servicePatientTemp.getTempId()); +// tid = ivrTaskTemplate.getTaskid(); +// } else if (servicePatientTemp.getType() != null && servicePatientTemp.getType() == 2) { +// SvyTaskTemplate svyTaskTemplate = svyTaskTemplateService.selectSvyTaskTemplateBySvyid(servicePatientTemp.getTempId()); +// tid = svyTaskTemplate.getTaskid(); +// } +// +// ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(tid); +// ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); +// serviceSubtask.setTaskid(serviceTask.getTaskid()); +// serviceSubtask.setTemplateid(servicePatientTemp.getTempId()); +// serviceSubtask.setTemplatename(stt.getTemplateName()); +// serviceSubtask.setPatid(patArchive.getId()); +// serviceSubtask.setSendname(patArchive.getName()); +// serviceSubtask.setSfzh(patArchive.getIdcardno()); +// serviceSubtask.setPhone(patArchive.getTelcode()); +// serviceSubtask.setSex(patArchive.getSex()); +// serviceSubtask.setAge(patArchive.getAge()); +// serviceSubtask.setSendstate(2L); +// serviceSubtask.setStarttime(patMedInhosp1.getStarttime()); +// serviceSubtask.setEndtime(patMedInhosp1.getEndtime()); +// serviceSubtask.setServiceType("2"); +// serviceSubtask.setPreachform(serviceTask.getPreachform()); +// serviceSubtask.setHospType("2"); +// serviceSubtask.setCreateTime(new Date()); +// serviceSubtask.setUpdateTime(new Date()); +// serviceSubtask.setCreateBy(patMedInhosp1.getNurseName()); +// serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode()); +// serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname()); +// //璁剧疆鍙戦�佹椂闂� +// Date newDate = addDays(patMedInhosp1.getEndtime(), stt.getSendDay()); +// serviceSubtask.setLongSendTime(newDate); +// //鎮h�呭彂閫佹椂闂� +// if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) { +// remark = patArchive.getNotrequiredreason(); +// serviceSubtask.setRemark(remark); +// serviceSubtask.setResult("error"); +// serviceSubtask.setFinishtime(new Date()); +// //涓嶆墽琛� +// serviceSubtask.setSendstate(4L); +// } +// +// //鍦ㄦ柊澧炰箣鍓嶏紝鍏堥�氳繃鎮h�匢D锛宻endstate=2鏌ヨ涓�涓嬶紝鍦ㄦ墍鏈夐暱鏈熶换鍔′腑锛屾槸涓嶆槸杩樻湁璇ユ偅鑰呭緟鎵ц鐨勪换鍔★紝鏈夌殑璇�,姣旇緝涔嬪墠鐨別ndtime鏄惁灏忎簬褰撳墠鐨別ndtaime,濡傛灉涔嬪墠鐨勫皬浜庣幇鍦ㄧ殑锛屽垯鐩存帴灏嗕箣鍓嶇殑鍋滄帀锛堝師鍥犲啀鍏ラ櫌锛� +// ServiceSubtaskVO subtask = new ServiceSubtaskVO(); +// subtask.setPatid(patArchive.getId()); +// subtask.setSendstate(2L); +// List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(subtask); +// log.error("璇ユ偅鑰呭緟鎵ц鐨勪换鍔�:{}", selectServiceSubtaskList); +// if (CollectionUtils.isNotEmpty(selectServiceSubtaskList) && selectServiceSubtaskList.size() > 0) { +// for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) { +// if (Objects.isNull(serviceSubtask1.getLongSendTime())) { +// //涓嶆槸闀挎湡浠诲姟锛屼笉澶勭悊 +// continue; +// } +// if (serviceSubtask1.getEndtime().before(serviceSubtask.getEndtime())) { +// //濡傛灉褰撳墠寰幆鐨勫瓙浠诲姟鐨勫嚭闄㈡椂闂村湪鈥滃噯澶囨柊澧炵殑瀛愪换鍔♀�濈殑鍑洪櫌鏃堕棿涔嬪墠锛屽垯灏嗗惊鐜殑瀛愪换鍔″仠鎺� +// serviceSubtask1.setSendstate(4L); +// serviceSubtask1.setRemark("鎮h�呭啀鍏ラ櫌"); +// serviceSubtask1.setResult("error"); +// serviceSubtask1.setFinishtime(new Date()); +// serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); +// } else { +// //鐩稿弽,鍒欏皢褰撴湁鐨勬暟鎹仠鎺� +// serviceSubtask.setResult("error"); +// serviceSubtask.setFinishtime(new Date()); +// serviceSubtask.setSendstate(4L); +// serviceSubtask.setRemark("鎮h�呭啀鍏ラ櫌"); +// } +// } +// } +// +// serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); +// //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛� +// PatMedInhosp patMedInhosp2 = new PatMedInhosp(); +// patMedInhosp2.setInhospid(patMedInhosp1.getInhospid()); +// patMedInhosp2.setCheckFlag("1"); +// patMedInhospMapper.updatePatMedInhosp(patMedInhosp2); +// } +// +// return 1; +// } + + /** - * 闀挎湡浠诲姟鎵ц + * 闀挎湡浠诲姟鎵ц锛堢數璇濓級 */ public void longTaskSend() { //鑾峰彇浠诲姟淇℃伅 @@ -286,60 +394,81 @@ ivrTaskcall.setSendstate(2L); List<ServiceSubtask> selectServiceSubtaskList = iServiceSubtaskService.selectServiceSubtaskList(ivrTaskcall); if (descByCode.equals("鐢佃瘽")) { + String value = ""; for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { ServiceTask ivrTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� break; } - //鑾峰彇鍒皏alue鍊兼渶灏戠殑key - String key = getKey(); - if (commonTaskcallMQ.getSendType().equals("2")) { - //璇存槑鏄珛鍗冲彂閫� - String value = redisCache.getCacheObject("cache-0"); - ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); - serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); - List<ServiceSubtask> selectServiceSubtaskList1 = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask1); - for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { + boolean dateToday = isDateToday(serviceSubtask.getLongSendTime()); + //璇存槑鏄珛鍗冲彂閫�(鍏堟妸娑堟伅鏀惧埌cache-0涓紝 displayNo涓嶇煡閬撴�庝箞閰嶇疆) + if (dateToday) { + try { +// ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); +// serviceSubtask1.setTaskid(ivrTask.getTaskid()); +// List<ServiceSubtask> selectServiceSubtaskList1 = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask1); +// for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { if (StringUtils.isEmpty(value)) { - value = "," + serviceSubtask2.getId().toString() + ","; + value = "," + serviceSubtask.getId().toString() + ","; } else { - value = value + "," + serviceSubtask2.getId().toString() + ","; + if (!value.contains("," + serviceSubtask.getId().toString())) + value = value + "," + serviceSubtask.getId().toString() + ","; } +// } + } catch (Exception e) { + String guid = UUID.randomUUID().toString(); + log.error("闀挎湡浠诲姟锛岀數璇濆彂閫佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid); + serviceSubtask.setResult("error"); + serviceSubtask.setRemark("绯荤粺閿欒"); + serviceSubtask.setSendstate(3L); + serviceSubtask.setFinishtime(new Date()); + serviceSubtask.setGuid(guid); + iServiceSubtaskService.updateServiceSubtask(serviceSubtask); } - redisCache.setCacheObject("cache-0", value); - } else { - //闈炵珛鍗冲彂閫� - String value = redisCache.getCacheObject(key); - ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); - serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); - List<ServiceSubtask> selectServiceSubtaskList1 = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask1); - for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { - if (StringUtils.isEmpty(value)) { - value = "," + serviceSubtask2.getId().toString() + ","; - } else { - value = value + "," + serviceSubtask2.getId().toString() + ","; - } - } - redisCache.setCacheObject(key, value); + + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + String uuid = UUID.randomUUID().toString(); + serviceSubtask.setResult("success"); + serviceSubtask.setRemark("闀挎湡浠诲姟锛岀數璇濊繘鍏ラ槦鍒楁垚鍔�"); + serviceSubtask.setGuid(uuid); + serviceSubtask.setSendstate(3L); + serviceSubtask.setFinishtime(new Date()); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(uuid); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("闀挎湡浠诲姟锛岀數璇濊繘鍏ラ槦鍒楁垚鍔�"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } - - //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("3"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - -// //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 +// //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽锛堣繖涓槸涓婃捣鐨勬柟娉曪級 // executorService.submit(new PhoneTask(serviceSubtask, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); + } + //灏嗚鎵ц鐨勬斁鍒扮紦瀛樹腑 + String cache0 = redisCache.getCacheObject("cache-0"); + if (StringUtils.isNotEmpty(cache0)) { + redisCache.setCacheObject("cache-0", cache0 + value); + } else if (StringUtils.isEmpty(cache0) && StringUtils.isNotEmpty(value)) { + redisCache.setCacheObject("cache-0", value); } } else if (descByCode.equals("澶氬獟浣�")) { //澶氬獟浣� } else if (descByCode.equals("绾歌川")) { //绾歌川 + } else if (descByCode.equals("寰俊灏忕▼搴�")) { + //寰俊灏忕▼搴� + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + log.error("寰俊灏忕▼搴忔湡浠诲姟鍙戦��---------杩涙潵浜嗗悧锛焮}", serviceSubtask); + + + } } else if (descByCode.equals("鐭俊")) { RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); @@ -395,6 +524,7 @@ serviceSubtask.setSendstate(3L); if (StringUtils.isNotEmpty(isSuccess) && !isSuccess.equals("true")) { serviceSubtask.setResult("success"); + serviceSubtask.setRemark("鐭俊鍙戦�佹垚鍔�"); } else { serviceSubtask.setResult("error"); serviceSubtask.setSendstate(5L); @@ -403,7 +533,7 @@ iServiceSubtaskService.updateServiceSubtask(serviceSubtask); } catch (Exception e) { String guid = UUID.randomUUID().toString(); - log.error("闀挎湡浠诲姟锛屽彂閫佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid); + log.error("闀挎湡浠诲姟锛岀煭淇″彂閫佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid); serviceSubtask.setResult("error"); serviceSubtask.setRemark("绯荤粺閿欒"); serviceSubtask.setSendstate(5L); @@ -464,7 +594,7 @@ iServiceSubtaskService.updateServiceSubtask(serviceSubtask); } catch (Exception e) { String guid = UUID.randomUUID().toString(); - log.error("闀挎湡浠诲姟锛屽彂閫佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid); + log.error("闀挎湡浠诲姟锛屽叕浼楀彿鍙戦�佸け璐ュ師鍥狅細{},{}", e.getMessage(), guid); serviceSubtask.setResult("error"); serviceSubtask.setRemark("绯荤粺閿欒"); serviceSubtask.setSendstate(5L); @@ -491,8 +621,8 @@ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"); Map<String, String> req = new HashMap<>(); if (cry.equals("1")) { - req.put("startTime", startTime.format(formatter)); - req.put("endTime", endTime.format(formatter)); + req.put("cashStartDate", startTime.format(formatter)); + req.put("cashEndDate", endTime.format(formatter)); req.put("currStatus", "4"); } else if (cry.equals("0")) { req.put("admissStartDate", startTime.format(formatter)); @@ -615,8 +745,8 @@ e.printStackTrace(); } try { - if (StringUtils.isNotEmpty(thiedInhospInfo.getOutDate())) - patMedInhosp.setEndtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getOutDate())); + if (StringUtils.isNotEmpty(thiedInhospInfo.getCashDate())) + patMedInhosp.setEndtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getCashDate())); } catch (ParseException e) { e.printStackTrace(); } @@ -651,8 +781,10 @@ log.error("鏄惁闇�瑕佹洿鏂帮細{}", patMedInhosps.size()); if (CollectionUtils.isNotEmpty(patMedInhosps)) { patMedInhosp.setInhospid(patMedInhosps.get(0).getInhospid()); + log.error("------鎮h�呭嚭鍏ラ櫌淇敼淇℃伅锛歿}",patMedInhosp); patMedInhospService.updatePatMedInhosp(patMedInhosp); } else { + log.error("----鎮h�呭嚭鍏ラ櫌鏂板淇℃伅锛歿}",patMedInhosp); patMedInhospService.insertPatMedInhosp(patMedInhosp); } @@ -704,4 +836,11 @@ // String code = (String) jsonObject.get("code"); return jsonObject.toString(); } + +// public static void main(String[] args) { +// LocalDateTime originalDateTime = LocalDateTime.now(); +// LocalDateTime startOfDay = originalDateTime.with(LocalTime.MIN); +// System.out.println("Original DateTime: " + originalDateTime); +// System.out.println("Start of Day: " + startOfDay); +// } } -- Gitblit v1.9.3