From 61f34419e094f2363276d614a960b379cc456482 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期二, 20 五月 2025 10:37:15 +0800
Subject: [PATCH] 业务代码合并

---
 cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java |   71 +++++++++++++++++++++++------------
 1 files changed, 47 insertions(+), 24 deletions(-)

diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
index 27638db..e8da9e5 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
@@ -14,16 +14,19 @@
 import com.deepoove.poi.XWPFTemplate;
 import com.deepoove.poi.config.Configure;
 import com.deepoove.poi.data.Pictures;
+import com.ruoyi.common.constant.MenuJumpPathConstants;
 import com.ruoyi.common.core.domain.entity.InformationNotification;
 import com.ruoyi.common.core.domain.entity.User;
 import com.ruoyi.common.utils.DateImageUtil;
 import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.WxCpUtils;
+import com.ruoyi.device.pojo.DeviceExamineRecord;
 import com.ruoyi.framework.exception.ErrorException;
 import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
 import com.ruoyi.inspect.util.UserUtils;
 import com.ruoyi.inspect.util.XWPFDocumentUtils;
+import com.ruoyi.process.dto.QualityMonitorDetailsDto;
 import com.ruoyi.process.dto.QualityMonitorDetailsEvaluateDto;
 import com.ruoyi.process.dto.QualityMonitorDto;
 import com.ruoyi.process.excel.QualityMonitorDetailsUpload;
@@ -128,7 +131,7 @@
         info.setSenderId(userId);
         // 鎺ユ敹浜�
         info.setConsigneeId(monitor.getExamineUserId());
-        info.setJumpPath("a7-Ensure-results-validity");
+        info.setJumpPath(MenuJumpPathConstants.QUALITY_MONITOR);
         informationNotificationService.addInformationNotification(info);
 
         // 鍙戦�佷紒涓氬井淇¢�氱煡
@@ -215,7 +218,7 @@
         info.setSenderId(userId);
         // 鎺ユ敹浜�
         info.setConsigneeId(qualityMonitor.getRatifyUserId());
-        info.setJumpPath("a7-Ensure-results-validity");
+        info.setJumpPath(MenuJumpPathConstants.QUALITY_MONITOR);
         informationNotificationService.addInformationNotification(info);
 
         // 鍙戦�佷紒涓氬井淇¢�氱煡
@@ -272,7 +275,7 @@
      * @return
      */
     @Override
-    public IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, QualityMonitorDetails qualityMonitorDetails) {
+    public IPage<QualityMonitorDetailsDto> pageQualityMonitorDetail(Page page, QualityMonitorDetails qualityMonitorDetails) {
         if (qualityMonitorDetails.getQualityMonitorId() == null) {
             return new Page();
         }
@@ -370,6 +373,7 @@
             template.write(os);
             os.flush();
             os.close();
+            inputStream.close();
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException("瀵煎嚭澶辫触");
@@ -439,7 +443,7 @@
             info.setSenderId(userId);
             // 鎺ユ敹浜�
             info.setConsigneeId(qualityMonitorDetailsRatify.getRatifyUserId());
-            info.setJumpPath("a7-Ensure-results-validity");
+            info.setJumpPath(MenuJumpPathConstants.QUALITY_MONITOR);
             informationNotificationService.addInformationNotification(info);
 
             // 鍙戦�佷紒涓氬井淇¢�氱煡
@@ -458,7 +462,10 @@
                 }
             });
         }
-
+        // 娓呯┖鐘舵��
+        qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate()
+                .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId())
+                .set(QualityMonitorDetailsRatify::getIsFinish, null));
         return true;
     }
 
@@ -469,10 +476,16 @@
      */
     @Override
     public boolean addQualityMonitorRatifyOpinion(QualityMonitorDetailsRatify qualityMonitorDetailsRatify) {
-        qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate()
+        LambdaUpdateWrapper<QualityMonitorDetailsRatify> wrapper = Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate()
                 .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId())
                 .set(QualityMonitorDetailsRatify::getRatifyOpinion, qualityMonitorDetailsRatify.getRatifyOpinion())
