From 52a302b11c08cbc564ff3931038ae57a305a95d6 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 23 一月 2024 09:23:52 +0800
Subject: [PATCH] 修改

---
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java                           |   15 
 web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue                                        |  132 +++++--
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseAudit.java                 |   37 ++
 modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml                            |    3 
 modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml                                |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java                 |   14 
 modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml                                                |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java           |    5 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java     |    2 
 zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java                                       |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java       |    2 
 web/public/index.html                                                                                            |    6 
 web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue                                              |   95 ++++-
 web/.env.production                                                                                              |    4 
 web/.env.production.sit                                                                                          |    4 
 core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java                                              |    1 
 modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java               |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java                     |   14 
 modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml                        |   10 
 modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml                                                |   80 +++++
 modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml                                    |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java                          |    4 
 web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue                                                  |    8 
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java                           |    2 
 web/report.20220119.103056.5416.0.001.json                                                                       |    6 
 web/src/views/modules/sys/development/generator.vue                                                              |    2 
 modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml                            |    3 
 modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml                                  |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java       |    2 
 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue                                    |   46 ++
 modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml                            |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java             |    2 
 web/src/components/table-uploader/src/table-uploader.vue                                                         |  186 +++++------
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java |    8 
 web/src/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue                                      |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java               |    2 
 modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml                                  |    3 
 web/packages/components/zt-uploader/src/zt-uploader.vue                                                          |   15 
 web/src/views/modules/riskTraceRecord/RiskTraceItem.vue                                                          |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java           |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/project/dto/MyProjectRoleDto.java                             |   19 +
 web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue                                          |    4 
 modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml                        |   20 +
 modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml                                      |    3 
 web/.env.development                                                                                             |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java             |    2 
 starter/src/main/resources/application.yml                                                                       |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/service/ItemCirculatOrderService.java       |   93 +++++
 modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml                            |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java   |   21 
 modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java                                   |    2 
 modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml                                    |    3 
 web/.env.production.uat                                                                                          |    4 
 53 files changed, 690 insertions(+), 232 deletions(-)

diff --git a/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java b/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java
index f782b58..7a91ff6 100644
--- a/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java
+++ b/core/src/main/java/com/zt/life/sys/service/SysOssConfigService.java
@@ -160,6 +160,7 @@
         return null;
     }
 
