From 68b2d4f7d3f122a7d6ab075c5455ac1d8ef6d932 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 25 六月 2024 17:58:55 +0800
Subject: [PATCH] 检验下单标签打印+标准库枚举筛选+报告生成修改+检验下单委托编号生成

---
 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java                     |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java        |   34 ++-
 inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto3.java                       |   26 ++
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                                  |  182 +++++++++++++------
 inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java          |   10 
 inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java                 |    1 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java        |   28 ++
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java            |   62 +++++-
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java |   45 +++-
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java                      |    3 
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                                   |   75 ++++++--
 inspect-server/src/main/resources/static/report-template.docx                                 |    0 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java               |    7 
 inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java           |   61 ++++--
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java                       |    2 
 15 files changed, 387 insertions(+), 151 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
index e3a1e03..361b748 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -163,4 +163,11 @@
         insProductService.updateInspected(id);
         return Result.success();
     }
+
+    @ValueClassify("妫�楠屼笅鍗�")
+    @ApiOperation(value = "鏍囩鎵撳嵃")
+    @PostMapping("/labelPrinting")
+    public Result<?> labelPrinting(String ids) {
+        return Result.success(insOrderService.labelPrinting(ids));
+    }
 }
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java
index b1cf762..b5a37cc 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/StandardTreeController.java
@@ -21,7 +21,7 @@
 @RestController
 @AllArgsConstructor
 @RequestMapping("/standardTree")
-@Api(tags="鏍囧噯搴�")
+@Api(tags = "鏍囧噯搴�")
 public class StandardTreeController {
 
     private StandardTreeService standardTreeService;
@@ -33,13 +33,14 @@
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "鑾峰彇鏍囧噯鏍�")
     @GetMapping("/selectStandardTreeList")
-    public Result selectStandardTreeList(){
+    public Result selectStandardTreeList() {
         return Result.success(standardTreeService.selectStandardTreeList());
     }
+
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "娣诲姞鏍囧噯鏍�")
     @PostMapping("/addStandardTree")
-    public Result addStandardTree(@RequestBody StandardTree standardTree){
+    public Result addStandardTree(@RequestBody StandardTree standardTree) {
         return Result.success(standardTreeService.addStandardTree(standardTree));
     }
 
@@ -47,92 +48,96 @@
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "缁欐爣鍑嗘爲娣诲姞妫�楠屾爣鍑�")
     @PostMapping("/addStandardMethodList")