-                .set(QualityMonitorDetailsRatify::getIsFinish, 1));
+                .set(QualityMonitorDetailsRatify::getIsFinish, qualityMonitorDetailsRatify.getIsFinish());
+        // 涓�0娓呴櫎瀹℃牳浜�
+        if (qualityMonitorDetailsRatify.getIsFinish().equals(0)) {
+            wrapper.set(QualityMonitorDetailsRatify::getRatifyUserId, null);
+        }
+
+        qualityMonitorDetailsRatifyService.update(wrapper);
         return true;
     }
 
@@ -507,6 +520,7 @@
             template.write(os);
             os.flush();
             os.close();
+            inputStream.close();
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException("瀵煎嚭澶辫触");
@@ -553,7 +567,7 @@
             info.setSenderId(userId);
             // 鎺ユ敹浜�
             info.setConsigneeId(qualityMonitorDetailsEvaluate.getRatifyUserId());
-            info.setJumpPath("a7-Ensure-results-validity");
+            info.setJumpPath(MenuJumpPathConstants.QUALITY_MONITOR);
             informationNotificationService.addInformationNotification(info);
 
             // 鍙戦�佷紒涓氬井淇¢�氱煡
@@ -587,7 +601,7 @@
                 info.setSenderId(userId);
                 // 鎺ユ敹浜�
                 info.setConsigneeId(qualityMonitorDetailsEvaluate.getImplementUserId());
-                info.setJumpPath("a7-Ensure-results-validity");
+                info.setJumpPath(MenuJumpPathConstants.QUALITY_MONITOR);
                 informationNotificationService.addInformationNotification(info);
 
                 // 鍙戦�佷紒涓氬井淇¢�氱煡
@@ -629,13 +643,13 @@
 
     /**
      * 鏂板鐩戞帶璇勪环闄勪欢琛�
-     * @param detailsEvaluateId
+     * @param qualityMonitorDetailsId
      * @param file
      * @return
      */
     @Override
