From 2d9f048312691d2cd77605d0f94e982a885dbe31 Mon Sep 17 00:00:00 2001 From: zengwh <81383286@qq.com> Date: Fri, 16 Oct 2020 16:52:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC20201016?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/emr/controller/FontController.java | 4 +- .../com/emr/entity/Archive_Detail_Vo.java | 2 + .../ipml/Archive_DetailServiceImpl.java | 60 +++++++++++++++-- .../resources/mapper/Archive_DetailMapper.xml | 45 +++++++++---- src/main/webapp/static/pdfjs/web/viewer.html | 64 ++++++++++--------- src/main/webapp/static/pdfjs/web/viewer.js | 5 +- 6 files changed, 126 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/emr/controller/FontController.java b/src/main/java/com/emr/controller/FontController.java index bacec30..a3a072a 100644 --- a/src/main/java/com/emr/controller/FontController.java +++ b/src/main/java/com/emr/controller/FontController.java @@ -315,7 +315,7 @@ public class FontController { String assortid = detail.getAssortid(); if(StringUtils.isNotBlank(assortid) && assortid.equals(assortId)){ //是病程记录 - if(!flag){ + if(!flag && StringUtils.isNotBlank(detailTemp.getTitle())){ AssortTypeTree tree2 = new AssortTypeTree(); //第三层,资料名称 count++; @@ -331,7 +331,7 @@ public class FontController { } if(StringUtils.isNotBlank(assortid) && assortid.equals(nurseAssortId)){ //是护理记录 - if(!nurseflag){ + if(!nurseflag && StringUtils.isNotBlank(nurseDetailVoTemp.getTitle())){ AssortTypeTree tree2 = new AssortTypeTree(); //第三层,资料名称 count++; diff --git a/src/main/java/com/emr/entity/Archive_Detail_Vo.java b/src/main/java/com/emr/entity/Archive_Detail_Vo.java index 291628b..5e4badc 100644 --- a/src/main/java/com/emr/entity/Archive_Detail_Vo.java +++ b/src/main/java/com/emr/entity/Archive_Detail_Vo.java @@ -33,6 +33,8 @@ public class Archive_Detail_Vo extends Archive_Detail{ private String ids; private String pageCounts; + + private String pdfPaths; } diff --git a/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java b/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java index b1030ed..a1d0421 100644 --- a/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java +++ b/src/main/java/com/emr/service/ipml/Archive_DetailServiceImpl.java @@ -13,6 +13,7 @@ import com.emr.service.Archive_DetailService; import com.emr.util.Jpg2PdfUtil; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.lowagie.text.pdf.PdfReader; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +21,8 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import java.io.File; +import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; @@ -32,7 +35,50 @@ public class Archive_DetailServiceImpl implements Archive_DetailService { @Override public List selectByClo(Archive_Detail_Vo record) { - return archiveDetailMapper.selectByClo(record); + List list = archiveDetailMapper.selectByClo(record); + //页码为0的计算页码 + if(!CollectionUtils.isEmpty(list)){ + for(Archive_Detail_Vo vo : list){ + //页码为0的读取pdf文件重置页码 + setPdfPages(vo); + } + } + return list; + } + + /** + * 页码为0的读取pdf文件重置页码 + * @param vo + */ + private void setPdfPages(Archive_Detail_Vo vo) { + //获取页码 + String pageCounts = vo.getPageCounts(); + //获取路径 + String pdfPaths = vo.getPdfPaths(); + //遍历是否存在页码为0的 + String[] pageCountArr = pageCounts.split(","); + String[] pdfPathArr = pdfPaths.split(","); + //定义临时页码集合 + StringBuilder newPageCount = new StringBuilder(); + for (int i = 0; i < pageCountArr.length; i++) { + String pageCountStr = pageCountArr[i]; + if("0".equals(pageCountStr)){ + String pathPath = pdfPathArr[i]; + File file = new File(pathPath); + try{ + PdfReader pdfReader = new PdfReader(new FileInputStream(file)); + pageCountStr = pdfReader.getNumberOfPages() + ""; + }catch (Exception e){ + e.printStackTrace(); + } + } + if(StringUtils.isNotBlank(newPageCount)){ + newPageCount.append(","); + } + newPageCount.append(pageCountStr); + } + //重置页码 + vo.setPageCounts(newPageCount.toString()); } @Override @@ -51,13 +97,15 @@ public class Archive_DetailServiceImpl implements Archive_DetailService { //定义接收首次病程记录的对象 Archive_Detail_Vo detailVoTemp = new Archive_Detail_Vo(); Archive_Detail_Vo nurseDetailVoTemp = new Archive_Detail_Vo(); - for (int i = 0; i < list.size(); i++) { - if (list.get(i).getAssortId().equals(assortId) && list.get(i).getTitle().contains(strTemp)) { - detailVoTemp = list.get(i); + for (Archive_Detail_Vo detailVo1 : list) { + if (detailVo1.getAssortId().equals(assortId) && detailVo1.getTitle().contains(strTemp)) { + detailVoTemp = detailVo1; } - if (list.get(i).getAssortId().equals(nurseAssortId) && list.get(i).getTitle().contains(nurseTemp)) { - nurseDetailVoTemp = list.get(i); + if (detailVo1.getAssortId().equals(nurseAssortId) && detailVo1.getTitle().contains(nurseTemp)) { + nurseDetailVoTemp = detailVo1; } + //页码为0的读取pdf文件重置页码 + setPdfPages(detailVo1); } if (!CollectionUtils.isEmpty(list)) { //重新排序 diff --git a/src/main/resources/mapper/Archive_DetailMapper.xml b/src/main/resources/mapper/Archive_DetailMapper.xml index 1566e31..be6798e 100644 --- a/src/main/resources/mapper/Archive_DetailMapper.xml +++ b/src/main/resources/mapper/Archive_DetailMapper.xml @@ -35,6 +35,14 @@ id, PDF_PATH, MasterID, UpLoadDateTime, AssortID, Source, SubAssort, Title, flag, Sys + + + and MasterID=#{patientId,jdbcType=VARCHAR} + + + and AssortID in (${assortid}) + + select - t.MasterID,t.id,t.PDF_PATH,t.Source,t.UpLoadDateTime,t.SubAssort,t.Title,t.flag,z.assort_id,z.assort_name,z.assort_sort,z.print_flag,t.PageCount pageCounts,t.id ids + t.MasterID,t.id,t.PDF_PATH,t.Source,t.UpLoadDateTime,t.SubAssort,t.Title,t.flag,z.assort_id,z.assort_name,z.assort_sort,z.print_flag,isnull(t.PageCount,0) pageCounts,t.id ids,t.PDF_PATH pdfPaths from zd_assort z left join archive_detail t on z.assort_id=t.AssortID diff --git a/src/main/webapp/static/pdfjs/web/viewer.html b/src/main/webapp/static/pdfjs/web/viewer.html index 815537a..c773c28 100644 --- a/src/main/webapp/static/pdfjs/web/viewer.html +++ b/src/main/webapp/static/pdfjs/web/viewer.html @@ -41,7 +41,7 @@ http://sourceforge.net/adobe/cmap/wiki/License/ - +