-    public Result addStandardMethodList(String tree, Integer standardId){
+    public Result addStandardMethodList(String tree, Integer standardId) {
         return Result.success(standardMethodListService.addStandardMethodList(standardId, tree));
     }
 
     @ApiOperation(value = "鏍规嵁鏍囧噯鏍戣繘琛屾爣鍑嗘煡璇�")
     @PostMapping("/selectsStandardMethodByFLSSM")
     @ValueAuth
-    public Result selectsStandardMethodByFLSSM(String tree){
+    public Result selectsStandardMethodByFLSSM(String tree) {
         return Result.success(standardMethodListService.selectsStandardMethodByFLSSM(tree));
     }
+
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "淇敼鏍囧噯搴撲腑鐨勫唴瀹�")
     @PostMapping("/upStandardProductList")
-    public Result upStandardProductList(String str){
+    public Result upStandardProductList(String str) {
         StandardProductList list = JSON.parseObject(str, StandardProductList.class);
         return Result.success(standardProductListService.upStandardProductList(list));
     }
+
     @ValueAuth
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "鍒犻櫎鏍囧噯鏍戜笅鐨勬楠屾爣鍑�")
     @PostMapping("/delStandardMethodByFLSSM")
-    public Result delStandardMethodByFLSSM(Integer id){
+    public Result delStandardMethodByFLSSM(Integer id) {
         return Result.success(standardMethodListService.delStandardMethodByFLSSM(id));
     }
+
     @ValueAuth
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "鍒犻櫎鏍囧噯鏍戜笅鐨勬楠岄」鐩�")
     @PostMapping("/delStandardProductByIds")
-    public Result delStandardProductByIds(String ids){
+    public Result delStandardProductByIds(String ids) {
         JSONArray lists = JSON.parseArray(ids);
         return Result.success(standardProductListService.delStandardProduct(lists));
     }
+
     @ValueAuth
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "鏂板鏍囧噯鏍戜笅鐨勬楠岄」鐩�")
     @PostMapping("/addStandardProduct")
-    public Result addStandardProduct(String ids, String tree){
+    public Result addStandardProduct(String ids, String tree) {
         return Result.success(standardTreeService.addStandardProduct(ids, tree));
     }
 
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation(value = "鍒犻櫎鏍囧噯鏍戠殑灞傜骇")
     @PostMapping("/delStandardTree")
-    public Result delStandardTree(String tree){
+    public Result delStandardTree(String tree) {
         return Result.success(standardTreeService.delStandardTree(tree));
     }
 
     @ApiOperation(value = "閫氳繃鏍囧噯鏍戞煡璇㈠搴旂殑妫�楠岄」鐩�")
     @PostMapping("/selectStandardProductList")
     @ValueAuth
-    public Result selectStandardProductList(@RequestBody InsSample insSample){
+    public Result selectStandardProductList(@RequestBody InsSample insSample) {
         return Result.success(standardProductListService.selectStandardProductList(insSample));
     }
 
     @ApiOperation(value = "閫氳繃妫�楠屾爣鍑嗘煡璇㈡楠岄」鐩�")
     @PostMapping("/selectStandardProductListByMethodId")
     @ValueAuth
-    public Result selectStandardProductListByMethodId(Integer id, String tree, Integer page){
+    public Result selectStandardProductListByMethodId(Integer id, String tree, Integer page) {
         return Result.success(standardProductListService.selectStandardProductListByMethodId(id, tree, page));
     }
 
     @ApiOperation(value = "鎵归噺缂栬緫鏌ヨ妫�楠岄」鐩�")
     @PostMapping("/selectStandardProductByMethodId")
     @ValueAuth
-    public Result selectStandardProductByMethodId(Integer id, String tree, Integer page,String laboratory,String item,String items){
+    public Result selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items) {
         return Result.success(standardProductListService.selectStandardProductByMethodId(id, tree, page, laboratory, item, items));
     }
 
     @ApiOperation(value = "鎵归噺缂栬緫鏌ヨ鎵�鏈夋楠岄」鐩拰妫�楠屽瓙椤规灇涓�")
     @PostMapping("/selectStandardProductEnumByMethodId")
     @ValueAuth
-    public Result selectStandardProductEnumByMethodId(Integer id, String tree){
-        return Result.success(standardProductListService.selectStandardProductEnumByMethodId(id, tree));
+    public Result selectStandardProductEnumByMethodId(Integer id, String tree, String item) {
+        return Result.success(standardProductListService.selectStandardProductEnumByMethodId(id, tree, item));
     }
 
     @ApiOperation(value = "鑾峰彇鏍囧噯鏍戜笅鏍囧噯鏂规硶鏋氫妇")
     @GetMapping("/selectStandardMethodEnum")
     @ValueAuth
-    public Result selectStandardMethodEnum(){
+    public Result selectStandardMethodEnum() {
         return Result.success(standardMethodListService.selectStandardMethodEnum());
     }
 
     @ApiOperation(value = "鑾峰彇浜у搧鏋舵瀯")
     @GetMapping("/getStandardTree2")
     @ValueAuth
-    public Result getStandardTree2(){
+    public Result getStandardTree2() {
         return Result.success(standardTreeService.getStandardTree2());
     }
 
@@ -140,24 +145,24 @@
     @ApiOperation(value = "鎵归噺淇敼椤圭洰鍐呭")
     @PostMapping("/upStandardProducts")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "standardProductList",dataTypeClass = StandardProductList.class),
-            @ApiImplicitParam(name = "ids",dataTypeClass = Integer.class)
+            @ApiImplicitParam(name = "standardProductList", dataTypeClass = StandardProductList.class),
+            @ApiImplicitParam(name = "ids", dataTypeClass = Integer.class)
     })
-    public Result upStandardProducts(@RequestBody Map<String, Object> product){
+    public Result upStandardProducts(@RequestBody Map<String, Object> product) {
         return Result.success(standardTreeService.upStandardProducts(product));
     }
 
     @ValueAuth
     @PostMapping("/getStandTreeBySampleType")
     @ApiOperation("浠呰幏鍙栧厜绾ょ殑鍨嬪彿")
-    public Result<?> getStandTreeBySampleType(String laboratory, String sampleType){
+    public Result<?> getStandTreeBySampleType(String laboratory, String sampleType) {
         return Result.success(standardTreeService.getStandTreeBySampleType(laboratory, sampleType));
     }
 
     @ValueClassify("鏍囧噯搴�")
     @ApiOperation("瀵煎叆鏍囧噯搴�")
     @PostMapping("/inExcelOfTree")
-    public Result inExcelOfTree(@RequestParam("file") MultipartFile file){
+    public Result inExcelOfTree(@RequestParam("file") MultipartFile file) {
         standardTreeService.inExcelOfTree(file);
         return Result.success();
     }
@@ -165,7 +170,7 @@
     @ValueAuth
     @ApiOperation("閲嶇疆鏍囧噯搴撳崟浠�")
     @PostMapping("/resetTreeOfPrice")
-    public Result resetTreeOfPrice(String tree, Integer standardId){
+    public Result resetTreeOfPrice(String tree, Integer standardId) {
         standardTreeService.resetTreeOfPrice(tree, standardId);
         return Result.success();
     }
@@ -173,8 +178,16 @@
     @ValueAuth
     @ApiOperation("閲嶇疆鏍囧噯搴撳伐鏃剁郴鏁�")
     @PostMapping("/resetTreeOfHour")
-    public Result resetTreeOfHour(String tree, Integer standardId){
+    public Result resetTreeOfHour(String tree, Integer standardId) {
         standardTreeService.resetTreeOfHour(tree, standardId);
         return Result.success();
     }
+
+    @ValueAuth
+    @ApiOperation("閲嶇疆鏍囧噯搴撹姹傛弿杩板拰瑕佹眰鍊�")
+    @PostMapping("/resetTreeOfAsk")
+    public Result resetTreeOfAsk(String tree, Integer standardId) {
+        standardTreeService.resetTreeOfAsk(tree, standardId);
+        return Result.success();
+    }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto3.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto3.java
new file mode 100644
index 0000000..8fe28d9
--- /dev/null
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleProductDto3.java
@@ -0,0 +1,26 @@
+package com.yuanchu.mom.dto;
+
+import com.yuanchu.mom.pojo.InsProduct;
+import com.yuanchu.mom.pojo.InsSample;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SampleProductDto3 extends InsSample {
+
+    private List<InsProduct> insProduct;
+
+    private List<BushingDto> bushing;
+
+    private List<SampleProductDto3> childSampleList;
+
+    private InsulatingDto insulating;
+
+    private SheathDto sheath;
+    private String code;
+    private String ioSampleType;
+
+    private Integer isLeave;
+
+}
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
index 27073cd..23b64f5 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
@@ -45,4 +45,6 @@
     String getStandardMethodCode(Integer id);
 
     int updateStatus( Integer id);
+
+    String selLaboratoryCode(String laboratory);
 }
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
index 54dc7ce..cb35452 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.dto.InsOrderPlanDTO;
 import com.yuanchu.mom.dto.SampleProductDto;
+import com.yuanchu.mom.dto.SampleProductDto3;
 import com.yuanchu.mom.pojo.InsProduct;
 import com.yuanchu.mom.pojo.InsSample;
 import com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo;
@@ -29,6 +30,8 @@
 
     List<SampleProductDto> selectSampleProductListByOrderId2(Integer id);
 
+    List<SampleProductDto3> selectSampleProductListByOrderId3(List<Integer> ids);
+
     List<SampleProductDto> getInsOrderAndSample(Integer id, String laboratory);
 
     String getSampleEn(String sample);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
index d5f7bc6..f947c9c 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
@@ -37,4 +37,6 @@
     Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber);
 
     int updateStatus(Integer id);
+
+    List<SampleProductDto3> labelPrinting(String ids);
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java
index 0825375..8e454ea 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardProductListService.java
@@ -10,10 +10,10 @@
 import java.util.Map;
 
 /**
-* @author Administrator
-* @description 閽堝琛ㄣ�恠tandard_product_list(鏍囧噯鏍戜笅鐨勬楠岄」鐩�)銆戠殑鏁版嵁搴撴搷浣淪ervice
-* @createDate 2024-03-05 10:33:29
-*/
+ * @author Administrator
+ * @description 閽堝琛ㄣ�恠tandard_product_list(鏍囧噯鏍戜笅鐨勬楠岄」鐩�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2024-03-05 10:33:29
+ */
 public interface StandardProductListService extends IService<StandardProductList> {
 
     int upStandardProductList(StandardProductList list);
@@ -26,6 +26,6 @@
 
     IPage<StandardProductList> selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items);
 
-    Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree);
+    Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree, String item);
 
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java
index 26c770a..44d3be4 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/StandardTreeService.java
@@ -36,4 +36,5 @@
 
     void resetTreeOfHour(String tree, Integer standardId);
 
+    void resetTreeOfAsk(String tree, Integer standardId);
 }
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 af1539d..3c96fb3 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;
@@ -616,7 +617,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("缁撹")) {
@@ -649,6 +650,16 @@
                                 textRenderData.setText(a.getSample());
                             } else if (value.equals("璇曢獙鏂规硶")) {
                                 textRenderData.setText(p.getMethodS());
+                            } else if (value.equals("妫�楠岄」")) {
+                                Console.log(p.getInspectionItem() + "\n" + p.getInspectionItemEn());
+                                textRenderData.setText(p.getInspectionItem() + "\n" + p.getInspectionItemEn());
+                            } else if (value.equals("妫�楠屽瓙椤�")) {
+                                Console.log(p.getInspectionItemSubclass() + "\n" + p.getInspectionItemSubclassEn());
+                                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") + "");
                             }
@@ -885,7 +896,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);
@@ -897,7 +908,7 @@
                                     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));
                                     } 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);