-    public boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) {
-        if (detailsEvaluateId == null) {
+    public boolean uploadEvaluateFile(Integer qualityMonitorDetailsId, MultipartFile file) {
+        if (qualityMonitorDetailsId == null) {
             throw new ErrorException("缂哄皯鐩戞帶璇︽儏id");
         }
 
@@ -645,7 +659,7 @@
         String filename = file.getOriginalFilename();
         String contentType = file.getContentType();
         QualityMonitorDetailsEvaluateFile evaluateFile = new QualityMonitorDetailsEvaluateFile();
-        evaluateFile.setDetailsEvaluateId(detailsEvaluateId);
+        evaluateFile.setDetailsEvaluateId(qualityMonitorDetailsId);
         evaluateFile.setFileName(filename);
         if (contentType != null && contentType.startsWith("image/")) {
             // 鏄浘鐗�
@@ -679,9 +693,9 @@
      * @return
      */
     @Override
-    public List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId) {
+    public List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer qualityMonitorDetailsId) {
         return qualityMonitorDetailsEvaluateFileMapper.selectList(Wrappers.<QualityMonitorDetailsEvaluateFile>lambdaQuery()
-                .eq(QualityMonitorDetailsEvaluateFile::getDetailsEvaluateId, detailsEvaluateId));
+                .eq(QualityMonitorDetailsEvaluateFile::getDetailsEvaluateId, qualityMonitorDetailsId));
     }
 
 
@@ -698,7 +712,7 @@
         BeanUtils.copyProperties(qualityMonitorDetailsEvaluate, qualityMonitorDetailsEvaluateDto);
         // 鏍煎紡鍖栨椂闂�
         DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        qualityMonitorDetailsEvaluateDto.setRatifyTimeStr(qualityMonitorDetailsEvaluate.getRatifyTime().format(dateTimeFormatter));
+        qualityMonitorDetailsEvaluateDto.setRatifyTimeStr(qualityMonitorDetailsEvaluate.getRatifyTime() == null ? null : qualityMonitorDetailsEvaluate.getRatifyTime().format(dateTimeFormatter));
         // 鑾峰彇璺緞
         InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor-evaluate.docx");
         Configure configure = Configure.builder()
@@ -720,6 +734,7 @@
             template.write(os);
             os.flush();
             os.close();
+            inputStream.close();
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException("瀵煎嚭澶辫触");
@@ -739,9 +754,9 @@
         if (qualityMonitorDetailsId == null) {
             throw new ErrorException("缂哄皯鐩戞帶璇︽儏id");
         }
-
+        LocalDateTime now = LocalDateTime.now();
         Integer userId =SecurityUtils.getUserId().intValue();
-
+        String contentType = file.getContentType();
         String urlString;
         String pathName;
         try {
@@ -754,12 +769,18 @@
             urlString = realpath + "/" + pathName;
             file.transferTo(new File(urlString));
 
-            wordInsertUrl(new HashMap<String, Object>() {{
-                put("writeUrl", UserUtils.getFinalUserSignatureUrl(userId));
-            }}, wordUrl + "/" + pathName.replace("/word", wordUrl));
+            // 鍒ゆ柇鏄惁鏄痯df
+            if (!contentType.contains("pdf")) {
+                wordInsertUrl(new HashMap<String, Object>() {{
+                    put("writeUrl", UserUtils.getFinalUserSignatureUrl(userId));
+                    put("writeDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(now)).create());
+                }}, wordUrl + "/" + pathName.replace("/word", wordUrl));
+            }
+
             qualityMonitorDetailsService.update(Wrappers.<QualityMonitorDetails>lambdaUpdate()
                     .eq(QualityMonitorDetails::getQualityMonitorDetailsId, qualityMonitorDetailsId)
-                    .set(QualityMonitorDetails::getFinishReportUrl, pathName));
+                    .set(QualityMonitorDetails::getFinishReportUrl, pathName)
+                    .set(QualityMonitorDetails::getWriteTime, now));
 
             return true;
         } catch (Exception e) {
@@ -775,13 +796,14 @@
      */
     @Override
     public boolean ratifyFinishReport(QualityMonitorDetails qualityMonitorDetails) {
+        LocalDateTime now = LocalDateTime.now();
         Integer userId =SecurityUtils.getUserId().intValue();
         LambdaUpdateWrapper<QualityMonitorDetails> wrapper = Wrappers.<QualityMonitorDetails>lambdaUpdate()
                 .eq(QualityMonitorDetails::getQualityMonitorDetailsId, qualityMonitorDetails.getQualityMonitorDetailsId())
                 .set(QualityMonitorDetails::getRatifyUserId, userId)
                 .set(QualityMonitorDetails::getRatifyRemark, qualityMonitorDetails.getRatifyRemark())
                 .set(QualityMonitorDetails::getRatifyStatus, qualityMonitorDetails.getRatifyStatus())
-                .set(QualityMonitorDetails::getRatifyTime, LocalDateTime.now());
+                .set(QualityMonitorDetails::getRatifyTime, now);
         if (qualityMonitorDetails.getRatifyStatus().equals(0)) {
             wrapper.set(QualityMonitorDetails::getFinishReportUrl, null);
         }
@@ -789,9 +811,10 @@
 
         // 娣诲姞鎵瑰噯浜�
         QualityMonitorDetails details = qualityMonitorDetailsMapper.selectById(qualityMonitorDetails.getQualityMonitorDetailsId());
-        if (StringUtils.isNotBlank(details.getFinishReportUrl())) {
+        if (StringUtils.isNotBlank(details.getFinishReportUrl()) && !details.getFinishReportUrl().contains(".pdf")) {
             wordInsertUrl(new HashMap<String, Object>() {{
                 put("ratifyUrl", UserUtils.getFinalUserSignatureUrl(userId));
+                put("ratifyDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(now)).create());
             }}, wordUrl + "/" + details.getFinishReportUrl().replace("/word", wordUrl));
         }
         return true;

--
Gitblit v1.9.3