diff --git a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java index 95b44a8..d6fdae9 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicFileImpl.java @@ -42,7 +42,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private final ExecutorService executor = new ThreadPoolExecutor(100, 100, + private final ExecutorService executor = new ThreadPoolExecutor(3, 3, 30L, TimeUnit.DAYS, new LinkedBlockingQueue()); @@ -229,6 +229,10 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { // } // } + ExecutorService executor = new ThreadPoolExecutor(30, 30, + 30L, TimeUnit.DAYS, + new LinkedBlockingQueue()); + String outDir = "F:\\lianzhong" + File.separator + cyYear + File.separator + cyMonth + File.separator @@ -240,32 +244,35 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { List tPictureList = pictureMapper.getPictureInfoByCid(cuid); log.info("查询到的联众数据" + tPictureList.size()); // 2.1根据病案信息拼接地址 - int sort = 0; + final int[] sort = {0}; for (TPicture tpicture : tPictureList) { - String picName = tpicture.getPicName().split(".jpg")[0]; + // 创建一个有返回值的异步任务 + CompletableFuture future = CompletableFuture.runAsync(() -> { + + String picName = tpicture.getPicName().split(".jpg")[0]; // String inPutFile = rootDir + picName + ".tif"; - String outFile = outDir + File.separator + picName + ".jpg"; + String outFile = outDir + File.separator + picName + ".jpg"; // File file = new File(inPutFile); // if (!file.exists()){ // log.info(basicVo.getInpatientNo()+"文件未找到"+inPutFile); // } - log.info("开始转换文件" + picName); - boolean savePicFlag = false; - - - String cmd = "C:\\Debug\\lianzhong.exe 003 192.168.8.74 " + tCardInfo.getId() + " " + tpicture.getPicId() + " " + tCardInfo.getPatno() + " " + format + " " + picName + ".jpg " + outFile + " http://192.168.8.74 90"; - try { - Process exec = Runtime.getRuntime().exec(cmd); - int i = exec.waitFor(); - savePicFlag = i == 0; - } catch (Exception e) { - log.info("执行命令失败{}", e.getMessage()); - e.printStackTrace(); - } + log.info("开始转换文件" + picName); + boolean savePicFlag = false; + + + String cmd = "C:\\Debug\\lianzhong.exe 003 192.168.8.74 " + tCardInfo.getId() + " " + tpicture.getPicId() + " " + tCardInfo.getPatno() + " " + format + " " + picName + ".jpg " + outFile + " http://192.168.8.74 "+tpicture.getRotateDegree(); + try { + Process exec = Runtime.getRuntime().exec(cmd); + int i = exec.waitFor(); + savePicFlag = i == 0; + } catch (Exception e) { + log.info("执行命令失败{}", e.getMessage()); + e.printStackTrace(); + } - // 2.2jp2转化jpg 图片通过文件流写到挂在的盘符 + // 2.2jp2转化jpg 图片通过文件流写到挂在的盘符 // savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile, tpicture.getRotateDegree()); // log.info("是否转换成功"+savePicFlag); // if (!savePicFlag){ @@ -274,30 +281,36 @@ public class SyncBasicFileImpl implements ISyncBasicFileService { // inPutFile = rootDir + picName + ".jp2"; // savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile, tpicture.getRotateDegree()); // } - // 2.4组合文件信息 - ScanAssort scanAssort = new ScanAssort(); - scanAssort.setId(SnowflakeIdWorker.idWorker.nextId()); - scanAssort.setPatientId(basicVo.getPatientId()); - scanAssort.setAssortId(tpicture.getPicKind()); - scanAssort.setFileTitle(picName); - scanAssort.setImagePath(outDir); - scanAssort.setCreateTime(new Date()); - scanAssort.setScanPage(picName + ".jpg"); - scanAssort.setSort(sort); - scanAssort.setFileSource(2); - scanAssort.setFileStorageType(1); - scanAssort.setFilePages(1); - - if (savePicFlag) { - log.info(basicVo.getInpatientNo() + "次数" + basicVo.getAdmissTimes() + "同步成功" + picName); - scanAssort.setCreater("auto7"); - } else { - log.info(basicVo.getInpatientNo() + "次数" + basicVo.getAdmissTimes() + "失败"); - scanAssort.setCreater("auto4"); - } + // 2.4组合文件信息 + ScanAssort scanAssort = new ScanAssort(); + scanAssort.setId(SnowflakeIdWorker.idWorker.nextId()); + scanAssort.setPatientId(basicVo.getPatientId()); + scanAssort.setAssortId(tpicture.getPicKind()); + scanAssort.setFileTitle(picName); + scanAssort.setImagePath(outDir); + scanAssort.setCreateTime(new Date()); + scanAssort.setScanPage(picName + ".jpg"); + scanAssort.setSort(sort[0]); + scanAssort.setFileSource(2); + scanAssort.setFileStorageType(1); + scanAssort.setFilePages(1); + + if (savePicFlag) { + log.info(basicVo.getInpatientNo() + "次数" + basicVo.getAdmissTimes() + "同步成功" + picName); + scanAssort.setCreater("auto7"); + } else { + log.info(basicVo.getInpatientNo() + "次数" + basicVo.getAdmissTimes() + "失败"); + scanAssort.setCreater("auto4"); + } + + scanAssortList.add(scanAssort); + sort[0] += 1; + + },executor); + // 获取异步任务的结果 + future.join(); + - scanAssortList.add(scanAssort); - sort += 1; }