From 4430c26482f219b1313fdf916d58dc8a8bd1cbfe Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期三, 08 五月 2024 07:26:54 +0800
Subject: [PATCH] 区间项目下单

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 34 insertions(+), 18 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 15ca9f6..bcfe302 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
@@ -141,7 +141,6 @@
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public void saveInsContext(Map<String, Object> insContext) {
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
         CompletableFuture.supplyAsync(() -> {
@@ -173,7 +172,7 @@
                     }
                     result.setInsValue(JSON.toJSONString(iv));
                 }
-                if (jo.get("comValue") != null) {
+                if (jo.get("comValue") != null && !Objects.equals(jo.get("comValue"), "")) {
                     JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("comValue")));
                     List<Map<String, Object>> cv = new ArrayList<>();
                     for (Object o : jsonArray2) {
@@ -184,10 +183,13 @@
                     }
                     result.setComValue(JSON.toJSONString(cv));
                 }
-                JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("resValue")));
-                if (resValue.get("v") != null) {
-                    insProduct.setLastValue(JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v") + "");
-                }
+                try {
+                    JSONObject resValue = JSON.parseObject(JSON.toJSONString(jo.get("resValue")));
+                    if (resValue.get("v") != null) {
+                        Object o = JSON.parseObject(JSON.toJSONString(resValue.get("v"))).get("v");
+                        insProduct.setLastValue(o.equals("")?null:(o + ""));
+                    }
+                }catch (Exception e){}
                 if (jo.get("equipValue") != null) {
                     JSONArray jsonArray2 = JSON.parseArray(JSON.toJSONString(jo.get("equipValue")));
                     List<Map<String, Object>> ev = new ArrayList<>();
@@ -239,8 +241,14 @@
                 }
                 insSampleMapper.updateById(insSample);
             });
-            return null;
+            return insContext.keySet().stream().findFirst().orElse(null);
         }).thenAccept(res -> {
+            if(res!=null){
+                int pId = Integer.parseInt(res.replaceAll("\\D+", ""));
+                // TODO: 2024/5/4 銆愬墠缃�戦渶瑕侀�氳繃pid鑾峰彇妫�楠屽崟褰撳墠璇曢獙瀹ゆ墍鏈夐」鐩槸鍚︽湁妫�楠岀粨鏋滃悗杩涜鍒ゆ柇妫�楠屽崟鏄惁鏇存敼鎴愨�滃凡妫�鈥濈姸鎬侊紱鍓嶇疆瀹屾垚鍚庡彲鑳戒細瀵艰嚧澶嶆牳鎺ュ彛鍒ゆ柇鏄惁浜х敓鎶ュ憡鐨勯�昏緫閿欒
+//                InsProduct insProduct = insProductMapper.selectById(pId);
+//                insSampleMapper.selectList(Wrappers.<>)
+            }
         }).exceptionally(e -> {
             e.printStackTrace();
             return null;
@@ -264,6 +272,7 @@
         insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId).eq(InsOrderState::getLaboratory, laboratory).set(InsOrderState::getInsTime, now).set(InsOrderState::getInsState, num).set(InsOrderState::getVerifyTell, tell).set(InsOrderState::getVerifyUser, getLook.selectPowerByMethodAndUserId(null).get("userId")));
         List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId));
         long count = insOrderStates.stream().filter(a -> a.getInsState() == 5).count();
+        // TODO: 2024/5/5 銆愬悗缃�戞姤鍛婃槸鍚︾敓鎴愮殑鍒ゆ柇鍙兘浼氬洜涓哄墠缃搷浣滃鑷存案杩滃垽鏂笉閫氳繃
         if (count == insOrderStates.size() && num == 5) {
             InsOrder insOrder = insOrderMapper.selectById(orderId);
             Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId());
@@ -276,16 +285,16 @@
             List<Map<String, Object>> tables = new ArrayList<>();
             Set<String> standardMethod = new HashSet<>();
             Set<String> deviceSet = new HashSet<>();
