From dc352ea3b9ec925320784592f29ca640b3a7b2ea Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 05 十二月 2023 14:05:44 +0800
Subject: [PATCH] 6

---
 zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java                                       |   12 
 web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue                                        |   26 +
 web/src/views/layout/main-sidebar.vue                                                                            |    1 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java                      |   82 ++++
 zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java                                             |   15 
 zt/core/src/main/resources/mapper/sys/SysPostDao.xml                                                             |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java                  |   39 +
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java |   17 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java                              |   44 ++
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java                 |   24 +
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java                |   12 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java       |  114 +++++
 modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml                                  |   21 +
 web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue                                                      |   22 +
 web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue                                              |   88 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java             |  128 ++++++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java            |    3 
 web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue                                                    |   22 +
 web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue                                                   |   22 +
 web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue                                                    |   22 +
 zt/core/src/main/resources/mapper/sys/SysTenantDao.xml                                                           |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java       |   77 +++
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java                           |   23 
 core/src/main/java/com/zt/life/export/service/WordFileService.java                                               |   16 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java                     |   23 +
 modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml                              |   34 +
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java         |   52 ++
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java                         |   31 +
 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue                                    |   19 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java   |   97 ++++
 web/src/views/modules/testCheckOrder/TestCheckOrder.vue                                                          |   58 ++
 31 files changed, 1,077 insertions(+), 73 deletions(-)

diff --git a/core/src/main/java/com/zt/life/export/service/WordFileService.java b/core/src/main/java/com/zt/life/export/service/WordFileService.java
index 0576d03..3ef75f1 100644
--- a/core/src/main/java/com/zt/life/export/service/WordFileService.java
+++ b/core/src/main/java/com/zt/life/export/service/WordFileService.java
@@ -14,8 +14,10 @@
 import org.springframework.stereotype.Service;
 
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
 import java.io.*;
 import java.lang.reflect.Field;
 import java.util.*;
@@ -65,20 +67,26 @@
                 } else if (staticFieldValue != null) {
                     String valStr = staticFieldValue.toString();
                     if (valStr.contains("鏂囦欢鍥剧墖:")) {
-                        valStr = valStr.replace("鏂囦欢鍥剧墖:", "");
+                        valStr = localPath + valStr.replace("鏂囦欢鍥剧墖:", "");
                         File file = new File(valStr);
                         if (file.exists()) {
                             try (InputStream in = ossEncryptService.decrypt(file)) {
-                                staticFieldValue = new PictureRenderData(500, 500, ".png", in);
+                                InputStream in2 = ossEncryptService.decrypt(file);
+                                BufferedImage bufferedImage = ImageIO.read(in2);
+                                int width = bufferedImage.getWidth();
+                                int height = bufferedImage.getHeight();
+                                staticFieldValue = new PictureRenderData(width, height, ".png", in);
                                 /*staticFieldValue = new PictureRenderData(80, 100, "d://" + valStr);*/
                             } catch (IOException e) {
                                 e.printStackTrace();
                             }
+                        } else {
+                            staticFieldValue = new PictureRenderData(100, 30, "template/noSign.png");
                         }
-                        if (wordData.get(fieldName) == null)
-                            wordData.put(fieldName, staticFieldValue);
                     }
                 }
+                if (wordData.get(fieldName) == null)
+                    wordData.put(fieldName, staticFieldValue);
             }
         }
     }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java
index 08b6147..88e68dd 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java
@@ -26,6 +26,9 @@
 	@ApiModelProperty(value = "椤圭洰ID")
 	private Long projectId;
 
+	@ApiModelProperty(value = "妫�鏌ュ崟ID")
+	private Long checkId;
+
 	@ApiModelProperty(value = "閰嶇疆椤瑰叆搴撶紪鍙�")
 	private String code;
 
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java
index 70405bf..240c223 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java
@@ -29,6 +29,7 @@
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.HashMap;
 import java.util.List;
@@ -77,15 +78,6 @@
     @ApiOperation("淇℃伅")
     public Result<ItemCirculatOrderDto> getDto(Long projectId, Long circulatOrderid) {
         ItemCirculatOrderDto data = itemCirculatOrderService.getDto(projectId, circulatOrderid);
-        if (circulatOrderid!=null) {
-            for (ItemCirculatOrderTechnical technical : data.getTechnicalList()) {
-                Long technicalId = technical.getId();
-                OssDto ossDto = sysOssConfigService.getOssByBusiType(technicalId, "circulat_order");
-                if (ossDto != null) {
-                    technical.setFiles(ossDto);
-                }
-            }
-        }
         return Result.ok(data);
     }
 
@@ -125,4 +117,11 @@
         return Result.ok();
     }
 
+    @GetMapping("exportCirculatOrder")
+    @ApiOperation("鎵撳嵃鐗╁搧娴佽浆鍗�")
+    @LogOperation("鎵撳嵃鐗╁搧娴佽浆鍗�")
+    public void exportCirculatOrder(Long id, HttpServletRequest request, HttpServletResponse response) {
+        itemCirculatOrderService.exportCirculatOrder(id, request, response);
+    }
+
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
index 4eae527..9c0c365 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/model/ItemCirculatOrder.java
@@ -95,5 +95,17 @@
 	@ApiModelProperty(value = "鍏朵粬瑕佹眰")
 	private String itemRequireStr;
 
+	@TableField(exist = false)
+	@ApiModelProperty(value = "鐗╁搧鎺ユ敹鎯呭喌璇存槑")
+	private String acceptSituationStr;
+
+	@TableField(exist = false)
+	@ApiModelProperty(value = "鏍″噯妫�娴嬫儏鍐佃鏄�")
+	private String detectSituationStr;
+
+	@TableField(exist = false)
+	@ApiModelProperty(value = "鐗╁搧鍙戞斁鎯呭喌璇存槑")
+	private String issueSituationStr;
+
 
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java
index 03a5329..d5cacb0 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java
@@ -1,19 +1,17 @@
 package com.zt.life.modules.itemCirculatOrder.service;
 