@@ -983,18 +994,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);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index 23bcc78..2796bb7 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -19,11 +19,13 @@
 import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.vo.SampleDefectsFatherVo;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
@@ -78,11 +80,11 @@
             if (map1.get("look") == 1) {
                 //涓汉
                 sampleOrderDto.setCreateUser(map1.get("userId"));
-            }else {
+            } else {
                 //缁勭粐
                 try {
                     sampleOrderDto.setCompany(customMapper.selectById(user.getCompany()).getCompany());
-                }catch (NullPointerException e){
+                } catch (NullPointerException e) {
                     throw new ErrorException("鎵句笉鍒版墍灞炲崟浣�");
                 }
             }
@@ -130,7 +132,8 @@
     public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing) {
         insOrder.setState(0);
         String code = customMapper.selectById(insOrder.getCompanyId()).getCode2();
-        insOrder.setEntrustCode(giveCode.giveCode("JCZX-" + code + "-", "ins_order", "", "yyMMdd"));
+        //insOrder.setEntrustCode(giveCode.giveCode("JCZX-" + code + "-", "ins_order", "", "yyMMdd"));
+        String giveCode = this.giveCode.giveCode("JCZX-" + code + "-", "ins_order", "", "yyMMdd");
         insOrderMapper.insert(insOrder);
         AtomicInteger count = new AtomicInteger();
         list.forEach(a -> {
@@ -138,13 +141,13 @@
             a.setId(null);
             a.setInsOrderId(insOrder.getId());
             if (StrUtil.isEmpty(a.getSampleCode())) {
-                a.setSampleCode(insOrder.getEntrustCode().split("-")[2]+"-"+count.get());
+                a.setSampleCode(giveCode.split("-")[2] + "-" + count.get());
             }
             insSampleMapper.insert(a);
             if (ObjectUtil.isNotEmpty(a.getInsProduct())) {
                 addInsProductMethod(a.getId(), a.getInsProduct(), null, 0);
             }
-            if(ObjectUtil.isNotEmpty(a.getInsulating())){
+            if (ObjectUtil.isNotEmpty(a.getInsulating())) {
                 List<InsProduct> ip2 = new ArrayList<>();
                 for (Integer i = 0; i < a.getInsulating().getNum(); i++) {
                     ip2.addAll(a.getInsulating().getInsProduct());
@@ -154,20 +157,20 @@
                 }
                 addInsProductMethod(a.getId(), ip2, null, 0);
             }
-            if(ObjectUtil.isNotEmpty(a.getSheath())){
+            if (ObjectUtil.isNotEmpty(a.getSheath())) {
                 for (InsProduct product : a.getSheath().getInsProduct()) {
                     product.setStandardMethodListId(a.getSheath().getStandardMethodListId());
                 }
                 addInsProductMethod(a.getId(), a.getSheath().getInsProduct(), null, 0);
             }
-            if(ObjectUtil.isNotEmpty(a.getChildSampleList())){
+            if (ObjectUtil.isNotEmpty(a.getChildSampleList())) {
                 for (SampleProductDto b : a.getChildSampleList()) {
                     for (int i = 0; i < b.getNum(); i++) {
                         b.setId(null);
                         b.setInsOrderId(insOrder.getId());
                         b.setParentId(a.getId());
                         if (StrUtil.isEmpty(b.getSampleCode())) {
-                            b.setSampleCode(giveCode.giveCode("", "ins_sample", "", "yyMMdd"));
+                            b.setSampleCode(this.giveCode.giveCode("", "ins_sample", "", "yyMMdd"));
                         }
                         insSampleMapper.insert(b);
                         if (ObjectUtil.isNotEmpty(b.getInsProduct())) {
@@ -180,16 +183,16 @@
                 for (BushingDto bushingDto : a.getBushing()) {
                     bushingDto.setInsSampleId(a.getId());
                     insBushingMapper.insert(bushingDto);
-                    if(bushingDto.getFiber().size()!=0){
+                    if (bushingDto.getFiber().size() != 0) {
                         for (FiberDto fiberDto : bushingDto.getFiber()) {
                             fiberDto.setInsBushingId(bushingDto.getId());
                             insFiberMapper.insert(fiberDto);
                             addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2);
                         }
-                    }else{
+                    } else {
                         for (FibersDto fibersDto : bushingDto.getFibers()) {
                             fibersDto.setInsBushingId(bushingDto.getId());
-                            fibersDto.setCode(giveCode.giveCode("", "ins_fibers", "", "yyMMdd"));
+                            fibersDto.setCode(this.giveCode.giveCode("", "ins_fibers", "", "yyMMdd"));
                             insFibersMapper.insert(fibersDto);
                             for (FiberDto fiberDto : fibersDto.getFiber()) {
                                 fiberDto.setInsFibersId(fibersDto.getId());
@@ -201,10 +204,10 @@
                     }
                 }
             }
-        })  ;
+        });
         for (List<Integer> i : pairing) {
             SampleProductDto sample = JSON.parseObject(JSON.toJSONString(list.get(i.get(0) - 1)), SampleProductDto.class);
-            sample.setSampleCode(list.get(i.get(0)-1).getSampleCode() + "/" +list.get(i.get(1)-1).getSampleCode());
+            sample.setSampleCode(list.get(i.get(0) - 1).getSampleCode() + "/" + list.get(i.get(1) - 1).getSampleCode());
             sample.setId(null);
             insSampleMapper.insert(sample);
             try {
@@ -212,7 +215,8 @@
                 insProduct.setId(null);
                 insProduct.setInsSampleId(sample.getId());
                 insProductMapper.insert(insProduct);
-            }catch (Exception e){}
+            } catch (Exception e) {
+            }
         }
         return insOrder.getId();
     }
@@ -223,8 +227,8 @@
             ||product.getAsk().indexOf("RTS")>-1||product.getAsk().indexOf("H")>-1||product.getAsk().indexOf("L")>-1)){
                 throw new ErrorException("鎻愪氦澶辫触锛屽瓨鍦ㄦ湭濉啓鐨勫彉閲忥細"+product.getInspectionItem()+" "+product.getInspectionItemSubclass());
             }*/
-            if(product.getState()==1 && !product.getInspectionItem().equals("鐔旀帴鎹熻��")){
-                switch (type){
+            if (product.getState() == 1 && !product.getInspectionItem().equals("鐔旀帴鎹熻��")) {
+                switch (type) {
                     case 1:
                         product.setInsFibersId(id);
                         break;
@@ -259,6 +263,11 @@
     @Override
     public int upInsOrderOfState(InsOrder insOrder) {
         insOrder.setExamineTime(LocalDateTime.now());
+        String code = baseMapper.selLaboratoryCode(insOrder.getLaboratory());
+        if (StringUtils.isEmpty(code)) {
+            code = "";
+        }
+        insOrder.setEntrustCode(giveCode.giveCode("JC/" + code + "-", "ins_order", "", "yyMMdd"));
         return insOrderMapper.updateById(insOrder);
     }
 
@@ -307,6 +316,27 @@
     public int updateStatus(Integer id) {
         return insOrderMapper.updateStatus(id);
     }
+
+    //鏍囩鎵撳嵃
+    @Override
+    public  List<SampleProductDto3> labelPrinting(String ids) {
+        List<Integer> list = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList());
+        List<SampleProductDto3> sampleProductDtos = insSampleMapper.selectSampleProductListByOrderId3(list);
+        Set<String> processedCodes = new HashSet<>();
+        //濡傛灉鏄厜绾ゆ垨鑰呮槸鍏夌氦甯﹂粯璁ゅ彧鎵撳嵃绗竴涓�
+        List<SampleProductDto3> sampleProductDto3s = sampleProductDtos.stream().filter(sampleProductDto3 -> {
+            if (!"鍏夌氦".equals(sampleProductDto3.getIoSampleType()) && !"鍏夌氦甯�".equals(sampleProductDto3.getIoSampleType())) {
+                return true;
+            }
+            if (processedCodes.contains(sampleProductDto3.getCode())) {
+                return false;
+            } else {
+                processedCodes.add(sampleProductDto3.getCode());
+                return true;
+            }
+        }).collect(Collectors.toList());
+        return sampleProductDto3s;
+    }
 }
 
 
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
index 0aca9ac..59b2c69 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -317,7 +318,7 @@
                         && Objects.equals((sp.getInspectionItemSubclass() == null) ? "" : sp.getInspectionItemSubclass(), pl.getInspectionItemSubclass() == null ? "" : pl.getInspectionItemSubclass())
 //                        && Objects.equals(sp.getSample(), pl.getSample())
                         && Objects.equals(sp.getModel(), pl.getModel())
-                        && sp.getTree().indexOf(pl.getSample()==null?"null":pl.getSample())>-1
+                        && sp.getTree().indexOf(pl.getSample() == null ? "null" : pl.getSample()) > -1
                         && Objects.equals(sp.getStructureItemParameterId(), pl.getStructureItemParameterId())) {
                     pl.setId(sp.getId());
                     if (sp.getState() != null && !sp.getState().equals("")) {
@@ -380,10 +381,20 @@
             String field1 = o1.getManHourGroup();
             String field2 = o2.getManHourGroup();
 
-            int num1 = extractNumber(field1);
-            int num2 = extractNumber(field2);
+            boolean isEmpty1 = field1 == null || field1.isEmpty();
+            boolean isEmpty2 = field2 == null || field2.isEmpty();
 
-            return Integer.compare(num1, num2);
+            if (isEmpty1 && isEmpty2) {
+                return 0;
+            } else if (isEmpty1) {
+                return 1;
+            } else if (isEmpty2) {
+                return -1;
+            } else {
+                int num1 = extractNumber(field1);
+                int num2 = extractNumber(field2);
+                return Integer.compare(num1, num2);
+            }
         });
         try {
             map.put("productList", list.subList((page - 1) * 50, page * 50));
@@ -396,7 +407,10 @@
 
     private int extractNumber(String s) {
         // 浠庡瓧绗︿覆涓彁鍙栨暟瀛楃殑閫昏緫锛岃繖閲屽亣璁惧瓧娈电殑鏍煎紡鏄� "text<number>"
-        String number = s.replaceAll("\\D", "");
+        String number = s;
+        if (!s.matches("\\d+")) {
+            number = s.replaceAll("\\D", "");
+        }
         return Integer.parseInt(number);
     }
 
@@ -409,18 +423,27 @@
     }
 
     @Override
-    public Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree) {
+    public Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree, String item) {
         HashMap<String, List<?>> map = new HashMap<>();
         map.put("item", standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
                 .eq(StandardProductList::getStandardMethodListId, id)
                 .like(StandardProductList::getTree, tree)
                 .select(StandardProductList::getInspectionItem)
                 .groupBy(StandardProductList::getInspectionItem)));
-        map.put("items", standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
-                .eq(StandardProductList::getStandardMethodListId, id)
-                .like(StandardProductList::getTree, tree)
-                .select(StandardProductList::getInspectionItemSubclass)
-                .groupBy(StandardProductList::getInspectionItemSubclass)));
+        if (ObjectUtils.isNotEmpty(item)) {
+            map.put("items", standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
+                    .eq(StandardProductList::getStandardMethodListId, id)
+                    .eq(StandardProductList::getInspectionItem, item)
+                    .like(StandardProductList::getTree, tree)
+                    .select(StandardProductList::getInspectionItemSubclass)
+                    .groupBy(StandardProductList::getInspectionItemSubclass)));
+        } else {
+            map.put("items", standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
+                    .eq(StandardProductList::getStandardMethodListId, id)
+                    .like(StandardProductList::getTree, tree)
+                    .select(StandardProductList::getInspectionItemSubclass)
+                    .groupBy(StandardProductList::getInspectionItemSubclass)));
+        }
         return map;
     }
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
index c0339db..a531710 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
+import cn.hutool.core.lang.Console;
 import cn.hutool.poi.excel.ExcelUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -134,7 +135,7 @@
     public int upStandardProducts(Map<String, Object> product) {
         List<Integer> ids = JSON.parseArray(product.get("ids") + "");
         StandardProductList productList = JSON.parseObject(JSON.toJSONString(product.get("standardProductList")), StandardProductList.class);
-        if(productList.getMethodS() != null){
+        if (productList.getMethodS() != null) {
             standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids).like(StandardProductList::getMethod, productList.getMethodS()));
             return 1;
         }
