From 8b12ea09b88e769eb44fa3549d2a7245491a4c85 Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Thu, 21 Aug 2025 18:15:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=8F=E9=99=A2=E9=87=87=E8=A1=80=EF=BC=8C?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/lis/LabReqreportPdffile.java | 22 +++ lis-interfaceCommon/pom.xml | 4 + .../mapper/LabReqreportPdffileMapper.java | 12 ++ .../interfaceCommon/utils/CommonUtil.java | 10 ++ .../interfaceCommon/utils/ReportUtil.java | 148 +++++++++++++++++- .../mapper/LabReqreportPdffileMapper.xml | 14 ++ lis-system/pom.xml | 6 + .../system/config/ApplicationConfig.java | 25 +++ lis-system/src/main/resources/application.yml | 2 +- lisresources/pom.xml | 18 +++ .../jasperreports_extension.properties | 0 .../src/main/resources}/stsong/fonts.xml | 0 .../src/main/resources}/stsong/stsong.ttf | Bin .../czlis/mzcx/controller/MZCXController.java | 1 + pom.xml | 15 ++ .../zybgcx/controller/ZybgcxController.java | 10 +- .../czlis/zybgcx/service/ZybgcxService.java | 2 + .../service/impl/ZybgcxServcieImpl.java | 42 +++++ .../czlis/zycx/controller/ZycxController.java | 3 +- .../com/czlis/zycx/pojo/Web_getBarcode.java | 2 +- .../com/czlis/zycx/service/ZycxService.java | 2 +- .../zycx/service/impl/ZycxServiceImpl.java | 106 ++++++++++++- 22 files changed, 427 insertions(+), 17 deletions(-) create mode 100644 lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqreportPdffile.java create mode 100644 lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java create mode 100644 lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml create mode 100644 lisresources/pom.xml rename {lis-system/src/main/resources/static => lisresources/src/main/resources}/jasperreports_extension.properties (100%) rename {lis-system/src/main/resources/static => lisresources/src/main/resources}/stsong/fonts.xml (100%) rename {lis-system/src/main/resources/static => lisresources/src/main/resources}/stsong/stsong.ttf (100%) diff --git a/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqreportPdffile.java b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqreportPdffile.java new file mode 100644 index 0000000..76b433b --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/core/domain/entity/lis/LabReqreportPdffile.java @@ -0,0 +1,22 @@ +package com.czlis.common.core.domain.entity.lis; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class LabReqreportPdffile { + private String sqh; + private Date jyrq; + private String yq; + private String ybh; + private String filetype; + private String bz; + private Date filedt; + private String bk1; + private String BASE64PDF; +} diff --git a/lis-interfaceCommon/pom.xml b/lis-interfaceCommon/pom.xml index 316bced..331aaa2 100644 --- a/lis-interfaceCommon/pom.xml +++ b/lis-interfaceCommon/pom.xml @@ -48,6 +48,10 @@ org.apache.xmlgraphics batik-all + + org.apache.pdfbox + pdfbox + diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java new file mode 100644 index 0000000..6978446 --- /dev/null +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqreportPdffileMapper.java @@ -0,0 +1,12 @@ +package com.czlis.interfaceCommon.mapper; + +import com.czlis.common.core.domain.entity.lis.LabReqreportPdffile; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +public interface LabReqreportPdffileMapper { + List getLabReqreportPdffileList(String sqh); + LabReqreportPdffile getLabReqreportPdffileOne(@Param("jyrq") Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh); +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java index 6dbbcdf..b15229a 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java @@ -46,6 +46,8 @@ public class CommonUtil { LabInstrMapper labInstrMapper; @Autowired XmAlarmdetailMapper xmAlarmdetailMapper; + @Autowired + LabReqreportPdffileMapper labReqreportPdffileMapper; //====检验主表操作方法集合=== public LabPat getLabPatOne(Date jyrq, String yq, String ybh) { @@ -299,4 +301,12 @@ public class CommonUtil { if ("Y".equals(userPower.substring(powerIdx - 1, 1))) return true; return false; } + + public List getLabReqreportPdffileList(String sqh) { + return labReqreportPdffileMapper.getLabReqreportPdffileList(sqh); + } + + public LabReqreportPdffile getLabReqreportPdffileOne(Date jyrq,String yq,String ybh) { + return labReqreportPdffileMapper.getLabReqreportPdffileOne(jyrq,yq,ybh); + } } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/ReportUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/ReportUtil.java index 25290d3..4da68c1 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/ReportUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/ReportUtil.java @@ -2,25 +2,36 @@ package com.czlis.interfaceCommon.utils; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.date.DateUtil; -import cn.hutool.json.JSONUtil; import com.czlis.common.config.RuoYiConfig; - import com.czlis.interfaceCommon.mapper.BackPaperMapper; import com.czlis.interfaceCommon.pojo.entity.BackPaperDetail; import com.czlis.interfaceCommon.pojo.entity.BackPaperParam; import com.czlis.interfaceCommon.pojo.entity.LabRptgetruledetailCX; import com.czlis.interfaceCommon.pojo.entity.MZBarCodeParam; -import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; +import org.apache.pdfbox.pdmodel.common.PDRectangle; +import org.apache.pdfbox.printing.Orientation; +import org.apache.pdfbox.printing.PDFPrintable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.print.*; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.PrintRequestAttributeSet; +import javax.print.attribute.standard.Copies; +import javax.print.attribute.standard.MediaPrintableArea; +import javax.print.attribute.standard.MediaSizeName; +import java.awt.print.*; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.util.*; + +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.printing.Scaling; +import org.apache.pdfbox.pdmodel.PDPage; +import javax.print.attribute.standard.OrientationRequested; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; @Component @@ -88,6 +99,127 @@ public class ReportUtil { } } + /** + * 打印 Base64 编码的 PDF + * @param base64Pdf Base64 编码的 PDF 字符串 + * @param printerName 打印机名称(可为 null,使用默认打印机) + * @param copies 打印份数 + * @throws Exception 异常 + */ + public static void printBase64Pdf(String base64Pdf, String printerName, int copies) throws Exception { + // 1. Base64 解码为 PDF 字节数组 + byte[] pdfBytes = Base64.getDecoder().decode(base64Pdf); + + // 2. 加载 PDF 文档 + try (PDDocument document = PDDocument.load(pdfBytes)) { + + // 3. 获取打印服务 + PrinterJob job = PrinterJob.getPrinterJob(); + + // 选择打印机(若指定名称) + if (printerName != null && !printerName.isEmpty()) { + PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); + for (PrintService service : services) { + if (service.getName().contains(printerName)) { + job.setPrintService(service); + break; + } + } + } + + // 4. 配置打印属性 + PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); + attributes.add(new Copies(copies)); + attributes.add(OrientationRequested.LANDSCAPE); + + // 5. 配置页面格式和可打印区域 + Book book = new Book(); + PageFormat pageFormat = job.defaultPage(); + + Paper paper = new Paper(); + //paper.setSize(595, 842); // A4 宽度和高度(1/72 英寸) + paper.setSize(419, 595); // A5 宽度和高度(1/72 英寸) + paper.setImageableArea(0, 0, 419, 595); // 边距 40 点,可打印区域宽 515、高 762 + pageFormat.setPaper(paper); + + // 设置打印缩放 + //ACTUAL_SIZE 不缩放,按 PDF 实际尺寸打印 + //SCALE_TO_FIT 按比例缩放,使 PDF 内容适应纸张(宽、高同时适配,保持纵横比) + PDFPrintable printable = new PDFPrintable(document, Scaling.ACTUAL_SIZE); + book.append(printable, pageFormat, document.getNumberOfPages()); + job.setPageable(book); + + // 6. 执行打印 + job.print(attributes); + } + } + + + /** + * 打印已存在的 PDF 文件(兼容各版本 PDFBox) + * @param pdfFilePath PDF 文件路径 + * @param printerName 目标打印机名称(null 则使用默认打印机) + * @throws IOException PDF 文件加载异常 + * @throws javax.print.PrintException 打印服务异常 + */ + public static void printPdf(String pdfFilePath, String printerName) throws IOException, javax.print.PrintException { + // 1. 加载 PDF 文档 + try (PDDocument document = PDDocument.load(new File(pdfFilePath))) { + // 2. 创建打印任务 + PrinterJob job = PrinterJob.getPrinterJob(); + + // 5. 选择打印机 + if (printerName != null && !printerName.isEmpty()) { + PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); + PrintService targetService = null; + for (PrintService service : services) { + if (service.getName().contains(printerName)) { + targetService = service; + break; + } + } + if (targetService == null) { + throw new javax.print.PrintException("未找到打印机:" + printerName); + } + job.setPrintService(targetService); + } else { + // 使用默认打印机 + PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); + if (defaultService != null) { + job.setPrintService(defaultService); + } else { + throw new javax.print.PrintException("未找到默认打印机"); + } + } + + // 3. 配置打印内容(使用 PDFPrintable) + PDFPrintable printable = new PDFPrintable(document, Scaling.ACTUAL_SIZE); // 原始模式 + + // 4. 设置页面格式和打印属性 + Book book = new Book(); + PageFormat pageFormat = job.defaultPage(); + // 设置打印方向(纵向PORTRAIT/横向LANDSCAPE) + pageFormat.setOrientation(PageFormat.LANDSCAPE); // 纵向 + + // 2. 自定义纸张大小(例如 A4:210×297 毫米,转换为 1/72 英寸:(210/25.4)*72 ≈ 595,(297/25.4)*72 ≈ 842) + //(A5纸张:148*210 (148/25.4)*72 = 419.5 (210/25.4)*72 = 595.3) + Paper paper = new Paper(); + //paper.setSize(595, 842); // A4 宽度和高度(1/72 英寸) + paper.setSize(419, 595); // A5 宽度和高度(1/72 英寸) + paper.setImageableArea(0, 0, 419, 595); // 边距 40 点,可打印区域宽 515、高 762 + pageFormat.setPaper(paper); + + book.append(printable, pageFormat, document.getNumberOfPages()); + job.setPageable(book); + + // 6. 提交打印任务 + job.print(); + System.out.println("打印任务已提交至:" + job.getPrintService().getName()); + } catch (PrinterException e) { + throw new RuntimeException(e); + } + } + /*** 获取服务器当前的数据库连接事务对象 * 通过@Qualifier获取实际当前连接事务对象,一般是DynamicDataSource diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml new file mode 100644 index 0000000..13115e9 --- /dev/null +++ b/lis-interfaceCommon/src/main/resources/mapper/LabReqreportPdffileMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/lis-system/pom.xml b/lis-system/pom.xml index 7371405..477e569 100644 --- a/lis-system/pom.xml +++ b/lis-system/pom.xml @@ -61,6 +61,11 @@ lis-quartz + + com.czlis + lisresources + + org.springframework.boot @@ -160,6 +165,7 @@ mzcx-8.0.0.jar zybgcx-8.0.0.jar zycx-8.0.0.jar + lisresources-8.0.0.jar diff --git a/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java b/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java index b25d553..41a7c2e 100644 --- a/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java +++ b/lis-system/src/main/java/com/czlis/system/config/ApplicationConfig.java @@ -1,6 +1,7 @@ package com.czlis.system.config; import com.czlis.common.asyncmanager.AsyncManager; +import com.czlis.common.config.RuoYiConfig; import com.czlis.common.utils.ComDictUtils; import com.czlis.interfaceCommon.mapper.ComDictMapper; import com.czlis.quartz.service.impl.SysJobServiceImpl; @@ -13,6 +14,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; +import java.io.File; import java.util.Arrays; import java.util.List; import java.util.TimeZone; @@ -108,6 +110,29 @@ public class ApplicationConfig { AsyncManager.me().execute(task); } + /** + * 创建文件夹 + */ + @Bean + public void createFolder(){ + String folderPath = RuoYiConfig.getProfile(); + + // 创建File对象 + File folder = new File(folderPath); + + // 检查文件夹是否存在,不存在则创建(包括多级目录) + if (!folder.exists()) { + boolean isCreated = folder.mkdirs(); // mkdirs()可创建多级目录,mkdir()仅创建单级目录 + if (isCreated) { + System.out.println("文件夹创建成功:" + folderPath); + } else { + System.out.println("文件夹创建失败:" + folderPath); + } + } else { + System.out.println("文件夹已存在:" + folderPath); + } + } + diff --git a/lis-system/src/main/resources/application.yml b/lis-system/src/main/resources/application.yml index dd20030..165eeb7 100644 --- a/lis-system/src/main/resources/application.yml +++ b/lis-system/src/main/resources/application.yml @@ -7,7 +7,7 @@ czlis: # 版权年份 copyrightYear: 2025 # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) - profile: D:/czlis/upload + profile: D:/czlis mzPrintName: pdfFactory Pro # 获取ip地址开关 addressEnabled: false diff --git a/lisresources/pom.xml b/lisresources/pom.xml new file mode 100644 index 0000000..59d0512 --- /dev/null +++ b/lisresources/pom.xml @@ -0,0 +1,18 @@ + + 4.0.0 + + com.czlis + czlis + 8.0.0 + + + lisresources + jar + + lisresources + + + UTF-8 + + diff --git a/lis-system/src/main/resources/static/jasperreports_extension.properties b/lisresources/src/main/resources/jasperreports_extension.properties similarity index 100% rename from lis-system/src/main/resources/static/jasperreports_extension.properties rename to lisresources/src/main/resources/jasperreports_extension.properties diff --git a/lis-system/src/main/resources/static/stsong/fonts.xml b/lisresources/src/main/resources/stsong/fonts.xml similarity index 100% rename from lis-system/src/main/resources/static/stsong/fonts.xml rename to lisresources/src/main/resources/stsong/fonts.xml diff --git a/lis-system/src/main/resources/static/stsong/stsong.ttf b/lisresources/src/main/resources/stsong/stsong.ttf similarity index 100% rename from lis-system/src/main/resources/static/stsong/stsong.ttf rename to lisresources/src/main/resources/stsong/stsong.ttf diff --git a/mzcx/src/main/java/com/czlis/mzcx/controller/MZCXController.java b/mzcx/src/main/java/com/czlis/mzcx/controller/MZCXController.java index a87a70b..c3783bd 100644 --- a/mzcx/src/main/java/com/czlis/mzcx/controller/MZCXController.java +++ b/mzcx/src/main/java/com/czlis/mzcx/controller/MZCXController.java @@ -46,6 +46,7 @@ public class MZCXController extends BaseController { * @param sqh * @return */ + @Anonymous @GetMapping("/printBarcode") public Result printSQD(String sqh){ return mzcxService.printSQD(sqh); diff --git a/pom.xml b/pom.xml index 284e94d..6a82a3e 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ 6.8.0 2.1.7 1.5-beta1 + 2.0.29 9.0.98 @@ -259,6 +260,12 @@ ${czlis.version} + + com.czlis + lisresources + ${czlis.version} + + @@ -323,6 +330,13 @@ batik-all ${batik.version} + + + org.apache.pdfbox + pdfbox + ${pdfbox.version} + + @@ -337,6 +351,7 @@ zybgcx lis-quartz lis-interfaceCommon + lisresources pom diff --git a/zybgcx/src/main/java/com/czlis/zybgcx/controller/ZybgcxController.java b/zybgcx/src/main/java/com/czlis/zybgcx/controller/ZybgcxController.java index d1f6bd9..be07fa2 100644 --- a/zybgcx/src/main/java/com/czlis/zybgcx/controller/ZybgcxController.java +++ b/zybgcx/src/main/java/com/czlis/zybgcx/controller/ZybgcxController.java @@ -1,5 +1,6 @@ package com.czlis.zybgcx.controller; +import com.czlis.common.annotation.Anonymous; import com.czlis.common.core.controller.BaseController; import com.czlis.common.core.domain.Result; import com.czlis.common.core.page.TableDataInfo; @@ -44,6 +45,7 @@ public class ZybgcxController extends BaseController { * @param webGetResultMed * @return */ + @ApiOperation("获取微生物报告单信息") @PostMapping("/MedList") public TableDataInfo getResultMed(@RequestBody Web_getResultMed webGetResultMed){ startPage(); @@ -54,11 +56,13 @@ public class ZybgcxController extends BaseController { /** * 打印报告单 - * @param bgdh + * @param bgdh 格式为:jyrq_yq_ybh * @return */ - @GetMapping("print") + @Anonymous + @ApiOperation("打印报告单") + @GetMapping("/print") public Result printReport(String bgdh){ - return null; + return zybgcxService.printReport(bgdh); } } diff --git a/zybgcx/src/main/java/com/czlis/zybgcx/service/ZybgcxService.java b/zybgcx/src/main/java/com/czlis/zybgcx/service/ZybgcxService.java index 793db9c..794ada3 100644 --- a/zybgcx/src/main/java/com/czlis/zybgcx/service/ZybgcxService.java +++ b/zybgcx/src/main/java/com/czlis/zybgcx/service/ZybgcxService.java @@ -1,5 +1,6 @@ package com.czlis.zybgcx.service; +import com.czlis.common.core.domain.Result; import com.czlis.zybgcx.pojo.Web_getReportsList; import com.czlis.zybgcx.pojo.Web_getResultMed; @@ -9,4 +10,5 @@ public interface ZybgcxService { List getPatList(Web_getReportsList webGetReportsList); List getResultMed(Web_getResultMed webGetResultMed); + Result printReport(String bgdh); } diff --git a/zybgcx/src/main/java/com/czlis/zybgcx/service/impl/ZybgcxServcieImpl.java b/zybgcx/src/main/java/com/czlis/zybgcx/service/impl/ZybgcxServcieImpl.java index 42a1ad2..b32b65e 100644 --- a/zybgcx/src/main/java/com/czlis/zybgcx/service/impl/ZybgcxServcieImpl.java +++ b/zybgcx/src/main/java/com/czlis/zybgcx/service/impl/ZybgcxServcieImpl.java @@ -1,5 +1,14 @@ package com.czlis.zybgcx.service.impl; +import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; +import com.czlis.common.config.RuoYiConfig; +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.LabReqreportPdffile; +import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.interfaceCommon.utils.ReportUtil; import com.czlis.zybgcx.mapper.ZybgcxMapper; import com.czlis.zybgcx.pojo.Web_getReportsList; import com.czlis.zybgcx.pojo.Web_getResultMed; @@ -8,6 +17,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.print.PrintException; +import java.io.IOException; import java.util.Collections; import java.util.List; @@ -17,6 +28,8 @@ public class ZybgcxServcieImpl implements ZybgcxService { @Autowired private ZybgcxMapper zybgcxMapper; + @Autowired + private CommonUtil commonUtil; /** @@ -39,5 +52,34 @@ public class ZybgcxServcieImpl implements ZybgcxService { return zybgcxMapper.getResultMed(webGetResultMed); } + /** + * 打印报告单 + * @param bgdh + * @return + */ + @Override + public Result printReport(String bgdh) { + String[] strings = StrUtil.splitToArray(bgdh, "_"); + if(strings.length != 3) return new Result("-1","传入的报告单号不对!"); + String jyrqStr = strings[0]; + String yq = strings[1]; + String ybh = strings[2]; + LabReqreportPdffile labReqreportPdffileOne = commonUtil.getLabReqreportPdffileOne(DateUtil.parse(jyrqStr, "yyyyMMdd"), yq, ybh); + byte[] decode = Base64.decode(labReqreportPdffileOne.getBASE64PDF()); + String pdfName = bgdh+".pdf"; + String path = RuoYiConfig.getProfile() +"/printPDF/"+pdfName; + log.info("打印目录文件为:{}",path); + FileUtil.writeBytes(decode, path); + try { + ReportUtil.printPdf(path,""); + } catch (Exception e) { + e.printStackTrace(); + log.error("打印pdf报告失败:",e); + return new Result("-1","打印pdf报告失败:"+e.getMessage()); + } + + return new Result("0","打印成功!"); + } + } diff --git a/zycx/src/main/java/com/czlis/zycx/controller/ZycxController.java b/zycx/src/main/java/com/czlis/zycx/controller/ZycxController.java index 2aa2a20..3b8cd44 100644 --- a/zycx/src/main/java/com/czlis/zycx/controller/ZycxController.java +++ b/zycx/src/main/java/com/czlis/zycx/controller/ZycxController.java @@ -50,11 +50,12 @@ public class ZycxController extends BaseController { @ApiOperation("执行条码") @GetMapping("/print") - public Result execSQD(String sqh,String userid,String status,String yljg){ + public Result execSQD(String[] sqh,String userid,String status,String yljg){ log.info("执行条码接口:{},{},{},{}",sqh,userid,status,yljg); return zycxService.execSQD(sqh,userid,status,yljg); } + // @GetMapping("/test1") // public Result test1(String inValue){ // log.info("测试的数据:{}",inValue); diff --git a/zycx/src/main/java/com/czlis/zycx/pojo/Web_getBarcode.java b/zycx/src/main/java/com/czlis/zycx/pojo/Web_getBarcode.java index 9660cdc..33ad51a 100644 --- a/zycx/src/main/java/com/czlis/zycx/pojo/Web_getBarcode.java +++ b/zycx/src/main/java/com/czlis/zycx/pojo/Web_getBarcode.java @@ -11,7 +11,7 @@ import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor -public class Web_getBarcode extends BaseEntity { +public class Web_getBarcode { private String sqh; private String ksdh; private String sqys; diff --git a/zycx/src/main/java/com/czlis/zycx/service/ZycxService.java b/zycx/src/main/java/com/czlis/zycx/service/ZycxService.java index 1d87a43..ff879b5 100644 --- a/zycx/src/main/java/com/czlis/zycx/service/ZycxService.java +++ b/zycx/src/main/java/com/czlis/zycx/service/ZycxService.java @@ -10,5 +10,5 @@ public interface ZycxService { Result createSQD(String dept, String userid, String st, String et, String yljg); - Result execSQD(String sqh,String userid,String status,String yljg ); + Result execSQD(String[] sqh,String userid,String status,String yljg ); } diff --git a/zycx/src/main/java/com/czlis/zycx/service/impl/ZycxServiceImpl.java b/zycx/src/main/java/com/czlis/zycx/service/impl/ZycxServiceImpl.java index 3104134..cf40ad3 100644 --- a/zycx/src/main/java/com/czlis/zycx/service/impl/ZycxServiceImpl.java +++ b/zycx/src/main/java/com/czlis/zycx/service/impl/ZycxServiceImpl.java @@ -1,11 +1,22 @@ package com.czlis.zycx.service.impl; +import cn.hutool.core.date.DateUtil; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.LabReqmain; +import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants; +import com.czlis.interfaceCommon.pojo.entity.MZBarCodeParam; +import com.czlis.interfaceCommon.pojo.inter.GetReqInterface; +import com.czlis.interfaceCommon.pojo.inter.SetReqStatus; +import com.czlis.interfaceCommon.service.LisInterfaceType; +import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.interfaceCommon.utils.LisInterfaceUtil; +import com.czlis.interfaceCommon.utils.LisUtil; +import com.czlis.interfaceCommon.utils.ReportUtil; import com.czlis.zycx.mapper.ZycxMapper; import com.czlis.zycx.service.ZycxService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -18,6 +29,15 @@ public class ZycxServiceImpl implements ZycxService { @Autowired private ZycxMapper zycxMapper; + @Autowired + private LisInterfaceUtil lisInterfaceUtil; + @Autowired + private CommonUtil commonUtil; + @Autowired + private ReportUtil reportUtil; + + @Value("${lisinterface.sp:}") + String sp; @Override @@ -27,6 +47,38 @@ public class ZycxServiceImpl implements ZycxService { @Override public Result createSQD(String dept, String userid, String st, String et, String yljg) { + if(sp.equals("1")){ + return createSQDExecSP(dept, userid, st, et, yljg); + }else{ + return createSQDExecHTTP(dept, userid, st, et, yljg); + } + } + + @Override + public Result execSQD(String[] sqh,String userid,String status,String yljg) { + String sqhOne = ""; + for (int i = 0; i < sqh.length; i++) { + sqhOne = sqh[i]; + if(sp.equals("1")){ + Result result = execSQDExecSP(sqhOne, userid, status, yljg); + if(!result.equals("0")) return result; + }else{ + Result result = execSQDExecHTTP(sqhOne, userid, status, yljg); + if(!result.equals("0")) return result; + } + //打印条码 + if(status.equals("11")){ + printBarCode(sqhOne); + } + + } + + return new Result("0","执行成功!"); + + } + + + public Result createSQDExecSP(String dept, String userid, String st, String et, String yljg){ Map map = new HashMap<>(); map.put("dept", dept); map.put("userid", userid); @@ -46,8 +98,19 @@ public class ZycxServiceImpl implements ZycxService { } } - @Override - public Result execSQD(String sqh,String userid,String status,String yljg) { + + public Result createSQDExecHTTP(String dept, String userid, String st, String et, String yljg){ + GetReqInterface getReqInterface = new GetReqInterface(); + getReqInterface.setDept(dept); + getReqInterface.setUserid(userid); + getReqInterface.setUserid(userid); + getReqInterface.setStime(st); + getReqInterface.setEtime(et); + getReqInterface.setYljg(yljg); + return lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.GETREQINTERFACE, getReqInterface); + } + + public Result execSQDExecSP(String sqh,String userid,String status,String yljg){ Map map = new HashMap<>(); map.put("sqh", sqh); map.put("userid", userid); @@ -66,4 +129,43 @@ public class ZycxServiceImpl implements ZycxService { } } + public Result execSQDExecHTTP(String sqh,String userid,String status,String yljg){ + SetReqStatus setReqStatus = new SetReqStatus(); + setReqStatus.setStatus(status); + setReqStatus.setSqh(sqh); + setReqStatus.setUserid(userid); + return lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREQSTATUS, setReqStatus); + } + + public Result printBarCode(String sqh){ + LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh); + //List labReqdetailList = commonUtil.getLabReqdetailList(sqh); + MZBarCodeParam mzBarCodeParam = new MZBarCodeParam(); + mzBarCodeParam.setSqh(sqh); + Map ageFromBirthDay = LisUtil.getAgeFromBirthDay(DateUtil.format(labReqmainOne.getBrsr(), "yyyy-MM-dd HH:mm:ss")); + String age = ageFromBirthDay.get("age"); + String unit = ageFromBirthDay.get("unit"); + + mzBarCodeParam.setNl(age + unit); + mzBarCodeParam.setBrxm(labReqmainOne.getBrxm()); + String brxb = labReqmainOne.getBrxb(); + switch (brxb) { + case "1": + brxb = "男"; + break; + case "2": + brxb = "女"; + break; + default: + brxb = ""; + + } + mzBarCodeParam.setBrxb(brxb); + mzBarCodeParam.setSfxmmc(labReqmainOne.getJymd()); + reportUtil.printBarCode(mzBarCodeParam); + return new Result("0", "打印成功!"); + } + + + }