From a1808ba0ff1ccc2efacb69c1033054dbaab8687f Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 10 七月 2025 17:57:16 +0800
Subject: [PATCH] 2025-07-10

---
 ltkj-hosp/src/main/java/com/ltkj/hosp/domain/SysNoticeUser.java                  |   21 ++
 ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisPDFUtil.java             |  401 +++++++++++++++++++++++++++++++++----------------
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java |   17 ++
 ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java            |   22 ++
 4 files changed, 323 insertions(+), 138 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 4338132..5bc1fde 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
@@ -1003,6 +1003,37 @@
            List<TjOrderDetail> orderDetails = tjOrderDetailMapper.getzongjianyishengchakanyichangxiangmu4(tjOrder.getTjNumber());
 //        List<Map<String, Object>> jiancha = new ArrayList<>();
 
+           Font zongJianFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE);
+           Font zongJianTitleFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE);
+           zongJianTitleFont.setStyle(Font.BOLD);
+           PdfPCell cell;
+
+
+           String zjjyandqmgzIstop = sysConfigService.selectConfigByKey("pdf_zjjyandqmgz_istop");
+           boolean zjjyandqmgzIstopFlag = false;
+           if (StrUtil.isNotBlank(zjjyandqmgzIstop) && zjjyandqmgzIstop.equalsIgnoreCase("y")){
+               zjjyandqmgzIstopFlag = true;
+               paragraph = PdfUtils.setParagraph(defaultTitleFont, "鎬绘鍖荤敓寤鸿锛�");
+               document2.add(paragraph);
+               if (tjOrder.getCheckAdvice() == null) {
+                   paragraph = PdfUtils.setParagraph(defaultFont, "鏃�");
+                   document2.add(paragraph);
+               } else {
+                   Paragraph paragraphs = new Paragraph(tjOrder.getCheckAdvice(), defaultFont);
+                   //璁剧疆鏂囧瓧灞呬腑
+                   paragraphs.setAlignment(Element.ALIGN_LEFT);
+                   //琛岄棿璺�
+//            paragraphs.setLeading(5f);
+                   //璁剧疆娈佃惤涓婄┖鐧�
+                   paragraphs.setSpacingBefore(10f);
+                   //璁剧疆娈佃惤涓嬬┖鐧�
+                   paragraphs.setSpacingAfter(10f);
+//            paragraph = PdfUtils.setParagraph(defaultFont, tjOrder.getCheckAdvice());
+                   document2.add(paragraphs);
+               }
+               makeZjjyAndQmgzTab(tjOrder, zongJianYiShiQianMing, zongJianFont, zongJianTitleFont, value, document2, defaultFont);
+           }
+
 
 
            int xmXh = 1;
@@ -1135,10 +1166,15 @@
                            List<Map<String, Object>> collect1 = maps.stream().distinct().collect(Collectors.toList());
                            for (Map<String, Object> objectMap : collect1) {
                                String content = str + objectMap.get("bt").toString() + objectMap.get("nr").toString();
-                               if (StrUtil.isBlank(content)) content = "     ";
-                               paragraph = new Paragraph(content, defaultFont);
-                               paragraph.setAlignment(Element.ALIGN_LEFT);
-                               document2.add(paragraph);
+//                               if (StrUtil.isBlank(content)) content = "     ";
+//                               paragraph = new Paragraph(content, defaultFont);
+//                               paragraph.setAlignment(Element.ALIGN_LEFT);
+//                               document2.add(paragraph);
+                               if (StrUtil.isNotBlank(content) && StrUtil.isNotBlank(content.trim())){
+                                   paragraph = new Paragraph(content, defaultFont);
+                                   paragraph.setAlignment(Element.ALIGN_LEFT);
+                                   document2.add(paragraph);
+                               }
                            }
                            index++;
                            paragraph = PdfUtils.setParagraph(defaultFont, "");
@@ -1157,24 +1193,27 @@
                paragraph = PdfUtils.setParagraph(defaultFont, "");
                document2.add(paragraph);
            }