+import cn.hutool.core.convert.Convert;
 import com.zt.common.service.BaseService;
-import com.zt.core.sys.dto.DictDto;
-import com.zt.core.sys.dto.DictItemDto;
-import com.zt.core.sys.dto.DictLeafDto;
 import com.zt.life.export.dto.WordFile;
+import com.zt.life.export.service.WordFileService;
 import com.zt.life.modules.itemCirculatOrder.dao.ItemCirculatOrderDao;
-import com.zt.life.modules.itemCirculatOrder.dao.ItemCirculatOrderTechnicalDao;
 import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto;
 import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder;
 import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
-import com.zt.life.modules.project.dto.SoftwareTestOrderDto;
+import com.zt.life.modules.mainPart.utils.GetShowDictList;
+import com.zt.life.modules.mainPart.utils.GetFilesPath;
 import com.zt.life.modules.project.model.*;
 import com.zt.life.modules.project.service.ProjectService;
-import com.zt.life.modules.project.service.SoftwareTestOrderService;
 import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
 import com.zt.life.sys.dto.OssDto;
 import com.zt.life.sys.service.SysOssConfigService;
@@ -25,16 +23,13 @@
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
 
-import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.FileNotFoundException;
 import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 
 /**
@@ -65,6 +60,16 @@
 
     @Autowired
     private WorkflowService workflowService;
+
+    @Autowired
+    private GetShowDictList getShowDictList;
+
+    @Autowired
+    private WordFileService wordFileService;
+
+    @Autowired
+    private GetFilesPath getFilesPath;
+
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -120,7 +125,7 @@
         Long bizId = itemCirculatOrderDto.getCirculatOrder().getId();
         FlowInfoDto flowInfoDto = itemCirculatOrderDto.getFlowInfoDto();
 
-        if (flowInfoDto != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
+        if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
             if ("tj".equals(flowInfoDto.getSubmitType())) {
                 workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
             }
@@ -164,11 +169,59 @@
             project.setSoftwareType(type);
             data.setProject(project);
         }
-
         if (data.getTestAgencyInfo() == null)
             data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
-
+        if (circulatOrderid != null) {
+            for (ItemCirculatOrderTechnical technical : data.getTechnicalList()) {
+                Long technicalId = technical.getId();
+                OssDto ossDto = sysOssConfigService.getOssByBusiType(technicalId, "circulat_order");
+                if (ossDto != null) {
+                    technical.setFiles(ossDto);
+                }
+            }
+        }
         return data;
     }
 
+    public void exportCirculatOrder(Long id, HttpServletRequest request, HttpServletResponse response) {
+        try {
+            ItemCirculatOrderDto dataObj = this.getDto(null, id);
+
+            String acceptorPath = "鏂囦欢鍥剧墖:"+ getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemAcceptorId()));
+            dataObj.getCirculatOrder().setItemAcceptor(acceptorPath);
+            String detectorPath = "鏂囦欢鍥剧墖:"+getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getCalibratDetectorId()));
+            dataObj.getCirculatOrder().setCalibratDetector(detectorPath);
+            String issuerPath = "鏂囦欢鍥剧墖:"+getFilesPath.getSignPath(Convert.toLong(dataObj.getCirculatOrder().getItemIssuerId()));
+            dataObj.getCirculatOrder().setItemIssuer(issuerPath);
+            //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴�
+            String itemRequireStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getItemRequire(), "is_or_not", false);
+            dataObj.getCirculatOrder().setItemRequireStr(itemRequireStr);
+
+            String acceptSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getAcceptSituation(), "is_or_not", false);
+            dataObj.getCirculatOrder().setAcceptSituationStr(acceptSituationStr);
+
+            String detectSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getDetectSituation(), "is_or_not", false);
+            dataObj.getCirculatOrder().setDetectSituationStr(detectSituationStr);
+
+            String issueSituationStr = getShowDictList.getShowDictList(dataObj.getCirculatOrder().getIssueSituation(), "is_or_not", false);
+            dataObj.getCirculatOrder().setIssueSituationStr(issueSituationStr);
+
+            for (ItemCirculatOrderTechnical technical : dataObj.getTechnicalList()) {
+                String value = technical.getSecretClass();
+                String secretClassStr = getShowDictList.getShowDictList(value, "secret_class", false);
+                technical.setSecretClass(secretClassStr);
+            }
+
+
+            WordFile wordFile = new WordFile();
+            wordFile.setModulePath("鐗╁搧娴佽浆鍗�.docx");
+            wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_鐗╁搧娴佽浆鍗�.docx");
+            wordFileService.exportWordFile(request, dataObj, wordFile, response);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+    }
+
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java
new file mode 100644
index 0000000..501e6c0
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetFilesPath.java
@@ -0,0 +1,44 @@
+package com.zt.life.modules.mainPart.utils;
+
+import com.zt.core.sys.model.SysUser;
+import com.zt.life.sys.dto.OssDto;
+import com.zt.modules.oss.cloud.LocalStorageService;
+import com.zt.modules.oss.model.SysOss;
+import com.zt.modules.oss.service.SysOssService;
+import com.zt.modules.sys.service.SysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+@Service
+public class GetFilesPath {
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private SysOssService sysOssService;
+
+    public String getSignPath(Long userId) {
+        SysUser data = sysUserService.getUserInfo(userId);
+        OssDto oss = data.getFiles2();
+        return getFirstImagePath(oss);
+    }
+
+    public String getFirstImagePath(OssDto oss) {
+        String filePath = "";
+        if (oss != null) {
+            if (oss.getGroups().size() > 0) {
+                OssDto.OssFieldGroupDto group = oss.getGroups().get(0);
+                if (group.getFields().size() > 0) {
+                    OssDto.OssFieldDto field = group.getFields().get(0);
+                    if (field.getFiles().size() > 0) {
+                        com.zt.core.oss.dto.OssDto file = field.getFiles().get(0);
+                        SysOss sysOss = sysOssService.get(file.getId());
+                        filePath = sysOss.getPath();
+                    }
+                }
+            }
+        }
+        return filePath;
+    }
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
index 7a01b68..1e31c4f 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
@@ -6,6 +6,7 @@
 import com.zt.core.sys.dto.DictLeafDto;
 import com.zt.life.export.dto.WordFile;
 import com.zt.life.export.service.WordFileService;
+import com.zt.life.modules.mainPart.utils.GetFilesPath;
 import com.zt.life.modules.mainPart.utils.GetShowDictList;
 import com.zt.life.modules.project.dao.EnvironDao;
 import com.zt.life.modules.project.dto.EnvironDto;
@@ -75,7 +76,7 @@
     private SysOssService sysOssService;
 
     @Autowired
-    private LocalStorageService localStorageService;
+    private GetFilesPath getFilesPath;
 
     @Value("${zt.oss.local-path}")
     private String localPath;
@@ -203,7 +204,7 @@
     public void exportEnviron(Long id, HttpServletRequest request, HttpServletResponse response) {
         try {
             EnvironDto dataObj = this.getDto(id, null);
-            String imagePath = "鏂囦欢鍥剧墖:"+getFirstImagePath(dataObj.getFiles());
+            String imagePath = "鏂囦欢鍥剧墖:"+getFilesPath.getFirstImagePath(dataObj.getFiles());
             dataObj.getEnviron().setTestEnvirontDiagram(imagePath);
             //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴�
             String isVirusScanStr = getShowDictList.getShowDictList(dataObj.getEnviron().getIsVirusScan(), "is_or_not", false);
@@ -220,21 +221,5 @@
         }
     }
 
-    public String getFirstImagePath(OssDto oss) {
-        String filePath = "";
-        if (oss != null) {
-            if (oss.getGroups().size() > 0) {
-                OssDto.OssFieldGroupDto group = oss.getGroups().get(0);
-                if (group.getFields().size() > 0) {
-                    OssDto.OssFieldDto field = group.getFields().get(0);
-                    if (field.getFiles().size() > 0) {
-                        com.zt.core.oss.dto.OssDto file = field.getFiles().get(0);
-                        SysOss sysOss = sysOssService.get(file.getId());
-                        filePath = localPath+sysOss.getPath();
-                    }
-                }
-            }
-        }
-        return filePath;
-    }
+
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java
new file mode 100644
index 0000000..f643f0d
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java
@@ -0,0 +1,114 @@
+package com.zt.life.modules.testCheckOrder.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.project.dto.EnvironDto;
+import com.zt.life.modules.project.dto.SoftwareTestOrderDto;
+import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
+import com.zt.life.modules.testCheckOrder.service.TestCheckOrderService;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * test_check_order
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@RestController
+@RequestMapping("/testCheckOrder/TestCheckOrder/")
+@Api(tags="test_check_order")
+public class TestCheckOrderController {
+    @Autowired
+    private TestCheckOrderService testCheckOrderService;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "code", value = "缂栧彿", dataType = Constant.QT.STRING, format = "code^LK"),        @ApiImplicitParam(name = "softwareidentity", value = "椤圭洰鏍囪瘑", dataType = Constant.QT.STRING, format = "softwareIdentity^LK"),        @ApiImplicitParam(name = "softwarename", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "softwareName^LK")    })
+    public PageResult<TestCheckOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(testCheckOrderService.page(queryFilter));
+    }
+
+    @GetMapping("getDto")
+    @ApiOperation("淇℃伅")
+    public Result<CheckOrderDto> getDto(Long checkId, Long projectId,String itemType) {
+        CheckOrderDto data = testCheckOrderService.getDto(checkId, projectId,itemType);
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody CheckOrderDto checkOrderDto){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(checkOrderDto, AddGroup.class, DefaultGroup.class);
+        Map<String, String> map = new HashMap<>();
+        map.put("funCode", "test_check_order");
+        map.put("projectId",checkOrderDto.getProjectId().toString());
+        checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map));
+        Boolean result = testCheckOrderService.save(checkOrderDto);
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody CheckOrderDto checkOrderDto){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(checkOrderDto, UpdateGroup.class, DefaultGroup.class);
+        Boolean result = testCheckOrderService.save(checkOrderDto);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping("deleteCheckOrder")
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        testCheckOrderService.delete(ids);
+
+        return Result.ok();
+    }
+
+    /*@GetMapping("exportCheckOrder")
+    @ApiOperation("鎵撳嵃娴嬭瘯鐜寤虹珛纭琛�")
+    @LogOperation("鎵撳嵃娴嬭瘯鐜寤虹珛纭琛�")
+    public void exportEnviron(Long id, HttpServletRequest request, HttpServletResponse response) {
+        environService.exportEnviron(id, request, response);
+    }*/
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java
new file mode 100644
index 0000000..841299c
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderListController.java
@@ -0,0 +1,97 @@
+package com.zt.life.modules.testCheckOrder.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import com.zt.life.modules.testCheckOrder.service.TestCheckOrderListService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * test_check_order_list
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@RestController
+@RequestMapping("/testCheckOrder/TestCheckOrderList/")
+@Api(tags="test_check_order_list")
+public class TestCheckOrderListController {
+    @Autowired
+    private TestCheckOrderListService testCheckOrderListService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "softwareName", value = "杞欢鍚嶇О", dataType = Constant.QT.STRING, format = "software_name^EQ"),
+    })
+    public PageResult<TestCheckOrderList> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(testCheckOrderListService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<TestCheckOrderList> get(@PathVariable("id") Long id){
+        TestCheckOrderList data = testCheckOrderListService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody TestCheckOrderList testCheckOrderList){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(testCheckOrderList, AddGroup.class, DefaultGroup.class);
+        testCheckOrderListService.insert(testCheckOrderList);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody TestCheckOrderList testCheckOrderList){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(testCheckOrderList, UpdateGroup.class, DefaultGroup.class);
+        testCheckOrderListService.update(testCheckOrderList);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        testCheckOrderListService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java
new file mode 100644
index 0000000..4df6682
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.testCheckOrder.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * test_check_order
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@Mapper
+public interface TestCheckOrderDao extends BaseDao<TestCheckOrder> {
+
+    List<TestCheckOrder> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java
new file mode 100644
index 0000000..17c4a13
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dao/TestCheckOrderListDao.java
@@ -0,0 +1,24 @@
+package com.zt.life.modules.testCheckOrder.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * test_check_order_list
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@Mapper
+public interface TestCheckOrderListDao extends BaseDao<TestCheckOrderList> {
+
+    List<TestCheckOrderList> getList(Map<String, Object> params);
+
+    List<TestCheckOrderList> itemList(String dictType);
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java
new file mode 100644
index 0000000..2a94346
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/dto/CheckOrderDto.java
@@ -0,0 +1,31 @@
+package com.zt.life.modules.testCheckOrder.dto;
+
+import com.zt.life.modules.project.model.*;
+import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import com.zt.life.sys.dto.OssDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class CheckOrderDto {
+    private Long id;//ID
+    private Long projectId;//椤圭洰ID
+    private Long checkId;//妫�鏌ュ崟ID
+    private Long configOrderId;//鍏ュ簱鍗旾D
+    private Long configItemId;//閰嶇疆椤笽D
+    private String configItemType;//閰嶇疆椤圭被鍨�
+
+
+    @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅")
+    private Project project;
+    @ApiModelProperty(value = "妫�鏌ュ崟")
+    private TestCheckOrder checkOrder;
+
+    @ApiModelProperty(value = "妫�鏌ュ崟鍒楄〃")
+    private List<TestCheckOrderList> checkOrderList = new ArrayList<>();
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java
new file mode 100644
index 0000000..568795e
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrder.java
@@ -0,0 +1,82 @@
+package com.zt.life.modules.testCheckOrder.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * test_check_order
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("test_check_order")
+public class TestCheckOrder extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "椤圭洰ID")
+	private Long projectId;
+
+	@ApiModelProperty(value = "閰嶇疆椤瑰叆搴�/鍙樻洿鍗旾D")
+	private Long configOrderId;
+
+	@ApiModelProperty(value = "閰嶇疆椤笽D")
+	private Long configItemId;
+
+	@ApiModelProperty(value = "閰嶇疆椤圭被鍨�")
+	private Long configItemType;
+
+	@ApiModelProperty(value = "缂栧彿")
+	private String code;
+
+	@ApiModelProperty(value = "椤圭洰鏍囪瘑")
+	private String softwareIdentity;
+
+	@ApiModelProperty(value = "椤圭洰鍚嶇О")
+	private String softwareName;
+
+	@ApiModelProperty(value = "妫�鏌ヤ汉")
+	private String examiner;
+
+	@ApiModelProperty(value = "妫�鏌ユ椂闂�")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date examDate;
+
+	@ApiModelProperty(value = "闂鎻忚堪")
+	private String problemDescription;
+
+	@ApiModelProperty(value = "闂澶勭悊")
+	private String problemProcess;
+
+	@ApiModelProperty(value = "澶勭悊浜�")
+	private String processor;
+
+	@ApiModelProperty(value = "澶勭悊浜篒D")
+	private Long processorId;
+
+	@ApiModelProperty(value = "澶勭悊鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date processDate;
+
+	@ApiModelProperty(value = "楠岃瘉浜�")
+	private String verifier;
+
+	@ApiModelProperty(value = "楠岃瘉浜篒D")
+	private String verifierId;
+
+	@ApiModelProperty(value = "楠岃瘉鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date verifyDate;
+
+	@ApiModelProperty(value = "骞翠唤")
+	private String year;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java
new file mode 100644
index 0000000..c5fc211
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/model/TestCheckOrderList.java
@@ -0,0 +1,39 @@
+package com.zt.life.modules.testCheckOrder.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * test_check_order_list
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("test_check_order_list")
+public class TestCheckOrderList extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "妫�鏌ュ崟ID")
+	private Long checkOrderId;
+
+	@ApiModelProperty(value = "搴忓彿")
+	private Integer no;
+
+	@ApiModelProperty(value = "涓昏妫�鏌ュ唴瀹�")
+	private String checkContent;
+
+	@ApiModelProperty(value = "妫�鏌ョ粨鏋�")
+	private String checkResult;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java
new file mode 100644
index 0000000..8fc424c
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderListService.java
@@ -0,0 +1,52 @@
+package com.zt.life.modules.testCheckOrder.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.project.model.EnvironSoftwareResources;
+import com.zt.life.modules.testCheckOrder.dao.TestCheckOrderListDao;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * test_check_order_list
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@Service
+public class TestCheckOrderListService  extends BaseService<TestCheckOrderListDao, TestCheckOrderList> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<TestCheckOrderList> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public List<TestCheckOrderList> getList(Long checkId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("checkId",checkId);
+        return baseDao.getList(params);
+    }
+
+    public List<TestCheckOrderList> itemList(String dictType) {
+        return baseDao.itemList(dictType);
+    }
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java
new file mode 100644
index 0000000..dd376c7
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java
@@ -0,0 +1,128 @@
+package com.zt.life.modules.testCheckOrder.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
+import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
+import com.zt.life.modules.project.model.Project;
+import com.zt.life.modules.project.service.ProjectService;
+import com.zt.life.modules.testCheckOrder.dao.TestCheckOrderDao;
+import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import com.zt.life.sys.dto.OssDto;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.workflow.dto.FlowInfoDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * test_check_order
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-05
+ */
+@Service
+public class TestCheckOrderService  extends BaseService<TestCheckOrderDao, TestCheckOrder> {
+    @Autowired
+    private TestCheckOrderListService checkOrderListService;
+
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<TestCheckOrder> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+
+    public CheckOrderDto getDto(Long checkId, Long projectId,String itemType) {
+        CheckOrderDto data = new CheckOrderDto();
+        if (checkId != null) {
+            data.setId(checkId);
+            TestCheckOrder checkOrder = this.get(checkId);
+            data.setCheckOrder(checkOrder);
+            if (projectId == null) {
+                projectId = checkOrder.getProjectId();
+            }
+
+            List<TestCheckOrderList> checkOrderList = checkOrderListService.getList(checkId);
+            data.setCheckOrderList(checkOrderList);
+
+        } else {
+            TestCheckOrder checkOrder = new TestCheckOrder();
+            data.setCheckOrder(checkOrder);
+            List<TestCheckOrderList> checkOrderList =new ArrayList();
+            if (itemType.equals("plan")){
+                checkOrderList = checkOrderListService.itemList("plan_check_item");
+            }else if (itemType.equals("explain")){
+                checkOrderList = checkOrderListService.itemList("explain_check_item");
+            }else if(itemType.equals("record")){
+                checkOrderList = checkOrderListService.itemList("record_check_item");
+            }else if (itemType.equals("report")){
+                checkOrderList = checkOrderListService.itemList("report_check_item");
+            }
+            data.setCheckOrderList(checkOrderList);
+        }
+        if (projectId != null) {
+            data.setProjectId(projectId);
+            data.setProject(projectService.get(projectId));
+        }
+        return data;
+    }
+
+    public Boolean save(CheckOrderDto checkOrderDto) {
+        Long checkId = checkOrderDto.getCheckOrder().getId();
+        if (checkId != null)
+            baseDao.updateById(checkOrderDto.getCheckOrder());
+        else {
+            Map<String, String> map = new HashMap<>();
+            map.put("funCode", "test_check_order");
+            map.put("projectId", checkOrderDto.getProjectId().toString());
+            checkOrderDto.getCheckOrder().setProjectId(checkOrderDto.getProjectId());
+            checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map));
+            baseDao.insert(checkOrderDto.getCheckOrder());
+            checkId = checkOrderDto.getCheckOrder().getId();
+        }
+
+        for (TestCheckOrderList checkOrderList : checkOrderDto.getCheckOrderList()) {
+            checkOrderList.setCheckOrderId(checkId);
+            if (checkOrderList.getId() != null) {
+                checkOrderListService.update(checkOrderList);
+            } else {
+                checkOrderList.setCheckOrderId(checkId);
+                checkOrderListService.insert(checkOrderList);
+            }
+        }
+        return true;
+    }
+}
diff --git a/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml
new file mode 100644
index 0000000..176226c
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.testCheckOrder.dao.TestCheckOrderDao">
+
+    <select id="getList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrder">
+        select a.* ,p.*
+        from test_check_order a
+        INNER JOIN  project p ON p.id = a.project_id
+        <where>
+            a.is_delete = 0 and p.is_delete = 0
+            <if test="whereSql!=null">
+                and ${whereSql}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml
new file mode 100644
index 0000000..a2e4096
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderListDao.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.testCheckOrder.dao.TestCheckOrderListDao">
+
+    <select id="getList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrderList">
+        select a.*
+        from test_check_order_list a
+        <where>
+            a.is_delete = 0
+            <if test="whereSql!=null">
+                and ${whereSql}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+    <select id="itemList" resultType="com.zt.life.modules.testCheckOrder.model.TestCheckOrderList">
+        SET @row_number = 0;
+        SELECT  dd.dict_label AS checkContent,
+        (@row_number := @row_number + 1) AS no
+        FROM sys_dict_type dt
+        JOIN sys_dict_data dd ON dt.ID = dd.DICT_TYPE_ID
+        <where>
+            dd.IS_DELETE = 0
+            <if test="dictType != null and dictType != ''">
+                and dt.DICT_TYPE = #{dictType}
+            </if>
+        </where>
+        ORDER BY dd.sort
+    </select>
+
+</mapper>
diff --git a/web/src/views/layout/main-sidebar.vue b/web/src/views/layout/main-sidebar.vue
index 73b2c77..a356a6e 100644
--- a/web/src/views/layout/main-sidebar.vue
+++ b/web/src/views/layout/main-sidebar.vue
@@ -213,6 +213,7 @@
           this.$refs.mainNavbar.refresh()
         }
         this.$nextTick(() => {
+          console.log(route.meta.params,"route.meta.params")
           this.$router.push({name: route.name, query: route.meta.params, params: route.meta.params})
         })
       }
diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
index 7b4f338..9941199 100644
--- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -15,10 +15,11 @@
           <el-input v-model="dataForm.project.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
         </el-form-item>
         <el-form-item label="鐢宠浜�" style="width: 49%">
-          <el-input v-model="dataForm.configItemWarehouse.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input>
+          <el-input :disabled="stepMarker=='pzxrk_first'"v-model="dataForm.configItemWarehouse.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input>
         </el-form-item>
         <el-form-item label="鐢宠鏃ユ湡" style="width: 49%">
           <el-date-picker
+            :disabled="stepMarker=='pzxrk_first'"
             v-model="dataForm.configItemWarehouse.applyDate"
             type="date"
             placeholder="璇烽�夋嫨鐢宠鏃ユ湡">
@@ -93,20 +94,20 @@
               <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
               <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center">
                 <template slot-scope="scope">
-                  <zt-dict :disabled="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true"
+                  <zt-dict :disabled="stepMarker=='wplz_qash'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true"
                            clearable></zt-dict>
                 </template>
               </el-table-column>
               <el-table-column align="center" width="120" label="涓嶉�傜敤璇存槑">
                 <template v-slot="{ row }">
-                  <el-input v-if="getRoleName.indexOf('QA瑙掕壊')>=0" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
+                  <el-input v-if="stepMarker=='wplz_qash'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
                   <span v-else>{{row.notApplyExplan}}</span>
                 </template>
               </el-table-column>
             </el-table>
             <div class="el-border-top">
             <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
-              <zt-dict :disabled="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true"
+              <zt-dict :disabled="stepMarker=='wplz_qash'" v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true"
                        clearable></zt-dict>
             </el-form-item>
             <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
@@ -129,20 +130,20 @@
               <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
               <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center">
                 <template slot-scope="scope">
-                  <zt-dict :disabled="getRoleName.indexOf('CM瑙掕壊')===-1" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true"
+                  <zt-dict :disabled="stepMarker=='wplz_cmsh'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" dict="tristate2" :radio="true"
                            clearable></zt-dict>
                 </template>
               </el-table-column>
               <el-table-column prop="notApplyExplan" align="center" width="120" label="涓嶉�傜敤璇存槑">
                 <template v-slot="{ row }">
-                  <el-input v-if="getRoleName.indexOf('CM瑙掕壊')>=0" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
+                  <el-input v-if="stepMarker=='wplz_cmsh'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
                   <span v-else>{{row.notApplyExplan}}</span>
                 </template>
               </el-table-column>
             </el-table>
             <div class="el-border-top">
               <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
-                <zt-dict :disabled="getRoleName.indexOf('CM瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true"
+                <zt-dict :disabled="stepMarker=='wplz_cmsh'" v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true"
                          clearable></zt-dict>
               </el-form-item>
               <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
@@ -160,7 +161,7 @@
           </div>
           <div style="width: calc(100% - 120px)" class="el-border-left">
             <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%">
-              <zt-dict :disabled="getRoleName.indexOf('閮ㄩ棬SCCB瑙掕壊')===-1" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true"
+              <zt-dict :disabled="stepMarker=='wplz_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true"
                        clearable></zt-dict>
             </el-form-item>
             <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%">
@@ -177,7 +178,7 @@
           </div>
           <div style="width: calc(100% - 120px)" class="el-border-left">
             <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
-              <el-input v-if="getRoleName.indexOf('CM瑙掕壊')>=0" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input>
+              <el-input v-if="stepMarker=='wplz_cmcz'" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input>
             </el-form-item>
             <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%">
               <span>{{dataForm.configItemWarehouse.operator}}</span>
diff --git a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
index af0239d..ff2903a 100644
--- a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
@@ -98,11 +98,11 @@
           <div style="width: calc(100% - 120px);">
             <div class="el-border-left">
               <el-form-item label="鐗╁搧鏄惁闇�瑕佽繑杩�" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0">
-                <zt-dict v-model="dataForm.circulatOrder.itemRequire" :radio="true"
+                <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemRequire" :radio="true"
                          dict="is_or_not"></zt-dict>
               </el-form-item>
               <el-form-item label="鐗╁搧鐨勫叾浠栬姹傦細" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0">
-                <el-input v-model="dataForm.circulatOrder.itemOther"></el-input>
+                <el-input :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input>
               </el-form-item>
             </div>
           </div>
@@ -129,10 +129,10 @@
           </div>
           <div class="el-border-left " style="width: 35%;height: 80px;">
             <el-form-item label="鏄惁瀹屾垚鐥呮瘨鏌ユ潃" label-width="150px" style="padding-left:20px;margin-bottom:0">
-              <zt-dict v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict>
+              <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict>
             </el-form-item>
             <el-form-item label="鐥呮瘨搴撶増鏈細" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0">
-              <el-input v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input>
+              <el-input :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input>
             </el-form-item>
           </div>
         </div>
@@ -185,7 +185,7 @@
           </div>
           <div class="el-border-left " style="width: 35%;height: 40px;">
             <el-form-item label="鏄惁婊¤冻娴嬭瘯瑕佹眰" label-width="150px" style="padding-left:20px;margin-bottom:0">
-              <zt-dict :disabled="getRoleName.indexOf('QA瑙掕壊')===-1" v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict>
+              <zt-dict :disabled="stepMarker=='wplz_xzjc'" v-model="dataForm.circulatOrder.detectSituation" :radio="true" dict="is_or_not"></zt-dict>
             </el-form-item>
           </div>
         </div>
@@ -238,7 +238,7 @@
           </div>
           <div class="el-border-left " style="width: 35%;height: 40px;">
             <el-form-item label="鏄惁瀹屾垚鏍峰搧鍙戞斁" label-width="150px" style="padding-left:20px;margin-bottom:0">
-              <zt-dict v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict>
+              <zt-dict :disabled="stepMarker=='wplz_wpff'"v-model="dataForm.circulatOrder.issueSituation" :radio="true" dict="is_or_not"></zt-dict>
             </el-form-item>
           </div>
         </div>
@@ -254,10 +254,16 @@
         </div>
       </div>
     </el-form>
+    <template v-slot:footer>
+      <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button>
+    </template>
   </zt-dialog>
 </template>
 
 <script>
+  import qs from "qs";
+  import Cookies from "js-cookie";
+
   export default {
     data() {
       return {
@@ -363,6 +369,14 @@
         }
         console.log(this.dataForm, "getInfo this.dataForm")
       },
+      async print(){
+        var params = qs.stringify({
+          token: Cookies.get('token'),
+          id:this.dataForm.id
+        })
+        let apiURL = `/itemCirculatOrder/ItemCirculatOrder/exportCirculatOrder/`
+        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
+      },
       // 琛ㄥ崟鎻愪氦
       async formSubmit(submitType) {
         console.log(this.dataForm, "this.dataForm11111")
diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
new file mode 100644
index 0000000..2bd1f40
--- /dev/null
+++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
@@ -0,0 +1,88 @@
+<template>
+  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
+    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+      <zt-form-item label="缂栧彿" prop="code" rules="required">
+        <el-input v-model="dataForm.code"></el-input>
+      </zt-form-item>
+      <zt-form-item label="椤圭洰鏍囪瘑" prop="softwareidentity" rules="required">
+        <el-input v-model="dataForm.softwareidentity"></el-input>
+      </zt-form-item>
+      <zt-form-item label="椤圭洰鍚嶇О" prop="softwarename" rules="required">
+        <el-input v-model="dataForm.softwarename"></el-input>
+      </zt-form-item>
+      <zt-form-item label="妫�鏌ヤ汉" prop="examiner" rules="required">
+        <el-input v-model="dataForm.examiner"></el-input>
+      </zt-form-item>
+      <zt-form-item label="妫�鏌ユ椂闂�" prop="examDate" rules="required">
+        <el-input v-model="dataForm.examDate"></el-input>
+      </zt-form-item>
+      <zt-form-item label="闂鎻忚堪" prop="problemDescription" rules="required">
+        <el-input v-model="dataForm.problemDescription"></el-input>
+      </zt-form-item>
+      <zt-form-item label="闂澶勭悊" prop="problemProcess" rules="required">
+        <el-input v-model="dataForm.problemProcess"></el-input>
+      </zt-form-item>
+      <zt-form-item label="澶勭悊浜�" prop="processor" rules="required">
+        <el-input v-model="dataForm.processor"></el-input>
+      </zt-form-item>
+      <zt-form-item label="澶勭悊鏃ユ湡" prop="processDate" rules="required">
+        <el-input v-model="dataForm.processDate"></el-input>
+      </zt-form-item>
+      <zt-form-item label="楠岃瘉浜�" prop="verifier" rules="required">
+        <el-input v-model="dataForm.verifier"></el-input>
+      </zt-form-item>
+      <zt-form-item label="楠岃瘉鏃ユ湡" prop="verifyDate" rules="required">
+        <el-input v-model="dataForm.verifyDate"></el-input>
+      </zt-form-item>
+      <zt-form-item label="骞翠唤" prop="year" rules="required">
+        <el-input v-model="dataForm.year"></el-input>
+      </zt-form-item>
+    </el-form>
+  </zt-dialog>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        dataForm: {
+          id: '',
+          projectId: '',
+          code: '',
+          softwareidentity: '',
+          softwarename: '',
+          examiner: '',
+          examDate: '',
+          problemDescription: '',
+          problemProcess: '',
+          processor: '',
+          processorId: '',
+          processDate: '',
+          verifier: '',
+          verifierId: '',
+          verifyDate: '',
+          year: ''
+        }
+      }
+    },
+    methods: {
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/${this.dataForm.id}`)
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit() {
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('refreshDataList')
+        }
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue
new file mode 100644
index 0000000..6356569
--- /dev/null
+++ b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue
@@ -0,0 +1,58 @@
+<template>
+  <el-card shadow="never" class="aui-card--fill">
+    <div class="mod-testCheckOrder-testCheckOrder}">
+      <zt-table-wraper query-url="/testCheckOrder/TestCheckOrder/page" delete-url="/testCheckOrder/TestCheckOrder" v-slot="{ table }">
+        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+          <el-form-item>
+            <el-input v-model="dataForm.code" placeholder="璇疯緭鍏ョ紪鍙�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-input v-model="dataForm.softwarename" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <zt-button type="query" @click="table.query()"/>
+            <zt-button type="add" perm="testCheckOrder:add" @click="table.editHandle()"/>
+            <zt-button type="delete" perm="testCheckOrder:delete" @click="table.deleteHandle()"/>
+          </el-form-item>
+        </el-form>
+        <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle">
+          <el-table-column type="selection" width="40"/>
+            <el-table-column prop="code" label="缂栧彿"/>
+                <el-table-column prop="softwareIdentity" label="椤圭洰鏍囪瘑"/>
+                <el-table-column prop="softwareName" label="椤圭洰鍚嶇О"/>
+              <zt-table-column-handle :table="table" edit-perm="testCheckOrder:update" delete-perm="testCheckOrder::delete"/>
+        </el-table>
+        <!-- 寮圭獥, 鏂板 / 淇敼 -->
+        <add-or-update @refreshDataList="table.query"/>
+      </zt-table-wraper>
+    </div>
+  </el-card>
+</template>
+
+<script>
+  import AddOrUpdate from './TestCheckOrder-AddOrUpdate'
+  export default {
+    props: {
+      pageCode: {
+        type: String,
+        default: ''
+      },
+      pageRead: {
+        type: String,
+        default: 'yes'
+      }
+    },
+    data() {
+      return {
+        dataForm: {
+          code: '',
+          softwareidentity: '',
+          softwarename: '',
+        }
+      }
+    },
+    components: {
+      AddOrUpdate
+    }
+  }
+</script>
diff --git a/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue
new file mode 100644
index 0000000..c9fb553
--- /dev/null
+++ b/web/src/views/modules/testCheckOrder/TestExplainCheckOrder.vue
@@ -0,0 +1,22 @@
+<template>
+  <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/>
+</template>
+
+<script>
+  import TestCheckOrder from './TestCheckOrder'
+
+  export default {
+    data() {
+      return {
+        pageCode: 'explain',
+        pageRead: 'no'
+      }
+    },
+    components: {
+      TestCheckOrder,
+    },
+    mounted() {
+    },
+    methods: {}
+  }
+</script>
diff --git a/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue
new file mode 100644
index 0000000..d013e21
--- /dev/null
+++ b/web/src/views/modules/testCheckOrder/TestPlanCheckOrder.vue
@@ -0,0 +1,22 @@
+<template>
+  <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/>
+</template>
+
+<script>
+  import TestCheckOrder from './TestCheckOrder'
+
+  export default {
+    data() {
+      return {
+        pageCode: 'plan',
+        pageRead: 'no'
+      }
+    },
+    components: {
+      TestCheckOrder,
+    },
+    mounted() {
+    },
+    methods: {}
+  }
+</script>
diff --git a/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue
new file mode 100644
index 0000000..33991db
--- /dev/null
+++ b/web/src/views/modules/testCheckOrder/TestRecordCheckOrder.vue
@@ -0,0 +1,22 @@
+<template>
+  <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/>
+</template>
+
+<script>
+  import TestCheckOrder from './TestCheckOrder'
+
+  export default {
+    data() {
+      return {
+        pageCode: 'record',
+        pageRead: 'no'
+      }
+    },
+    components: {
+      TestCheckOrder,
+    },
+    mounted() {
+    },
+    methods: {}
+  }
+</script>
diff --git a/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue
new file mode 100644
index 0000000..6fdf44b
--- /dev/null
+++ b/web/src/views/modules/testCheckOrder/TestReportCheckOrder.vue
@@ -0,0 +1,22 @@
+<template>
+  <test-check-order ref="projectListObj" :pageCode="pageCode" :pageRead="pageRead" :isShow="isShow"/>
+</template>
+
+<script>
+  import TestCheckOrder from './TestCheckOrder'
+
+  export default {
+    data() {
+      return {
+        pageCode: 'report',
+        pageRead: 'no'
+      }
+    },
+    components: {
+      TestCheckOrder,
+    },
+    mounted() {
+    },
+    methods: {}
+  }
+</script>
diff --git a/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java b/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
index 2f4e694..c9188c3 100644
--- a/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
+++ b/zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
@@ -103,17 +103,7 @@
     @ApiOperation("淇℃伅")
     @RequiresPermissions("sys:user:info")
     public Result<SysUser> get(@PathVariable("id") Long id) {
-        SysUser data = sysUserService.get(id);
-        if (data != null) {
-            OssDto ossDto= sysOssConfigService.getOssByBusiType(data.getId() , "users_avatar");
-            if (ossDto != null) {
-                data.setFiles(ossDto);
-            }
-            OssDto ossDto2= sysOssConfigService.getOssByBusiType(data.getId() , "users_sign");
-            if (ossDto2 != null) {
-                data.setFiles2(ossDto2);
-            }
-        }
+        SysUser data = sysUserService.getUserInfo(id);
         // 鐢ㄦ埛宀椾綅鍒楄〃
         data.setPostIdList(sysPostUserService.getUserPosts(id).stream().map(post -> post.getId())
                 .collect(Collectors.toList()));
diff --git a/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java b/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
index ff1fe8d..1248eea 100644
--- a/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
+++ b/zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
@@ -334,4 +334,19 @@
     public List<SysUser> getUsersList() {
         return baseDao.getUsersList();
     }
+
+    public SysUser getUserInfo(Long id) {
+        SysUser data = super.get(id);
+        if (data != null) {
+            OssDto ossDto= sysOssConfigService.getOssByBusiType(data.getId() , "users_avatar");
+            if (ossDto != null) {
+                data.setFiles(ossDto);
+            }
+            OssDto ossDto2= sysOssConfigService.getOssByBusiType(data.getId() , "users_sign");
+            if (ossDto2 != null) {
+                data.setFiles2(ossDto2);
+            }
+        }
+        return data;
+    }
 }
diff --git a/zt/core/src/main/resources/mapper/sys/SysPostDao.xml b/zt/core/src/main/resources/mapper/sys/SysPostDao.xml
index a81d30b..138c798 100644
--- a/zt/core/src/main/resources/mapper/sys/SysPostDao.xml
+++ b/zt/core/src/main/resources/mapper/sys/SysPostDao.xml
@@ -4,7 +4,7 @@
 <mapper namespace="com.zt.modules.sys.dao.SysPostDao">
 
     <select id="getList" resultType="com.zt.modules.sys.model.SysPost">
-        select a.* ,(select t2.dept_name from SYS_DEPT t2 where t2.dept_id=a.dept_id) deptName
+        select a.* ,(select t2.name from SYS_DEPT t2 where t2.id=a.dept_id) deptName
         from SYS_POST a
         where a.is_delete = 0
         <if test="name != null">
diff --git a/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml b/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml
index 286d427..1498aa1 100644
--- a/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml
+++ b/zt/core/src/main/resources/mapper/sys/SysTenantDao.xml
@@ -4,8 +4,8 @@
 <mapper namespace="com.zt.modules.sys.dao.SysTenantDao">
 
     <select id="getList" resultType="com.zt.modules.sys.model.SysTenant">
-        select a.*, u.phonenumber adminMobile, u.nick_name adminRealName
-        from SYS_TENANT a left join SYS_USER u on a.admin_user_id = u.user_id
+        select a.*, u.MOBILE adminMobile, u.real_name adminRealName
+        from SYS_TENANT a left join SYS_USER u on a.admin_user_id = u.id
         where a.is_delete = 0
         <if test="code != null">
              and a.code like #{code}

--
Gitblit v1.9.1