-            AtomicReference<String> models = new AtomicReference<>("");
+            Set<String> models = new HashSet<>();
             AtomicReference<Integer> productSize = new AtomicReference<>(0);
             String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
             samples.forEach(a -> {
+                models.add(a.getModel());
                 Set<String> templateSet = new HashSet<>();
                 getTemplateThing(set, map2, a);
                 for (InsProduct b : a.getInsProduct()) {
-                    models.set(models.get()+b.getModel());
                     standardMethod.add(b.getMethodS());
-                    productSize.set(productSize.get()+1);
+                    productSize.set(productSize.get() + 1);
                     if (b.getInsProductResult() != null) {
                         List<JSONObject> jsonObjects = JSON.parseArray(b.getInsProductResult().getEquipValue(), JSONObject.class);
                         for (JSONObject jsonObject : jsonObjects) {
@@ -379,6 +388,7 @@
                             if ("鍙傛暟".equals(v.get("v"))) delSet.add(jo1.get("c") + "");
                         }
                     }
+                    // TODO: 2024/5/5 涓嬪垪寰幆缂哄皯word鍚堝苟鍗曞厓鏍肩殑鎿嶄綔
                     for (int i = 0; i < temp.size(); i++) {
                         JSONObject jo1 = temp.get(i);
                         TextRenderData textRenderData = new TextRenderData();
@@ -509,7 +519,8 @@
             String url;
             try {
                 InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
-                File file = File.createTempFile("temp", ".tmp");OutputStream outputStream = new FileOutputStream(file);
+                File file = File.createTempFile("temp", ".tmp");
+                OutputStream outputStream = new FileOutputStream(file);
                 IOUtils.copy(inputStream, outputStream);
                 url = file.getAbsolutePath();
             } catch (FileNotFoundException e) {
@@ -525,8 +536,7 @@
             tables.forEach(table -> {
                 table.put("tableSize", tables.size() + 1);
             });
-//            List<Map<String, String>> deviceList = insOrderMapper.selectDeviceList(deviceSet);
-            List<Map<String, String>> deviceList = new ArrayList<>();
+            List<Map<String, String>> deviceList = insOrderMapper.selectDeviceList(deviceSet);
             Map<String, String> codeStr = new HashMap<>();
             codeStr.put("鎶ュ憡缂栧彿", insReport.getCode());
             codeStr.put("鏍峰搧鍚嶇О", insOrder.getSample());
@@ -539,6 +549,11 @@
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }
+            String modelStr = "";
+            for (String model : models) {
+                modelStr += "," + model;
+            }
+            String finalModelStr = modelStr;
             ConfigureBuilder builder = Configure.builder();
             builder.useSpringEL(true);
             XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
@@ -553,19 +568,19 @@
                         put("standardMethod", standardMethod2);
                         put("deviceList", deviceList);
                         put("twoCode", Pictures.ofLocal(codePath).create());
-                        put("models", models);
+                        put("models", finalModelStr.replace(",", ""));
                         put("productSize", productSize);
                         put("createTime", now.format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�")));
-                        put("createTimeEn", monthNames[now.getMonthValue()-1]+" "+now.getDayOfMonth()+", "+now.getYear());
+                        put("createTimeEn", monthNames[now.getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear());
                         put("insTime", insOrder.getInsTime().format(DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�")));
-                        put("insTimeEn", monthNames[insOrder.getInsTime().getMonthValue()-1]+" "+now.getDayOfMonth()+", "+now.getYear());
+                        put("insTimeEn", monthNames[insOrder.getInsTime().getMonthValue() - 1] + " " + now.getDayOfMonth() + ", " + now.getYear());
                         put("writeUrl", null);
                         put("insUrl", null);
                         put("examineUrl", null);
                         put("ratifyUrl", null);
                     }});
             try {
-                String name = now.format(DateTimeFormatter.ofPattern("yy_MM_dd&HH_mm_ss")) + ".docx";
+                String name = insReport.getCode().replace("/", "") + ".docx";
                 template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
                 insReport.setUrl("/word/" + name);
                 insReportMapper.insert(insReport);
@@ -585,7 +600,7 @@
                 product.setTemplate(new ArrayList<>());
                 continue;
             }
-            if (set.add(product.getTemplateId())) {
+            if (product.getTemplateId() != null && set.add(product.getTemplateId())) {
                 map2.put(product.getTemplateId(), standardTemplateService.getStandTempThingById(product.getTemplateId()) + "");
             }
             String thing = map2.get(product.getTemplateId());
@@ -598,6 +613,7 @@
                 style.put("columnlen", config.get("columnlen"));
                 product.setTemplate(cellData);
                 product.setStyle(style);
+                product.setTemplateName(standardTemplateService.getStandTempNameById(product.getTemplateId()));
             }
         }
     }

--
Gitblit v1.9.3