From 6c7c71ad85ab1e5fb4a3eae9e31799b2f35006fb Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期三, 14 五月 2025 14:12:54 +0800
Subject: [PATCH] 将写死的碳13项目抽到表里配置

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjReportSpecialProjectMapper.java            |   18 +++
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java                      |  226 +++++++++++++------------------------
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReportSpecialProject.java                  |   40 ++++++
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjReportSpecialProjectService.java          |   13 ++
 ltkj-hosp/src/main/resources/mapper/TjReportSpecialProjectMapper.xml                      |   18 +++
 ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportSpecialProjectServiceImpl.java |   22 +++
 6 files changed, 189 insertions(+), 148 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
index c90a816..2b89aaf 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java
@@ -125,6 +125,8 @@
     private TjOrderYcxmService ycxmService;
     @Resource
     private TjXdtgmdjgService xdtgmdjgService;
+    @Autowired
+    private TjReportSpecialProjectService tjReportSpecialProjectService;
 
     private Integer pdfPage = 0;
 
@@ -1788,6 +1790,7 @@
      * @throws DocumentException
      */
     private void notHuaYanTable(Document document1, Map<TjOrderRemark, List<TjPdfVO>> printReport, DictHosp dictHosp, String colorStr, boolean isPacs) throws DocumentException {
+        List<TjReportSpecialProject> tjReportSpecialProjects = tjReportSpecialProjectService.list();
         for (Map.Entry<TjOrderRemark, List<TjPdfVO>> entry : printReport.entrySet()) {
             LambdaQueryWrapper<TjProject> wqqq = new LambdaQueryWrapper<>();
             wqqq.eq(TjProject::getProId, entry.getKey().getProId());
@@ -1835,43 +1838,12 @@
 //                    if (dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌") && !value.isEmpty()){
                     if (!value.isEmpty()) {
                         if (value.size() > 1) {
-                            if (value.get(0).getPid().equals("1862852701533012001")) {
-                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
-                                Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-                                ppp = new Paragraph("DOB鍊硷細         鈮�      4.0                HP-闃虫��", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-                                ppp = new Paragraph("                <      4.0                  姝e父", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-
-                                ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-                                ppp = new Paragraph("", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-                                ppp = new Paragraph("", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-                                if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
-                                    ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-                                }
+                            Long pid = Long.valueOf(value.get(0).getPid());
+                            Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
+                                    .filter(item -> item.getProId().equals(pid))
+                                    .findFirst();
+                            if (match.isPresent()) {
+                                reportSpecialProject(document1, entry, paragraph, value,match.get());
                             } else {
                                 String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"};
                                 Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -1900,43 +1872,12 @@
 //                                paragraph.setLeading(5f);
 //                                document1.add(ppp);
                             } else {
-                                if (value.get(0).getPid().equals("1862852701533012001")) {
-                                    remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
-                                    Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-                                    ppp = new Paragraph("DOB鍊硷細         鈮�      4.0                HP-闃虫��", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-                                    ppp = new Paragraph("                <      4.0                  姝e父", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-
-                                    ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-                                    ppp = new Paragraph("", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-                                    ppp = new Paragraph("", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-                                    if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
-                                        ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
-                                        paragraph.setAlignment(Element.ALIGN_LEFT);
-                                        paragraph.setLeading(5f);
-                                        document1.add(ppp);
-                                    }
+                                Long pid = Long.valueOf(value.get(0).getPid());
+                                Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
+                                        .filter(item -> item.getProId().equals(pid))
+                                        .findFirst();
+                                if (match.isPresent()) {
+                                    reportSpecialProject(document1, entry, paragraph, value,match.get());
                                 } else {
                                     String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"};
                                     Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2023,43 +1964,12 @@
 //                    if (dictHosp.getHospName().equals("婢勫悎鐭垮姟灞�涓績鍖婚櫌") && !value.isEmpty()){
                     if (!value.isEmpty()) {
                         if (value.size() > 1) {
-                            if (value.get(0).getPid().equals("1862852701533012001")) {
-                                Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
-                                Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-                                ppp = new Paragraph("DOB鍊硷細         鈮�      4.0                HP-闃虫��", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-                                ppp = new Paragraph("                <      4.0                  姝e父", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-
-                                ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-
-                                ppp = new Paragraph("", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-                                ppp = new Paragraph("", remarkFonts);
-                                paragraph.setAlignment(Element.ALIGN_LEFT);
-                                paragraph.setLeading(5f);
-                                document1.add(ppp);
-                                if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
-                                    ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-                                }
+                            Long pid = Long.valueOf(value.get(0).getPid());
+                            Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
+                                    .filter(item -> item.getProId().equals(pid))
+                                    .findFirst();
+                            if (match.isPresent()) {
+                                reportSpecialProject(document1, entry, paragraph, value,match.get());
                             } else {
                                 String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉", "鍗曚綅"};
                                 Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2115,43 +2025,12 @@
 //                                paragraph.setLeading(5f);
 //                                document1.add(ppp);
                             } else {
-                                if (value.get(0).getPid().equals("1862852701533012001")) {
-                                    remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
-                                    Paragraph ppp = new Paragraph("闃虫�у弬鑰冨�硷細", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-                                    ppp = new Paragraph("DOB鍊硷細         鈮�      4.0                HP-闃虫��", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-                                    ppp = new Paragraph("                <      4.0                  姝e父", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-
-                                    ppp = new Paragraph("妫�娴嬬粨鏋滐細 DOB=" + value.get(0).getProResult(), remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-
-                                    ppp = new Paragraph("", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-                                    ppp = new Paragraph("", remarkFonts);
-                                    paragraph.setAlignment(Element.ALIGN_LEFT);
-                                    paragraph.setLeading(5f);
-                                    document1.add(ppp);
-                                    if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
-                                        ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
-                                        paragraph.setAlignment(Element.ALIGN_LEFT);
-                                        paragraph.setLeading(5f);
-                                        document1.add(ppp);
-                                    }
+                                Long pid = Long.valueOf(value.get(0).getPid());
+                                Optional<TjReportSpecialProject> match = tjReportSpecialProjects.stream()
+                                        .filter(item -> item.getProId().equals(pid))
+                                        .findFirst();
+                                if (match.isPresent()) {
+                                    reportSpecialProject(document1, entry, paragraph, value,match.get());
                                 } else {
                                     String[] titles = {"浣撴椤圭洰", "浣撴缁撴灉"};
                                     Font headFont = PdfUtils.setFont(DEFAULT_FONT_SIZE);
@@ -2213,6 +2092,57 @@
     }
 
     /**
+     * 鐩墠鍐欐 鍙湁纰�13銆�14 妯℃澘閮芥槸涓�鏍风殑鍙笉杩囧弬鑰冨�间笉鍚�
+     * 鍑屼簯锛歿"dy":"4.0","xy":"4.0","title":"闃虫�у弬鑰冨�硷細","dystr":"DOB鍊硷細         鈮�      ${dy}                HP-闃虫��","xystr":"                <      ${xy}                  姝e父","en":"DOB"}
+     * 娉惧窛鍘垮尰闄細{"dy":"100","xy":"100","title":"鍙傝�冨��(DPM)锛�","dystr":"DPM鍊硷細         鈮�      ${dy}                闃虫��","xystr":"                <      ${xy}                  闃存��","en":"DPM"}
+     * @param document1
+     * @param entry
+     * @param paragraph
+     * @param value
+     * @param tjReportSpecialProject
+     * @throws DocumentException
+     */
+    private static void reportSpecialProject(Document document1, Map.Entry<TjOrderRemark, List<TjPdfVO>> entry, Paragraph paragraph, List<TjPdfVO> value,TjReportSpecialProject tjReportSpecialProject) throws DocumentException {
+        JSONObject entries = JSONUtil.parseObj(tjReportSpecialProject.getParams());
+        Font remarkFonts = PdfUtils.setFont(DEFAULT_FONT_SIZE);
+        Paragraph ppp = new Paragraph(entries.getStr("title"), remarkFonts);
+        paragraph.setAlignment(Element.ALIGN_LEFT);
+        paragraph.setLeading(5f);
+        document1.add(ppp);
+
+        ppp = new Paragraph(entries.getStr("dystr").replace("${dy}",entries.getStr("dy")), remarkFonts);
+        paragraph.setAlignment(Element.ALIGN_LEFT);
+        paragraph.setLeading(5f);
+        document1.add(ppp);
+
+        ppp = new Paragraph(entries.getStr("xystr").replace("${xy}",entries.getStr("xy")), remarkFonts);
+        paragraph.setAlignment(Element.ALIGN_LEFT);
+        paragraph.setLeading(5f);
+        document1.add(ppp);
+
+
+        ppp = new Paragraph("妫�娴嬬粨鏋滐細 "+entries.getStr("en")+"=" + value.get(0).getProResult(), remarkFonts);
+        paragraph.setAlignment(Element.ALIGN_LEFT);
+        paragraph.setLeading(5f);
+        document1.add(ppp);
+
+        ppp = new Paragraph("", remarkFonts);
+        paragraph.setAlignment(Element.ALIGN_LEFT);
+        paragraph.setLeading(5f);
+        document1.add(ppp);
+        ppp = new Paragraph("", remarkFonts);
+        paragraph.setAlignment(Element.ALIGN_LEFT);
+        paragraph.setLeading(5f);
+        document1.add(ppp);
+        if (StrUtil.isNotBlank(entry.getKey().getRemark())) {
+            ppp = new Paragraph("缁撹锛�" + entry.getKey().getRemark().replaceAll("null",""), remarkFonts);
+            paragraph.setAlignment(Element.ALIGN_LEFT);
+            paragraph.setLeading(5f);
+            document1.add(ppp);
+        }
+    }
+
+    /**
      * 涓昏鍖诲笀琛屾樉绀鸿缃�
      *
      * @param document1
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReportSpecialProject.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReportSpecialProject.java
new file mode 100644
index 0000000..4c8c22f
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjReportSpecialProject.java
@@ -0,0 +1,40 @@
+package com.ltkj.hosp.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 鎶ュ憡鐗规畩椤圭洰
+ * @TableName tj_report_special_project
+ */
+@TableName(value ="tj_report_special_project")
+@Data
+public class TjReportSpecialProject implements Serializable {
+    /**
+     * 
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 
+     */
+    private Long proId;
+
+    /**
+     * 妯℃澘鍒ゆ柇缂栧彿 鏍规嵁缂栧彿璧颁笉鍚岀殑鐢熸垚妯℃澘绫诲瀷
+     */
+    private Integer templateKey;
+
+    /**
+     * 闇�瑕侀澶栦紶閫掔殑鍙傛暟
+     */
+    private String params;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjReportSpecialProjectMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjReportSpecialProjectMapper.java
new file mode 100644
index 0000000..ee6a872
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjReportSpecialProjectMapper.java
@@ -0,0 +1,18 @@
+package com.ltkj.hosp.mapper;
+
+import com.ltkj.hosp.domain.TjReportSpecialProject;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author w
+* @description 閽堝琛ㄣ�恡j_report_special_project(鎶ュ憡鐗规畩椤圭洰)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2025-05-14 11:21:22
+* @Entity com.ltkj.hosp.domain.TjReportSpecialProject
+*/
+public interface TjReportSpecialProjectMapper extends BaseMapper<TjReportSpecialProject> {
+
+}
+
+
+
+
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjReportSpecialProjectService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjReportSpecialProjectService.java
new file mode 100644
index 0000000..8341fc0
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjReportSpecialProjectService.java
@@ -0,0 +1,13 @@
+package com.ltkj.hosp.service;
+
+import com.ltkj.hosp.domain.TjReportSpecialProject;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author w
+* @description 閽堝琛ㄣ�恡j_report_special_project(鎶ュ憡鐗规畩椤圭洰)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2025-05-14 11:21:22
+*/
+public interface TjReportSpecialProjectService extends IService<TjReportSpecialProject> {
+
+}
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportSpecialProjectServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportSpecialProjectServiceImpl.java
new file mode 100644
index 0000000..0eab9ec
--- /dev/null
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjReportSpecialProjectServiceImpl.java
@@ -0,0 +1,22 @@
+package com.ltkj.hosp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ltkj.hosp.domain.TjReportSpecialProject;
+import com.ltkj.hosp.service.TjReportSpecialProjectService;
+import com.ltkj.hosp.mapper.TjReportSpecialProjectMapper;
+import org.springframework.stereotype.Service;
+
+/**
+* @author w
+* @description 閽堝琛ㄣ�恡j_report_special_project(鎶ュ憡鐗规畩椤圭洰)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @createDate 2025-05-14 11:21:22
+*/
+@Service
+public class TjReportSpecialProjectServiceImpl extends ServiceImpl<TjReportSpecialProjectMapper, TjReportSpecialProject>
+    implements TjReportSpecialProjectService{
+
+}
+
+
+
+
diff --git a/ltkj-hosp/src/main/resources/mapper/TjReportSpecialProjectMapper.xml b/ltkj-hosp/src/main/resources/mapper/TjReportSpecialProjectMapper.xml
new file mode 100644
index 0000000..4c67c0b
--- /dev/null
+++ b/ltkj-hosp/src/main/resources/mapper/TjReportSpecialProjectMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ltkj.hosp.mapper.TjReportSpecialProjectMapper">
+
+    <resultMap id="BaseResultMap" type="com.ltkj.hosp.domain.TjReportSpecialProject">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="proId" column="pro_id" jdbcType="BIGINT"/>
+            <result property="templateKey" column="template_key" jdbcType="TINYINT"/>
+            <result property="params" column="params" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,pro_id,template_key,
+        params
+    </sql>
+</mapper>

--
Gitblit v1.8.0