From ca8d0b01b76425a192df2a43499c22a41dd357d9 Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 1 Apr 2026 16:25:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=91=8A=E5=A2=9E=E5=8A=A0=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=A0=87=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/entity/reg/RegPatMain.java | 1 + .../transitPF/mapper/RegResultMapper.java | 1 + .../service/impl/RegLisReportServiceImpl.java | 12 +- .../service/util/RegLisReportUtil.java | 148 +++++++++--------- .../main/resources/mapper/RegResultMapper.xml | 19 ++- sql/transit/updatedb_transit.sql | 5 + 6 files changed, 109 insertions(+), 77 deletions(-) diff --git a/pf_common/src/main/java/com/transitPlatForm/common/core/domain/entity/reg/RegPatMain.java b/pf_common/src/main/java/com/transitPlatForm/common/core/domain/entity/reg/RegPatMain.java index c39a5b8..af863dd 100644 --- a/pf_common/src/main/java/com/transitPlatForm/common/core/domain/entity/reg/RegPatMain.java +++ b/pf_common/src/main/java/com/transitPlatForm/common/core/domain/entity/reg/RegPatMain.java @@ -62,4 +62,5 @@ public class RegPatMain { private String LisGroupName; private String DstHospCode; private String DstHospName; + private String printFlag; } diff --git a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegResultMapper.java b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegResultMapper.java index 0d9414b..65ff9a1 100644 --- a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegResultMapper.java +++ b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegResultMapper.java @@ -13,4 +13,5 @@ public interface RegResultMapper { void deleteRegResultMed(String reportNo); void insertRegReportFile(RegReportFile regReportFile); void deleteRegReportFile(String reportNo); + void updateRegPatMain(RegPatMain regPatMain); } diff --git a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/impl/RegLisReportServiceImpl.java b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/impl/RegLisReportServiceImpl.java index ad9095e..c23cf90 100644 --- a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/impl/RegLisReportServiceImpl.java +++ b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/impl/RegLisReportServiceImpl.java @@ -5,10 +5,12 @@ import cn.hutool.http.HttpResponse; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.transitPlatForm.common.core.domain.Result; +import com.transitPlatForm.common.core.domain.entity.reg.RegPatMain; import com.transitPlatForm.common.core.domain.entity.reg.RegReportFile; import com.transitPlatForm.interfaceCommon.utils.CommonUtil; import com.transitPlatForm.interfaceCommon.utils.LisUtil; import com.transitPlatForm.transitPF.mapper.RegLisReportMapper; +import com.transitPlatForm.transitPF.mapper.RegResultMapper; import com.transitPlatForm.transitPF.service.RegLisReportService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -25,6 +27,8 @@ public class RegLisReportServiceImpl implements RegLisReportService { RegLisReportMapper regLisReportMapper; @Autowired private CommonUtil commonUtil; + @Autowired + RegResultMapper regResultMapper; @Value("${transitInterface.postURL:}") String postURL; @@ -33,6 +37,11 @@ public class RegLisReportServiceImpl implements RegLisReportService { public Result printLisReport(String bgdh) { String isGetPdfdata = commonUtil.selectConfigByKey("IS_GET_PDFDATA"); if(bgdh == null || bgdh.equals("")) return new Result("-1","报告还未出!"); + //修改打印标志 + RegPatMain regPatMain = new RegPatMain(); + regPatMain.setReportNo(bgdh); + regPatMain.setPrintFlag("1"); + regResultMapper.updateRegPatMain(regPatMain); if("1".equals(isGetPdfdata)){ //使用接口去查询数据 String jsonStr = "{\"method\":\"pdfData\",\"bgdh\":\""+bgdh+"\"}"; @@ -41,7 +50,8 @@ public class RegLisReportServiceImpl implements RegLisReportService { return new Result("0","查询成功",LisUtil.isBank(result.getData())); } RegReportFile regReportFile = regLisReportMapper.getRegReportFile(bgdh); - return new Result("0","查询成功",regReportFile); + if(regReportFile == null) return new Result("-1","没有找到对应的pdf报告信息!"); + return new Result("0","查询成功",regReportFile.getReport()); } diff --git a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/util/RegLisReportUtil.java b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/util/RegLisReportUtil.java index d5d245d..568a81b 100644 --- a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/util/RegLisReportUtil.java +++ b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/service/util/RegLisReportUtil.java @@ -48,87 +48,87 @@ public class RegLisReportUtil { mergeBgdhList.add(bgdh); } //log.info("bgdhBase64List:"+bgdhBase64List); - //过滤A4的报告单 - List> collectA4 = bgdhBase64List.stream().filter(bgdhBase64 -> bgdhBase64.get("pageType").equals("A4")).collect(Collectors.toList()); - for (Map stringObjectMap : collectA4) { - mergeBgdhList.add(stringObjectMap.get("data").toString()); - } - - //过滤A5格式报告单 - List> collectA5 = bgdhBase64List.stream().filter(bgdhBase64 -> bgdhBase64.get("pageType").equals("A5")).collect(Collectors.toList()); - //其中有可能格式虽然是A5,实际尺寸是A4,需要进行处理 - for (Map stringObjectMap : collectA5) { - String bas64Str = stringObjectMap.get("data").toString(); - if(!PdfPaperConverter.isBase64PdfA4(bas64Str)) continue; - try { - String base64_A5 = PdfPaperConverter.convertBase64PdfToA5IfConfigured(bas64Str, "A5"); - stringObjectMap.put("data", base64_A5); - } catch (Exception e) { - log.error("裁剪pdf出错:",e); - return new Result("0","裁剪pdf出错!"+e.getMessage()); - } - } +// //过滤A4的报告单 +// List> collectA4 = bgdhBase64List.stream().filter(bgdhBase64 -> bgdhBase64.get("pageType").equals("A4")).collect(Collectors.toList()); +// for (Map stringObjectMap : collectA4) { +// mergeBgdhList.add(stringObjectMap.get("data").toString()); +// } +// +// //过滤A5格式报告单 +// List> collectA5 = bgdhBase64List.stream().filter(bgdhBase64 -> bgdhBase64.get("pageType").equals("A5")).collect(Collectors.toList()); +// //其中有可能格式虽然是A5,实际尺寸是A4,需要进行处理 +// for (Map stringObjectMap : collectA5) { +// String bas64Str = stringObjectMap.get("data").toString(); +// if(!PdfPaperConverter.isBase64PdfA4(bas64Str)) continue; +// try { +// String base64_A5 = PdfPaperConverter.convertBase64PdfToA5IfConfigured(bas64Str, "A5"); +// stringObjectMap.put("data", base64_A5); +// } catch (Exception e) { +// log.error("裁剪pdf出错:",e); +// return new Result("0","裁剪pdf出错!"+e.getMessage()); +// } +// } //log.info("collectA5:"+collectA5); //对A5格式的报告单进行排序 - collectA5.sort(new Comparator>() { - @Override - public int compare(Map o1, Map o2) { - String brdh1 = o1.get("brdh").toString().trim() ; - String brdh2 = o2.get("brdh").toString().trim() ; - int i = brdh1.compareTo(brdh2); - if(i == 0){ - Date confirmdt1 = (Date) o1.get("confirmdt"); - Date confirmdt2 = (Date) o2.get("confirmdt"); - return confirmdt1.compareTo(confirmdt2); - }else{ - return i; - } - } - }); +// collectA5.sort(new Comparator>() { +// @Override +// public int compare(Map o1, Map o2) { +// String brdh1 = o1.get("brdh").toString().trim() ; +// String brdh2 = o2.get("brdh").toString().trim() ; +// int i = brdh1.compareTo(brdh2); +// if(i == 0){ +// Date confirmdt1 = (Date) o1.get("confirmdt"); +// Date confirmdt2 = (Date) o2.get("confirmdt"); +// return confirmdt1.compareTo(confirmdt2); +// }else{ +// return i; +// } +// } +// }); //合并A5格式的pdf为A4格式 - String A5BlankStr = ""; - for (int i = 0; i < collectA5.size(); i++) { - if(i+1 >= collectA5.size()){ - //代表到了最后一个单数,把这个A5格式的先转换成A4格式的pdf - try { - A5BlankStr = reportUtil.convertA5ToA4Blank(collectA5.get(i).get("data").toString()); - //旋转90度,把之前的文件变成pdf - String path2 = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; - String path3 = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; - cn.hutool.core.codec.Base64.decodeToFile(A5BlankStr,new File(path2)); - reportUtil.rotatePdf90Degrees(path2,path3,1); - A5BlankStr = cn.hutool.core.codec.Base64.encode(new File(path3)); - //删除文件 - FileUtils.deleteFile(path2); - FileUtils.deleteFile(path3); - } catch (IOException e) { - log.error("把A5格式的pdf增加空白变成A4格式的pdf失败:",e); - } - mergeBgdhList.add(A5BlankStr); - break; - } - String path = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; - String path1 = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; - try { - reportUtil.mergePdfsHorizontally(collectA5.get(i).get("data").toString(),collectA5.get(i+1).get("data").toString(),path); - //旋转90度 - reportUtil.rotatePdf90Degrees(path,path1,1); - File file = new File(path1); - mergeBgdhList.add(cn.hutool.core.codec.Base64.encode(file)); - //删除文件 - FileUtils.deleteFile(path); - FileUtils.deleteFile(path1); - } catch (IOException e) { - e.printStackTrace(); - log.error("合并报告单出错:",e); - return new Result("-1","合并报告单出错"+e.getMessage()); - } - i=i+1; - } +// String A5BlankStr = ""; +// for (int i = 0; i < collectA5.size(); i++) { +// if(i+1 >= collectA5.size()){ +// //代表到了最后一个单数,把这个A5格式的先转换成A4格式的pdf +// try { +// A5BlankStr = reportUtil.convertA5ToA4Blank(collectA5.get(i).get("data").toString()); +// //旋转90度,把之前的文件变成pdf +// String path2 = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; +// String path3 = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; +// cn.hutool.core.codec.Base64.decodeToFile(A5BlankStr,new File(path2)); +// reportUtil.rotatePdf90Degrees(path2,path3,1); +// A5BlankStr = cn.hutool.core.codec.Base64.encode(new File(path3)); +// //删除文件 +// FileUtils.deleteFile(path2); +// FileUtils.deleteFile(path3); +// } catch (IOException e) { +// log.error("把A5格式的pdf增加空白变成A4格式的pdf失败:",e); +// } +// mergeBgdhList.add(A5BlankStr); +// break; +// } +// String path = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; +// String path1 = RuoYiConfig.getProfile() +"/config/static/printPDF/"+UUID.randomUUID().toString()+".pdf"; +// try { +// reportUtil.mergePdfsHorizontally(collectA5.get(i).get("data").toString(),collectA5.get(i+1).get("data").toString(),path); +// //旋转90度 +// reportUtil.rotatePdf90Degrees(path,path1,1); +// File file = new File(path1); +// mergeBgdhList.add(cn.hutool.core.codec.Base64.encode(file)); +// //删除文件 +// FileUtils.deleteFile(path); +// FileUtils.deleteFile(path1); +// } catch (IOException e) { +// e.printStackTrace(); +// log.error("合并报告单出错:",e); +// return new Result("-1","合并报告单出错"+e.getMessage()); +// } +// i=i+1; +// } String encode = ""; try { diff --git a/pf_transitPF/src/main/resources/mapper/RegResultMapper.xml b/pf_transitPF/src/main/resources/mapper/RegResultMapper.xml index 96ed6a1..c7e5770 100644 --- a/pf_transitPF/src/main/resources/mapper/RegResultMapper.xml +++ b/pf_transitPF/src/main/resources/mapper/RegResultMapper.xml @@ -11,7 +11,7 @@ tubecode, tubename, sampletypecode, sampletypename, iser, orderitemcodes, orderitemnames, collectdate, signindate, testdate, reporttime, reportusercode, reportusername, sampletrait, reportkindcode, reportkindname, reportdescrpt, - lisgroupcode, lisgroupname, dsthospcode, dsthospname) + lisgroupcode, lisgroupname, dsthospcode, dsthospname, printFlag) values( #{ReportNo}, #{HospCode}, #{HospName}, @@ -63,7 +63,8 @@ #{LisGroupCode}, #{LisGroupName}, #{DstHospCode}, - #{DstHospName} + #{DstHospName}, + #{printFlag} ) @@ -216,4 +217,18 @@ delete from reg_report_file where reportno = #{reportno} + + update reg_pat_main + + patid = #{PatId}, + hospcode = #{HospCode}, + hospname = #{HospName}, + patname = #{PatName}, + PatSex = #{PatSex}, + printFlag = #{printFlag}, + ReportNo = #{ReportNo} + + where ReportNo = #{ReportNo} + + \ No newline at end of file diff --git a/sql/transit/updatedb_transit.sql b/sql/transit/updatedb_transit.sql index 415f042..e0eb89b 100644 --- a/sql/transit/updatedb_transit.sql +++ b/sql/transit/updatedb_transit.sql @@ -11,4 +11,9 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'reg_ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'reg_TransitSample' AND COLUMN_NAME = 'opername') begin alter table dbo.reg_TransitSample add opername varchar(50) + end + +if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'reg_pat_main' AND COLUMN_NAME = 'printFlag') + begin + alter table reg_pat_main add printFlag varchar(2) end \ No newline at end of file