zss
2024-06-28 c3e4a95cc4ada32b0ac7f14fcd5469bd1bbd1c09
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;
@@ -272,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) {
@@ -510,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<>();
@@ -548,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) {
@@ -617,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("结论")) {
@@ -635,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());
@@ -650,6 +656,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") + "");
                            }
@@ -851,7 +865,7 @@
                                //第一行
                                if (j == 0) {
                                    //第一列
                                    textRenderData.setText("管色标\nPipe∑100");
                                    textRenderData.setText("管色标Pipe∑100");
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
@@ -859,7 +873,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);
@@ -867,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() + "\r\n" + insProducts1.get((int) (j - 2)).getInspectionItemEn() + "∑" + (j + 101));
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
@@ -878,7 +892,7 @@
                                //有父子项目关系的第三行
                                if (j == 0) {
                                    //第一列
                                    textRenderData.setText("管色标\nPipe∑100");
                                    textRenderData.setText("管色标\r\nPipe∑100");
                                    renderData.add(textRenderData);
                                    paragraphRenderData.setContents(renderData);
                                    paragraphRenderDataList.add(paragraphRenderData);
@@ -886,7 +900,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);
@@ -896,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() + "\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);
@@ -984,18 +998,25 @@
            if (CollectionUtils.isNotEmpty(insOrderFiles)) {
                insOrderFiles.forEach(insOrderFile -> {
                    Map<String, Object> image = new HashMap<>();
                    PictureRenderData pictureRenderData = Pictures.ofLocal(imgUrl + "/" + insOrderFile.getFileUrl()).sizeInCm(17,20).create();
                    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);