-           paragraph = PdfUtils.setParagraph(defaultTitleFont, "鎬绘鍖荤敓寤鸿锛�");
-           document2.add(paragraph);
-           if (tjOrder.getCheckAdvice() == null) {
-               paragraph = PdfUtils.setParagraph(defaultFont, "鏃�");
+           if (!zjjyandqmgzIstopFlag){
+               paragraph = PdfUtils.setParagraph(defaultTitleFont, "鎬绘鍖荤敓寤鸿锛�");
                document2.add(paragraph);
-           } else {
-               Paragraph paragraphs = new Paragraph(tjOrder.getCheckAdvice(), defaultFont);
-               //璁剧疆鏂囧瓧灞呬腑
-               paragraphs.setAlignment(Element.ALIGN_LEFT);
-               //琛岄棿璺�
+               if (tjOrder.getCheckAdvice() == null) {
+                   paragraph = PdfUtils.setParagraph(defaultFont, "鏃�");
+                   document2.add(paragraph);
+               } else {
+                   Paragraph paragraphs = new Paragraph(tjOrder.getCheckAdvice(), defaultFont);
+                   //璁剧疆鏂囧瓧灞呬腑
+                   paragraphs.setAlignment(Element.ALIGN_LEFT);
+                   //琛岄棿璺�
 //            paragraphs.setLeading(5f);
-               //璁剧疆娈佃惤涓婄┖鐧�
-               paragraphs.setSpacingBefore(10f);
-               //璁剧疆娈佃惤涓嬬┖鐧�
-               paragraphs.setSpacingAfter(10f);
+                   //璁剧疆娈佃惤涓婄┖鐧�
+                   paragraphs.setSpacingBefore(10f);
+                   //璁剧疆娈佃惤涓嬬┖鐧�
+                   paragraphs.setSpacingAfter(10f);
 //            paragraph = PdfUtils.setParagraph(defaultFont, tjOrder.getCheckAdvice());
-               document2.add(paragraphs);
+                   document2.add(paragraphs);
+               }
            }
+
 
 
            Paragraph paragraphNone = new Paragraph("", defaultFont);
@@ -1193,124 +1232,16 @@
            document2.add(paragraphNone);
 
 
-           PdfPTable tableQz = new PdfPTable(new float[]{100f, 100f, 50f});
-           tableQz.setTotalWidth(PageSize.A4.getWidth() - 100);
-           tableQz.setLockedWidth(true);
-           tableQz.setHorizontalAlignment(Element.ALIGN_LEFT);
-           tableQz.getDefaultCell().setBorder(0);
-           tableQz.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
 
-           Font zongJianFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE);
-           Font zongJianTitleFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE);
-           zongJianTitleFont.setStyle(Font.BOLD);
-
-           for (int i = 0; i < 3; i++) {
-               PdfPCell cell = new PdfPCell();
-               cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-               cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
-               cell.setPhrase(new Phrase("", defaultFont));
-               cell.setBorder(Rectangle.NO_BORDER);
-               tableQz.addCell(cell);
+           if (!zjjyandqmgzIstopFlag){
+               makeZjjyAndQmgzTab(tjOrder, zongJianYiShiQianMing, zongJianFont, zongJianTitleFont, value, document2, defaultFont);
            }
-
-
-           PdfPCell cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
-           cell.setPhrase(new Phrase("", defaultFont));
-           cell.setRowspan(3);
-           tableQz.addCell(cell);
-
-           cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
-           cell.setPaddingTop(10);
-           cell.setPaddingBottom(10);
-           cell.setPaddingRight(4);
-           cell.setPhrase(new Phrase("浣撴鍗曚綅鐩栫珷:", zongJianTitleFont));
-
-           tableQz.addCell(cell);
-
-           File file = new File(value + File.separator + "yinzhang.png");
-           cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
-           cell.setPaddingTop(10);
-           cell.setPaddingBottom(10);
-           cell.setPaddingRight(4);
-           if (!file.exists()) {
-               cell.setPhrase(new Phrase("", zongJianFont));
-           }else {
-               FileInputStream fileInputStream = new FileInputStream(file);
-               byte[] fileBytes = new byte[(int) file.length()];
-               fileInputStream.read(fileBytes);
-               fileInputStream.close();
-               Image image = Image.getInstance(Base64.getDecoder().decode(Base64.getEncoder().encodeToString(fileBytes)));
-               image.scaleToFit(90, 90);
-               cell.addElement(image);
-           }
-           tableQz.addCell(cell);
-
-           cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
-           cell.setPaddingTop(10);
-           cell.setPaddingBottom(10);
-           cell.setPaddingRight(4);
-           cell.setPhrase(new Phrase("鎬绘鍖诲笀:", zongJianTitleFont));
-           tableQz.addCell(cell);
-
-
-           cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-           cell.setPaddingTop(10);
-           cell.setPaddingBottom(10);
-           cell.setPaddingRight(4);
-           String zongjianysname = sysConfigService.selectConfigByKey("pdf_report_zongjianysname");
-           if (zongJianYiShiQianMing == null && StrUtil.isNotBlank(zongjianysname) && !zongjianysname.equals("鏃�")) {
-               cell.setPhrase(new Phrase(zongjianysname, zongJianFont));
-               tableQz.addCell(cell);
-           } else if (zongJianYiShiQianMing == null && zongjianysname.equals("鏃�")) {
-               String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
-               cell.setPhrase(new Phrase(nickName, zongJianFont));
-               tableQz.addCell(cell);
-           } else {
-               byte[] bytes = Base64.getDecoder().decode(zongJianYiShiQianMing.getTemplate());
-               Image image = Image.getInstance(bytes);
-               image.scaleToFit(100, 100);
-               cell.addElement(image);
-               tableQz.addCell(cell);
-           }
-
-           cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
-           cell.setPaddingTop(10);
-           cell.setPaddingBottom(10);
-           cell.setPaddingRight(4);
-           cell.setPhrase(new Phrase("鎬绘鏃ユ湡:", zongJianTitleFont));
-           tableQz.addCell(cell);
-
-           cell = new PdfPCell();
-           cell.setBorder(Rectangle.NO_BORDER);
-           cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
-           cell.setHorizontalAlignment(Element.ALIGN_CENTER);
-           cell.setPaddingTop(10);
-           cell.setPaddingBottom(10);
-           cell.setPaddingRight(4);
-           cell.setPhrase(new Phrase(new SimpleDateFormat("yyyy-MM-dd").format(tjOrder.getCheckTime()), zongJianFont));
-           tableQz.addCell(cell);
-
-           document2.add(tableQz);
-
            document2.close();
+
+
+           zongJianFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE);
+           zongJianTitleFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE);
+           zongJianTitleFont.setStyle(Font.BOLD);
 
 
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
@@ -1511,6 +1442,210 @@
         }
     }
 
