zhuo
2025-05-07 50164d95bfe34f532e3f2513a53f62c0864fe1a2
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
@@ -21,6 +21,7 @@
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;
@@ -372,6 +373,7 @@
            template.write(os);
            os.flush();
            os.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
@@ -460,7 +462,10 @@
                }
            });
        }
        // 清空状态
        qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate()
                .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId())
                .set(QualityMonitorDetailsRatify::getIsFinish, null));
        return true;
    }
@@ -471,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;
    }
@@ -509,6 +520,7 @@
            template.write(os);
            os.flush();
            os.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
@@ -631,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");
        }
@@ -647,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/")) {
            // 是图片
@@ -681,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));
    }
@@ -700,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()
@@ -722,6 +734,7 @@
            template.write(os);
            os.flush();
            os.close();
            inputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
@@ -741,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 {
@@ -756,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));
            // 判断是否是pdf
            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) {
@@ -777,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);
        }
@@ -791,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;