diff --git a/src/main/java/com/ann/entity/constant/AliasName.java b/src/main/java/com/ann/entity/constant/AliasName.java index 1ffd51d..886b026 100644 --- a/src/main/java/com/ann/entity/constant/AliasName.java +++ b/src/main/java/com/ann/entity/constant/AliasName.java @@ -54,7 +54,7 @@ public class AliasName { // public static final String NURSING_RECORD_SHEET = "2"; // 病案首页 -// public static final String MEDICAL_RECORD_HOMEPAGE = "3"; + public static final String MEDICAL_RECORD_HOMEPAGE = "3"; // 评估护理单 // public static final String ASSESSMENT_NURSING_LIST = "4"; diff --git a/src/main/java/com/ann/entity/filing/ArchiveDetail.java b/src/main/java/com/ann/entity/filing/ArchiveDetail.java index 1a9253d..6dc53c5 100644 --- a/src/main/java/com/ann/entity/filing/ArchiveDetail.java +++ b/src/main/java/com/ann/entity/filing/ArchiveDetail.java @@ -51,6 +51,9 @@ public class ArchiveDetail { */ private String applyId; + // 2020-12-28 新增报告单号 + private String checkReportId; + public ArchiveDetail() { } @@ -62,6 +65,18 @@ public class ArchiveDetail { this.applyId = applyId; } + // lis系统下载 + public ArchiveDetail(String masterID, Date upLoadDateTime, String assortID, String source, String applyId,String checkReportId, String title) { + this.masterID = masterID; + this.upLoadDateTime = upLoadDateTime; + this.assortID = assortID; + this.source = source; + this.checkReportId = checkReportId; + this.title = title; + this.applyId = applyId; + } + + // 普通下载 public ArchiveDetail(String masterID, Date upLoadDateTime, String assortID, String source, String applyId, String title,Integer i) { this.masterID = masterID; diff --git a/src/main/java/com/ann/job/ScheduledJob.java b/src/main/java/com/ann/job/ScheduledJob.java index 5015a13..2fbcb45 100644 --- a/src/main/java/com/ann/job/ScheduledJob.java +++ b/src/main/java/com/ann/job/ScheduledJob.java @@ -38,14 +38,14 @@ public class ScheduledJob implements Job { public void execute(JobExecutionContext context) { try { //System.out.println("动态的定时任务1执行时间:" + LocalTime.now()); - QuartzUtils.pauseScheduleJob(scheduler, "group1", "job1"); + QuartzUtils.pauseScheduleJob(scheduler, "group1", "job5"); List all = messageSubordinateService.findAllByStatus(0); queueService.doSomething(all); } catch (Exception e) { // 如果报错-- 捕捉异常 继续执行 logger.error("出错咯!错误信息为{},以及错误行数为:{}" ,e,e.getStackTrace()[0]); } - QuartzUtils.resumeScheduleJob(scheduler, "group1", "job1"); + QuartzUtils.resumeScheduleJob(scheduler, "group1", "job5"); } } diff --git a/src/main/java/com/ann/job/SchedulerAllJob.java b/src/main/java/com/ann/job/SchedulerAllJob.java index aae38a6..ae64082 100644 --- a/src/main/java/com/ann/job/SchedulerAllJob.java +++ b/src/main/java/com/ann/job/SchedulerAllJob.java @@ -36,7 +36,7 @@ public class SchedulerAllJob { * 此处的任务可以配置可以放到properties或者是放到数据库中 * 如果此时需要做到动态的定时任务,请参考:http://blog.csdn.net/liuchuanhong1/article/details/60873295 * 博客中的ScheduleRefreshDatabase类 - * + * 处理未处理消息 * @param scheduler * @throws SchedulerException */ @@ -45,16 +45,16 @@ public class SchedulerAllJob { * 此处可以先通过任务名查询数据库,如果数据库中存在该任务,则按照ScheduleRefreshDatabase类中的方法,更新任务的配置以及触发器 * 如果此时数据库中没有查询到该任务,则按照下面的步骤新建一个任务,并配置初始化的参数,并将配置存到数据库中 */ - JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class).withIdentity("job1", "group1").build(); - // 每5s执行一次 + JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class).withIdentity("job5", "group1").build(); + // 每15s执行一次 CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); - CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job1", "group1").withSchedule(scheduleBuilder).build(); + CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job5", "group1").withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(jobDetail, cronTrigger); } /** * 配置Job2 - * + * 处理错误消息 * @param scheduler * @throws SchedulerException */ @@ -68,29 +68,29 @@ public class SchedulerAllJob { /** * 配置Job3 - * + * 签收取消签收接口 * @param scheduler * @throws SchedulerException */ private void scheduleJob3(Scheduler scheduler) throws SchedulerException { JobDetail jobDetail = JobBuilder.newJob(ScheduledJob3.class).withIdentity("job3", "group1").build(); - // 0 1-2 * * * ? - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/15 * * * * ?"); - // 每1分钟执行一次 + // 0 1-2 * * * ? 0 0/5 * * * ? + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 0/2 * * * ? "); + // 每30秒执行一次 CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job3", "group1").withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(jobDetail, cronTrigger); } /** * 配置Job4 - * + * 处理医嘱 * @param scheduler * @throws SchedulerException */ private void scheduleJob4(Scheduler scheduler) throws SchedulerException { JobDetail jobDetail = JobBuilder.newJob(ScheduledJob4.class).withIdentity("job4", "group1").build(); // 0 1-2 * * * ? - CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0 */1 * * * ?"); + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("* 0/10 * * * ?"); // 每1分钟执行一次 CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("job4", "group1").withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(jobDetail, cronTrigger); diff --git a/src/main/java/com/ann/service/impl/QueueService.java b/src/main/java/com/ann/service/impl/QueueService.java index aa60116..bb9ff4d 100644 --- a/src/main/java/com/ann/service/impl/QueueService.java +++ b/src/main/java/com/ann/service/impl/QueueService.java @@ -64,7 +64,7 @@ public class QueueService { ArchiveMaster archiveMaster = archiveMasterService.findByInpNoAndVisitIdAndIsValid(messageDto.getInpNo(), messageDto.getVisitId()); Date date = new Date(); if (archiveMaster != null) { - if (!Objects.equals(messageDto.getType(), AliasName.PATHOLOGY_REPORT)) { + if (!Objects.equals(messageDto.getType(), AliasName.PATHOLOGY_REPORT) || !Objects.equals(messageDto.getType(), AliasName.MEDICAL_RECORD_HOMEPAGE)) { if (archiveMaster.getArchiveState().equals("初审") || archiveMaster.getArchiveState().equals("已归档")) { messageSubordinate.setStatus(3); messageSubordinateService.save(messageSubordinate); @@ -79,17 +79,30 @@ public class QueueService { archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), messageDto.getDetailType(), 1); archiveDetailService.save(archiveDetail); } else { - // 查询库中是否存在 如果存在就更新 - archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); - if (archiveDetail == null) { - archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), - messageDto.getDetailType(), 1); - archiveDetailService.save(archiveDetail); - } else { - //更新时间 - archiveDetail.setUpLoadDateTime(date); + //如果是检验报告 单独处理 + if(Objects.equals(messageDto.getType(),AliasName.INSPECTION_REPORT)){ + // 查询库中是否存在 如果存在就更新 + archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getCheckReportId()); + if (archiveDetail == null) { + archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(),messageDto.getApplyId(), messageDto.getCheckReportId(), + messageDto.getDetailType()); + archiveDetailService.save(archiveDetail); + } else { + //更新时间 + archiveDetail.setUpLoadDateTime(date); + } + }else{ + // 查询库中是否存在 如果存在就更新 + archiveDetail = archiveDetailService.isExit(archiveMaster.getId(), messageDto.getType(), messageDto.getSource(), messageDto.getApplyId()); + if (archiveDetail == null) { + archiveDetail = new ArchiveDetail(archiveMaster.getId(), date, messageDto.getType(), messageDto.getSource(), messageDto.getApplyId(), + messageDto.getDetailType(), 1); + archiveDetailService.save(archiveDetail); + } else { + //更新时间 + archiveDetail.setUpLoadDateTime(date); + } } - } String pdfPath = null; String tempPath = ""; @@ -102,13 +115,16 @@ public class QueueService { } String tempPageNum = ""; - if (messageDto.getApplyId().lastIndexOf("_") != -1) { - //apply_id 000562390700_1_000562390700_0_1_JHR06.00.02_34_2.pdf - tempPageNum = messageDto.getApplyId().substring(0, messageDto.getApplyId().indexOf(".pdf")); - }else{ - // address ftp://10.6.0.155/2020-08-04/000562390700_1_000562390700_0_1_JHR06.00.02_34_2_0.pdf - tempPageNum = address.substring(0, address.lastIndexOf("_")); - } +// if (messageDto.getApplyId().lastIndexOf("_") != -1 ) { + //apply_id 000562390700_1_000562390700_0_1_JHR06.00.02_34_2.pdf +// if(archiveMaster.getInpNo().lastIndexOf("_") != -1){ + +// } +// tempPageNum = messageDto.getApplyId().substring(0, messageDto.getApplyId().indexOf(".pdf")); +// }else{ + // address ftp://10.6.0.155/2020-08-04/000562390700_1_000562390700_0_1_JHR06.00.02_34_2_0.pdf + tempPageNum = address.substring(0, address.lastIndexOf("_")); +// } tempPageNum = tempPageNum.substring(tempPageNum.lastIndexOf("_") + 1, tempPageNum.length() ); if(isInteger(tempPageNum)){ pageNum = Integer.valueOf(tempPageNum); diff --git a/src/main/java/com/ann/utils/DownloadUtils.java b/src/main/java/com/ann/utils/DownloadUtils.java index 28808ba..8b4030c 100644 --- a/src/main/java/com/ann/utils/DownloadUtils.java +++ b/src/main/java/com/ann/utils/DownloadUtils.java @@ -165,6 +165,19 @@ public class DownloadUtils { FTPClient ftpClient = FTPUtil.connectFtpServer(url, port, split[0], split[1]); return FTPUtil.downloadFtp(path, ftpClient, imageFile); } + + if (Objects.equals(type, AliasName.PATHOLOGY_REPORT)) { + // ftp://10.6.0.74:33/202012_U/Report668771_1.jpg + address = address.substring(address.indexOf("/") + 2, address.length()); + String url = address.substring(0, address.indexOf(":")); + Integer port = 0; + if (address.indexOf(":") != -1 && address.indexOf("/") != -1) { + port = Integer.parseInt(address.substring(address.indexOf(":") + 1, address.indexOf("/"))); + } + String path = address.substring(address.indexOf("/"), address.length()); + FTPClient ftpClient = FTPUtil.connectFtpServer(url, port, "", ""); + return FTPUtil.downloadFtp(path, ftpClient, imageFile); + } } else { // 共享文件 // //10.6.0.74/Images/201907_U/Report609639_1.jpg @@ -172,7 +185,6 @@ public class DownloadUtils { return DownloadUtils.cmdFile(address, imageFile); //return true } - return false; } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 1613273..5949f10 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,25 +1,25 @@ spring: datasource: - # url: jdbc:mysql://localhost:3306/test - # # url: jdbc:mysql://10.6.1.127:3306/test - # username: root - # password: 123456 - # driver-class-name: com.mysql.jdbc.Driver - # jpa: - # database: mysql - # show-sql: false - # hibernate: - # ddl-auto: update - url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY - # url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record - username: sa - password: docus@702 - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + url: jdbc:mysql://localhost:3306/test + # url: jdbc:mysql://10.6.1.127:3306/test + username: root + password: 123456 + driver-class-name: com.mysql.jdbc.Driver jpa: - database: sql_server + database: mysql show-sql: false hibernate: - dialect: org.hibernate.dialect.SQLServer2008Dialect + ddl-auto: update + # url: jdbc:sqlserver://10.6.1.127:1433;DatabaseName=DB_PrivilegeManagement_GYFY + # # url: jdbc:sqlserver://120.27.212.36:1433;DatabaseName=emr_record + # username: sa + # password: docus@702 + # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + # jpa: + # database: sql_server + # show-sql: false + # hibernate: + # dialect: org.hibernate.dialect.SQLServer2008Dialect thymeleaf: prefix: classpath:/templates/ @@ -50,8 +50,8 @@ file: dischargeRecordPath: D:\\1\dischargeRecord.properties transferRecordPath: D:\\1\transferRecord.properties admissionRecordPath: D:\\1\admissionRecord.properties - pdfPath: Z:/project_js - imagePath: Z:/images + pdfPath: D:/project_js + imagePath: D:/images signContent: 0