+
     /**
      * 淇敼闄勪欢http
      *
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java
index c84163d..859dabc 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java
@@ -81,7 +81,9 @@
     public List<BaselineRelease> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<BaselineRelease> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             workflowService.getRunFlow(list, "jxfb");
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java
index 435becf..045009f 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configAuditReport/service/ConfigAuditReportService.java
@@ -93,7 +93,9 @@
     public List<ConfigAuditReport> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<ConfigAuditReport> list = baseDao.getList(queryFilter.getQueryParams());
         if (list != null && list.size() > 0) {
             sysOssService.setListOsses(list, "config_audit_report");
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java
index cc52e1e..b9b8ed2 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemOutbound/service/ConfigItemOutboundService.java
@@ -102,7 +102,9 @@
     public List<ConfigItemOutbound> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<ConfigItemOutbound> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             workflowService.getRunFlow(list, "pzxck");
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java
index 1394bd3..60a7ae7 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java
@@ -2,7 +2,9 @@
 
 import com.zt.common.dao.BaseDao;
 import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseAudit;
 import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
 import org.apache.ibatis.annotations.Mapper;
 
 
@@ -21,5 +23,6 @@
 
     List<ConfigItemWarehouse> getList(Map<String, Object> params);
 
-    List<WarehouseCmAudit> itemList(String dictType);
+    List<WarehouseCmAudit> itemCmList(String dictType);
+    List<WarehouseQaAudit> itemQaList(String dictType);
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseAudit.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseAudit.java
new file mode 100644
index 0000000..f43af78
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseAudit.java
@@ -0,0 +1,37 @@
+package com.zt.life.modules.configItemWarehouse.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * warehouse_cm_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+public class WarehouseAudit extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "鍏ュ簱ID")
+	private Long warehouseId;
+
+	@ApiModelProperty(value = "搴忓彿")
+	private Integer no;
+
+	@ApiModelProperty(value = "妫�鏌ラ」")
+	private String examineItem;
+
+	@ApiModelProperty(value = "妫�鏌ョ粨鏋�")
+	private String examineResult;
+
+	@ApiModelProperty(value = "涓嶉�傜敤璇存槑")
+	private String notApplyExplan;
+
+
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java
index ddce8ee..89f9c5e 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java
@@ -7,6 +7,7 @@
 import com.zt.core.context.UserContext;
 import com.zt.life.export.dto.WordFile;
 import com.zt.life.export.service.WordFileService;
+import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
 import com.zt.life.modules.configItemWarehouse.dao.ConfigItemWarehouseDao;
 import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto;
 import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
@@ -19,6 +20,7 @@
 import com.zt.life.modules.project.service.ProjectService;
 import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
 import com.zt.life.modules.testCheckOrder.service.TestCheckOrderService;
+import com.zt.life.sys.dto.OssDto;
 import com.zt.life.sys.service.SysOssConfigService;
 import com.zt.modules.coderule.service.SysCodeRuleService;
 import com.zt.modules.oss.service.SysOssService;
@@ -93,7 +95,9 @@
     public List<ConfigItemWarehouse> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<ConfigItemWarehouse> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             workflowService.getRunFlow(list, "pzxrk");
@@ -214,12 +218,10 @@
             ConfigItemWarehouse configItemWarehouse = new ConfigItemWarehouse();
             configItemWarehouse.setLibraryType(libraryType);
             data.setConfigItemWarehouse(configItemWarehouse);
-            List<?> cmList = baseDao.itemList("warehouse_cm_audit");
-            List<?> CmAuditList = cmList;
-            data.setCmAuditList((List<WarehouseCmAudit>) CmAuditList);
-            List<?> qaList = baseDao.itemList("warehouse_qa_audit");
-            List<?> QaAuditList = qaList;
-            data.setQaAuditList((List<WarehouseQaAudit>) QaAuditList);
+            List<?> cmList = this.itemCmList("warehouse_cm_audit");
+            data.setCmAuditList((List<WarehouseCmAudit>) cmList);
+            List<?> qaList = this.itemQaList("warehouse_qa_audit");
+            data.setQaAuditList((List<WarehouseQaAudit>) qaList);
             List<?> resultList = new ArrayList<>();
             if ("1".equals(libraryType)) {
                 List<String> srcId = technicalService.getsrcId(projectId);
@@ -241,6 +243,13 @@
         return data;
     }
 
+    public List<WarehouseCmAudit> itemCmList(String dictType) {
+        return baseDao.itemCmList(dictType);
+    }
+    public List<WarehouseQaAudit> itemQaList(String dictType) {
+        return baseDao.itemQaList(dictType);
+    }
+
     public void exportWarehouseOrder(Long id, HttpServletRequest request, HttpServletResponse response, String libraryType) {
         try {
             ConfigItemWarehouseDto dataObj = this.getDto(null, id, libraryType);
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java b/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
index c2ff92c..5155323 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
@@ -87,7 +87,9 @@
     public List<ContractReview> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<ContractReview> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             sysOssService.setListOsses(list, "contract_review");
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 fd9e9d7..0e0a0cc 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
@@ -91,7 +91,7 @@
         map.put("funCode", "item_circulat_order");
         map.put("projectId",itemCirculatOrderDto.getProjectId().toString());
         itemCirculatOrderDto.getCirculatOrder().setCode(sysCodeRuleService.getNewCode(map));
-        Boolean result = itemCirculatOrderService.save(itemCirculatOrderDto);
+        Long result = itemCirculatOrderService.save(itemCirculatOrderDto);
         return Result.ok(itemCirculatOrderDto.getCirculatOrder().getId());
     }
 
@@ -101,9 +101,9 @@
     public Result<Long> update(@RequestBody ItemCirculatOrderDto itemCirculatOrderDto){
         //鏁堥獙鏁版嵁
         ValidatorUtils.validateEntity(itemCirculatOrderDto.getCirculatOrder(), UpdateGroup.class, DefaultGroup.class);
-        Boolean result = itemCirculatOrderService.save(itemCirculatOrderDto);
-
-        return Result.ok(itemCirculatOrderDto.getCirculatOrder().getId());
+        Long result = itemCirculatOrderService.save(itemCirculatOrderDto);
+//杩斿洖鐨勬槸椤圭洰鍏ュ簱鐨処D
+        return Result.ok(result);
     }
 
     @DeleteMapping("deleteCirculat")
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 d8a3bfd..df8cc30 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
@@ -2,11 +2,19 @@
 
 import cn.hutool.core.convert.Convert;
 import com.zt.common.service.BaseService;
+import com.zt.common.utils.UUIDUtil;
 import com.zt.core.context.User;
 import com.zt.core.context.UserContext;
 import com.zt.life.export.dto.WordFile;
 import com.zt.life.export.service.WordFileService;
 import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
+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.configItemWarehouse.service.ConfigItemWarehouseService;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseCmAuditService;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseQaAuditService;
 import com.zt.life.modules.itemCirculatOrder.dao.ItemCirculatOrderDao;
 import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto;
 import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder;
@@ -19,6 +27,7 @@
 import com.zt.life.sys.dto.OssDto;
 import com.zt.life.sys.service.SysOssConfigService;
 import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.oss.model.SysOss;
 import com.zt.modules.oss.service.SysOssService;
 import com.zt.modules.workflow.dto.FlowInfoDto;
 import com.zt.modules.workflow.service.WorkflowService;
@@ -30,6 +39,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.FileNotFoundException;
 import java.io.UnsupportedEncodingException;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -73,6 +83,17 @@
     @Autowired
     private GetFilesPath getFilesPath;
 
+    @Autowired
+    private ConfigItemWarehouseService configItemWarehouseService;
+
+    @Autowired
+    private WarehouseCmAuditService cmAuditService;
+
+    @Autowired
+    private WarehouseQaAuditService qaAuditService;
+
+    @Autowired
+    private WarehouseConfigItemService configItemService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -83,7 +104,9 @@
     public List<ItemCirculatOrder> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<ItemCirculatOrder> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             workflowService.getRunFlow(list, "wplz");
@@ -101,7 +124,11 @@
         super.deleteLogic(ids);
     }
 
-    public Boolean save(ItemCirculatOrderDto itemCirculatOrderDto) {
+    public Long save(ItemCirculatOrderDto itemCirculatOrderDto) {
+        User user = UserContext.getUser();
+        String userName=user.getRealName();
+        String userNameId=user.getId().toString();
+        Long configItemWarehouseId = 0L;
         Long circulatOrderId = itemCirculatOrderDto.getCirculatOrder().getId();
         if (circulatOrderId != null)
             baseDao.updateById(itemCirculatOrderDto.getCirculatOrder());
@@ -141,10 +168,72 @@
         if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
             if ("tj".equals(flowInfoDto.getSubmitType())) {
                 workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
+            } else {
+                if ("wplz_wprk".equals(flowInfoDto.getStepIdMark()) && "bl".equals(flowInfoDto.getSubmitType())) {
+                    String Code = itemCirculatOrderDto.getCirculatOrder().getCode();
+                    configItemWarehouseId = UUIDUtil.generateId();
+                    ConfigItemWarehouse configItemWarehouse = new ConfigItemWarehouse();
+                    configItemWarehouse.setId(configItemWarehouseId);
+                    configItemWarehouse.setProjectId(itemCirculatOrderDto.getProjectId());
+                    configItemWarehouse.setLibraryType("1");
+                    Map<String, String> map = new HashMap<>();
+                    map.put("funCode", "config_item_warehouse");
+                    map.put("projectId", itemCirculatOrderDto.getProjectId().toString());
+                    configItemWarehouse.setCode(sysCodeRuleService.getNewCode(map));
+                    // insert
+                    configItemWarehouseService.insert(configItemWarehouse);
+                    Long WarehouseConfigItemId = 0L;
+                    for (int i = 0; i < itemCirculatOrderDto.getTechnicalList().size(); i++) {
+                        ItemCirculatOrderTechnical circulatOrderTechnical = itemCirculatOrderDto.getTechnicalList().get(i);
+                        Long circulatOrderTechnicalId = circulatOrderTechnical.getId();
+                        WarehouseConfigItemId = UUIDUtil.generateId();
+
+                        WarehouseConfigItem warehouseConfigItem = new WarehouseConfigItem();
+
+                        warehouseConfigItem.setId(WarehouseConfigItemId);
+                        warehouseConfigItem.setProjectId(itemCirculatOrderDto.getProjectId());
+                        warehouseConfigItem.setLibraryType("1");
+                        warehouseConfigItem.setSrcId(circulatOrderTechnicalId);
+                        warehouseConfigItem.setWarehouseId(configItemWarehouseId);
+                        warehouseConfigItem.setNo(circulatOrderTechnical.getNo());
+                        String itemName = circulatOrderTechnical.getName();
+                        itemName = itemName.replace(Code, "");
+                        warehouseConfigItem.setItemName(itemName);
+                        warehouseConfigItem.setItemIdentify(circulatOrderTechnical.getName());
+                        warehouseConfigItem.setVersion(circulatOrderTechnical.getVersion());
+                        warehouseConfigItem.setSecretClass(circulatOrderTechnical.getSecretClass());
+                        // insert
+                        configItemService.insert(warehouseConfigItem);
+                        List<SysOss> sysOssList = sysOssService.getSysOssByBusiIdAnd(circulatOrderTechnicalId, "circulat_order");
+                        for (SysOss sysOss : sysOssList) {
+                            sysOss.setId(UUIDUtil.generateId());
+                            sysOss.setBusiId(WarehouseConfigItemId);
+                            sysOss.setBusiType("config_item_warehouse");
+                            sysOss.setBusiTypeName("閰嶇疆椤瑰叆搴�");
+                            sysOss.setBusiField("config_item_warehouse");
+                            sysOss.setBusiFieldName("閰嶇疆椤瑰叆搴�");
+                            sysOssService.insert(sysOss);
+                        }
+                    }
+                    List<WarehouseCmAudit> cmList = configItemWarehouseService.itemCmList("warehouse_cm_audit");
+                    for (WarehouseCmAudit cmAudit : cmList) {
+                        cmAudit.setWarehouseId(configItemWarehouseId);
+                        cmAuditService.insert(cmAudit);
+                    }
+                    List<WarehouseQaAudit> qaList = configItemWarehouseService.itemQaList("warehouse_qa_audit");
+                    for (WarehouseQaAudit qaAudit : qaList) {
+                        qaAudit.setWarehouseId(configItemWarehouseId);
+                        qaAuditService.insert(qaAudit);
+                    }
+                }
+            }
+            if ("wplz_wprk".equals(flowInfoDto.getStepIdMark())){
+                itemCirculatOrderDto.getCirculatOrder().setIssueSituation("1");
+                baseDao.updateById(itemCirculatOrderDto.getCirculatOrder());
             }
             workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark());
         }
-        return true;
+        return configItemWarehouseId;
     }
 
     public ItemCirculatOrderDto getDto(Long projectId, Long circulatOrderId) {
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java
index 18bc958..c7277c8 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java
@@ -16,6 +16,7 @@
 import com.zt.core.context.User;
 import com.zt.core.context.UserContext;
 import com.zt.core.sys.model.SysUser;
+import com.zt.life.modules.project.dto.MyProjectRoleDto;
 import com.zt.life.modules.project.dto.ProjectUserDto;
 import com.zt.life.modules.project.model.Project;
 import com.zt.life.modules.project.service.ProjectService;
@@ -75,16 +76,23 @@
             queryFilter.getParams().replace("tableName", "");
         }
         List<Project> Project = projectService.page(queryFilter);
-        for (Project project2 :Project){
+        for (Project project2 : Project) {
             String leaderName = project2.getProjectLeader();
-            if (leaderName.length()>10){
-                leaderName=sysUserService.getNames(leaderName);
+            if (leaderName.length() > 10) {
+                leaderName = sysUserService.getNames(leaderName);
             }
             project2.setProjectLeader(leaderName);
         }
         return PageResult.ok(Project);
     }
 
+    @GetMapping("myProjectRole/{projectId}")
+    @ApiOperation("鑾峰彇褰撳墠鐢ㄦ埛鐨勯」鐩鑹�")
+    public Result<MyProjectRoleDto> myProjectRole(@PathVariable("projectId") Long projectId) {
+        MyProjectRoleDto data = projectService.getMyProjectRole(projectId);
+        return Result.ok(data);
+    }
+
     @GetMapping("{id}")
     @ApiOperation("淇℃伅")
     public Result<Project> get(@PathVariable("id") Long id) {
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java
index a5b0fb4..1b4e59e 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java
@@ -1,6 +1,7 @@
 package com.zt.life.modules.project.dao;
 
 import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.project.dto.MyProjectRoleDto;
 import com.zt.life.modules.project.model.Project;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -20,4 +21,5 @@
 
     List<Project> getList(Map<String, Object> params);
 
+    MyProjectRoleDto getMyProjectRole(Long projectId, Long userId);
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/MyProjectRoleDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/MyProjectRoleDto.java
new file mode 100644
index 0000000..c5a7fd6
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/dto/MyProjectRoleDto.java
@@ -0,0 +1,19 @@
+package com.zt.life.modules.project.dto;
+
+import com.zt.core.sys.model.SysUser;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MyProjectRoleDto {
+    private boolean isZrr;
+    private boolean isCsry;
+    private boolean isShry;
+    private boolean isPzry;
+
+    private boolean isBmld;
+    private boolean isWpgly;
+    private boolean isZljdy;
+    }
+
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
index 18678cf..db3d983 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
@@ -268,4 +268,8 @@
 	@TableField(exist = false)
 	@ApiModelProperty(value = "鏍峰搧鐘舵�佸瓧绗︿覆")
 	String sampleStatusStr;
+
+	@TableField(exist = false)
+	@ApiModelProperty(value = "瀵嗙骇瀛楃涓�")
+	String secretClassStr;
 }
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 0f39ffd..e212569 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
@@ -134,7 +134,9 @@
     public List<Environ> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<Environ> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             sysOssService.setListOsses(list, "test_environ");
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java
index 00b147e..737fd2a 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java
@@ -4,11 +4,13 @@
 import com.zt.core.context.User;
 import com.zt.core.context.UserContext;
 import com.zt.life.modules.project.dao.ProjectDao;
+import com.zt.life.modules.project.dto.MyProjectRoleDto;
 import com.zt.life.modules.project.model.Project;
 import com.zt.modules.coderule.service.SysCodeRuleService;
 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.HashMap;
 import java.util.List;
@@ -18,11 +20,11 @@
 /**
  * project
  *
- * @author zt generator 
+ * @author zt generator
  * @since 1.0.0 2023-11-07
  */
 @Service