+    private void makeZjjyAndQmgzTab(TjOrder tjOrder, TjReportTemplate zongJianYiShiQianMing, Font zongJianFont, Font zongJianTitleFont, String value, Document document2, Font defaultFont) throws IOException, DocumentException {
+        PdfPCell cell;
+        String pdfQzgzpailie = sysConfigService.selectConfigByKey("pdf_qzgzpailie");
+        if (StrUtil.isNotBlank(pdfQzgzpailie) && pdfQzgzpailie.equalsIgnoreCase("h")){
+            zongJianFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE - 2);
+            zongJianTitleFont = PdfUtils.setFont(DEFAULT_ZONGJIAN_FONT_SIZE - 2);
+            zongJianTitleFont.setStyle(Font.BOLD);
+            PdfPTable tableQz = new PdfPTable(new float[]{90f, 90f, 60f, 60f, 60f, 60f});
+            tableQz.setTotalWidth(PageSize.A4.getWidth() - 100);
+            tableQz.setLockedWidth(true);
+            tableQz.setHorizontalAlignment(Element.ALIGN_LEFT);
+            tableQz.getDefaultCell().setBorder(1);
+            tableQz.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
+
+            cell = new PdfPCell(new Phrase("浣撴鍗曚綅鐩栫珷:", zongJianTitleFont));
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPadding(10);
+            tableQz.addCell(cell);
+
+            File file = new File(value + File.separator + "yinzhang.png");
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
+            cell.setPadding(10);
+            if (!file.exists()) {
+                cell.setPhrase(new Phrase("", zongJianFont));
+            } else {
+                FileInputStream fileInputStream = new FileInputStream(file);
+                byte[] fileBytes = new byte[(int) file.length()];
+                fileInputStream.read(fileBytes);
+                fileInputStream.close();
+                Image image = Image.getInstance(Base64.getDecoder().decode(Base64.getEncoder().encodeToString(fileBytes)));
+                image.scaleToFit(60, 60);
+                cell.addElement(image);
+            }
+            tableQz.addCell(cell);
+
+            cell = new PdfPCell(new Phrase("鎬绘鍖诲笀:", zongJianTitleFont));
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPadding(10);
+            tableQz.addCell(cell);
+
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
+            cell.setPadding(10);
+
+            String zongjianysname = sysConfigService.selectConfigByKey("pdf_report_zongjianysname");
+            if (zongJianYiShiQianMing == null && StrUtil.isNotBlank(zongjianysname) && !zongjianysname.equals("鏃�")) {
+                cell.setPhrase(new Phrase(zongjianysname, zongJianFont));
+            } else if (zongJianYiShiQianMing == null && zongjianysname.equals("鏃�")) {
+                String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+                cell.setPhrase(new Phrase(nickName, zongJianFont));
+            } else {
+                byte[] bytes = Base64.getDecoder().decode(zongJianYiShiQianMing.getTemplate());
+                Image image = Image.getInstance(bytes);
+                image.scaleToFit(60, 60);
+//                cell.addElement(image);
+
+//                cell.setPaddingTop(5);
+//                cell.setPaddingBottom(15);
+                String pdfSfsgqz = sysConfigService.selectConfigByKey("pdf_sfsgqz");
+                if (StrUtil.isNotBlank(pdfSfsgqz) && pdfSfsgqz.equalsIgnoreCase("Y")) {
+                    cell.setVerticalAlignment(Element.ALIGN_TOP);
+                }
+                cell.setImage(image);
+            }
+            tableQz.addCell(cell);
+
+            cell = new PdfPCell(new Phrase("鎬绘鏃ユ湡:", zongJianTitleFont));
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPadding(10);
+            tableQz.addCell(cell);
+
+            cell = new PdfPCell(new Phrase(new SimpleDateFormat("yyyy-MM-dd").format(tjOrder.getCheckTime()), zongJianFont));
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
+            cell.setPadding(10);
+            tableQz.addCell(cell);
+            document2.add(tableQz);
+        } else {
+            PdfPTable tableQz = new PdfPTable(new float[]{90f, 90f, 70f});
+            tableQz.setTotalWidth(PageSize.A4.getWidth() - 100);
+            tableQz.setLockedWidth(true);
+            tableQz.setHorizontalAlignment(Element.ALIGN_LEFT);
+//            tableQz.getDefaultCell().setBorder(1);
+            tableQz.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
+
+            for (int i = 0; i < 3; i++) {
+                cell = new PdfPCell();
+                cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+                cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+                cell.setPhrase(new Phrase("", defaultFont));
+                cell.setBorder(Rectangle.NO_BORDER);
+                tableQz.addCell(cell);
+            }
+
+
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPhrase(new Phrase("", defaultFont));
+            cell.setRowspan(3);
+            tableQz.addCell(cell);
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPaddingTop(10);
+            cell.setPaddingBottom(10);
+//            cell.setPaddingRight(50);
+            cell.setPhrase(new Phrase("浣撴鍗曚綅鐩栫珷:", zongJianTitleFont));
+
+            tableQz.addCell(cell);
+
+            File file = new File(value + File.separator + "yinzhang.png");
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+            cell.setPaddingTop(10);
+            cell.setPaddingBottom(10);
+//            cell.setPaddingRight(50);
+            if (!file.exists()) {
+                cell.setPhrase(new Phrase("", zongJianFont));
+            }else {
+                FileInputStream fileInputStream = new FileInputStream(file);
+                byte[] fileBytes = new byte[(int) file.length()];
+                fileInputStream.read(fileBytes);
+                fileInputStream.close();
+                Image image = Image.getInstance(Base64.getDecoder().decode(Base64.getEncoder().encodeToString(fileBytes)));
+                image.scaleToFit(90, 90);
+                cell.addElement(image);
+            }
+            tableQz.addCell(cell);
+
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPaddingTop(10);
+            cell.setPaddingBottom(10);
+//            cell.setPaddingRight(50);
+            cell.setPhrase(new Phrase("鎬绘鍖诲笀:", zongJianTitleFont));
+            tableQz.addCell(cell);
+
+
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+            cell.setPaddingTop(10);
+            cell.setPaddingBottom(10);
+//            cell.setPaddingRight(50);
+            String zongjianysname = sysConfigService.selectConfigByKey("pdf_report_zongjianysname");
+            if (zongJianYiShiQianMing == null && StrUtil.isNotBlank(zongjianysname) && !zongjianysname.equals("鏃�")) {
+                cell.setPhrase(new Phrase(zongjianysname, zongJianFont));
+                tableQz.addCell(cell);
+            } else if (zongJianYiShiQianMing == null && zongjianysname.equals("鏃�")) {
+                String nickName = SecurityUtils.getLoginUser().getUser().getNickName();
+                cell.setPhrase(new Phrase(nickName, zongJianFont));
+                tableQz.addCell(cell);
+            } else {
+                byte[] bytes = Base64.getDecoder().decode(zongJianYiShiQianMing.getTemplate());
+                Image image = Image.getInstance(bytes);
+                image.scaleToFit(100, 100);
+                cell.addElement(image);
+                tableQz.addCell(cell);
+            }
+
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
+            cell.setPaddingTop(10);
+            cell.setPaddingBottom(10);
+//            cell.setPaddingRight(50);
+            cell.setPhrase(new Phrase("鎬绘鏃ユ湡:", zongJianTitleFont));
+            tableQz.addCell(cell);
+
+            cell = new PdfPCell();
+            cell.setBorder(Rectangle.NO_BORDER);
+            cell.setVerticalAlignment(Element.ALIGN_MIDDLE);
+            cell.setHorizontalAlignment(Element.ALIGN_LEFT);
+            cell.setPaddingTop(10);
+            cell.setPaddingBottom(10);
+//            cell.setPaddingRight(50);
+            cell.setPhrase(new Phrase(new SimpleDateFormat("yyyy-MM-dd").format(tjOrder.getCheckTime()), zongJianFont));
+            tableQz.addCell(cell);
+
+            document2.add(tableQz);
+        }
+    }
+
     /**
      * 鐢熸垚妫�鏌ヨ〃鏍�
      *
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
index 637fa40..0c940f0 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
@@ -7,8 +7,10 @@
 
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.ltkj.common.core.domain.entity.SysUser;
 import com.ltkj.common.core.domain.model.LoginUser;
 import com.ltkj.common.utils.SecurityUtils;
@@ -133,6 +135,21 @@
         return AjaxResult.success();
     }
 
+    @Log(title = "鍏憡宸茶", businessType = BusinessType.UPDATE)
+    @PostMapping("readNotice")
+    public AjaxResult read(@RequestBody String json){
+        JSONObject entries = JSONUtil.parseObj(json);
+        String noticeId = entries.getStr("noticeId");
+        LambdaUpdateWrapper<SysNoticeUser> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(SysNoticeUser::getNoticeId, noticeId);
+        wrapper.eq(SysNoticeUser::getUserId, getUserId());
+        wrapper.set(SysNoticeUser::getIsRead, 1);
+        boolean update = sysNoticeUserService.update(wrapper);
+        if (update) {
+            return success();
+        }else return error();
+    }
+
     /**
      * 淇敼閫氱煡鍏憡
      */
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java b/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java
index 5bdaba0..b929174 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java
@@ -1,8 +1,14 @@
 package com.ltkj.web.websocket;
 
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.core.domain.model.LoginUser;
+import com.ltkj.hosp.domain.SysNoticeUser;
+import com.ltkj.hosp.service.SysNoticeUserService;
+import com.ltkj.system.domain.SysNotice;
+import com.ltkj.system.service.ISysNoticeService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.socket.CloseStatus;
 import org.springframework.web.socket.TextMessage;
