From 1fe60de0b826d028c5798de86ec055be45684220 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 28 六月 2024 09:48:03 +0800 Subject: [PATCH] 委托编号格式变更+下单查询检验项目+报告的设备日期+检验下单的样品数量不准确+检验的检验进度计算 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 87 ++++++++++++++++++++++++++++++++----------- 1 files changed, 64 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..e1c2351 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)) { + 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()); @@ -546,7 +552,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 +620,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,6 +638,13 @@ break; } } else if (value.equals("搴忓彿")) { + /*if (i == 0 ){ + index.getAndIncrement(); + }else if (pMap.get(temp.get(i-1).get("r") + "")!= null && JSON.parseObject(JSON.toJSONString(temp.get(i-1).get("v"))).get("ps") != null){ + if (pMap.get(temp.get(i-1).get("")).getInspectionItem()!=p.getInspectionItem()) { + index.getAndIncrement(); + } + }*/ index.getAndIncrement(); textRenderData.setText(index + ""); } else if (value.equals("璁$畻鍊�")) { @@ -648,6 +660,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") + ""); } @@ -705,10 +725,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 +799,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."); @@ -848,7 +869,7 @@ //绗竴琛� if (j == 0) { //绗竴鍒� - textRenderData.setText("绠¤壊鏍嘰nPipe鈭�100"); + textRenderData.setText("绠¤壊鏍嘝ipe鈭�100"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -856,7 +877,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); @@ -864,7 +885,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); @@ -875,7 +896,7 @@ //鏈夌埗瀛愰」鐩叧绯荤殑绗笁琛� if (j == 0) { //绗竴鍒� - textRenderData.setText("绠¤壊鏍嘰nPipe鈭�100"); + textRenderData.setText("绠¤壊鏍嘰r\nPipe鈭�100"); renderData.add(textRenderData); paragraphRenderData.setContents(renderData); paragraphRenderDataList.add(paragraphRenderData); @@ -883,7 +904,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); @@ -893,9 +914,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); @@ -946,10 +967,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 +990,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 +1037,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