-public class ProjectService  extends BaseService<ProjectDao, Project> {
+public class ProjectService extends BaseService<ProjectDao, Project> {
     /**
      * 鍒嗛〉鏌ヨ
      *
@@ -32,7 +34,9 @@
     public List<Project> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
-        queryFilter.getQueryParams().put("secretClass",secretClass);
+        Long deptId = user.getDeptId();
+        queryFilter.getQueryParams().put("secretClass", secretClass);
+        queryFilter.getQueryParams().put("deptId", deptId);
         return baseDao.getList(queryFilter.getQueryParams());
     }
 
@@ -46,4 +50,9 @@
     }
 
 
+    public MyProjectRoleDto getMyProjectRole(Long projectId) {
+        Long userId = UserContext.getUser().getId();
+        MyProjectRoleDto data = baseDao.getMyProjectRole(projectId, userId);
+        return data;
+    }
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
index bdffbe7..f764c70 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -1,5 +1,6 @@
 package com.zt.life.modules.project.service;
 
+import cn.hutool.core.convert.Convert;
 import com.zt.common.service.BaseService;
 import com.zt.common.utils.CommonUtils;
 import com.zt.core.context.User;
@@ -22,10 +23,12 @@
 import com.zt.modules.coderule.service.SysCodeRuleService;
 import com.zt.modules.oss.service.SysOssService;
 import com.zt.modules.sys.service.SysDictTypeService;
+import org.apache.tomcat.util.bcel.classfile.Constant;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
 
+import javax.naming.Context;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.FileNotFoundException;
@@ -77,7 +80,9 @@
     public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<SoftwareTestOrder> list = baseDao.getList(queryFilter.getQueryParams());
         if (list != null && list.size() > 0) {
             sysOssService.setListOsses(list, "test_order");
@@ -169,12 +174,10 @@
             String projectCode = project.getCode();
             String softIdentity =project.getSoftwareIdentity();
             List<?> testItemResult = baseDao.dictList("testItem_type", projectCode,softIdentity);
-            List<?> measuredList = testItemResult;
-            data.setMeasuredList((List<SoftwareTestOrderMeasured>) measuredList);
+            data.setMeasuredList((List<SoftwareTestOrderMeasured>) testItemResult);
 
             List<?> productLibraryResult = baseDao.dictList("product_library_file", projectCode,null);
-            List<?> deliverableList = productLibraryResult;
-            data.setDeliverableList((List<SoftwareTestOrderDeliverable>) deliverableList);
+            data.setDeliverableList((List<SoftwareTestOrderDeliverable>) productLibraryResult);
         }
 
         if (projectId != null) {
@@ -246,6 +249,9 @@
                 measured.setIsMeasuredStr(isMeasuredStr);
             }
 
+            String secretClass = getShowDictList.getShowDictList(dataObj.getProject().getSecretClass(), "secret_class", false);
+            dataObj.getSoftwareTestOrder().setSecretClassStr(secretClass);
+
             String sortwareTypeStr = getShowDictList.getShowDictList(dataObj.getProject().getSoftwareType(), "software_type", false);
             dataObj.getSoftwareTestOrder().setSortwareTypeStr(sortwareTypeStr);
 
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java b/modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java
index 7229593..b0c3ba5 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/qaAuditReport/service/QaAuditReportService.java
@@ -86,7 +86,9 @@
     public List<QaAuditReport> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<QaAuditReport> list = baseDao.getList(queryFilter.getQueryParams());
         if (list != null && list.size() > 0) {
             workflowService.getRunFlow(list, "qashbg");
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java b/modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java
index 9ede68e..8e0a53a 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/riskTraceRecord/service/RiskMeasureService.java
@@ -32,7 +32,9 @@
     public List<RiskMeasure> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<RiskMeasure> list = baseDao.getList(queryFilter.getQueryParams());
         return list;
     }
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
index 7a7e32a..5e6471d 100644
--- 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
@@ -79,7 +79,9 @@
     public List<TestCheckOrder> page(QueryFilter queryFilter) {
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<TestCheckOrder> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             workflowService.getRunFlow(list, "csjcd");
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java
index 0427def..f1e3cee 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java
@@ -71,7 +71,9 @@
         pageCode=pageCode.replace("%","");
         User user = UserContext.getUser();
         Integer secretClass = user.getSecretClass();
+        Long deptId = user.getDeptId();
         queryFilter.getQueryParams().put("secretClass",secretClass);
+        queryFilter.getQueryParams().put("deptId",deptId);
         List<TestReviewComment> list = baseDao.getList(queryFilter.getQueryParams());
         if (list.size() > 0) {
             sysOssService.setListOsses(list, "test_review_comment_" + pageCode);
diff --git a/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml b/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml
index 8ee88af..2ca6fed 100644
--- a/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml b/modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml
index 70f7b8f..3aeab0e 100644
--- a/modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/configAuditReport/ConfigAuditReportDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml b/modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml
index a09223a..f4f5ffe 100644
--- a/modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/configItemOutbound/ConfigItemChangeDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
index 6c71c2e..1841ed1 100644
--- a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
@@ -20,7 +23,22 @@
             ORDER BY ${orderBySql}
         </if>
     </select>
-    <select id="itemList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit">
+    <select id="itemCmList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit">
+        SET @row_number = 0;
+        SELECT dd.dict_label AS examineItem,
+        (@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>
+
+    <select id="itemQaList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit">
         SET @row_number = 0;
         SELECT dd.dict_label AS examineItem,
         (@row_number := @row_number + 1) AS no
diff --git a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml
index 7dfea64..a545f79 100644
--- a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml
@@ -12,9 +12,7 @@
                 and warehouse_id = ${warehouseId}
             </if>
         </where>
-        <if test="orderBySql!=null">
-            ORDER BY ${orderBySql}
-        </if>
+        ORDER BY `no`
     </select>
     <select id="itemList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem">
         SET @row_number = 0;
@@ -34,12 +32,13 @@
         </if>
         UNION
         SELECT (@row_number := @row_number + 1) AS no,
-        NULL AS secretClass,
+        p.secret_class,
         '杞欢娴嬭瘯濮旀墭鍗�' AS itemName,
         NULL AS version,
         s.code AS itemIdentify,
         s.id as src_id
         FROM software_test_order s
+        JOIN project p ON p.id = ${projectId}
         WHERE s.is_delete = 0
         AND s.project_id = ${projectId}
         <if test="ids!=null and ids!=''">
@@ -47,12 +46,13 @@
         </if>
         UNION
         SELECT (@row_number := @row_number + 1) AS no,
-        NULL AS secretClass,
+        p.secret_class,
         '鐗╁搧娴佽浆鍗�' AS itemName,
         NULL AS version,
         i.code AS itemIdentify,
         i.id as src_id
         FROM item_circulat_order i
+        JOIN project p ON p.id = ${projectId}
         WHERE i.is_delete = 0
         AND i.project_id = ${projectId}
         <if test="ids!=null and ids!=''">
diff --git a/modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml b/modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml
index d8a62b4..e593f11 100644
--- a/modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/contractReview/ContractReviewDao.xml
@@ -13,6 +13,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml b/modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml
index 0d956f7..6491e2d 100644
--- a/modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/itemCirculatOrder/ItemCirculatOrderDao.xml
@@ -10,6 +10,9 @@
         <if test="secretClass!=null">
             and p.secret_class &lt;= #{secretClass}
         </if>
+        <if test="deptId!=null">
+            and p.biz_dept_id = #{deptId}
+        </if>
         <where>
             a.is_delete = 0 and p.is_delete = 0
             <if test="whereSql!=null">
diff --git a/modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml b/modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml
index 9363e6e..364d5fb 100644
--- a/modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml
@@ -11,6 +11,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml b/modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml
index e77e1b9..aabe718 100644
--- a/modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/project/ProjectDao.xml
@@ -14,6 +14,9 @@
             <if test="secretClass!=null">
                 and secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and biz_dept_id = #{deptId}
+            </if>
             <if test="tableName!=null and tableName!=''">
                 and id not in (select project_id from ${tableName} where is_delete = 0
                 <if test="pageCode !=null and pageCode !='' ">
@@ -29,4 +32,81 @@
             ORDER BY ${orderBySql}
         </if>
     </select>
+    <select id="getMyProjectRole" resultType="com.zt.life.modules.project.dto.MyProjectRoleDto">
+        SELECT CASE
+                   WHEN
+                       concat(',', a.project_leader, ',') LIKE concat('%,', #{userId}, ',%') THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isZrr,
+               CASE
+                   WHEN concat(',', a.project_testers, ',') LIKE concat('%,', #{userId}, ',%') THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isCsry,
+               CASE
+                   WHEN concat(',', a.project_reviewer, ',') LIKE concat('%,', #{userId}, ',%') THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isShry,
+               CASE
+                   WHEN concat(',', a.project_configer, ',') LIKE concat('%,', #{userId}, ',%') THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isPzry,
+               CASE
+                   WHEN EXISTS(SELECT 1
+                               FROM sys_user u,
+                                    sys_role_user ru,
+                                    sys_role r
+                               WHERE u.id = 0
+                                 AND u.DEPT_ID = a.biz_dept_id
+                                 AND r.id = ru.role_id
+                                 and r.code = 'zr'
+                                 AND ru.user_id = ${userId}
+                                 AND u.IS_DELETE = 0
+                                 AND ru.IS_DELETE = 0
+                                 AND r.IS_DELETE = 0
+                       ) THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isBmld,
+               CASE
+                   WHEN EXISTS(SELECT 1
+                               FROM sys_user u,
+                                    sys_role_user ru,
+                                    sys_role r
+                               WHERE u.id = 0
+                                 AND u.DEPT_ID = a.biz_dept_id
+                                 AND r.id = ru.role_id
+                                 and r.code = 'wpgly'
+                                 AND ru.user_id = ${userId}
+                                 AND u.IS_DELETE = 0
+                                 AND ru.IS_DELETE = 0
+                                 AND r.IS_DELETE = 0
+                       ) THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isWpgly,
+               CASE
+                   WHEN EXISTS(SELECT 1
+                               FROM sys_user u,
+                                    sys_role_user ru,
+                                    sys_role r
+                               WHERE u.id = 0
+                                 AND u.DEPT_ID = a.biz_dept_id
+                                 AND r.id = ru.role_id
+                                 and r.code = 'zljd'
+                                 AND ru.user_id = ${userId}
+                                 AND u.IS_DELETE = 0
+                                 AND ru.IS_DELETE = 0
+                                 AND r.IS_DELETE = 0
+                       ) THEN
+                       TRUE
+                   ELSE FALSE
+                   END AS isZljdy
+        FROM project a
+        WHERE a.ID = ${projectId}
+          AND a.is_delete = 0
+    </select>
 </mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml b/modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
index 0fb1267..f6d1eea 100644
--- a/modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml b/modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml
index c3632a6..53fcfbe 100644
--- a/modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/qaAuditReport/QaAuditReportDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml b/modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml
index 9e77e7e..9e58879 100644
--- a/modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/riskTraceRecord/RiskMeasureDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml
index c56f788..915c6b4 100644
--- a/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/testCheckOrder/TestCheckOrderDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml b/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml
index f7efa4c..9e32c95 100644
--- a/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml
@@ -12,6 +12,9 @@
             <if test="secretClass!=null">
                 and p.secret_class &lt;= #{secretClass}
             </if>
+            <if test="deptId!=null">
+                and p.biz_dept_id = #{deptId}
+            </if>
             <if test="whereSql!=null">
                 and ${whereSql}
             </if>
diff --git a/starter/src/main/resources/application.yml b/starter/src/main/resources/application.yml
index f5f5013..89e1e95 100644
--- a/starter/src/main/resources/application.yml
+++ b/starter/src/main/resources/application.yml
@@ -6,7 +6,7 @@
     min-spare-threads: 30
   port: 8050
   servlet:
-    context-path: /life-protection
+    context-path: /test-item
     session:
       cookie:
         http-only: true
@@ -120,7 +120,7 @@
 zt:
   oss:
     type: local
-    local-domain: http://127.0.0.1:8050/life-protection/
+    local-domain: http://127.0.0.1:8050/test-item/
     local-path: D:/TestProjectFiles/ #闄勪欢瀛樺偍鐩綍
     local-qd-path: D:/TestProjectFiles/ #闄勪欢瀛樺偍鐩綍
     local-prefix: accessories #闄勪欢瀛樺偍瀛愮洰褰�
diff --git a/web/.env.development b/web/.env.development
index 71eeb6d..73bf26d 100644
--- a/web/.env.development
+++ b/web/.env.development
@@ -1,4 +1,4 @@
 NODE_ENV=development
 VUE_APP_NODE_ENV=dev
-VUE_APP_API_URL=http://localhost:8086/life-protection
-VUE_APP_SOCKET_URL=ws://localhost:8086/life-protection/websocket
+VUE_APP_API_URL=http://localhost:8050/test-item
+VUE_APP_SOCKET_URL=ws://localhost:8050/test-item/websocket
diff --git a/web/.env.production b/web/.env.production
index 91b8973..3416d69 100644
--- a/web/.env.production
+++ b/web/.env.production
@@ -1,4 +1,4 @@
 NODE_ENV=production
 VUE_APP_NODE_ENV=prod
-VUE_APP_API_URL=http://localhost:8086/life-protection
-VUE_APP_SOCKET_URL=ws://localhost:8086/life-protection/websocket
+VUE_APP_API_URL=http://localhost:8050/test-item
+VUE_APP_SOCKET_URL=ws://localhost:8050/test-item/websocket
diff --git a/web/.env.production.sit b/web/.env.production.sit
index af4e9bf..610d685 100644
--- a/web/.env.production.sit
+++ b/web/.env.production.sit
@@ -1,4 +1,4 @@
 NODE_ENV=production
 VUE_APP_NODE_ENV=prod:sit
-VUE_APP_API_URL=http://localhost:8086/life-protection
-VUE_APP_SOCKET_URL=ws://localhost:8086/life-protection/websocket
+VUE_APP_API_URL=http://localhost:8050/test-item
+VUE_APP_SOCKET_URL=ws://localhost:8050/test-item/websocket
diff --git a/web/.env.production.uat b/web/.env.production.uat
index e09a072..3cd71f1 100644
--- a/web/.env.production.uat
+++ b/web/.env.production.uat
@@ -1,4 +1,4 @@
 NODE_ENV=production
 VUE_APP_NODE_ENV=prod:uat
-VUE_APP_API_URL=http://localhost:8086/life-protection
-VUE_APP_SOCKET_URL=ws://localhost:8086/life-protection/websocket
+VUE_APP_API_URL=http://localhost:8050/test-item
+VUE_APP_SOCKET_URL=ws://localhost:8050/test-item/websocket
diff --git a/web/packages/components/zt-uploader/src/zt-uploader.vue b/web/packages/components/zt-uploader/src/zt-uploader.vue
index b5c5a29..d93f8f7 100644
--- a/web/packages/components/zt-uploader/src/zt-uploader.vue
+++ b/web/packages/components/zt-uploader/src/zt-uploader.vue
@@ -313,8 +313,7 @@
     inject: {
       elForm: {
         default: ''
-      }
-    },
+      }},
     data() {
       return {
         isUpload: false,
@@ -376,7 +375,7 @@
               src: this.value.url,
               title: this.value.name
             })
-          }
+         }
         }
         return urls
       },
@@ -400,6 +399,7 @@
     watch: {
       // eslint-disable-next-line no-unused-vars
       value(val, oldval) {
+        console.log(val,'zt-upload value(val')
         if (this.uploadList !== val) {
           this.uploadList = this.getUploadList(val)
           this.fileList = this.getUploadList(val)
@@ -950,6 +950,15 @@
       if (this.crop && this.$refs.cropper) {
         document.body.appendChild(this.$refs.cropper.$el)
       }
+      if (this.value) {
+        console.log(this.value,'zt-upload value(val')
+        this.uploadList = this.getUploadList(this.value)
+        this.fileList = this.getUploadList(this.value)
+        if (this.fileList.length>0){
+          console.log(this.fileList[0].status, 'val.files[0].status23')
+          // alert('2222'+this.fileList[0].status)
+        }
+      }
     }
   }
 </script>
diff --git a/web/public/index.html b/web/public/index.html
index 8057bbc..dad608b 100644
--- a/web/public/index.html
+++ b/web/public/index.html
@@ -219,8 +219,8 @@
     window.SITE_CONFIG['dynamicMenuRoutesHasAdded'] = false; // 鍔ㄦ��(鑿滃崟)璺敱鏄惁宸茬粡娣诲姞鐨勭姸鎬佹爣绀猴紙鐢ㄤ簬鍒ゆ柇鏄惁闇�瑕侀噸鏂版媺鍙栨暟鎹苟杩涜鍔ㄦ�佹坊鍔犳搷浣滐級
 
     // 鏈嶅姟鍦板潃
-    window.SITE_CONFIG['apiURL'] = 'http://' + location.hostname + ':8050/life-protection';
-    window.SITE_CONFIG['apiURL2'] = 'http://' + location.hostname + ':8050/life-protection';
+    window.SITE_CONFIG['apiURL'] = 'http://' + location.hostname + ':8050/test-item';
+    window.SITE_CONFIG['apiURL2'] = 'http://' + location.hostname + ':8050/test-item';
     //window.SITE_CONFIG['apiURL2'] = 'http://'+location.hostname+':8066';
 
     //window.SITE_CONFIG['apiURL'] = '<%= process.env.VUE_APP_API_URL %>';
@@ -228,7 +228,7 @@
 
 
     // WebSocket鍦板潃
-    window.SITE_CONFIG['socketURL'] = 'http://' + location.hostname + ':8050/life-protection';
+    window.SITE_CONFIG['socketURL'] = 'http://' + location.hostname + ':8050/test-item';
     //window.SITE_CONFIG['socketURL'] ='<%= process.env.VUE_APP_SOCKET_URL %>';
 
   </script>
diff --git a/web/report.20220119.103056.5416.0.001.json b/web/report.20220119.103056.5416.0.001.json
index d35f124..4af6011 100644
--- a/web/report.20220119.103056.5416.0.001.json
+++ b/web/report.20220119.103056.5416.0.001.json
@@ -413,9 +413,9 @@
     "USERDOMAIN_ROAMINGPROFILE": "LAPTOP-FFJLI4DC",
     "USERNAME": "14539",
     "USERPROFILE": "C:\\Users\\14539",
-    "VUE_APP_API_URL": "http://localhost:8086/life-protection",
+    "VUE_APP_API_URL": "http://localhost:8050/test-item",
     "VUE_APP_NODE_ENV": "dev",
-    "VUE_APP_SOCKET_URL": "ws://localhost:8086/life-protection/websocket",
+    "VUE_APP_SOCKET_URL": "ws://localhost:8050/test-item/websocket",
     "VUE_CLI_ENTRY_FILES": "[\"D:\\\\zhpt\\\\web\\\\src\\\\main.js\"]",
     "WEBPACK_DEV_SERVER": "true",
     "windir": "C:\\Windows",
@@ -467,4 +467,4 @@
     "C:\\Windows\\SYSTEM32\\dhcpcsvc.DLL",
     "\\\\?\\D:\\zhpt\\web\\node_modules\\_node-sass@4.14.1@node-sass\\vendor\\win32-x64-72\\binding.node"
   ]
-}
\ No newline at end of file
+}
diff --git a/web/src/components/table-uploader/src/table-uploader.vue b/web/src/components/table-uploader/src/table-uploader.vue
index 73483a3..89fc419 100644
--- a/web/src/components/table-uploader/src/table-uploader.vue
+++ b/web/src/components/table-uploader/src/table-uploader.vue
@@ -2,11 +2,12 @@
   <div>
     <div class="config-uploader1" v-if="oss">
       <div v-for="group in (oss.groups || [])" :key="group.busiFieldGroup">
-         <zt-form-item v-for="field in group.fields" :prop="field.busiField"
-                       :key="field.busiField" :rules="field.isRequired ? 'required':''" style="width: 100%;margin-bottom: 0">
-           <zt-uploader v-model="dataForm[field.busiField]" multiple :limit="field.fileLimit" :file-type="field.fileType"
-                        :accept="field.accept" :file-size="field.fileSize" @input="change(field.busiField)"/>
-         </zt-form-item>
+        <zt-form-item v-for="field in group.fields" :prop="field.busiField"
+                      :key="field.busiField" :rules="field.isRequired ? 'required':''"
+                      style="width: 100%;margin-bottom: 0">
+          <zt-uploader v-model="dataForm[field.busiField]" multiple :limit="field.fileLimit" :file-type="field.fileType"
+                       :accept="field.accept" :file-size="field.fileSize" @input="change(field.busiField)"/>
+        </zt-form-item>
       </div>
     </div>
   </div>
@@ -14,107 +15,96 @@
 </template>
 <script>
 
-export default {
-  name: 'TableUploader',
-  components: {},
-  props: {
-    value: Object,
-    dataForm: Object,
-    image:false,
-    busiType: String // 涓氬姟绫诲瀷
-  },
-  data() {
-    return {
-      activeNames: ['1'],
-      oss: null
-    }
-  },
-  computed: {
-    fields() {
-      let arr = []
-      if (this.dataForm.files && this.dataForm.files.groups) {
-        this.dataForm.files.groups.forEach(group => {
-          group.fields.forEach(field => arr.push(field))
-        })
-      }
-      return arr
-    }
-  },
-  watch: {
-    value(val, oldval) {
-      if (JSON.stringify(val) !== JSON.stringify(oldval)) {
-        this.oss = {
-          ...this.getOss(),
-          ...(val || {})
-        }
-        console.log(this.oss,"this.oss")
-        // this.dataForm.files = this.oss
-        this.$set(this.dataForm, 'files', this.oss)
-        // 鍒嗚В鍒版瘡涓瓧娈电粰dataForm璧嬪��
-        this.fields.forEach(field => {
-          // this.dataForm[field.busiField] = field.files
-          this.$set(this.dataForm, field.busiField, field.files)
-        })
-        console.log(this.dataForm,'this.dataForm')
-      }
-    }
-  },
-  mounted() {
+  import cloneDeep from "lodash/cloneDeep";
 
-    this.oss = this.getOss()
-    if (this.oss) {
-      this.oss.groups.forEach(group => {
-        this.activeNames.push(group.busiFieldGroup)
-      })
-      // this.dataForm.files = this.oss
-      this.$set(this.dataForm, 'files', this.oss)
-    }
-  },
-  methods: {
-    getOss() {
-      let arr = (this.$store.state.oss.configs || []).filter(config => config.busiType === this.busiType)
-      if (arr.length > 0) {
-        return JSON.parse(JSON.stringify(arr[0]))
-      }
-      return null
+  export default {
+    name: 'TableUploader',
+    components: {},
+    props: {
+      value: Object,
+      dataForm: Object,
+      image: false,
+      busiType: String // 涓氬姟绫诲瀷
     },
-    change(busiField) {
-      console.log(busiField,'busiField busiField')
-
-      this.fields.forEach(field => {
-        if (field.busiField === busiField) {
-          field.files.length = 0
-          this.dataForm[busiField].forEach(file => {
-            console.log(file,"change file")
-            field.files.push(file)
+    data() {
+      return {
+        activeNames: ['1'],
+        oss: null
+      }
+    },
+    computed: {
+      fields() {
+        let arr = []
+        if (this.dataForm.files && this.dataForm.files.groups) {
+          this.dataForm.files.groups.forEach(group => {
+            group.fields.forEach(field => arr.push(field))
           })
         }
-      })
-    },
-    getUploaderImg(list){
-      // this.imageList = list
-      if(list[0].url){
-        this.$emit('getImageUrl',list[0].url)
+        return arr
       }
+    },
+    mounted() {
+      if (this.value)
+        this.oss = this.value
+      else
+        this.oss = this.getOss()
+      if (this.oss) {
+        this.oss.groups.forEach(group => {
+          this.activeNames.push(group.busiFieldGroup)
+        })
+        // this.dataForm.files = this.oss
+        this.$set(this.dataForm, 'files', this.oss)
+         this.fields.forEach(field => {
+           // this.dataForm[field.busiField] = field.files
+           this.$set(this.dataForm, field.busiField, field.files)
+         })
+      }
+    },
+    methods: {
+      getOss() {
+        let arr = (this.$store.state.oss.configs || []).filter(config => config.busiType === this.busiType)
+        if (arr.length > 0) {
+          return JSON.parse(JSON.stringify(arr[0]))
+        }
+        return null
+      },
+      change(busiField) {
+        this.fields.forEach(field => {
+          if (field.busiField === busiField) {
+            field.files.length = 0
+            this.dataForm[busiField].forEach(file => {
+              field.files.push(file)
+            })
+          }
+        })
+      },
+      getUploaderImg(list) {
+        // this.imageList = list
+        if (list[0].url) {
+          this.$emit('getImageUrl', list[0].url)
+        }
 
+      }
     }
   }
-}
 </script>
 <style>
-.config-uploader1 label {
-  width: 30px !important;
-}
-.config-uploader1 a{
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-  width: 180px;
-}
-.config-uploader1 .zt-upload {
-  line-height: 0;
-}
-.zt .el-upload-list__item .el-progress{
-  top:15px !important;
-}
+  .config-uploader1 label {
+    width: 30px !important;
+  }
+
+  .config-uploader1 a {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    width: 180px;
+  }
+
+  .config-uploader1 .zt-upload {
+    line-height: 0;
+  }
+
+  .zt .el-upload-list__item .el-progress {
+    top: 15px !important;
+  }
 </style>
diff --git a/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue b/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue
index f44c291..5011f0f 100644
--- a/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue
@@ -359,10 +359,10 @@
     },
     created() {
       const roleName = localStorage.getItem('roleName')
-      if (roleName && roleName.includes('QA')) {
+      if (roleName && roleName.includes('瀹℃牳浜哄憳')) {
         this.showColumn = true;
       }
-      if (roleName && roleName.includes('娴嬭瘯鍛�')) {
+      if (roleName && roleName.includes('妫�娴嬩汉鍛�')) {
         this.showAddAndEdit = true;
       }
     },
diff --git a/web/src/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue b/web/src/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue
index 5f8d7f8..119f7d9 100644
--- a/web/src/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemOutbound/ConfigItemOutbound-AddOrUpdate.vue
@@ -211,10 +211,10 @@
     },
     created() {
       const roleName = localStorage.getItem('roleName')
-      if (roleName && roleName.includes('QA')) {
+      if (roleName && roleName.includes('瀹℃牳浜哄憳')) {
         this.showColumn = true;
       }
-      if (roleName && roleName.includes('娴嬭瘯鍛�')) {
+      if (roleName && roleName.includes('妫�娴嬩汉鍛�')) {
         this.showAddAndEdit = true;
       }
     },
diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
index daa8cb2..79f3511 100644
--- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -92,6 +92,11 @@
                                     v-model="row.files"/>
                   </template>
                 </el-table-column>
+                <el-table-column v-if="stepMarker=='pzxrk_first'" fixed="right" label="鎿嶄綔" align="center">
+                  <template slot-scope="scope">
+                    <zt-table-button @click="deleteRow(scope.$index,scope.row.id)">鍒犻櫎</zt-table-button>
+                  </template>
+                </el-table-column>
               </el-table>
               <div v-if="showAddAndEdit && !dataForm.disabled" class="icon-container">
                 <el-dropdown @command="handleCommand">
@@ -248,6 +253,7 @@
   import AddOrUpdateCheck from '../testCheckOrder/TestCheckOrder-AddOrUpdate'
   import qs from "qs";
   import Cookies from "js-cookie";
+  import cloneDeep from "lodash/cloneDeep";
 
   export default {
     data() {
@@ -329,7 +335,7 @@
           console.log(row.libraryType,"row.libraryType")
           this.dataForm.configItemWarehouse.libraryType = row.libraryType
         }
-        this.getInfo()
+        this.getInfo2()
         if (!this.dataForm.disabled) {
           if (!row.stepMarker) {
             this.stepMarker = 'pzxrk_first'
@@ -372,17 +378,13 @@
         this.$set(row, 'checkId', checkId)
       },
       // 鑾峰彇淇℃伅
-      async getInfo() {
+      async getInfo2() {
         let params = {
           warehouseId: this.dataForm.id,
           projectId: this.dataForm.projectId,
           libraryType:this.dataForm.configItemWarehouse.libraryType
         }
         let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/getDto`, {params: params})
-        this.dataForm = {
-          ...this.dataForm,
-          ...res.data
-        }
         if (this.dataForm.project === null) {
           this.dataForm.project = {}
         }
@@ -392,7 +394,21 @@
         if (this.dataForm.flowInfoDto === null) {
           this.dataForm.flowInfoDto = {}
         }
+        setTimeout(()=>{
+          this.dataForm = {
+            ...this.dataForm,
+            ...res.data
+          }
+        },100)
         console.log(this.dataForm, "getInfo this.dataForm")
+      },
+      async deleteRow(index, id){
+          if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) {
+            if (id != null) {
+            let res = await this.$http.delete('/configItemWarehouse/WarehouseConfigItem/', {data: [id]})
+          }
+            this.dataForm.configItemList.splice(index, 1)
+        }
       },
       async print(){
         var params = qs.stringify({
@@ -404,6 +420,19 @@
       },
       // 琛ㄥ崟鎻愪氦
       async formSubmit(submitType) {
+        let isFiles = true;
+        this.dataForm.configItemList.forEach(item => {
+          console.log(item, "his.dataForm.technicalList.forEach")
+          item.files.groups.forEach(groups => {
+            groups.fields.forEach(files => {
+              if (files.files.length === 0) {
+                this.$alert("褰撳墠瀛樺湪鏈笂浼犻檮浠剁殑鎶�鏈祫鏂欙紝璇烽噸鏂颁笂浼�")
+                isFiles = false
+                return isFiles
+              }
+            })
+          })
+        })
         if (this.showColumn && submitType == 'bl') {
           for (let item of this.dataForm.configItemList) {
             if (item) {
@@ -414,7 +443,10 @@
             }
           }
         }
-        if (submitType == 'tj' || submitType == 'bl') {
+        if (submitType === 'tj' || submitType === 'bl') {
+          if (!isFiles){
+            return
+          }
           let flowInfo = {
             flowCode: 'pzxrk',
             stepIdMark: this.stepMarker,
diff --git a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
index 857d695..dcea241 100644
--- a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
@@ -43,44 +43,49 @@
                   </el-table-column>
                   <el-table-column prop="infoName" min-width="180" label="鎶�鏈祫鏂欏悕绉�">
                     <template v-slot="{ row }">
-                      <el-input v-model="row.name" placeholder="鎶�鏈祫鏂欏悕绉�"></el-input>
+                      <el-input :disabled="stepMarker!=='wplz_first'" v-model="row.name" placeholder="鎶�鏈祫鏂欏悕绉�"></el-input>
                     </template>
                   </el-table-column>
                   <el-table-column prop="identify" align="center" width="150" label="鏍囪瘑">
                     <template v-slot="{ row }">
-                      <el-input v-model="row.version" placeholder="鏍囪瘑"></el-input>
+                      <el-input :disabled="stepMarker!=='wplz_first'" v-model="row.version" placeholder="鏍囪瘑"></el-input>
                     </template>
                   </el-table-column>
                   <el-table-column prop="version" align="center" width="120" label="鐗堟湰">
                     <template v-slot="{ row }">
-                      <el-input v-model="row.identify" placeholder="鐗堟湰"></el-input>
+                      <el-input :disabled="stepMarker!=='wplz_first'" v-model="row.identify" placeholder="鐗堟湰"></el-input>
                     </template>
                   </el-table-column>
                   <el-table-column prop="secretClass" label="瀵嗙骇" width="100" align="center">
                     <template v-slot="{ row }">
                       <!--                    <el-input v-model="row.secretClass" placeholder="瀵嗙骇"></el-input>-->
-                      <zt-dict v-model="row.secretClass" dict="secret_class"></zt-dict>
+                      <zt-dict :disabled="stepMarker!=='wplz_first'" v-model="row.secretClass" dict="secret_class"></zt-dict>
                     </template>
                   </el-table-column>
                   <el-table-column prop="medium" label="浠嬭川" width="100" align="center">
                     <template v-slot="{ row }">
-                      <el-input v-model="row.medium" placeholder="浠嬭川"></el-input>
+                      <el-input :disabled="stepMarker!=='wplz_first'" v-model="row.medium" placeholder="浠嬭川"></el-input>
                     </template>
                   </el-table-column>
                   <el-table-column prop="amount" label="鏁伴噺" width="80" align="center">
                     <template v-slot="{ row }">
-                      <el-input v-model="row.amount" placeholder="鏁伴噺"></el-input>
+                      <el-input :disabled="stepMarker!=='wplz_first'" v-model="row.amount" placeholder="鏁伴噺"></el-input>
                     </template>
                   </el-table-column>
                   <el-table-column prop="remark" label="澶囨敞" width="100" align="center">
                     <template v-slot="{ row }">
-                      <el-input v-model="row.remark" placeholder="澶囨敞"></el-input>
+                      <el-input  :disabled="stepMarker!=='wplz_first'" v-model="row.remark" placeholder="澶囨敞"></el-input>
                     </template>
                   </el-table-column>
-                  <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="300" align="center">
+                  <el-table-column  fixed="right" prop="files" label="涓婁紶闄勪欢" width="300" align="center">
                     <template v-slot="{ row }">
                       <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
                                       v-model="row.files"/>
+                    </template>
+                  </el-table-column>
+                  <el-table-column v-if="stepMarker=='wplz_first'" fixed="right" label="鎿嶄綔" align="center">
+                    <template slot-scope="scope">
+                      <zt-table-button @click="deleteRow(scope.$index,scope.row.id)">鍒犻櫎</zt-table-button>
                     </template>
                   </el-table-column>
                 </el-table>
@@ -98,7 +103,8 @@
             <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 :disabled="stepMarker!=='wplz_first'" 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">
@@ -129,10 +135,12 @@
             </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 :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict>
+                <zt-dict :disabled="stepMarker!=='wplz_wpjs'" 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 :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input>
+                <el-input :disabled="stepMarker!=='wplz_wpjs'"
+                          v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input>
               </el-form-item>
             </div>
           </div>
@@ -158,7 +166,8 @@
             </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="stepMarker!=='wplz_jcjs'" v-model="dataForm.circulatOrder.detectAcceptSituation" :radio="true" dict="is_or_not"></zt-dict>
+                <zt-dict :disabled="stepMarker!=='wplz_jcjs'" v-model="dataForm.circulatOrder.detectAcceptSituation"
+                         :radio="true" dict="is_or_not"></zt-dict>
               </el-form-item>
             </div>
           </div>
@@ -185,7 +194,8 @@
             </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="stepMarker!=='wplz_xzjc'" 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>
@@ -211,7 +221,8 @@
             </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="stepMarker!=='wplz_wprk'" v-model="dataForm.circulatOrder.depositSituation" :radio="true" dict="is_or_not"></zt-dict>
+                <zt-dict :disabled="stepMarker!=='wplz_wprk'" v-model="dataForm.circulatOrder.depositSituation"
+                         :radio="true" dict="is_or_not"></zt-dict>
               </el-form-item>
             </div>
           </div>
@@ -237,7 +248,8 @@
             </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="stepMarker!=='wplz_wpff'"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>
@@ -262,7 +274,6 @@
 </template>
 
 
-
 <script>
   import qs from "qs";
   import Cookies from "js-cookie";
@@ -282,9 +293,9 @@
             itemOther: '',
             acceptSituation: '',
             acceptDate: '',
-            detectAcceptor:'',
-            detectAcceptDate:'',
-            detectAcceptSituation:'',
+            detectAcceptor: '',
+            detectAcceptDate: '',
+            detectAcceptSituation: '',
             calibratDetector: '',
             detectDate: '',
             detectSituation: '',
@@ -295,8 +306,8 @@
             issueDate: '',
             issueSituation: '',
             remark: '',
-            virusLibraryVersion:'',
-            itemAcceptor:''
+            virusLibraryVersion: '',
+            itemAcceptor: ''
           },
           project: {
             softwareIdentity: '',
@@ -313,9 +324,9 @@
     components: {
       AddOrUpdate
     },
-    computed:{
-      getRoleName(){
-        console.log(this.$store.state.user.roleName,'this.$store.state.user.roleName')
+    computed: {
+      getRoleName() {
+        console.log(this.$store.state.user.roleName, 'this.$store.state.user.roleName')
         return this.$store.state.user.roleName || ''
       },
     },
@@ -324,22 +335,21 @@
         return index += 1
       },
       init(id, row) {
-        console.log(id,row,'娴佽浆鍗曠殑')
+        console.log(id, row, '娴佽浆鍗曠殑')
         if (id) {
           this.dataForm.id = id
         } else {
           this.dataForm.id = row.id
         }
-        if(row.projectId){
-          this.dataForm.projectId =row.projectId
+        if (row.projectId) {
+          this.dataForm.projectId = row.projectId
         }
-
+        this.getInfo2()
         // this.dataForm.disabled
-        this.getInfo()
         if (!this.dataForm.disabled) {
           if (!row.stepMarker) {
             this.stepMarker = 'wplz_first'
-            this.title = '鐗╁搧鎺ユ敹'
+            this.title = '娴佽浆鐢宠'
           } else {
             this.title = row.stepName
             this.stepMarker = row.stepMarker
@@ -354,8 +364,16 @@
           tableBody.scrollTop = tableBody.scrollHeight;
         })
       },
+      async deleteRow(index, id) {
+        if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) {
+          if (id != null) {
+            let res = await this.$http.delete('/itemCirculatOrder/ItemCirculatOrderTechnical/', {data: [id]})
+          }
+          this.dataForm.technicalList.splice(index, 1)
+        }
+      },
       // 鑾峰彇淇℃伅
-      async getInfo() {
+      async getInfo2() {
         let params = {
           circulatOrderid: this.dataForm.id,
           projectId: this.dataForm.projectId
@@ -365,32 +383,49 @@
           ...this.dataForm,
           ...res.data
         }
-        if(this.dataForm.project === null){
-          this.dataForm.project={}
+        if (this.dataForm.project === null) {
+          this.dataForm.project = {}
         }
-        if(this.dataForm.circulatOrder === null){
-          this.dataForm.circulatOrder={}
+        if (this.dataForm.circulatOrder === null) {
+          this.dataForm.circulatOrder = {}
         }
-        if(this.dataForm.testAgencyInfo === null){
-          this.dataForm.testAgencyInfo={}
+        if (this.dataForm.testAgencyInfo === null) {
+          this.dataForm.testAgencyInfo = {}
         }
-        if(this.dataForm.flowInfoDto === null){
-          this.dataForm.flowInfoDto={}
+        if (this.dataForm.flowInfoDto === null) {
+          this.dataForm.flowInfoDto = {}
         }
         console.log(this.dataForm, "getInfo this.dataForm")
+
       },
-      async print(){
+      async print() {
         var params = qs.stringify({
           token: Cookies.get('token'),
-          id:this.dataForm.id
+          id: this.dataForm.id
         })
         let apiURL = `/itemCirculatOrder/ItemCirculatOrder/exportCirculatOrder/`
         window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
       },
       // 琛ㄥ崟鎻愪氦
       async formSubmit(submitType) {
+        let isFiles = true;
+        this.dataForm.technicalList.forEach(item => {
+          console.log(item, "his.dataForm.technicalList.forEach")
+          item.files.groups.forEach(groups => {
+            groups.fields.forEach(files => {
+              if (files.files.length === 0) {
+                this.$alert("褰撳墠瀛樺湪鏈笂浼犻檮浠剁殑鎶�鏈祫鏂欙紝璇烽噸鏂颁笂浼�")
+                isFiles = false
+                return isFiles
+              }
+            })
+          })
+        })
         console.log(this.dataForm, "this.dataForm11111")
         if (submitType == 'tj' || submitType == 'bl') {
+          if (!isFiles){
+            return
+          }
           let flowInfo = {
             flowCode: 'wplz',
             stepIdMark: this.stepMarker,
@@ -399,13 +434,16 @@
           this.dataForm.flowInfoDto = flowInfo;
         }
         let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/itemCirculatOrder/ItemCirculatOrder/', this.dataForm)
-        if(this.stepMarker==='wplz_wprk'){
-/*          alert(this.dataForm.projectId)*/
-          this.$nextTick(()=>{
-            this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: this.dataForm.projectId, libraryType: '1'})
-          })
-        }
         if (res.success) {
+          if (this.stepMarker === 'wplz_wprk' && submitType == 'bl') {
+            this.$nextTick(() => {
+              this.$refs.addOrUpdate.$refs.dialog.init(null, {
+                id: res.data,
+                projectId: this.dataForm.projectId,
+                libraryType: '1'
+              })
+            })
+          }
           /*      if (submitType == 'tj') {
                       console.log(res, 'bbbb')
                       let res2 = await this.$http.get('/wf/startFlow', submitForm)
diff --git a/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue b/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
index b2b30a5..823a991 100644
--- a/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -623,12 +623,12 @@
         })
       },
       async deleteDeliverableRow(index,id) {
-        if (id != null) {
           if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) {
+            if (id != null) {
             let res = await this.$http.delete('/project/SoftwareTestOrderDeliverable/', {data: [id]})
           }
+          this.dataForm.deliverableList.splice(index, 1)
         }
-        this.dataForm.deliverableList.splice(index, 1)
       },
       addMeasuredRow() {
         this.dataForm.measuredList.push({})
@@ -638,12 +638,12 @@
         })
       },
       async deleteMeasuredRow(index, id) {
-        if (id != null) {
           if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) {
+            if (id != null) {
             let res = await this.$http.delete('/project/SoftwareTestOrderMeasured/', {data: [id]})
           }
+            this.dataForm.measuredList.splice(index, 1)
         }
-        this.dataForm.measuredList.splice(index, 1)
       },
       async print() {
         var params = qs.stringify({
diff --git a/web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue b/web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue
index 2313022..5d7f6c0 100644
--- a/web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue
+++ b/web/src/views/modules/riskTraceRecord/RiskTraceItem-AddOrUpdate.vue
@@ -38,54 +38,66 @@
             </div>
             <div  class=" el-border-left" style="width: 20%">
               <el-form-item class="form-margin-top-bottom">
-                <el-input v-model="dataForm.riskMeasure.requireRiskTrackers" class="risk-form-padding"></el-input>
+                <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.requireRiskTrackers" class="risk-form-padding"></el-input>
+                <span v-else>{{dataForm.riskMeasure.requireRiskTrackers}}</span>
               </el-form-item>
               <el-form-item class="form-margin-top-bottom">
                 <el-date-picker
+                  v-if="dataForm.isCsry"
                   class="risk-form-padding"
                   v-model="dataForm.riskMeasure.requireRiskDate"
                   type="date"
                   placeholder="閫夋嫨鏃ユ湡">
                 </el-date-picker>
+                <span v-else>{{dataForm.riskMeasure.requireRiskDate}}</span>
               </el-form-item>
             </div>
             <div  class=" el-border-left" style="width: 20%">
               <el-form-item class="form-margin-top-bottom">
-                <el-input v-model="dataForm.riskMeasure.designRiskTrackers" class="risk-form-padding"></el-input>
+                <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.designRiskTrackers" class="risk-form-padding"></el-input>
+                <span v-else>{{dataForm.riskMeasure.designRiskTrackers}}</span>
               </el-form-item>
               <el-form-item class="form-margin-top-bottom">
                 <el-date-picker
+                  v-if="dataForm.isCsry"
                   class="risk-form-padding"
                   v-model="dataForm.riskMeasure.designRiskDate"
                   type="date"
                   placeholder="閫夋嫨鏃ユ湡">
                 </el-date-picker>
+                <span v-else>{{dataForm.riskMeasure.designRiskDate}}</span>
               </el-form-item>
             </div>
             <div class=" el-border-left" style="width: 20%">
               <el-form-item class="form-margin-top-bottom">
-                <el-input v-model="dataForm.riskMeasure.executeRiskTrackers" class="risk-form-padding"></el-input>
+                <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.executeRiskTrackers" class="risk-form-padding"></el-input>
+                <span v-else>{{dataForm.riskMeasure.executeRiskTrackers}}</span>
               </el-form-item>
               <el-form-item class="form-margin-top-bottom">
                 <el-date-picker
+                  v-if="dataForm.isCsry"
                   class="risk-form-padding"
                   v-model="dataForm.riskMeasure.executeRiskDate"
                   type="date"
                   placeholder="閫夋嫨鏃ユ湡">
                 </el-date-picker>
+                <span v-else>{{dataForm.riskMeasure.executeRiskDate}}</span>
               </el-form-item>
             </div>
             <div class=" el-border-left" style="width: 20%">
               <el-form-item class="form-margin-top-bottom">
-                <el-input v-model="dataForm.riskMeasure.summaryRiskTrackers" class="risk-form-padding"></el-input>
+                <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.summaryRiskTrackers" class="risk-form-padding"></el-input>
+                <span v-else>{{dataForm.riskMeasure.summaryRiskTrackers}}</span>
               </el-form-item>
               <el-form-item class="form-margin-top-bottom">
                 <el-date-picker
+                  v-if="dataForm.isCsry"
                   class="risk-form-padding"
                   v-model="dataForm.riskMeasure.summaryRiskDate"
                   type="date"
                   placeholder="閫夋嫨鏃ユ湡">
                 </el-date-picker>
+                <span v-else>{{dataForm.riskMeasure.summaryRiskDate}}</span>
               </el-form-item>
             </div>
           </div>
@@ -99,16 +111,20 @@
                   閲囧彇鎺柦锛�
                 </div>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%" >
-                  <el-input v-model="dataForm.riskMeasure.requireMeasure" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.requireMeasure" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.requireMeasure}}</span>
                 </el-form-item>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.designMeasure" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.designMeasure" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.designMeasure}}</span>
                 </el-form-item>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.executeMeasure" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.executeMeasure" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.executeMeasure}}</span>
                 </el-form-item>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.summaryMeasure" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.summaryMeasure" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.summaryMeasure}}</span>
                 </el-form-item>
               </div>
               <div class="el-risk-flex el-border-bottom ">
@@ -117,54 +133,66 @@
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.requireRecorder" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.requireRecorder" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.requireRecorder}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isCsry"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.requireRecordDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.requireRecordDate}}</span>
                   </el-form-item>
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.designRecorder" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.designRecorder" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.designRecorder}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isCsry"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.designRecordDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.designRecordDate}}</span>
                   </el-form-item>
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.executeRecorder" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.executeRecorder" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.executeRecorder}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isCsry"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.executeRecordDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.executeRecordDate}}</span>
                   </el-form-item>
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.summaryRecorder" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isCsry" v-model="dataForm.riskMeasure.summaryRecorder" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.summaryRecorder}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isCsry"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.summaryRecordDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.summaryRecordDate}}</span>
                   </el-form-item>
                 </div>
               </div>
@@ -173,16 +201,20 @@
                   鎺柦鏈夋晥鎬ц瘎浼帮細
                 </div>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.requireEvaluate" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.requireEvaluate" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.requireEvaluate}}</span>
                 </el-form-item>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.designEvaluate" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.designEvaluate" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.designEvaluate}}</span>
                 </el-form-item>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.executeEvaluate" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.executeEvaluate" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.executeEvaluate}}</span>
                 </el-form-item>
                 <el-form-item class="form-margin-top-bottom el-border-left" style="width:22.25%">
-                  <el-input v-model="dataForm.riskMeasure.summaryEvaluate" class="risk-form-padding"></el-input>
+                  <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.summaryEvaluate" class="risk-form-padding"></el-input>
+                  <span v-else>{{dataForm.riskMeasure.summaryEvaluate}}</span>
                 </el-form-item>
               </div>
               <div class="el-risk-flex ">
@@ -191,54 +223,66 @@
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.requireLeader" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.requireLeader" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.requireLeader}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isBmld"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.requireLeadDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.requireLeadDate}}</span>
                   </el-form-item>
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.designLeader" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.designLeader" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.designLeader}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isBmld"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.designLeadDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.designLeadDate}}</span>
                   </el-form-item>
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.executeLeader" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.executeLeader" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.executeLeader}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isBmld"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.executeLeadDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.executeLeadDate}}</span>
                   </el-form-item>
                 </div>
                 <div class=" el-border-left" style="width:22.25%">
                   <el-form-item class="form-margin-top-bottom">
-                    <el-input v-model="dataForm.riskMeasure.summaryLeader" class="risk-form-padding"></el-input>
+                    <el-input v-if="dataForm.isBmld" v-model="dataForm.riskMeasure.summaryLeader" class="risk-form-padding"></el-input>
+                    <span v-else>{{dataForm.riskMeasure.summaryLeader}}</span>
                   </el-form-item>
                   <el-form-item class="form-margin-top-bottom">
                     <el-date-picker
+                      v-if="dataForm.isBmld"
                       class="risk-form-padding"
                       v-model="dataForm.riskMeasure.summaryLeadDate"
                       type="date"
                       placeholder="閫夋嫨鏃ユ湡">
                     </el-date-picker>
+                    <span v-else>{{dataForm.riskMeasure.summaryLeadDate}}</span>
                   </el-form-item>
                 </div>
               </div>
@@ -319,7 +363,9 @@
             softwareName: ''
           },
           riskList:[],
-          itemList:[]
+          itemList:[],
+          isCsry:'',
+          isBmld:'',
         }
       }
     },
@@ -335,6 +381,7 @@
         }
         // this.dataForm.disabled
         this.getInfo()
+        this.getMyProjectRole()
         },
       // 鑾峰彇淇℃伅
       async getInfo() {
@@ -348,6 +395,12 @@
           ...res.data
         }
       },
+      async getMyProjectRole() {
+        let res = await this.$http.get(`/project/Project/myProjectRole/${this.dataForm.projectId}`)
+        console.log(res.data,"getMyProjectRole")
+        this.dataForm.isCsry = res.data.csry
+        this.dataForm.isBmld = res.data.bmld
+      },
       async print() {
         var params = qs.stringify({
           token: Cookies.get('token'),
diff --git a/web/src/views/modules/riskTraceRecord/RiskTraceItem.vue b/web/src/views/modules/riskTraceRecord/RiskTraceItem.vue
index 3bdf090..91f003c 100644
--- a/web/src/views/modules/riskTraceRecord/RiskTraceItem.vue
+++ b/web/src/views/modules/riskTraceRecord/RiskTraceItem.vue
@@ -18,7 +18,7 @@
         </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 type="selection" align="center" width="40"/>
           <el-table-column prop="softwareName" label="椤圭洰鍚嶇О"/>
           <el-table-column prop="softwareIdentity" label="椤圭洰鏍囪瘑"/>
           <zt-table-column-handle :table="table" edit-perm="riskTraceRecord:update"
diff --git a/web/src/views/modules/sys/development/generator.vue b/web/src/views/modules/sys/development/generator.vue
index 3dcac10..3d02084 100644
--- a/web/src/views/modules/sys/development/generator.vue
+++ b/web/src/views/modules/sys/development/generator.vue
@@ -3,7 +3,7 @@
 
     <div class="mod-sys__generator">
       <div class="mod-sys__user">
-        <el-form :model="dataForm" label-width="80px" @keyup.enter.native="getDataList()">
+        <el-form :model="dataForm" label-width="80px" @keyup.enter.native="getTableInfo()">
           <el-form-item>
             <el-input style="width: 30%;margin-right: 20px;" v-model="dataForm.tableName" placeholder="璇疯緭鍏ヨ〃鍚�" clearable></el-input>
             <el-button @click="getTableInfo()">鏌ヨ</el-button>
diff --git a/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java b/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
index 3f75961..010f75d 100644
--- a/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
+++ b/zt/core/src/main/java/com/zt/modules/workflow/service/WorkflowService.java
@@ -315,7 +315,7 @@
                     insertFlowTaskData(taskParamDto);
                 }
             }
-            else if (currentStep.getTaskGroup() !=null && "pall,zrr,csr,shr,pzr".contains(currentStep.getTaskGroup())) {
+            else if (StringUtils.isNotBlank(currentStep.getTaskGroup()) && "pall,zrr,csr,shr,pzr".contains(currentStep.getTaskGroup())) {
                 String userList = null;
                 if ("zrr".equals(currentStep.getTaskGroup())) {
                     userList = bizInfoDto.getZrr();

--
Gitblit v1.9.1