@@ -206,7 +207,7 @@
                 }
                 StandardProductList db_str;
                 try {
-                    db_str = standardProductListMapper.getOne(str.getStandardMethodListId(),str.getInspectionItem(),str.getSample(),str.getInspectionItemSubclass(),str.getModel());
+                    db_str = standardProductListMapper.getOne(str.getStandardMethodListId(), str.getInspectionItem(), str.getSample(), str.getInspectionItemSubclass(), str.getModel());
                 } catch (Exception e) {
                     throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
                 }
@@ -215,7 +216,7 @@
                     str.setStructureItemParameterId(db_str.getStructureItemParameterId());
                 }
                 if (list.get(8) != null) {
-                    str.setMethodS(list.get(8)+"");
+                    str.setMethodS(list.get(8) + "");
                 }
 
                 if (list.get(11) == null) {
@@ -251,18 +252,23 @@
                 str.setFactory("涓ぉ绉戞妧妫�娴嬩腑蹇�");
                 str.setLaboratory(laboratory.get());
                 str.setState(1);
-                str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null?"":str.getModel()));
-                str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\""+str.getSampleType()+"\"", str.getInspectionItem(), str.getInspectionItemSubclass()));
-                if(str.getStructureItemParameterId() == null){
+                str.setTree(str.getFactory() + " - " + str.getLaboratory() + " - " + str.getSampleType() + " - " + str.getSample() + " - " + (str.getModel() == null ? "" : str.getModel()));
+                try {
+                    str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass()));
+                } catch (Exception e) {
+                    Console.log("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"");
+                    str.setStructureItemParameterId(standardTreeMapper.getStructureItemParameterId("\"" + str.getSampleType() + "\",\"" + str.getSample() + "\"", str.getInspectionItem(), str.getInspectionItemSubclass()));
+                }
+                if (str.getStructureItemParameterId() == null) {
                     throw new ErrorException("妫�楠岄」鐩笉瀛樺湪锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass());
                 }
                 lists.add(str);
             }
         });
