From 1f15333b0a97a327865f7aab8f1e3f9ba8fc16f8 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 18 十月 2024 12:45:59 +0800 Subject: [PATCH] 电路站点报告调试+总报告ing --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++++++---- 1 files changed, 114 insertions(+), 12 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java index abf4187..d7805c8 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java @@ -1,12 +1,24 @@ package com.yuanchu.mom.service.impl; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.aspose.words.*; +import com.aspose.words.Document; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.data.Pictures; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.deepoove.poi.data.*; +import com.deepoove.poi.data.style.*; +import com.deepoove.poi.data.style.Style; +import com.deepoove.poi.data.style.TableStyle; +import com.deepoove.poi.util.TableTools; import com.itextpdf.text.BadElementException; import com.itextpdf.text.DocumentException; import com.itextpdf.text.pdf.PdfContentByte; @@ -14,17 +26,24 @@ import com.itextpdf.text.pdf.PdfStamper; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; +import com.yuanchu.mom.dto.InsReportDto; +import com.yuanchu.mom.dto.InsReportDto1; import com.yuanchu.mom.dto.ReportPageDto; +import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; -import com.yuanchu.mom.mapper.InsOrderMapper; -import com.yuanchu.mom.mapper.InsReportMapper; -import com.yuanchu.mom.mapper.UserMapper; -import com.yuanchu.mom.pojo.InsOrder; -import com.yuanchu.mom.pojo.InsReport; -import com.yuanchu.mom.pojo.User; +import com.yuanchu.mom.mapper.*; +import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.service.InsReportService; +import com.yuanchu.mom.service.StandardTemplateService; +import com.yuanchu.mom.utils.JackSonUtil; +import com.yuanchu.mom.utils.MatrixToImageWriter; import com.yuanchu.mom.utils.QueryWrappers; +import com.yuanchu.mom.utils.WordUtils; import com.yuanchu.mom.vo.Result; +import org.apache.commons.io.IOUtils; +import org.apache.logging.log4j.util.Strings; +import org.apache.poi.xwpf.usermodel.*; +import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; @@ -44,6 +63,8 @@ import java.util.*; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -73,8 +94,47 @@ @Value("${file.path}") private String imgUrl; + @Value("${twoCode}") + private String twoCode; + @Resource private InsOrderMapper insOrderMapper; + + @Resource + private StandardMethodListMapper standardMethodListMapper; + + @Resource + private InsOrderStateMapper insOrderStateMapper; + + @Resource + WordUtils wordUtils; + + @Resource + private InsProductMapper insProductMapper; + + @Resource + private InsProductResultMapper insProductResultMapper; + + @Resource + private InsProductResult2Mapper insProductResult2Mapper; + + @Resource + private InsOrderUserMapper insOrderUserMapper; + + @Resource + private InsSampleMapper insSampleMapper; + + @Resource + private InsSampleUserMapper insSampleUserMapper; + + @Resource + private CustomMapper customMapper; + + @Resource + private InsOrderFileMapper insOrderFileMapper; + + @Resource + private StandardTemplateService standardTemplateService; @Override public Map<String, Object> pageInsReport(Page page, ReportPageDto reportPageDto) { @@ -94,7 +154,7 @@ laboratory = departLims; } } - map.put("body", insReportMapper.pageInsReport(page, QueryWrappers.queryWrappers(reportPageDto),laboratory)); + map.put("body", insReportMapper.pageInsReport(page, QueryWrappers.queryWrappers(reportPageDto), laboratory)); return map; } @@ -171,7 +231,7 @@ //鎵瑰噯 @Override @Transactional(rollbackFor = Exception.class) - public int ratifyReport(Integer id, Integer isRatify, String ratifyTell,String sealUrl) { + public int ratifyReport(Integer id, Integer isRatify, String ratifyTell, String sealUrl) { InsReport insReport = insReportMapper.selectById(id); insReport.setIsRatify(isRatify); if (ObjectUtils.isNotEmpty(ratifyTell)) { @@ -286,7 +346,7 @@ for (File f : files) { // 鏍规嵁鏂囦欢鍚嶆煡璇d String name = f.getName(); - InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().like(InsReport::getCode, f.getName().replace(".docx", "").replace("JCZX", "JCZX/"))); + InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().like(InsReport::getCode, f.getName().replace(".docx", ""))); if (ObjectUtils.isEmpty(insReport)) { throw new ErrorException("娌℃湁鎵惧埌 " + f.getName() + " 杩欎釜鏂囦欢瀵瑰簲鐨勬姤鍛婃暟鎹�"); } @@ -303,8 +363,7 @@ // 澶嶅埗鏂囦欢鍒版寚瀹氳矾寰� Files.copy(f.toPath(), new File(urlString).toPath(), StandardCopyOption.REPLACE_EXISTING); inReport("/word/" + pathName, insReport.getId()); - } - catch (IOException e) { + } catch (IOException e) { throw new ErrorException("鏂囦欢涓婁紶澶辫触"); } } @@ -321,6 +380,36 @@ } } return 0; + } + + //鏄惁闇�瑕佺敓鎴愭姤鍛�: 0涓嶉渶瑕�;1闇�瑕� + @Override + @Transactional(rollbackFor = Exception.class) + public int isReport(InsReportDto insReportDto) { + //鍏堝垽鏂璁㈠崟鏄惁鍙互鍘荤敓浜ф姤鍛� + Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, insReportDto.getId()).eq(InsOrderState::getInsState, 5)); + if (count > 0) { + if (insReportDto.getState() == 1) { + List<InsReportDto1> insReportDto1s = insReportDto.getInsReportDto1s(); + wordUtils.generateReport(insReportDto.getId(), insReportDto1s); + } else { + //缁撴潫璁㈠崟 + InsOrder insOrder = new InsOrder(); + insOrder.setId(insReportDto.getId()); + insOrder.setState(4); + insOrderMapper.updateById(insOrder); + } + } else { + throw new ErrorException("璇ヨ鍗曡繕鏈粨鏉熻瘯楠�,鏃犳硶鐢熶骇鎶ュ憡!"); + } + return 0; + } + + //鏌ュ嚭璇ヨ鍗曚笅姣忎釜绔欑偣涓嬬殑妫�楠屾鏁� + @Override + public List<InsOrderState> getInsOrderStateCount(Integer id) { + List<InsOrderState> insOrderStates = insOrderStateMapper.getInsOrderStateCount(id); + return insOrderStates; } @@ -425,6 +514,19 @@ os = new FileOutputStream(file); //瑕佽浆鎹㈢殑word鏂囦欢 com.aspose.words.Document doc = new com.aspose.words.Document(wordPath); + TableCollection tables = doc.getFirstSection().getBody().getTables(); + for (Table table : tables) { + RowCollection rows = table.getRows(); + table.setAllowAutoFit(false); + for (Row row : rows) { + CellCollection cells = row.getCells(); + for (Cell cell : cells) { + CellFormat cellFormat = cell.getCellFormat(); + cellFormat.setFitText(false); //璁剧疆鑷�傚簲鍏抽棴 + cellFormat.setWrapText(true); // 璁剧疆鑷姩鎹㈣ + } + } + } doc.save(os, SaveFormat.PDF); //娣诲姞楠戠紳绔� -- Gitblit v1.9.3