From da54d3fe5b3bd4ae92c43ac93e9619d2e15c8a7b Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期四, 27 六月 2024 16:55:52 +0800 Subject: [PATCH] 报告序号处理 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 83 ++++++++++++++++++++++++++++++----------- 1 files changed, 60 insertions(+), 23 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 3a6a744..ac90cde 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -3,6 +3,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Console; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -10,6 +11,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; +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; @@ -20,6 +22,7 @@ import com.deepoove.poi.data.*; import com.deepoove.poi.data.style.*; import com.deepoove.poi.util.TableTools; +import com.deepoove.poi.xwpf.WidthScalePattern; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.dto.ExcelDto; @@ -34,7 +37,6 @@ import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo; import com.yuanchu.mom.vo.InsOrderPlanVO; -import com.yuanchu.mom.vo.Result; import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; @@ -271,9 +273,12 @@ JSONObject jo = JSON.parseObject(JSON.toJSONString(v)); InsProduct insProduct = new InsProduct(); insProduct.setId(Integer.parseInt(k)); - InsProductResult result = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); - if (BeanUtil.isEmpty(result)) { - result = new InsProductResult(); + List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); + InsProductResult result; + if (CollectionUtils.isEmpty(results)) { + result = new InsProductResult(); + } else { + result = results.get(0); } result.setInsProductId(Integer.parseInt(k)); if (jo.get("insValue") != null) { @@ -454,6 +459,7 @@ for (InsProduct insProduct : insProducts) { if (insProduct.getInsResult() == 0) { InsUnPass insUnPass = new InsUnPass(); + insUnPass.setId(null); insUnPass.setModel(insSample.getModel()); insUnPass.setSample(insSample.getSample()); insUnPass.setInspectionItem(insProduct.getInspectionItem()); @@ -466,16 +472,14 @@ insUnPasses.add(insUnPass); } } - insUnPassService.saveBatch(insUnPasses); } + insUnPassService.saveBatch(insUnPasses); InsOrder insOrder = insOrderMapper.selectById(orderId); Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId()); List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId); InsReport insReport = new InsReport(); insReport.setCode(insOrder.getEntrustCode()); insReport.setInsOrderId(orderId); - Set<Integer> set = new HashSet<>(); - Map<Integer, String> map2 = new HashMap<>(); List<Map<String, Object>> tables = new ArrayList<>(); Set<String> standardMethod = new HashSet<>(); Set<String> deviceSet = new HashSet<>(); @@ -485,6 +489,8 @@ AtomicReference<String> resultCh = new AtomicReference<>(""); AtomicReference<String> resultEn = new AtomicReference<>(""); samples.forEach(a -> { + Set<Integer> set = new HashSet<>(); + Map<Integer, String> map2 = new HashMap<>(); Long productCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, a.getId())); productSize.set(productSize.get() + Integer.parseInt(productCount + "")); models.add(a.getModel()); @@ -508,8 +514,9 @@ } templateSet.add(JSON.toJSONString(b.getTemplate())); } + AtomicInteger index = new AtomicInteger(); + Set<String> itemSet = new HashSet<>(); templateSet.forEach(tem -> { - AtomicInteger index = new AtomicInteger(); Set<Integer> set2 = new HashSet<>(); List<RowRenderData> rows = new ArrayList<>(); List<TextRenderData> text = new ArrayList<>(); @@ -546,7 +553,6 @@ Map<String, InsProduct> pMap = new HashMap<>(); Set<String> delRSet = new HashSet<>(); delRSet.add("0"); - delRSet.add("1"); for (JSONObject jo1 : temp) { JSONObject v = JSON.parseObject(JSON.toJSONString(jo1.get("v"))); if (Integer.parseInt(jo1.get("c") + "") > 9) { @@ -615,7 +621,7 @@ if (p != null && v.get("ps") != null) { String value = JSON.parseObject(JSON.toJSONString(v.get("ps"))).get("value") + ""; if (value.equals("瑕佹眰鍊�")) { - textRenderData.setText(p.getAsk()); + textRenderData.setText(ObjectUtils.isNotEmpty(p.getTell()) ? p.getTell() : ""); } else if (value.equals("鍗曚綅")) { textRenderData.setText(p.getUnit()); } else if (value.equals("缁撹")) { @@ -633,7 +639,9 @@ break; } } else if (value.equals("搴忓彿")) { - index.getAndIncrement(); + if(itemSet.add(p.getInspectionItem())){ + index.getAndIncrement(); + } textRenderData.setText(index + ""); } else if (value.equals("璁$畻鍊�")) { JSONArray jsonArray = JSON.parseArray(p.getInsProductResult().getComValue()); @@ -648,6 +656,14 @@ textRenderData.setText(a.getSample()); } else if (value.equals("璇曢獙鏂规硶")) { textRenderData.setText(p.getMethodS()); + } else if (value.equals("妫�楠岄」")) { + textRenderData.setText(p.getInspectionItem() + "\n" + p.getInspectionItemEn()); + } else if (value.equals("妫�楠屽瓙椤�")) { + if (ObjectUtils.isEmpty(p.getInspectionItemSubclassEn())) { + textRenderData.setText(p.getInspectionItemSubclass()); + } else { + textRenderData.setText(p.getInspectionItemSubclass() + "\n" + p.getInspectionItemSubclassEn()); + } } else { textRenderData.setText(v.get("v") == null ? "" : v.get("v") + ""); } @@ -705,10 +721,10 @@ tableRenderData.setRows(rows); int countSize = tableRenderData.getRows().get(0).getCells().size(); for (RowRenderData row : tableRenderData.getRows()) { - for (CellRenderData cell : row.getCells()) { + /*for (CellRenderData cell : row.getCells()) { System.out.print(cell.getParagraphs().get(0).getContents()); } - System.out.println(""); + System.out.println("");*/ if (row.getCells().size() != countSize) { throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑"); } @@ -779,14 +795,15 @@ ConfigureBuilder builder = Configure.builder(); builder.useSpringEL(true); List<Map<String, String>> finalDeviceList = deviceList; - Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery().eq(InsSampleUser::getInsSampleId, orderId).orderByDesc(InsSampleUser::getCreateTime).last("limit 1")).getUserId(); + Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery().eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId(); String signatureUrl; try { signatureUrl = userMapper.selectById(userId).getSignatureUrl(); } catch (Exception e) { throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�"); } - Custom custom = customMapper.selectById(user.get("company")); + //Custom custom = customMapper.selectById(user.get("company")); + Custom custom = customMapper.selectById(insOrder.getCompanyId()); if (!resultCh.get().equals("")) { resultCh.set("渚濇嵁濮旀墭瑕佹眰锛�" + resultCh.get().replaceFirst("銆�", "") + "绛夋墍妫�椤圭洰涓嶇鍚堣姹傦紝鍏朵綑鎵�妫�椤圭洰鍧囩鍚堣姹傘��"); resultEn.set("According to commissioned requirements," + resultEn.get().replaceFirst("銆�", "") + " these inspected items do not meet the requirements, all other inspected items meet the requirements."); @@ -864,7 +881,7 @@ cells.add(cellRenderData); } else { //椤圭洰淇℃伅 - textRenderData.setText(insProducts1.get((int) (j - 2)).getInspectionItem() + "\n" + insProducts1.get((int) (j - 2)).getInspectionItemEn()+"鈭�"+(j+101)); + textRenderData.setText(insProducts1.get((int) (j - 2)).getInspectionItem() + "\n" + insProducts1.get((int) (j - 2)).getInspectionItemEn() + "鈭�" + (j + 101)); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -883,7 +900,7 @@ cells.add(cellRenderData); } else if (j == 1) { //绗簩鍒� - textRenderData.setText("鍏夌氦鑹叉爣\tScanning Number鈭�101"); + textRenderData.setText("鍏夌氦鑹叉爣\nScanning Number鈭�101"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -893,9 +910,9 @@ //椤圭洰淇℃伅 //鍒ゆ柇鏄惁鏈夐」鐩瓙绫� if (insProducts1.get((int) (j - 2)).getInspectionItemSubclass().equals("") || insProducts1.get((int) (j - 2)).getInspectionItemSubclass() == null) { - textRenderData.setText(insProducts1.get((int) (j - 2)).getInspectionItem() + "\n" + insProducts1.get((int) (j - 2)).getInspectionItemEn()+"鈭�"+(j+101)); + textRenderData.setText(insProducts1.get((int) (j - 2)).getInspectionItem() + "\n" + insProducts1.get((int) (j - 2)).getInspectionItemEn() + "鈭�" + (j + 101)); } else { - textRenderData.setText(insProducts1.get((int) (j - 2)).getInspectionItemSubclass() + "\n" + insProducts1.get((int) (j - 2)).getInspectionItemSubclassEn()); + textRenderData.setText(insProducts1.get((int) (j - 2)).getInspectionItemSubclass() + "\n\n" + insProducts1.get((int) (j - 2)).getInspectionItemSubclassEn()); } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); @@ -946,10 +963,10 @@ tableRenderData.setRows(rows); int countSize = tableRenderData.getRows().get(0).getCells().size(); for (RowRenderData row : tableRenderData.getRows()) { - for (CellRenderData cell : row.getCells()) { + /*for (CellRenderData cell : row.getCells()) { System.out.print(cell.getParagraphs().get(0).getContents()); } - System.out.println(""); + System.out.println("");*/ if (row.getCells().size() != countSize) { throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑"); } @@ -969,18 +986,37 @@ Map<String, Object> table = new HashMap<>(); table.put("table2", tableRenderData); table.put("report", insReport); - table.put("sample_number",sample.getSampleCode() ); + table.put("sample_number", sample.getSampleCode()); table.put("type", sample.getModel()); tables2.add(table); }); } + /*鑾峰彇闄勪欢鍥剧墖绫诲瀷*/ + List<Map<String, Object>> images = new ArrayList<>(); + List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery().eq(InsOrderFile::getType, 1).eq(InsOrderFile::getInsOrderId, orderId)); + if (CollectionUtils.isNotEmpty(insOrderFiles)) { + insOrderFiles.forEach(insOrderFile -> { + Map<String, Object> image = new HashMap<>(); + PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFile.getFileUrl()).sizeInCm(17, 20).create(); + image.put("url", pictureRenderData); + image.put("report", insReport); + images.add(image); + }); + } + //濮旀墭浜哄拰鐢佃瘽瀛楁鍒ゆ柇 + if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) { + insOrder.setPrepareUser("/"); + } + if (ObjectUtils.isEmpty(insOrder.getPhone())) { + insOrder.setPhone("/"); + } XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render( new HashMap<String, Object>() {{ put("order", insOrder); put("report", insReport); - put("user", user); + //put("user", user); put("custom", custom); put("sampleSize", samples.size()); put("tables", tables); @@ -997,6 +1033,7 @@ put("insTimeEn", monthNames[insOrder.getInsTime().getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear()); put("writeUrl", null); put("insUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create()); + put("images", images); put("examineUrl", null); put("ratifyUrl", null); put("sampleEn", sampleEn); -- Gitblit v1.9.3