-        lists.forEach(a->{
-            if(a.getId() != null){
+        lists.forEach(a -> {
+            if (a.getId() != null) {
                 standardProductListMapper.updateById(a);
-            }else{
+            } else {
                 standardProductListMapper.insert(a);
             }
         });
@@ -277,6 +283,16 @@
     public void resetTreeOfHour(String tree, Integer standardId) {
         standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId).set(StandardProductList::getManHour, null));
     }
+
+    @Override
+    public void resetTreeOfAsk(String tree, Integer standardId) {
+        standardProductListMapper.update(null, Wrappers.<StandardProductList>lambdaUpdate().like(StandardProductList::getTree, tree).eq(StandardProductList::getStandardMethodListId, standardId)
+                .set(StandardProductList::getAsk, null)
+                .set(StandardProductList::getTell, null)
+                .set(StandardProductList::getSection, null)
+                .set(StandardProductList::getPrice, null)
+                .set(StandardProductList::getManHour, null));
+    }
 }
 
 
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index d5affd3..ab1e206 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -125,7 +125,8 @@
     <select id="selectSampleAndProductByOrderId" resultType="com.yuanchu.mom.dto.SampleProductDto2">
         select *
         from (
-        select i.id,isa.sample_code,isa.sample,isa.model,isa.ins_state,ip.state,ip.unit,ip.inspection_item,ip.inspection_item_subclass,
+        select
+        i.id,isa.sample_code,isa.sample,isa.model,isa.ins_state,ip.state,ip.unit,ip.inspection_item,ip.inspection_item_subclass,
         ip.son_laboratory,ip.inspection_item_type,ip.inspection_value_type,ip.ask,ip.`last_value`,ip.ins_result,ipr.equip_value
         from ins_sample isa
         left join ins_order i on isa.ins_order_id = i.id
@@ -159,7 +160,7 @@
         LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id,GROUP_CONCAT(b.inspection_item2
         SEPARATOR ',')
         inspection_item from (select *,GROUP_CONCAT(inspection_item
-        SEPARATOR ',') inspection_item2  from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP
+        SEPARATOR ',') inspection_item2 from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP
         BY b.ins_sample_id) c ON c.ins_sample_id = isa.id
         where (i.state = 1 or i.state = 3 or i.state = 4)
         ) a