@@ -11,6 +17,7 @@
 import redis.clients.jedis.util.SafeEncoder;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
@@ -23,6 +30,11 @@
 @Slf4j
 @Component
 public class WebSockerManager extends TextWebSocketHandler {
+
+    @Autowired
+    private SysNoticeUserService noticeUserService;
+    @Autowired
+    private ISysNoticeService noticeService;
 
     public final ConcurrentHashMap<String, ClientSessionInfo> userSessions = new ConcurrentHashMap<>();
     private static final ConcurrentHashMap<String, WebSocketClientInfo> sessions = new ConcurrentHashMap<>();
@@ -50,6 +62,16 @@
         userSessions.put(String.valueOf(clientInfo.getUid()), sessionInfo);
         session.sendMessage(new TextMessage("杩炴帴鎴愬姛"));
         log.info("[WebSocket] 鍦ㄧ嚎鍒楄〃UserIds\n{}",JSONUtil.toJsonStr(new ArrayList<>(userSessions.keySet())));
+        LambdaQueryWrapper<SysNoticeUser> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SysNoticeUser::getUserId,clientInfo.getUid());
+        wrapper.eq(SysNoticeUser::getIsRead,0);
+        List<SysNoticeUser> list = noticeUserService.list(wrapper);
+        if (list != null && !list.isEmpty()){
+            List<Long> noticeIds = list.stream().map(SysNoticeUser::getNoticeId).collect(Collectors.toList());
+            for (Long noticeId : noticeIds) {
+                session.sendMessage(new TextMessage(JSONUtil.toJsonStr(noticeService.getById(noticeId))));
+            }
+        }
     }
 
     @Override
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/SysNoticeUser.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/SysNoticeUser.java
index c1ae230..80ab863 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/SysNoticeUser.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/domain/SysNoticeUser.java
@@ -5,31 +5,42 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import lombok.Data;
 
 /**
- * 
+ *
  * @TableName sys_notice_user
  */
 @TableName(value ="sys_notice_user")
 @Data
 public class SysNoticeUser implements Serializable {
     /**
-     * 
+     *
      */
     @TableId
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     /**
-     * 
+     *
      */
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long noticeId;
 
     /**
-     * 
+     *
      */
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long userId;
+
+    /**
+     * 鏄惁宸茶
+     */
+    private Integer isRead;
 
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0