From fcfbaa84f1fef87a958452ef83d82e140d8ddb59 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期三, 03 七月 2024 17:58:09 +0800 Subject: [PATCH] 2024-7-3 检验对象导入 40% --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 126 ++++++++++++++++++++++++++++++++--------- 1 files changed, 98 insertions(+), 28 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 cf6e12b..1944a41 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,11 +22,10 @@ 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; -import com.yuanchu.mom.dto.InsOrderPlanDTO; -import com.yuanchu.mom.dto.SampleProductDto; +import com.yuanchu.mom.dto.*; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; @@ -115,7 +116,13 @@ private InsBushingService insBushingService; @Resource + private InsBushingMapper insBushingMapper; + + @Resource private InsFiberMapper insFiberMapper; + + @Resource + private InsFibersMapper insFibersMapper; @Resource private InsOrderFileMapper insOrderFileMapper; @@ -172,11 +179,8 @@ Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory); List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class); for (SampleProductDto samples : list) { -// Set<Integer> set = new HashSet<>(); -// Map<Integer, String> map2 = new HashMap<>(); if (BeanUtil.isEmpty(samples.getInsProduct())) continue; samples.setBushing(insBushingService.selectBushingBySampleId(samples.getId())); -// getTemplateThing(set, map2, samples.getInsProduct()); } map.put("sampleProduct", list); return map; @@ -262,6 +266,37 @@ } } + //鍒囨崲璁板綍妯$増鏌ヨ妫�楠屽唴瀹� + @Override + public Map<String, Object> getReportModel(Integer sampleId) { + Map<String, Object> map = new HashMap<>(); + //List<Integer> insSampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); + //鍏堟煡鍑哄绠� + List<InsBushing> insBushings = insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, sampleId)); + List<InsFibers> fibers = new ArrayList<>(); + List<InsFiber> fiber = new ArrayList<>(); + for (InsBushing insBushing : insBushings) { + //鍐嶆煡璇㈠嚭鎵�鏈夌殑鍏夌氦甯� + List<InsFibers> insFibers = insFibersMapper.selectList(Wrappers.<InsFibers>lambdaQuery().eq(InsFibers::getInsBushingId, insBushing.getId())); + if (CollectionUtils.isNotEmpty(insFibers)) { + fibers.addAll(insFibers); + //鏌ュ嚭鍏夌氦甯︿笅鎵�鏈夌殑鍏夌氦 + List<InsFiber> fiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().in(InsFiber::getInsFibersId, insFibers.stream().map(InsFibers::getId).collect(Collectors.toList()))); + fiber.addAll(fiberList); + } else { + //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡 + List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId())); + fiber.addAll(insFiberList); + } + } + map.put("鍏夌氦甯�",fibers); + map.put("鍏夌氦",fiber); + return map; + } + + + + @Override public void saveInsContext(Map<String, Object> insContext) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); @@ -270,9 +305,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)) { + 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) { @@ -453,6 +491,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()); @@ -465,16 +504,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<>(); @@ -484,6 +521,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()); @@ -507,8 +546,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<>(); @@ -545,7 +585,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) { @@ -614,7 +653,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("缁撹")) { @@ -632,7 +671,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()); @@ -647,6 +688,14 @@ textRenderData.setText(a.getSample()); } else if (value.equals("璇曢獙鏂规硶")) { textRenderData.setText(p.getMethodS()); + } else if (value.equals("妫�楠岄」")) { + textRenderData.setText(p.getInspectionItem() + "\r\n" + p.getInspectionItemEn()); + } else if (value.equals("妫�楠屽瓙椤�")) { + if (ObjectUtils.isEmpty(p.getInspectionItemSubclassEn())) { + textRenderData.setText(p.getInspectionItemSubclass()); + } else { + textRenderData.setText(p.getInspectionItemSubclass() + "\r\n" + p.getInspectionItemSubclassEn()); + } } else { textRenderData.setText(v.get("v") == null ? "" : v.get("v") + ""); } @@ -778,14 +827,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."); @@ -847,7 +897,7 @@ //绗竴琛� if (j == 0) { //绗竴鍒� - textRenderData.setText("绠¤壊鏍嘰nPipe鈭�100"); + textRenderData.setText("绠¤壊鏍嘰r\nPipe鈭�100"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -855,7 +905,7 @@ cells.add(cellRenderData); } else if (j == 1) { //绗簩鍒� - textRenderData.setText("鍏夌氦鑹叉爣\nScanning Number鈭�101"); + textRenderData.setText("鍏夌氦鑹叉爣\r\nScanning Number鈭�101"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -863,7 +913,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() + "\r\n" + insProducts1.get((int) (j - 2)).getInspectionItemEn() + "鈭�" + (j + 101)); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -874,7 +924,7 @@ //鏈夌埗瀛愰」鐩叧绯荤殑绗笁琛� if (j == 0) { //绗竴鍒� - textRenderData.setText("绠¤壊鏍嘰nPipe鈭�100"); + textRenderData.setText("绠¤壊鏍嘰r\nPipe鈭�100"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -882,7 +932,7 @@ cells.add(cellRenderData); } else if (j == 1) { //绗簩鍒� - textRenderData.setText("鍏夌氦鑹叉爣\tScanning Number鈭�101"); + textRenderData.setText("鍏夌氦鑹叉爣\r\nScanning Number鈭�101"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -892,9 +942,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() + "\r\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() + "\r\n" + insProducts1.get((int) (j - 2)).getInspectionItemSubclassEn()); } renderData.add(textRenderData); paragraphRenderData.setContents(renderData); @@ -945,10 +995,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("姣忚鍗曞厓鏍间笉鐩哥瓑"); } @@ -968,18 +1018,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); @@ -996,6 +1065,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