@@ -168,7 +169,8 @@
         </if>
     </select>
     <select id="selectDeviceList" resultType="java.util.Map">
-        select device_name,specification_model,management_number,DATE_ADD(date_format(last_calibration_date, '%Y-%m-%d'),INTERVAL calibration_date month) latest_traceability
+        select device_name,specification_model,management_number,DATE_ADD(date_format(last_calibration_date,
+        '%Y-%m-%d'),INTERVAL calibration_date month) latest_traceability
         from device
         where device.management_number in
         <foreach collection="names" index="index" open="(" separator="," close=")" item="val">
@@ -179,20 +181,48 @@
     <update id="upInsOrderParameter" parameterType="com.yuanchu.mom.pojo.InsOrder">
         UPDATE ins_order
         <set>
-            <if test="appointed!=null and appointed!='' ">appointed=#{appointed},</if>
-            <if test="userId!=null  ">user_id=#{userId},</if>
-            <if test="createUser!=null  ">create_user=#{createUser}</if>
-            <if test="otcCode!=null  ">otc_code=#{otcCode}</if>
-            <if test="code!=null  ">code=#{code}</if>
-            <if test="custom!=null  ">custom=#{custom}</if>
-            <if test="updateUser!=null  ">update_user=#{updateUser}</if>
-            <if test="updateTime!=null  ">update_time=#{updateTime}</if>
-            <if test="type!=null  ">type=#{type}</if>
-            <if test="entrustCode!=null  ">entrust_code=#{entrustCode}</if>
-            <if test="company!=null  ">company=#{company}</if>
-            <if test="remark!=null  ">remark=#{remark}</if>
-            <if test="createTime!=null  ">create_time=#{createTime}</if>
-            <if test="state!=null  ">state=#{state}</if>
+            <if test="appointed!=null and appointed!='' ">
+                appointed=#{appointed},
+            </if>
+            <if test="userId!=null  ">
+                user_id=#{userId},
+            </if>
+            <if test="createUser!=null  ">
+                create_user=#{createUser}
+            </if>
+            <if test="otcCode!=null  ">
+                otc_code=#{otcCode}
+            </if>
+            <if test="code!=null  ">
+                code=#{code}
+            </if>
+            <if test="custom!=null  ">
+                custom=#{custom}
+            </if>
+            <if test="updateUser!=null  ">
+                update_user=#{updateUser}
+            </if>
+            <if test="updateTime!=null  ">
+                update_time=#{updateTime}
+            </if>
+            <if test="type!=null  ">
+                type=#{type}
+            </if>
+            <if test="entrustCode!=null  ">
+                entrust_code=#{entrustCode}
+            </if>
+            <if test="company!=null  ">
+                company=#{company}
+            </if>
+            <if test="remark!=null  ">
+                remark=#{remark}
+            </if>
+            <if test="createTime!=null  ">
+                create_time=#{createTime}
+            </if>
+            <if test="state!=null  ">
+                state=#{state}
+            </if>
         </set>
         <where>
             id=#{id}
@@ -244,11 +274,18 @@
         ) temp
     </select>
     <select id="getEnumLabelByValue" resultType="java.lang.String">
-        select label from `center-lims`.enums
+        select label
+        from `center-lims`.enums
         where value = #{value}
     </select>
     <select id="getStandardMethodCode" resultType="java.lang.String">
-        select code from `center-lims`.standard_method
+        select code
+        from `center-lims`.standard_method
         where id = #{id}
     </select>
+    <select id="selLaboratoryCode" resultType="java.lang.String">
+        select laboratory_code
+        from laboratory
+        where laboratory_name = #{laboratory}
+    </select>
 </mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index 32195f8..0138951 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -3,7 +3,6 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.InsSampleMapper">
-
     <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsSample">
         <id property="id" column="id" jdbcType="INTEGER"/>
         <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
@@ -48,7 +47,7 @@
         LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
         WHERE
         io.state = 1
-#         AND io.ins_state != 5
+        # AND io.ins_state != 5
         and send_time is not null
         and (isu.user_id = #{userId} OR isu.user_id is NULL)
         GROUP BY
@@ -56,7 +55,9 @@
         io.id
         ) a
         LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
-        left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM ins_sample_user GROUP BY ins_sample_id) md  where td.id = md.id and user_id = #{userId}) isu2 on isu2.ins_sample_id = a.id
+        left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM
+        ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id and user_id = #{userId}) isu2 on
+        isu2.ins_sample_id = a.id
         ORDER BY
         a.user_id DESC,
         a.type DESC,
