From da59bd81334e7b4ddeaaa401f27c5b93797fde46 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期四, 20 二月 2025 10:36:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java | 123 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 123 insertions(+), 0 deletions(-) diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java new file mode 100644 index 0000000..091a66d --- /dev/null +++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageRiskAssessmentResultsServiceImpl.java @@ -0,0 +1,123 @@ +package com.ruoyi.manage.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.data.Pictures; +import com.ruoyi.common.utils.DateImageUtil; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; +import com.ruoyi.manage.mapper.ManageRiskAssessmentResultsMapper; +import com.ruoyi.manage.pojo.ManageRiskAssessmentResults; +import com.ruoyi.manage.service.ManageRiskAssessmentResultsService; +import com.ruoyi.manage.vo.ManageRiskAssessmentResultsVo; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.util.HashMap; + +/** + * <p> + * 鍗遍櫓鍥犵礌杈ㄨ瘑涓庨闄╄瘎浠风粨鏋滀竴瑙堣〃 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃 + * @since 2024-11-15 02:58:51 + */ +@Service +public class ManageRiskAssessmentResultsServiceImpl extends ServiceImpl<ManageRiskAssessmentResultsMapper, ManageRiskAssessmentResults> implements ManageRiskAssessmentResultsService { + + @Autowired + private UserMapper userMapper; + + @Value("${file.path}") + private String imgUrl; + + @Override + public IPage<ManageRiskAssessmentResultsVo> getPageResults(Page page) { + return baseMapper.getPageResults(page, false); + } + + @Override + public void exportPersonTraining(HttpServletResponse response) { + // 鏌ヨ璇︽儏 + IPage<ManageRiskAssessmentResultsVo> detailedDtos = baseMapper.getPageResults(new Page(1, -1), true); + if (detailedDtos.getRecords().isEmpty()) { + throw new ErrorException("瀹℃牳閫氳繃鐨勬暟鎹负绌猴紒璇峰鏍搁�氳繃鍚庡湪瀵煎嚭"); + } + ManageRiskAssessmentResultsVo manageRiskAssessmentResultsVo = detailedDtos.getRecords().get(0); + + //鑾峰彇缂栧埗浜虹殑绛惧悕鍦板潃 + String writeUrl = userMapper.selectById(manageRiskAssessmentResultsVo.getEditor()).getSignatureUrl(); + if (ObjectUtils.isEmpty(writeUrl) || writeUrl.equals("")) { + throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); + } + + //鑾峰彇澶嶆牳浜虹殑绛惧悕鍦板潃 + String examineUrl = null; + if (manageRiskAssessmentResultsVo.getApproval() != null) { + examineUrl = userMapper.selectById(manageRiskAssessmentResultsVo.getApproval()).getSignatureUrl(); + if (StringUtils.isBlank(examineUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃 + String ratifyUrl = null; + if (manageRiskAssessmentResultsVo.getApproval() != null) { + ratifyUrl = userMapper.selectById(manageRiskAssessmentResultsVo.getApproval()).getSignatureUrl(); + if (StringUtils.isBlank(ratifyUrl)) { + throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�"); + } + } + + int index = 1; + for (ManageRiskAssessmentResultsVo detailedDto : detailedDtos.getRecords()) { + detailedDto.setIndex(index); + index++; + } + // 鑾峰彇璺緞 + InputStream inputStream = this.getClass().getResourceAsStream("/static/risk-factor-identification-risk.docx"); + String finalExamineUrl = examineUrl; + String finalRatifyUrl = ratifyUrl; + Configure configure = Configure.builder() + .bind("trainingDetailedList", new HackLoopTableRenderPolicy()) + .build(); + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("trainingDetailedList", detailedDtos.getRecords()); + put("writeUrl", StringUtils.isNotBlank(writeUrl) ? Pictures.ofLocal(imgUrl + "/" + writeUrl).create() : null); + put("examineUrl", StringUtils.isNotBlank(finalExamineUrl) ? Pictures.ofLocal(imgUrl + "/" + finalExamineUrl).create() : null); + put("ratifyUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); + put("writeDateUrl", manageRiskAssessmentResultsVo.getEditorDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(manageRiskAssessmentResultsVo.getEditorDate())).create() : null); + put("examineDateUrl", manageRiskAssessmentResultsVo.getApproveDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(manageRiskAssessmentResultsVo.getApproveDate())).create() : null); + put("ratifyDateUrl", manageRiskAssessmentResultsVo.getApproveDate() != null ? + Pictures.ofStream(DateImageUtil.createDateImage(manageRiskAssessmentResultsVo.getApproveDate())).create() : null); + }}); + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + "鍗遍櫓鍥犵礌杈ㄨ瘑涓庨闄╄瘎浠风粨鏋滀竴瑙�", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } +} -- Gitblit v1.9.3