package com.yuanchu.mom.service.impl; import cn.hutool.core.lang.UUID; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.pojo.ProcessComplain; import com.yuanchu.mom.pojo.ProcessEvaluate; import com.yuanchu.mom.mapper.ProcessEvaluateMapper; import com.yuanchu.mom.service.ProcessEvaluateService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.QueryWrappers; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.net.URLEncoder; import java.time.LocalDate; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 测量不确定度的评价 服务实现类 *

* * @author * @since 2024-11-02 01:10:43 */ @Service @Transactional(rollbackFor = Exception.class) public class ProcessEvaluateServiceImpl extends ServiceImpl implements ProcessEvaluateService { @Resource private ProcessEvaluateMapper processEvaluateMapper; @Resource GetLook getLook; @Value("${wordUrl}") private String wordUrl; @Override public Map pageProcessEvaluate(Page page, ProcessEvaluate processEvaluate) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(ProcessEvaluate.class)); Map map1 = getLook.selectPowerByMethodAndUserId("pageProcessEvaluate"); if (map1.get("look") == 1) processEvaluate.setCreateUser(map1.get("userId")); map.put("body", processEvaluateMapper.pageProcessEvaluate(page, QueryWrappers.queryWrappers(processEvaluate))); return map; } @Override public int addProcessEvaluate(MultipartFile file) { String urlString; String pathName; String path=wordUrl; ProcessEvaluate processEvaluate = new ProcessEvaluate(); processEvaluate.setReportName(file.getOriginalFilename()); try { File realpath = new File(path); if (!realpath.exists()) { realpath.mkdirs(); } pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); urlString = realpath + "/" + pathName; file.transferTo(new File(urlString)); processEvaluate.setReportUrl(pathName); return processEvaluateMapper.insert(processEvaluate); } catch (Exception e) { e.printStackTrace(); System.err.println("附件上传错误"); return 0; } } @Override public int doProcessEvaluate(ProcessEvaluate processEvaluate) { return processEvaluateMapper.updateById(processEvaluate); } @Override public void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception{ List data = processEvaluateMapper.pageProcessEvaluate(new Page(-1, -1), QueryWrappers.queryWrappers(processEvaluate)).getRecords(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); String fileName = URLEncoder.encode("测量不确定度的评定导出", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); try { // 新建ExcelWriter ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); WriteSheet mainSheet = EasyExcel.writerSheet(0, "测量不确定度的评定导出").head(ProcessEvaluate.class).build(); excelWriter.write(data, mainSheet); // 关闭流 excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("导出失败"); } } }