@@ -90,7 +91,7 @@
         LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
         WHERE
         io.state = 1
-        #         AND io.ins_state != 5
+        # AND io.ins_state != 5
         and send_time is not null
         and (isu.user_id = #{userId} OR isu.user_id is NULL)
         GROUP BY
@@ -98,7 +99,9 @@
         io.id
         ) a
         LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
-        left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM ins_sample_user GROUP BY ins_sample_id) md  where td.id = md.id and user_id = #{userId}) isu2 on isu2.ins_sample_id = a.id
+        left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM
+        ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id and user_id = #{userId}) isu2 on
+        isu2.ins_sample_id = a.id
         ORDER BY
         a.user_id DESC,
         a.type DESC,
@@ -111,20 +114,20 @@
 
     <select id="selectSampleProductListByOrderId" resultMap="sampleDto">
         select isa.*,
-               ip.id ip_id,
+               ip.id          ip_id,
                inspection_item,
                inspection_item_en,
                inspection_item_class,
                inspection_item_class_en,
                inspection_item_subclass,
                inspection_item_subclass_en,
-               ip.factory ip_factory,
-               ip.laboratory ip_laboratory,
+               ip.factory     ip_factory,
+               ip.laboratory  ip_laboratory,
                ip.sample_type ip_sample_type,
-               ip.sample ip_sample,
-               ip.model ip_model,
+               ip.sample      ip_sample,
+               ip.model       ip_model,
                son_laboratory,
-               ip.unit ip_unit,
+               ip.unit        ip_unit,
                price,
                man_hour,
                man_hour_group,
@@ -139,7 +142,7 @@
                bsm,
                ask,
                `last_value`,
-               ip.ins_result ip_ins_result,
+               ip.ins_result  ip_ins_result,
                state,
                ins_sample_id,
                ip.create_user ip_create_user,
@@ -152,29 +155,29 @@
                ipr.equip_value,
                ip.method_s
         from ins_sample isa
-        left join ins_product ip on isa.id = ip.ins_sample_id
-        left join ins_product_result ipr on ip.id = ipr.ins_product_id
+                 left join ins_product ip on isa.id = ip.ins_sample_id
+                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
         where ins_order_id = #{id}
-        and state = 1
-        and ins_fiber_id is null
-        and ins_fibers_id is null
+          and state = 1
+          and ins_fiber_id is null
+          and ins_fibers_id is null
     </select>
     <select id="getInsOrderAndSample" resultMap="sampleDto">
         select isa.*,
-               ip.id ip_id,
+               ip.id          ip_id,
                inspection_item,
                inspection_item_en,
                inspection_item_class,
                inspection_item_class_en,
                inspection_item_subclass,
                inspection_item_subclass_en,
-               ip.factory ip_factory,
-               ip.laboratory ip_laboratory,
+               ip.factory     ip_factory,
+               ip.laboratory  ip_laboratory,
                ip.sample_type ip_sample_type,
-               ip.sample ip_sample,
-               ip.model ip_model,
+               ip.sample      ip_sample,
+               ip.model       ip_model,
                son_laboratory,
-               ip.unit ip_unit,
+               ip.unit        ip_unit,
                price,
                man_hour,
                man_hour_group,
@@ -189,7 +192,7 @@
                bsm,
                ask,
                `last_value`,
-               ip.ins_result ip_ins_result,
+               ip.ins_result  ip_ins_result,
                state,
                ins_sample_id,
                ip.create_user ip_create_user,
@@ -205,34 +208,35 @@
                ip.tell,
                ip.dic
         from ins_sample isa
-        left join ins_product ip on isa.id = ip.ins_sample_id
-        left join ins_product_result ipr on ip.id = ipr.ins_product_id
+                 left join ins_product ip on isa.id = ip.ins_sample_id
+                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
         where ins_order_id = #{id}
-        and state = 1
-        and ip.son_laboratory = #{laboratory}
-        and ins_fiber_id is null
-        and ins_fibers_id is null
+          and state = 1
+          and ip.son_laboratory = #{laboratory}
+          and ins_fiber_id is null
+          and ins_fibers_id is null
     </select>
     <select id="getSampleEn" resultType="java.lang.String">
-        select name_en from `center-lims`.product
+        select name_en
+        from `center-lims`.product
         where name = #{sample}
     </select>
     <select id="selectSampleProductListByOrderId2" resultMap="sampleDto">
         select isa.*,
-               ip.id ip_id,
+               ip.id          ip_id,
                inspection_item,
                inspection_item_en,
                inspection_item_subclass,
                inspection_item_subclass_en,
                inspection_item_class,
                inspection_item_class_en,
-               ip.factory ip_factory,
-               ip.laboratory ip_laboratory,
+               ip.factory     ip_factory,
+               ip.laboratory  ip_laboratory,
                ip.sample_type ip_sample_type,
-               ip.sample ip_sample,
-               ip.model ip_model,
+               ip.sample      ip_sample,
+               ip.model       ip_model,
                son_laboratory,
-               ip.unit ip_unit,
+               ip.unit        ip_unit,
                price,
                man_hour,
                man_hour_group,
@@ -247,7 +251,7 @@
                bsm,
                ask,
                `last_value`,
-               ip.ins_result ip_ins_result,
+               ip.ins_result  ip_ins_result,
                state,
                ins_sample_id,
                ip.create_user ip_create_user,
@@ -265,19 +269,46 @@
         where ins_order_id = #{id}
           and state = 1
     </select>
+
+    <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3">
+        select isa.id,
+        sample_code,
+        entrust_code,
+        is_leave,
+        isa.model,
+        isa.ins_state,
+        ip.id ip_id,
+        inspection_item,
+        inspection_item_subclass,
+        io.sample_type io_sample_type,
+        ip.sample ip_sample,
+        ip.model ip_model,
+        ip.state,
+        ins_sample_id
+        from ins_sample isa
+        left join ins_product ip on isa.id = ip.ins_sample_id
+        left join ins_product_result ipr on ip.id = ipr.ins_product_id
+        left join ins_order io on io.id = ins_order_id
+        where  ip.state = 1
+        and ins_order_id in
+        <foreach collection="ids" open="(" close=")" item="id" separator=",">
+            #{id}
+        </foreach>
+    </select>
+
     <select id="getInsProduct1" resultMap="product">
