From 819bf862de7c9777b68ca2c251c163d522ab29a4 Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Wed, 19 Apr 2023 10:05:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8Bpdf=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 9 + .../controller/quality/QualityController.java | 104 +++++++++++ .../TemplateSearchController.java | 173 +++++++++++++++--- .../com/emr/dao/quality/QualityMapper.java | 23 +++ .../java/com/emr/service/CommomService.java | 27 --- .../emr/service/quality/QualityService.java | 17 ++ .../service/quality/QualityServiceImpl.java | 98 ++++++++++ src/main/java/com/emr/util/NewPdfUtil.java | 68 +++++++ .../mapper/commomSearch/ScanPathMapper.xml | 4 +- .../mapper/quality/QualityMapper.xml | 62 +++++++ .../views/otherManage/browseRecords.jsp | 2 +- .../webapp/WEB-INF/views/quality/quality.jsp | 167 +++++++++++++++++ .../commomSearch/commomListqf.jsp | 8 +- .../webapp/static/js/font/commomListSouth.js | 8 +- .../webapp/static/js/otherManage/quality.js | 73 ++++++++ .../templateSearch/searchCommomMethodqf.js | 30 +-- 16 files changed, 795 insertions(+), 78 deletions(-) create mode 100644 src/main/java/com/emr/controller/quality/QualityController.java create mode 100644 src/main/java/com/emr/dao/quality/QualityMapper.java create mode 100644 src/main/java/com/emr/service/quality/QualityService.java create mode 100644 src/main/java/com/emr/service/quality/QualityServiceImpl.java create mode 100644 src/main/java/com/emr/util/NewPdfUtil.java create mode 100644 src/main/resources/mapper/quality/QualityMapper.xml create mode 100644 src/main/webapp/WEB-INF/views/quality/quality.jsp create mode 100644 src/main/webapp/static/js/otherManage/quality.js diff --git a/pom.xml b/pom.xml index 47ab067..2e0e885 100644 --- a/pom.xml +++ b/pom.xml @@ -105,6 +105,15 @@ ${pagehelper.version} + + + com.itextpdf + itext7-core + 7.2.5 + pom + + + diff --git a/src/main/java/com/emr/controller/quality/QualityController.java b/src/main/java/com/emr/controller/quality/QualityController.java new file mode 100644 index 0000000..207757a --- /dev/null +++ b/src/main/java/com/emr/controller/quality/QualityController.java @@ -0,0 +1,104 @@ +package com.emr.controller.quality; + +import com.alibaba.fastjson.JSON; +import com.emr.annotation.OptionalLog; +import com.emr.service.quality.QualityService; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @ClassName QualityController + * @Description 文件质检模块 + * @Author linjj + * @Date 2023/4/13 14:51 + * @Version 1.0 + */ +@Controller +@RequestMapping("qualityModel/") +public class QualityController { + + @Autowired + QualityService qualityService; + + + @RequiresPermissions("/qualityModel/qualityJsp") + @OptionalLog(module = "查看", methods = "常用查询页面") + @RequestMapping("qualityJsp") + public String qualityModel(Model model) { + return "quality/quality"; + } + + /** + * @description: 查询功能 + * @params: startRange + * @params: endRange + * @return: String + * @author linjj + * @date: 2023/4/13 15:24 + */ + @RequestMapping(value = "getPhAndDocumentNum", method = RequestMethod.POST) + @ResponseBody + public String getPhAndDocumentNum(String startRange, String endRange) { + if (StringUtils.isEmpty(startRange) && StringUtils.isEmpty(endRange)) { + return "开始范围,结束范围不能全部为空"; + } + if (StringUtils.isNotEmpty(startRange) && StringUtils.isNotEmpty(endRange)) { + if (startRange.compareTo(endRange) > 0) { + return "开始范围不能小于结束范围"; + } + } + String phAndDocumentNum = qualityService.getPhAndDocumentNum(startRange, endRange); + return JSON.toJSONString(phAndDocumentNum); + } + + /** + * @description: 检查功能 + * @params: startRange + * @params: endRange + * @return: String + * @author linjj + * @date: 2023/4/14 9:32 + */ + @RequestMapping(value = "examineDocument", method = RequestMethod.POST) + @ResponseBody + public String examineDocument(String startRange, String endRange) { + if (StringUtils.isEmpty(startRange) && StringUtils.isEmpty(endRange)) { + return "开始范围,结束范围不能全部为空"; + } + if (StringUtils.isNotEmpty(startRange) && StringUtils.isNotEmpty(endRange)) { + if (startRange.compareTo(endRange) > 0) { + return "开始范围不能小于结束范围"; + } + } + String s = qualityService.examineDocument(startRange, endRange); + return JSON.toJSONString(s); + } + /** + * @description: 高级检查 + * @params: startRange + * @params: endRange + * @return: String + * @author linjj + * @date: 2023/4/14 9:32 + */ + @RequestMapping(value = "SeniorExamine", method = RequestMethod.POST) + @ResponseBody + public String SeniorExamine(String startRange, String endRange) { + if (StringUtils.isEmpty(startRange) && StringUtils.isEmpty(endRange)) { + return "开始范围,结束范围不能全部为空"; + } + if (StringUtils.isNotEmpty(startRange) && StringUtils.isNotEmpty(endRange)) { + if (startRange.compareTo(endRange) > 0) { + return "开始范围不能小于结束范围"; + } + } + String s = qualityService.SeniorExamine(startRange, endRange); + return JSON.toJSONString(s); + } +} diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index 771cc5e..03d201d 100644 --- a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java +++ b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java @@ -35,6 +35,7 @@ import com.emr.vo.commomSearch.ScanPathVo; import com.emr.vo.templateSearch.Emr_Modle_RelatedVo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -45,6 +46,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; @@ -1089,35 +1091,111 @@ public class TemplateSearchController { if (StringUtils.isNoneBlank(patientIds)) { try { List scanPathVos = scanPathMapper.selectScanFileByBloodPatientIds(patientIds, null, flag); + List filePaths = new ArrayList<>(); +// if (null != scanPathVos && !scanPathVos.isEmpty()) { +// for (int i = 0; i < scanPathVos.size(); i++) { +// String fileRealPath = scanPathVos.get(i).getFileRealPath(); +// if(StringUtils.isNoneBlank(fileRealPath)){ +// filePaths.add(fileRealPath); +// } +// } +// String zipName = "数字病案图片压缩包"; +// downloadZip1(response,zipName,filePaths); +// } if (null != scanPathVos && !scanPathVos.isEmpty()) { - Set list = new LinkedHashSet<>(); - Set patientIdSet = new LinkedHashSet<>(); - //批量添加下载记录 - printOrDownLoadInfoService.SimpleInsert(scanPathVos, null, Short.valueOf("2")); - for (ScanPathVo scanPathVo : scanPathVos) { - patientIdSet.add(scanPathVo.getPatientId()); + // 创建临时路径,存放压缩文件 + String zipFilePath = "D://tmp"; + File file = new File(zipFilePath); + //查询保存文件目录是否存在 + createFile(file); + // 压缩输出流,包装流,将临时文件输出流包装成压缩流,将所有文件输出到这里,打成zip包 + ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(file)); + // 循环调用压缩文件方法,将一个一个需要下载的文件打入压缩文件包 + for (int i = 0; i < scanPathVos.size(); i++) { + String fileRealPath = scanPathVos.get(i).getFileRealPath(); + if(StringUtils.isNoneBlank(fileRealPath)){ + filePaths.add(fileRealPath); + } + } + for (String path : filePaths) { + // 该方法在下面定义 + fileToZip(path, zipOut); } - for (String patinetId : patientIdSet) { - ScanPathForPatientListVo vo = new ScanPathForPatientListVo(); - List filePaths = new ArrayList<>(); - for (ScanPathVo scanPathVo : scanPathVos) { - if (scanPathVo.getPatientId().equals(patinetId)) { - vo.setName(scanPathVo.getName()); - vo.setInpatientNo(scanPathVo.getInpatientNo()); - vo.setDisDate(scanPathVo.getDisDate()); - String fileRealPath = scanPathVo.getFileRealPath(); - if (StringUtils.isNoneBlank(fileRealPath) && new File(fileRealPath).exists()) { - filePaths.add(fileRealPath); - } - } - } - if (!filePaths.isEmpty()) { - vo.setScanPathList(filePaths); - list.add(vo); + // 压缩完成后,关闭压缩流 + zipOut.close(); + + //拼接下载默认名称并转为ISO-8859-1格式 + String fileName = new String(("我的压缩文件.zip").getBytes(),"ISO-8859-1"); + response.setHeader("Content-Disposition", "attchment;filename="+fileName); + + //该流不可以手动关闭,手动关闭下载会出问题,下载完成后会自动关闭 + ServletOutputStream outputStream = response.getOutputStream(); + FileInputStream inputStream = new FileInputStream(zipFilePath); + // 如果是SpringBoot框架,在这个路径 + // org.apache.tomcat.util.http.fileupload.IOUtils产品 + // 否则需要自主引入apache的 commons-io依赖 + // copy方法为文件复制,在这里直接实现了下载效果 + IOUtils.copy(inputStream, outputStream); + + // 关闭输入流 + inputStream.close(); + + //下载完成之后,删掉这个zip包 + File fileTempZip = new File(zipFilePath); + fileTempZip.delete(); + } + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + } + } + } + + public void createFile(File file) { + //如果文件夹不存在则创建 + if (!file.exists() && !file.isDirectory()) { + file.mkdir(); + } + } + public static void fileToZip(String filePath,ZipOutputStream zipOut) throws IOException { + // 需要压缩的文件 + File file = new File(filePath); + // 获取文件名称,如果有特殊命名需求,可以将参数列表拓展,传fileName + String fileName = file.getName(); + FileInputStream fileInput = new FileInputStream(filePath); + // 缓冲 + byte[] bufferArea = new byte[1024 * 10]; + BufferedInputStream bufferStream = new BufferedInputStream(fileInput, 1024 * 10); + // 将当前文件作为一个zip实体写入压缩流,fileName代表压缩文件中的文件名称 + zipOut.putNextEntry(new ZipEntry(fileName)); + int length = 0; + // 最常规IO操作,不必紧张 + while ((length = bufferStream.read(bufferArea, 0, 1024 * 10)) != -1) { + zipOut.write(bufferArea, 0, length); + } + //关闭流 + fileInput.close(); + // 需要注意的是缓冲流必须要关闭流,否则输出无效 + bufferStream.close(); + // 压缩流不必关闭,使用完后再关 + } + + + + public void downloadBloodZip1(HttpServletResponse response, String patientIds, String flag) { + if (StringUtils.isNoneBlank(patientIds)) { + try { + List scanPathVos = scanPathMapper.selectScanFileByBloodPatientIds(patientIds, null, flag); + List filePaths = new ArrayList<>(); + if (null != scanPathVos && !scanPathVos.isEmpty()) { + for (int i = 0; i < scanPathVos.size(); i++) { + String fileRealPath = scanPathVos.get(i).getFileRealPath(); + if(StringUtils.isNoneBlank(fileRealPath)){ + filePaths.add(fileRealPath); } } - String zipName = "档案pdf压缩包"; - downloadPdfZip(response, zipName, list); + String zipName = "数字病案图片压缩包"; + downloadZip1(response,zipName,filePaths); } } catch (Exception e) { ExceptionPrintUtil.printException(e); @@ -1127,6 +1205,51 @@ public class TemplateSearchController { } + + + + public static void downloadZip1(HttpServletResponse response,String zipName,List filePaths){ + try { + zipName = java.net.URLEncoder.encode(zipName, "UTF-8"); + response.reset(); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + zipName + "("+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) +").zip"); + ZipOutputStream zos = new ZipOutputStream(response.getOutputStream()); + BufferedOutputStream bos = new BufferedOutputStream(zos); + for (int i = 0; i < filePaths.size(); i++) { + String base = filePaths.get(i); + File realFile = new File(base); + if(realFile.exists()) { + String fileName = base.substring(base.lastIndexOf("\\")+1); //每个文件名 + zos.putNextEntry(new ZipEntry(fileName)); + //读入转字节流 + InputStream in = new FileInputStream(base); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024 * 4]; + int n = 0; + while ((n = in.read(buffer)) != -1) { + out.write(buffer, 0, n); + } + byte[] file = out.toByteArray(); //这个zip文件的字节 + BufferedInputStream bis = new BufferedInputStream(new ByteArrayInputStream(file)); + //输出 + int len = 0; + byte[] buf = new byte[10 * 1024]; + while( (len=bis.read(buf, 0, buf.length)) != -1){ + bos.write(buf, 0, len); + } + bis.close(); + bos.flush(); + } + } + bos.close(); + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + } + } + + //封装下载pdf压缩包方法 private void downloadPdfZip(HttpServletResponse response, String zipName, Set list) { response.reset(); diff --git a/src/main/java/com/emr/dao/quality/QualityMapper.java b/src/main/java/com/emr/dao/quality/QualityMapper.java new file mode 100644 index 0000000..f44f98b --- /dev/null +++ b/src/main/java/com/emr/dao/quality/QualityMapper.java @@ -0,0 +1,23 @@ +package com.emr.dao.quality; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @ClassName QualityMapper + * @Description 文件质检 + * @Author linjj + * @Date 2023/4/13 15:29 + * @Version 1.0 + */ +public interface QualityMapper { + + Integer getPhNum(@Param("startRange")String startRange, @Param("endRange")String endRange); + + Integer getFileNum(@Param("startRange")String startRange, @Param("endRange")String endRange); + + ListgetFliePath(@Param("ph")String ph); + + ListgetPh(@Param("startRange")String startRange, @Param("endRange")String endRange); +} diff --git a/src/main/java/com/emr/service/CommomService.java b/src/main/java/com/emr/service/CommomService.java index ec107ad..9e41bdc 100644 --- a/src/main/java/com/emr/service/CommomService.java +++ b/src/main/java/com/emr/service/CommomService.java @@ -578,33 +578,6 @@ public class CommomService { //组织输出地址 } outSrc = EMRRECORDJSP + File.separator + "reload" + File.separator + patientId + File.separator + sourceList[i] + File.separator + nameList[i]; - /*if (srcPath.substring(srcPath.length() - 3).equals("tif")) { - //需要水印 - //组织加水印后图片存放目录 - String waterJpgRoot = WATERTIFTOJPGPATH + patientId + File.separator + sourceList[i] + File.separator; - //目录不存在则创建 - if (!new File(waterJpgRoot).isDirectory()) { - new File(waterJpgRoot).mkdirs(); - } - //获取到转换后jpg图像存放的位置 - String filePathPrefix = waterJpgRoot + nameList[i]; - String tifToJpgRoot = filePathPrefix.substring(0, filePathPrefix.lastIndexOf("."))+ ".jpg" ; - if (!new File(tifToJpgRoot).exists()) { - tifToJpg(srcPath, tifToJpgRoot); - //加水印存放的地址 - String waterPicPath = waterPicRoot + nameList[i].substring(0, nameList[i].lastIndexOf("."))+ ".jpg"; - img2PdfUtil.addWatermarkPic1(new File(tifToJpgRoot), emrPdfWaterSet, waterPicPath); - } - outSrc = EMRRECORDJSP + "\\reload\\" + patientId + File.separator + sourceList[i] + File.separator + nameList[i].substring(0, nameList[i].lastIndexOf("."))+ ".jpg"; - } else { - //组织加水印后图片存放地址 - String waterPicPath = waterPicRoot + nameList[i]; - if (!new File(waterPicPath).exists()) { - img2PdfUtil.addWatermarkPic1(new File(srcPath), emrPdfWaterSet, waterPicPath); - //组织输出地址 - } - outSrc = EMRRECORDJSP + "\\reload\\" + patientId + File.separator + sourceList[i] + File.separator + nameList[i]; - }*/ } else { //不需要水印 String root = ""; diff --git a/src/main/java/com/emr/service/quality/QualityService.java b/src/main/java/com/emr/service/quality/QualityService.java new file mode 100644 index 0000000..6368ea6 --- /dev/null +++ b/src/main/java/com/emr/service/quality/QualityService.java @@ -0,0 +1,17 @@ +package com.emr.service.quality; + +/** + * @InterfaceName QualityService + * @Description 文件质检服务 + * @Author linjj + * @Date 2023/4/13 15:26 + * @Version 1.0 + */ +public interface QualityService { + + String getPhAndDocumentNum(String startRange,String endRange); + + String examineDocument(String startRange,String endRange); + + String SeniorExamine(String startRange,String endRange); +} diff --git a/src/main/java/com/emr/service/quality/QualityServiceImpl.java b/src/main/java/com/emr/service/quality/QualityServiceImpl.java new file mode 100644 index 0000000..0139c2c --- /dev/null +++ b/src/main/java/com/emr/service/quality/QualityServiceImpl.java @@ -0,0 +1,98 @@ +package com.emr.service.quality; + +import com.emr.dao.quality.QualityMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.List; + + +/** + * @ClassName QualityServiceImpl + * @Description + * @Author linjj + * @Date 2023/4/13 15:26 + * @Version 1.0 + */ + +@Service +@Transactional +public class QualityServiceImpl implements QualityService { + + @Autowired + QualityMapper qualityMapper; + + @Override + public String getPhAndDocumentNum(String startRange, String endRange) { + StringBuffer sb = new StringBuffer(); + Integer phNum = qualityMapper.getPhNum(startRange, endRange); + Integer fileNum = qualityMapper.getFileNum(startRange, endRange); + String s = sb.append("查询结果:" + phNum + "盘," + fileNum + "个文件数据").toString(); + return s; + } + + @Override + public String examineDocument(String startRange, String endRange) { + //用来记录确实记录 + int i = 0; + //用来拼接缺失文件地址 + StringBuffer lackPath = new StringBuffer(); + //用来返回记录 + StringBuffer sb = new StringBuffer(); + List phList = qualityMapper.getPh(startRange, endRange); + for (String ph : phList) { + List fliePathList = qualityMapper.getFliePath(ph); + for (String fliePath : fliePathList) { + File file = new File(fliePath);// 图片存放路径 + if (!file.exists() && !file.isDirectory()) { + i++; + lackPath.append(fliePath + ","); + } + } + } + String s = sb.append("缺失" + i + "个文件," + "缺失文件为:" + lackPath).toString(); + return s; + } + + @Override + public String SeniorExamine(String startRange, String endRange) { + //用来记录缺失数量 + int i = 0; + //用来继续故障数量 + int faultNum = 0; + //用来拼接缺失文件地址 + StringBuffer lackPath = new StringBuffer(); + //用来拼接故障文件地址 + StringBuffer faultPath = new StringBuffer(); + //用来返回记录 + StringBuffer sb = new StringBuffer(); + List phList = qualityMapper.getPh(startRange, endRange); + for (String ph : phList) { + List fliePathList = qualityMapper.getFliePath(ph); + for (String fliePath : fliePathList) { + File file = new File(fliePath);// 图片存放路径 + if (!file.exists() && !file.isDirectory()) { + i++; + lackPath.append(fliePath + ","); + } + } + for (String list : fliePathList) { + try { + Image image = ImageIO.read(new FileInputStream(list)); + } catch (IOException e) { + faultNum++; + faultPath.append(list + ","); + } + } + } + String s = sb.append("缺失" + i + "个文件," + "缺失文件为:" + lackPath+"故障文件"+faultNum+"个文件,"+"故障文件为:"+faultPath).toString(); + return s; + } + +} diff --git a/src/main/java/com/emr/util/NewPdfUtil.java b/src/main/java/com/emr/util/NewPdfUtil.java new file mode 100644 index 0000000..b2e752c --- /dev/null +++ b/src/main/java/com/emr/util/NewPdfUtil.java @@ -0,0 +1,68 @@ +package com.emr.util; + + +import com.itextpdf.io.image.ImageDataFactory; +import com.itextpdf.kernel.geom.PageSize; +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfPage; +import com.itextpdf.kernel.pdf.PdfReader; +import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.kernel.pdf.canvas.PdfCanvas; +import com.itextpdf.kernel.pdf.xobject.PdfFormXObject; +import com.itextpdf.layout.Document; +import com.itextpdf.layout.element.Image; +import com.itextpdf.layout.element.Paragraph; + +import lombok.extern.slf4j.Slf4j; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.rendering.PDFRenderer; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.*; +import java.util.ArrayList; +import java.util.List; + +/** + * 合并pdf并加上水印 + * @date 2023-03-07 + */ +@Slf4j +public class NewPdfUtil { + + + /*** + * 图片转pdf + * @param source + * @param target + */ + public static void img2Pdf(String source, String target) { + File file = new File(source); + if (!file.exists()) { + log.error("文件不存在"); + return; + } + Document document; + try { + PdfWriter writer = new PdfWriter(target); + PdfDocument pdf = new PdfDocument(writer); + document = new Document(pdf); + Image image = new Image(ImageDataFactory.create(source)); + image.setAutoScale(true); + image.setAutoScaleHeight(true); + image.setAutoScaleWidth(true); + Paragraph p = new Paragraph().add(image); + document.add(p); + //关闭文档 + document.close(); + writer.close(); + } catch (Exception e) { + log.error("图片:{},转pdf失败:{}", source, e.getMessage()); + } + } + + + + + +} \ No newline at end of file diff --git a/src/main/resources/mapper/commomSearch/ScanPathMapper.xml b/src/main/resources/mapper/commomSearch/ScanPathMapper.xml index bcddac4..63e0c7d 100644 --- a/src/main/resources/mapper/commomSearch/ScanPathMapper.xml +++ b/src/main/resources/mapper/commomSearch/ScanPathMapper.xml @@ -58,9 +58,9 @@ ON dbo.zd_assort.assort_id = dbo.t_scan_assort.assort_id - dbo.commomtable.patient_id =#{patientIds} + dbo.commomtable.patient_id in (${patientIds}) AND t_scan_assort.is_del != 1 - + AND dbo.t_scan_assort.scan_page in (${assortIds}) diff --git a/src/main/resources/mapper/quality/QualityMapper.xml b/src/main/resources/mapper/quality/QualityMapper.xml new file mode 100644 index 0000000..52e9ba1 --- /dev/null +++ b/src/main/resources/mapper/quality/QualityMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/otherManage/browseRecords.jsp b/src/main/webapp/WEB-INF/views/otherManage/browseRecords.jsp index 7e1ee4c..c1498a4 100644 --- a/src/main/webapp/WEB-INF/views/otherManage/browseRecords.jsp +++ b/src/main/webapp/WEB-INF/views/otherManage/browseRecords.jsp @@ -86,7 +86,7 @@
- 打印记录列表 + 浏览记录
diff --git a/src/main/webapp/WEB-INF/views/quality/quality.jsp b/src/main/webapp/WEB-INF/views/quality/quality.jsp new file mode 100644 index 0000000..fc58294 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/quality/quality.jsp @@ -0,0 +1,167 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + +<%@ include file="/WEB-INF/jspf/common.jspf" %> + + + + + 文件质检 + + + + + + + + +
+
+
+ + 文件质检 + +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+ + +
+
+
+
+
+ +
+
+ +
+
+ +
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp b/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp index 138060c..85fc986 100644 --- a/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp +++ b/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp @@ -198,7 +198,7 @@ - + @@ -751,9 +751,9 @@ - +<%-- --%> diff --git a/src/main/webapp/static/js/font/commomListSouth.js b/src/main/webapp/static/js/font/commomListSouth.js index f832e47..cf3e68f 100644 --- a/src/main/webapp/static/js/font/commomListSouth.js +++ b/src/main/webapp/static/js/font/commomListSouth.js @@ -299,10 +299,10 @@ function getSql() { whereNames += commomtable + "." + name + " IN (" + disDepts + ") AND "; } //病状转归 - if ($("#dis_thing").val() != '') { - name = 'main_dis_thing'; - whereNames += commomtable + "." + name + " = '" + $("#dis_thing").val() + "' AND "; - } + // if ($("#dis_thing").val() != '') { + // name = 'main_dis_thing'; + // whereNames += commomtable + "." + name + " = '" + $("#dis_thing").val() + "' AND "; + // } //入院日期 if ($("#startTime1").val() != '' && $("#endTime1").val() != '') { name = 'admiss_date'; diff --git a/src/main/webapp/static/js/otherManage/quality.js b/src/main/webapp/static/js/otherManage/quality.js new file mode 100644 index 0000000..8c7d0f6 --- /dev/null +++ b/src/main/webapp/static/js/otherManage/quality.js @@ -0,0 +1,73 @@ +function getPhAndDocumentNum() { + var startRange = $("#startRange").val(); + var endRange = $("#endRange").val(); + if (!startRange &&!endRange) { + return toastr.warning("开始范围,结束范围不能全部为空") + } + if (!startRange &&!endRange) { + if (startRange > endRange) { + return toastr.warning("开始范围不能小于结束范围") + } + } + $.ajax({ + type:'post', + url:path+"/qualityModel/getPhAndDocumentNum", + data:{startRange:startRange,endRange:endRange}, + dataType:'json', + success:function(data){ + $('.documentNum').html(data) + }, + }) + $('.examineDocument').html("") + $('.seniorExamine').html("") + +} +function examineDocument(){ + var startRange = $("#startRange").val(); + var endRange = $("#endRange").val(); + if (!startRange &&!endRange) { + return toastr.warning("开始范围,结束范围不能全部为空") + } + if (!startRange &&!endRange) { + if (startRange > endRange) { + return toastr.warning("开始范围不能小于结束范围") + } + } + $.ajax({ + type:'post', + url:path+"/qualityModel/examineDocument", + data:{startRange:startRange,endRange:endRange}, + dataType:'json', + success:function(data){ + $('.examineDocument').html(data) + }, + }) + $('.seniorExamine').html("") + $('.documentNum').html("") +} + +function SeniorExamine(){ + var startRange = $("#startRange").val(); + var endRange = $("#endRange").val(); + if (!startRange &&!endRange) { + return toastr.warning("开始范围,结束范围不能全部为空") + } + if (!startRange &&!endRange) { + if (startRange > endRange) { + return toastr.warning("开始范围不能小于结束范围") + } + } + $.ajax({ + type:'post', + url:path+"/qualityModel/SeniorExamine", + data:{startRange:startRange,endRange:endRange}, + dataType:'json', + success:function(data){ + $('.seniorExamine').html(data) + }, + }) + $('.examineDocument').html("") + $('.documentNum').html("") +} + + diff --git a/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js b/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js index 8a21626..e195e2d 100644 --- a/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js +++ b/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js @@ -87,6 +87,21 @@ function freshTable(){ $("#mytab").bootstrapTable('destroy'); $("#checks").val(''); var columns = []; + var map1 = {}; + map1['title'] = '操作'; + map1['field'] = 'Button'; + map1['align'] = 'center'; + map1['formatter'] = 'AddFunctionAlty'; + columns.push(map1) + var flag = $("#showPrint").val(); + //固定列标识 + var mixFlag = false; + if(flag == 1){ + flag = true; + }else{ + flag = false; + mixFlag = true; + } columns.push({ title:'全选', field:'select', @@ -130,21 +145,6 @@ function freshTable(){ } $("#fieldCns").val(fieldCns); } - var map1 = {}; - map1['title'] = '操作'; - map1['field'] = 'Button'; - map1['align'] = 'center'; - map1['formatter'] = 'AddFunctionAlty'; - columns.push(map1) - var flag = $("#showPrint").val(); - //固定列标识 - var mixFlag = false; - if(flag == 1){ - flag = true; - }else{ - flag = false; - mixFlag = true; - } //生成用户数据 $('#mytab').bootstrapTable({ method: 'post',