-        select ip.id ip_id,
+        select ip.id          ip_id,
                inspection_item,
                inspection_item_en,
                inspection_item_subclass,
                inspection_item_subclass_en,
-               ip.factory ip_factory,
-               ip.laboratory ip_laboratory,
+               ip.factory     ip_factory,
+               ip.laboratory  ip_laboratory,
                ip.sample_type ip_sample_type,
-               ip.sample ip_sample,
-               ip.model ip_model,
+               ip.sample      ip_sample,
+               ip.model       ip_model,
                son_laboratory,
-               ip.unit ip_unit,
+               ip.unit        ip_unit,
                price,
                man_hour,
                man_hour_group,
@@ -292,7 +323,7 @@
                bsm,
                ask,
                `last_value`,
-               ip.ins_result ip_ins_result,
+               ip.ins_result  ip_ins_result,
                state,
                ins_sample_id,
                ip.create_user ip_create_user,
@@ -308,7 +339,7 @@
                ip.tell,
                ip.dic
         from ins_product ip
-        left join ins_product_result ipr on ip.id = ipr.ins_product_id
+                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
         where ins_sample_id = #{id}
           and state = 1
           and ip.son_laboratory = #{laboratory}
@@ -316,20 +347,20 @@
           and ins_fibers_id is null
     </select>
     <select id="getInsProduct2" resultMap="product">
-        select ip.id ip_id,
+        select ip.id          ip_id,
                inspection_item,
                inspection_item_en,
                inspection_item_class,
                inspection_item_class_en,
                inspection_item_subclass,
                inspection_item_subclass_en,
-               ip.factory ip_factory,
-               ip.laboratory ip_laboratory,
+               ip.factory     ip_factory,
+               ip.laboratory  ip_laboratory,
                ip.sample_type ip_sample_type,
-               ip.sample ip_sample,
-               ip.model ip_model,
+               ip.sample      ip_sample,
+               ip.model       ip_model,
                son_laboratory,
-               ip.unit ip_unit,
+               ip.unit        ip_unit,
                price,
                man_hour,
                man_hour_group,
@@ -344,7 +375,7 @@
                bsm,
                ask,
                `last_value`,
-               ip.ins_result ip_ins_result,
+               ip.ins_result  ip_ins_result,
                state,
                ins_sample_id,
                ip.create_user ip_create_user,
@@ -360,26 +391,26 @@
                ip.tell,
                ip.dic
         from ins_product ip
-        left join ins_product_result ipr on ip.id = ipr.ins_product_id
+                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
         where ins_fibers_id = #{id}
           and state = 1
           and ins_fiber_id is null
     </select>
     <select id="getInsProduct3" resultMap="product">
-        select ip.id ip_id,
+        select ip.id          ip_id,
                inspection_item,
                inspection_item_en,
                inspection_item_class,
                inspection_item_class_en,
                inspection_item_subclass,
                inspection_item_subclass_en,
-               ip.factory ip_factory,
-               ip.laboratory ip_laboratory,
+               ip.factory     ip_factory,
+               ip.laboratory  ip_laboratory,
                ip.sample_type ip_sample_type,
-               ip.sample ip_sample,
-               ip.model ip_model,
+               ip.sample      ip_sample,
+               ip.model       ip_model,
                son_laboratory,
-               ip.unit ip_unit,
+               ip.unit        ip_unit,
                price,
                man_hour,
                man_hour_group,
@@ -394,7 +425,7 @@
                bsm,
                ask,
                `last_value`,
-               ip.ins_result ip_ins_result,
+               ip.ins_result  ip_ins_result,
                state,
                ins_sample_id,
                ip.create_user ip_create_user,
@@ -410,7 +441,7 @@
                ip.tell,
                ip.dic
         from ins_product ip
-        left join ins_product_result ipr on ip.id = ipr.ins_product_id
+                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
         where ins_fiber_id = #{id}
           and state = 1
           and ins_fibers_id is null
@@ -483,6 +514,33 @@
         <collection property="insProductResult" resultMap="insProductResult"/>
     </resultMap>
 
+    <resultMap id="sampleDto3" type="com.yuanchu.mom.dto.SampleProductDto3">
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+        <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+        <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
+        <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
+        <result property="ioSampleType" column="io_sample_type" jdbcType="VARCHAR"/>
+        <result property="code" column="entrust_code" jdbcType="VARCHAR"/>
+        <result property="isLeave" column="is_leave" jdbcType="VARCHAR"/>
+        <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/>
+        <result property="factory" column="factory" jdbcType="VARCHAR"/>
+        <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+        <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+        <result property="sample" column="sample" jdbcType="VARCHAR"/>
+        <result property="model" column="model" jdbcType="VARCHAR"/>
+        <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+        <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+        <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+        <result property="standardMethodListId" column="standard_method_list_id"/>
+        <result property="unit" column="unit"/>
+        <collection property="insProduct" resultMap="product"/>
+    </resultMap>
+
     <resultMap id="insProductResult" type="com.yuanchu.mom.pojo.InsProductResult">
         <result property="insValue" column="ins_value" jdbcType="VARCHAR"/>
         <result property="comValue" column="com_value" jdbcType="VARCHAR"/>
diff --git a/inspect-server/src/main/resources/static/report-template.docx b/inspect-server/src/main/resources/static/report-template.docx
index aae0c9f..5196cdf 100644
--- a/inspect-server/src/main/resources/static/report-template.docx
+++ b/inspect-server/src/main/resources/static/report-template.docx
Binary files differ

--
Gitblit v1.9.3