From efc529af784bf35daf6e8d1d6108467cdcf8f663 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期四, 07 十二月 2023 16:25:39 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue                                            |   12 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java |    8 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java       |  121 ++++++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java             |  203 ++++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java                              |    5 
 modules/mainPart/src/main/java/com/zt/life/modules/itemCirculatOrder/controller/ItemCirculatOrderController.java     |    6 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java                     |   25 +
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java       |   14 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java                     |   35 +
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java           |   10 
 web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue                                                  |   33 
 web/src/views/modules/configItemChange/ConfigItemChange.vue                                                          |   70 +++
 web/src/views/modules/sys/task/stay-task.vue                                                                         |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java                      |  106 +++++
 web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue                                              |  507 +++++++++++++++++++++++++
 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue                                        |   15 
 web/src/views/modules/testCheckOrder/TestCheckOrder.vue                                                              |   16 
 modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java                 |    1 
 18 files changed, 1,135 insertions(+), 54 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java
new file mode 100644
index 0000000..77fd3df
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/controller/ConfigItemChangeController.java
@@ -0,0 +1,121 @@
+package com.zt.life.modules.configItemChange.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.constant.Constant;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.servlet.Result;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.configItemChange.dto.ConfigItemChangeDto;
+import com.zt.life.modules.configItemChange.model.ConfigItemChange;
+import com.zt.life.modules.configItemChange.service.ConfigItemChangeService;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
+import com.zt.life.sys.dto.OssDto;
+import com.zt.life.sys.service.SysOssConfigService;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * config_item_warehouse
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@RestController
+@RequestMapping("/configItemWarehouse/ConfigItemWarehouse/")
+@Api(tags="config_item_warehouse")
+public class ConfigItemChangeController {
+    @Autowired
+    private ConfigItemChangeService configItemChangeService;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @Autowired
+    private SysOssConfigService sysOssConfigService;
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "code", value = "閰嶇疆椤瑰叆搴撶紪鍙�", dataType = Constant.QT.STRING, format = "a.code^LK"),
+        @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "p.code^EQ"),
+        @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^EQ"),
+        @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "a.library_type^EQ")    })
+    public PageResult<ConfigItemChange> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+        List<ConfigItemChange> configItemChange = configItemChangeService.page(queryFilter);
+        return PageResult.ok(configItemChange);
+    }
+
+    @GetMapping("getDto")
+    @ApiOperation("淇℃伅")
+    public Result<ConfigItemChangeDto> getDto(Long projectId, Long warehouseId) {
+        ConfigItemChangeDto data = configItemChangeService.getDto(projectId, warehouseId);
+        if (warehouseId!=null) {
+            for (WarehouseConfigItem configItem  : data.getConfigItemList()) {
+                Long configItemId = configItem.getId();
+                OssDto ossDto = sysOssConfigService.getOssByBusiType(configItemId, "config_item_warehouse");
+                if (ossDto != null) {
+                    configItem.setFiles(ossDto);
+                }
+            }
+        }
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody ConfigItemChangeDto configItemDto){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(configItemDto, AddGroup.class, DefaultGroup.class);
+        Map<String, String> map = new HashMap<>();
+        map.put("funCode", "config_item_warehouse");
+        map.put("projectId",configItemDto.getProjectId().toString());
+        configItemDto.getConfigItemChange().setCode(sysCodeRuleService.getNewCode(map));
+        Boolean result = configItemChangeService.save(configItemDto);
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody ConfigItemChangeDto configItemDto){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(configItemDto, UpdateGroup.class, DefaultGroup.class);
+        Boolean result = configItemChangeService.save(configItemDto);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping("deleteConfigItem")
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        configItemChangeService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java
new file mode 100644
index 0000000..7cb8316
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dao/ConfigItemChangeDao.java
@@ -0,0 +1,25 @@
+package com.zt.life.modules.configItemChange.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.configItemChange.model.ConfigItemChange;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * config_item_warehouse
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Mapper
+public interface ConfigItemChangeDao extends BaseDao<ConfigItemChange> {
+
+    List<ConfigItemChange> getList(Map<String, Object> params);
+
+    List<WarehouseCmAudit> itemList(String dictType);
+
+    String checkIdentify(String code,String projectCode);
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java
new file mode 100644
index 0000000..53997d9
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/dto/ConfigItemChangeDto.java
@@ -0,0 +1,35 @@
+package com.zt.life.modules.configItemChange.dto;
+
+import com.zt.life.modules.configItemChange.model.ConfigItemChange;
+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.project.model.Project;
+import com.zt.modules.workflow.dto.FlowInfoDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class ConfigItemChangeDto {
+    private Long id;
+    private Long projectId;
+    private Long warehouseId;
+
+    @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅")
+    private Project project;
+    @ApiModelProperty(value = "閰嶇疆椤瑰叆搴�")
+    private ConfigItemChange configItemChange;
+
+    private FlowInfoDto flowInfoDto;
+
+    @ApiModelProperty(value = "鍏ュ簱閰嶇疆椤�")
+    private List<WarehouseConfigItem> configItemList = new ArrayList<>();
+    @ApiModelProperty(value = "CM瀹℃牳")
+    private List<WarehouseCmAudit> cmAuditList = new ArrayList<>();
+    @ApiModelProperty(value = "QA瀹℃牳")
+    private List<WarehouseQaAudit> qaAuditList = new ArrayList<>();
+}
+
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java
new file mode 100644
index 0000000..861ec62
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/model/ConfigItemChange.java
@@ -0,0 +1,106 @@
+package com.zt.life.modules.configItemChange.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * config_item_warehouse
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("config_item_warehouse")
+public class ConfigItemChange extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "椤圭洰ID")
+	private Long projectId;
+
+
+
+	@ApiModelProperty(value = "閰嶇疆椤瑰叆搴撶紪鍙�")
+	private String code;
+
+	@ApiModelProperty(value = "鐢宠浜�")
+	private String applicant;
+
+	@ApiModelProperty(value = "鐢宠鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date applyDate;
+
+	@ApiModelProperty(value = "搴撶被鍨�")
+	private String libraryType;
+
+	@ApiModelProperty(value = "QA瀹℃牳缁撴灉")
+	private String qaAuditResults;
+
+	@ApiModelProperty(value = "QA瀹℃牳浜�")
+	private String qaAuditor;
+
+	@ApiModelProperty(value = "QA瀹℃牳浜篒D")
+	private String qaAuditorId;
+
+	@ApiModelProperty(value = "QA瀹℃牳鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date qaAuditDate;
+
+	@ApiModelProperty(value = "CM瀹℃牳缁撴灉")
+	private String cmAuditResults;
+
+	@ApiModelProperty(value = "CM瀹℃牳浜�")
+	private String cmAuditor;
+
+	@ApiModelProperty(value = "CM瀹℃牳浜篒D")
+	private String cmAuditorId;
+
+	@ApiModelProperty(value = "CM瀹℃牳鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date cmAuditDate;
+
+	@ApiModelProperty(value = "鎵瑰噯鎰忚")
+	private String approvalOpinions;
+
+	@ApiModelProperty(value = "鎵瑰噯绛惧瓧")
+	private String approvalSign;
+
+	@ApiModelProperty(value = "鎵瑰噯鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date approvalDate;
+
+	@ApiModelProperty(value = "椤圭洰CM鎿嶄綔")
+	private String projectCmOperations;
+
+	@ApiModelProperty(value = "鎿嶄綔浜�")
+	private String operator;
+
+	@ApiModelProperty(value = "鎿嶄綔浜篒D")
+	private String operatorId;
+
+	@ApiModelProperty(value = "鎿嶄綔鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date operateDate;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "骞翠唤")
+	private String year;
+
+	@TableField(exist = false)
+	@ApiModelProperty(value = "椤圭洰鍚嶇О")
+	private String softwareName;
+
+	@TableField(exist = false)
+	@ApiModelProperty(value = "椤圭洰缂栧彿")
+	private String projectCode;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java
new file mode 100644
index 0000000..8cc5af7
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemChange/service/ConfigItemChangeService.java
@@ -0,0 +1,203 @@
+package com.zt.life.modules.configItemChange.service;
+
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.configItemChange.dao.ConfigItemChangeDao;
+import com.zt.life.modules.configItemChange.dto.ConfigItemChangeDto;
+import com.zt.life.modules.configItemChange.model.ConfigItemChange;
+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.WarehouseCmAuditService;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseQaAuditService;
+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.service.SysOssConfigService;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.oss.service.SysOssService;
+import com.zt.modules.workflow.dto.FlowInfoDto;
+import com.zt.modules.workflow.service.WorkflowService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * config_item_warehouse
+ *
+ * @author zt generator
+ * @since 1.0.0 2023-11-27
+ */
+@Service
+public class ConfigItemChangeService extends BaseService<ConfigItemChangeDao, ConfigItemChange> {
+    @Autowired
+    private SysOssConfigService sysOssConfigService;
+
+    @Autowired
+    private SysOssService sysOssService;
+
+    @Autowired
+    private WorkflowService workflowService;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private WarehouseCmAuditService cmAuditService;
+
+    @Autowired
+    private WarehouseQaAuditService qaAuditService;
+
+    @Autowired
+    private WarehouseConfigItemService configItemService;
+
+    @Autowired
+    private TestCheckOrderService testCheckOrderService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<ConfigItemChange> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public Boolean save(ConfigItemChangeDto configItemDto) {
+        Long warehouseId = configItemDto.getConfigItemChange().getId();
+        if (warehouseId != null)
+            baseDao.updateById(configItemDto.getConfigItemChange());
+        else {
+            Map<String, String> map = new HashMap<>();
+            map.put("funCode", "config_item_warehouse");
+            map.put("projectId", configItemDto.getProjectId().toString());
+            configItemDto.getConfigItemChange().setProjectId(configItemDto.getProjectId());
+            configItemDto.getConfigItemChange().setCode(sysCodeRuleService.getNewCode(map));
+            baseDao.insert(configItemDto.getConfigItemChange());
+            warehouseId = configItemDto.getConfigItemChange().getId();
+        }
+
+        for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) {
+            configItem.setWarehouseId(warehouseId);
+            if (configItem.getId() != null) {
+                if (configItem.getCheckId()!=null){
+                    String code ="719CTC-09-ST";
+                    String projectCode = configItemDto.getProject().getCode();
+                    if (configItem.getItemName().equals("杞欢娴嬭瘯璁″垝")){
+                        code=code+"P";
+                    }else if (configItem.getItemName().equals("杞欢娴嬭瘯璇存槑")){
+                        code=code+"D";
+                    }else if (configItem.getItemName().equals("杞欢娴嬭瘯璁板綍")){
+                        code=code+"L";
+                    }else if (configItem.getItemName().equals("杞欢娴嬭瘯鎶ュ憡")){
+                        code=code+"R";
+                    }
+                    configItem.setItemIdentify(code+"-"+projectCode);
+                }
+                configItemService.update(configItem);
+            } else {
+                configItem.setWarehouseId(warehouseId);
+                configItemService.insert(configItem);
+            }
+            Long checkId = configItem.getCheckId();
+            if (checkId != null) {
+                TestCheckOrder testCheckOrder = testCheckOrderService.get(checkId);
+                if (testCheckOrder.getConfigItemId() == null) {
+                    Long configItemId = configItem.getId();
+                    testCheckOrder.setConfigItemId(configItemId);
+                    testCheckOrderService.update(testCheckOrder);
+                }
+            }
+            sysOssConfigService.updateOss(configItem.getId(), configItem.getFiles());// 淇濆瓨闄勪欢
+        }
+
+        for (WarehouseCmAudit cmAudit : configItemDto.getCmAuditList()) {
+            cmAudit.setWarehouseId(warehouseId);
+            if (cmAudit.getId() != null) {
+                cmAuditService.update(cmAudit);
+            } else {
+                cmAudit.setWarehouseId(warehouseId);
+                cmAuditService.insert(cmAudit);
+            }
+        }
+
+        for (WarehouseQaAudit qaAudit : configItemDto.getQaAuditList()) {
+            qaAudit.setWarehouseId(warehouseId);
+            if (qaAudit.getId() != null) {
+                qaAuditService.update(qaAudit);
+            } else {
+                qaAudit.setWarehouseId(warehouseId);
+                qaAuditService.insert(qaAudit);
+            }
+        }
+
+        Long bizId = configItemDto.getConfigItemChange().getId();
+        FlowInfoDto flowInfoDto = configItemDto.getFlowInfoDto();
+
+        if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
+            if ("tj".equals(flowInfoDto.getSubmitType())) {
+                workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
+            }
+            workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark());
+        }
+        return true;
+    }
+
+    public ConfigItemChangeDto getDto(Long projectId, Long warehouseId) {
+        ConfigItemChangeDto data = new ConfigItemChangeDto();
+        if (warehouseId != null) {
+            data.setId(warehouseId);
+            ConfigItemChange configItemChange = this.get(warehouseId);
+            data.setConfigItemChange(configItemChange);
+
+            if (projectId == null) {
+                projectId = configItemChange.getProjectId();
+            }
+            List<WarehouseCmAudit> CmAuditList = cmAuditService.getList(warehouseId);
+            data.setCmAuditList(CmAuditList);
+            List<WarehouseQaAudit> QaAuditList = qaAuditService.getList(warehouseId);
+            data.setQaAuditList(QaAuditList);
+            List<WarehouseConfigItem> ConfigItemList = configItemService.getList(warehouseId);
+            data.setConfigItemList(ConfigItemList);
+
+        } else {
+            ConfigItemChange configItemChange = new ConfigItemChange();
+            data.setConfigItemChange(configItemChange);
+            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<?> resultList = configItemService.ConfigItemList(projectId);
+            List<?> ConfigItemList = resultList;
+            data.setConfigItemList((List<WarehouseConfigItem>) ConfigItemList);
+        }
+
+        if (projectId != null) {
+            data.setProjectId(projectId);
+            data.setProject(projectService.get(projectId));
+        }
+
+        return data;
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java
index 3c06162..3de3851 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java
@@ -60,10 +60,10 @@
         @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
         @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
         @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
-        @ApiImplicitParam(name = "code", value = "閰嶇疆椤瑰叆搴撶紪鍙�", dataType = Constant.QT.STRING, format = "code^LK"),
-        @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "code1^EQ"),
-        @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "software_name^EQ"),
-        @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "library_type^EQ")    })
+        @ApiImplicitParam(name = "code", value = "閰嶇疆椤瑰叆搴撶紪鍙�", dataType = Constant.QT.STRING, format = "a.code^LK"),
+        @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "p.code^EQ"),
+        @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^EQ"),
+        @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "a.library_type^EQ")    })
     public PageResult<ConfigItemWarehouse> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
         List<ConfigItemWarehouse> configItemWarehouse=configItemWarehouseService.page(queryFilter);
         return PageResult.ok(configItemWarehouse);
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 61b9549..de1a2e1 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
@@ -103,6 +103,20 @@
         for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) {
             configItem.setWarehouseId(warehouseId);
             if (configItem.getId() != null) {
+                if (configItem.getCheckId()!=null){
+                    String code ="719CTC-09-ST";
+                    String projectCode = configItemDto.getProject().getCode();
+                    if (configItem.getItemName().equals("杞欢娴嬭瘯璁″垝")){
+                        code=code+"P";
+                    }else if (configItem.getItemName().equals("杞欢娴嬭瘯璇存槑")){
+                        code=code+"D";
+                    }else if (configItem.getItemName().equals("杞欢娴嬭瘯璁板綍")){
+                        code=code+"L";
+                    }else if (configItem.getItemName().equals("杞欢娴嬭瘯鎶ュ憡")){
+                        code=code+"R";
+                    }
+                    configItem.setItemIdentify(code+"-"+projectCode);
+                }
                 configItemService.update(configItem);
             } else {
                 configItem.setWarehouseId(warehouseId);
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 240c223..33b4cc1 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
@@ -65,9 +65,9 @@
         @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
         @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
         @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
-        @ApiImplicitParam(name = "code", value = "鐗╁搧娴佽浆鍗曠紪鍙�", dataType = Constant.QT.STRING, format = "code^LK"),
-        @ApiImplicitParam(name = "softwareName", value = "鐗╁搧鍚嶇О", dataType = Constant.QT.STRING, format = "software_name^EQ"),
-        @ApiImplicitParam(name = "softwareIdentity", value = "鐗╁搧缂栧彿", dataType = Constant.QT.STRING, format = "software_identity^EQ")
+        @ApiImplicitParam(name = "code", value = "鐗╁搧娴佽浆鍗曠紪鍙�", dataType = Constant.QT.STRING, format = "a.code^LK"),
+        @ApiImplicitParam(name = "softwareName", value = "鐗╁搧鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^EQ"),
+        @ApiImplicitParam(name = "softwareIdentity", value = "鐗╁搧缂栧彿", dataType = Constant.QT.STRING, format = "p.software_identity^EQ")
     })
     public PageResult<ItemCirculatOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
 
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 f24a2b9..a8e8d9b 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
@@ -27,7 +27,6 @@
 	@ApiModelProperty(value = "椤圭洰ID")
 	private Long projectId;
 
-
 	@ApiModelProperty(value = "濮旀墭鍗曠紪鍙�")
 	private String code;
 
@@ -121,14 +120,14 @@
 
 	@ApiModelProperty(value = "濮旀墭鏂圭瀛楁棩鏈�")
 	@JsonFormat(pattern = "yyyy-MM-dd")
-	private String entrustSignDate;
+	private Date entrustSignDate;
 
 	@ApiModelProperty(value = "鎵挎墭鏂圭瀛�")
 	private String contractSign;
 
 	@ApiModelProperty(value = "鎵挎墭鏂圭瀛楁棩鏈�")
 	@JsonFormat(pattern = "yyyy-MM-dd")
-	private String contractSignDate;
+	private Date contractSignDate;
 
 	@TableField(exist = false)
 	@ApiModelProperty(value = "濮旀墭鍗曚綅鍚嶇О")
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java
index 40fdec2..07d81d7 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java
@@ -56,11 +56,13 @@
             @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
             @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
             @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
-            @ApiImplicitParam(name = "code", value = "缂栧彿", dataType = Constant.QT.STRING, format = "code^LK"),
-            @ApiImplicitParam(name = "softwareidentity", value = "椤圭洰鏍囪瘑", dataType = Constant.QT.STRING, format = "softwareIdentity^LK"),
-            @ApiImplicitParam(name = "softwarename", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "softwareName^LK")})
+            @ApiImplicitParam(name = "code", value = "缂栧彿", dataType = Constant.QT.STRING, format = "a.code^LK"),
+            @ApiImplicitParam(name = "softwareIdentity", value = "椤圭洰鏍囪瘑", dataType = Constant.QT.STRING, format = "p.software_identity^LK"),
+            @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^LK"),
+            @ApiImplicitParam(name = "pageCode", value = "閰嶇疆椤规爣璇�", dataType = Constant.QT.STRING, format = "a.page_code^LK")})
     public PageResult<TestCheckOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
-        return PageResult.ok(testCheckOrderService.page(queryFilter));
+        List<TestCheckOrder> testCheckOrder =testCheckOrderService.page(queryFilter);
+        return PageResult.ok(testCheckOrder);
     }
 
     @GetMapping("getDto")
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 1a7d671..344a19f 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
@@ -80,7 +80,6 @@
             if (projectId == null) {
                 projectId = checkOrder.getProjectId();
             }
-
             List<TestCheckOrderList> checkOrderList = checkOrderListService.getList(checkId);
             data.setCheckOrderList(checkOrderList);
 
diff --git a/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue b/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue
new file mode 100644
index 0000000..85e81e2
--- /dev/null
+++ b/web/src/views/modules/configItemChange/ConfigItemChange-AddOrUpdate.vue
@@ -0,0 +1,507 @@
+<template>
+  <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit">
+    <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm"
+             label-width="120px" class="warehouseFormAuto">
+      <div>
+        <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px">
+          <span>{{dataForm.configItemChange.code || '缂栧彿鑷姩鐢熸垚'}}</span>
+        </el-form-item>
+      </div>
+      <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
+        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="warehouseContentWidth">
+          <el-form-item class="marginTopAndMarginBottom" label="椤圭洰缂栧彿" style="width: 49%">
+            <el-input v-model="dataForm.project.code" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input>
+          </el-form-item>
+          <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%">
+            <el-input v-model="dataForm.project.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input>
+          </el-form-item>
+          <el-form-item label="鐢宠浜�" style="width: 49%">
+            <el-input :disabled="stepMarker!=='pzxrk_first'" v-model="dataForm.configItemChange.applicant"
+                      placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input>
+          </el-form-item>
+          <el-form-item label="鐢宠鏃ユ湡" style="width: 49%">
+            <el-date-picker
+              :disabled="stepMarker!=='pzxrk_first'"
+              v-model="dataForm.configItemChange.applyDate"
+              type="date"
+              placeholder="璇烽�夋嫨鐢宠鏃ユ湡">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item class="marginTopAndMarginBottom2" label="搴撶被鍨�" style="width: 99%">
+            <zt-dict v-model="dataForm.configItemChange.libraryType" :radio="true" dict="library_type"></zt-dict>
+          </el-form-item>
+        </div>
+        <div class="el-flexManageDialog el-border-bottom">
+          <div class="DFormWidth DAlign DHold">
+            鍏ュ簱閰嶇疆椤�
+          </div>
+          <div class="el-border-left" style="width: calc(100% - 120px)">
+            <div class="table-container">
+              <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot"
+                        style="width: 99%;margin-left: 5px" border :data="dataForm.configItemList"
+                        stripe>
+                <el-table-column prop="no" align="center" width="60" label="搴忓彿">
+                  <template slot-scope="scope">
+                    <span v-html="indexFormat(scope.$index)"></span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemName" width="200" label="閰嶇疆椤瑰悕绉�">
+                  <template v-slot="{ row }">
+                    <el-input v-if="showAddAndEdit" v-model="row.itemName" placeholder="閰嶇疆椤瑰悕绉�"></el-input>
+                    <span v-else>{{row.itemName}}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemDentify" align="center" min-width="290" label="閰嶇疆椤规爣璇�">
+                  <template v-slot="{ row }">
+                    <el-input  v-if="showAddAndEdit" v-model="row.itemIdentify" placeholder="閰嶇疆椤规爣璇�"></el-input>
+                    <span v-else>{{row.itemIdentify}}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="version" align="center" width="120" label="鐗堟湰">
+                  <template v-slot="{ row }">
+                    <el-input  v-if="showAddAndEdit" v-model="row.version" placeholder="鐗堟湰"></el-input>
+                    <span v-else>{{row.version}}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="retrospectVersion" label="涓婃函鐗�" width="120" align="center">
+                  <template v-slot="{ row }">
+                    <el-input  v-if="showAddAndEdit" v-model="row.retrospectVersion" placeholder="涓婃函鐗�"></el-input>
+                    <span v-else>{{row.retrospectVersion}}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="secretClass" label="瀵嗙骇" width="100" align="center">
+                  <template v-slot="{ row }">
+                    <zt-dict  :disabled="!showAddAndEdit" v-model="row.secretClass" placeholder="瀵嗙骇" dict="secret_class"
+                             clearable></zt-dict>
+                  </template>
+                </el-table-column>
+                <el-table-column v-if="showColumn" fixed="right" label="绠$悊" width="100" align="center">
+                  <template v-slot="{ row }">
+                    <zt-table-button v-if="row.checkId"
+                                     @click="openCheckOrderWin(row)">淇敼妫�鏌ュ崟
+                    </zt-table-button>
+                    <zt-table-button v-else-if="',杞欢娴嬭瘯璁″垝锛岃蒋浠舵祴璇曡鏄庯紝杞欢娴嬭瘯璁板綍锛岃蒋浠舵祴璇曟姤鍛�'.indexOf(row.itemName)>0"
+                                     @click="openCheckOrderWin(row)">鏂板妫�鏌ュ崟
+                    </zt-table-button>
+                  </template>
+                </el-table-column>
+                <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="240" align="center">
+                  <template v-slot="{ row }">
+                    <!--                    <zt-table-button @click="files(row.id)">涓婁紶闄勪欢</zt-table-button>-->
+                    <table-uploader busi-type="config_item_warehouse" model-name="row" :dataForm="row"
+                                    v-model="row.files"/>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <div v-if="showAddAndEdit" class="icon-container">
+                <el-dropdown @command="handleCommand">
+                  <span class="el-dropdown-link">
+                    <i class="el-icon-plus"></i>
+                  </span>
+                  <el-dropdown-menu slot="dropdown">
+                    <el-dropdown-item v-for="item in menuOptions" :key="item.pageCode" :command="item.pageCode">
+                      {{ item.name }}
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+                <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� -->
+                <!-- <i class="el-icon-plus"></i>-->
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="el-flexManageDialog el-border-bottom">
+          <div class="DFormWidth DAlign DHold">
+            椤圭洰QA瀹℃牳
+          </div>
+          <div class="el-border-left" style="width: calc(100% - 120px)">
+            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border
+                      :data="dataForm.qaAuditList"
+                      stripe>
+              <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column>
+              <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
+              <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center">
+                <template slot-scope="scope">
+                  <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�"
+                           dict="tristate2" :radio="true"
+                           clearable></zt-dict>
+                </template>
+              </el-table-column>
+              <el-table-column align="center" width="120" label="涓嶉�傜敤璇存槑">
+                <template v-slot="{ row }">
+                  <el-input v-if="stepMarker=='pzxrk_qash'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
+                  <span v-else>{{row.notApplyExplan}}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div class="el-border-top">
+              <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
+                <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="dataForm.configItemChange.qaAuditResults"
+                         dict="is_pass" :radio="true"
+                         clearable></zt-dict>
+              </el-form-item>
+              <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
+                <span>{{dataForm.configItemChange.qaAuditor}}</span>
+              </el-form-item>
+              <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
+                <span>{{dataForm.configItemChange.qaAuditDate}}</span>
+              </el-form-item>
+            </div>
+          </div>
+        </div>
+        <div class="el-flexManageDialog el-border-bottom">
+          <div class="DFormWidth DAlign DHold">
+            CM瀹℃牳
+          </div>
+          <div class="el-border-left" style="width: calc(100% - 120px)">
+            <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border
+                      :data="dataForm.cmAuditList"
+                      stripe>
+              <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column>
+              <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column>
+              <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center">
+                <template slot-scope="scope">
+                  <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�"
+                           dict="tristate2" :radio="true"
+                           clearable></zt-dict>
+                </template>
+              </el-table-column>
+              <el-table-column prop="notApplyExplan" align="center" width="120" label="涓嶉�傜敤璇存槑">
+                <template v-slot="{ row }">
+                  <el-input v-if="stepMarker=='pzxrk_cmsh'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input>
+                  <span v-else>{{row.notApplyExplan}}</span>
+                </template>
+              </el-table-column>
+            </el-table>
+            <div class="el-border-top">
+              <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
+                <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="dataForm.configItemChange.cmAuditResults"
+                         placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true"
+                         clearable></zt-dict>
+              </el-form-item>
+              <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
+                <span>{{dataForm.configItemChange.cmAuditor}}</span>
+              </el-form-item>
+              <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
+                <span>{{dataForm.configItemChange.cmAuditDate}}</span>
+              </el-form-item>
+            </div>
+          </div>
+        </div>
+        <div class="el-flexManageDialog el-border-bottom">
+          <div class="DFormWidth DAlign DHold">
+            鎵瑰噯鎰忚
+          </div>
+          <div style="width: calc(100% - 120px)" class="el-border-left">
+            <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%">
+              <zt-dict :disabled="stepMarker!=='pzxrk_bmsh'" v-model="dataForm.configItemChange.approvalOpinions"
+                       dict="is_pass" :radio="true"
+                       clearable></zt-dict>
+            </el-form-item>
+            <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%">
+              <span>{{dataForm.configItemChange.approvalSign}}</span>
+            </el-form-item>
+            <el-form-item label="鏃ユ湡锛�" style="width: 20%">
+              <span>{{dataForm.configItemChange.approvalDate}}</span>
+            </el-form-item>
+          </div>
+        </div>
+        <div class="el-flexManageDialog el-border-bottom">
+          <div class="DFormWidth DAlign DHold">
+            椤圭洰CM鎿嶄綔
+          </div>
+          <div style="width: calc(100% - 120px)" class="el-border-left">
+            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
+              <el-input v-if="stepMarker=='pzxrk_cmcz'" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�"
+                        v-model="dataForm.configItemChange.projectCmOperations"></el-input>
+              <span v-else>{{dataForm.configItemChange.projectCmOperations}}</span>
+            </el-form-item>
+            <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%">
+              <span>{{dataForm.configItemChange.operator}}</span>
+            </el-form-item>
+            <el-form-item label="鏃ユ湡锛�" style="width: 20%">
+              <span>{{dataForm.configItemChange.operateDate}}</span>
+            </el-form-item>
+          </div>
+        </div>
+        <div class="el-flexManageDialog">
+          <div class="DFormWidth DAlign DHold">
+            澶囨敞
+          </div>
+          <div style="width: calc(100% - 120px)" class="el-border-left">
+            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
+              <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�"
+                        v-model="dataForm.configItemChange.remark"></el-input>
+            </el-form-item>
+          </div>
+        </div>
+      </div>
+      <add-or-update-check ref="addOrUpdate" @recall="setCheckId"/>
+    </el-form>
+  </zt-dialog>
+</template>
+
+<script>
+  import AddOrUpdateCheck from '../testCheckOrder/TestCheckOrder-AddOrUpdate'
+
+  export default {
+    data() {
+      return {
+        disabled: true,
+        stepMarker: '',
+        title: '鏌ョ湅',
+        showColumn: false,
+        showAddAndEdit:false,
+        menuOptions: [
+          {pageCode: 'plan', name: '杞欢娴嬭瘯璁″垝',itemIdentify:''},
+          {pageCode: 'explain', name: '杞欢娴嬭瘯璇存槑'},
+          {pageCode: 'record', name: '杞欢娴嬭瘯璁板綍'},
+          {pageCode: 'report', name: '杞欢娴嬭瘯鎶ュ憡'},
+          {pageCode: 'other', name: '鍏朵粬'}
+        ],
+        pageNameCode: {'杞欢娴嬭瘯璁″垝': 'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'},
+        dataForm: {
+          id: '',
+          configItemChange: {
+            id: "",
+            code: "",
+            applicant: "",
+            applyDate: "",
+            libraryType: "",
+            qaAuditResults: "",
+            qaAuditor: "",
+            qaAuditDate: "",
+            cmAuditResults: "",
+            cmAuditor: "",
+            cmAuditDate: "",
+            approvalOpinions: "",
+            approvalSign: "",
+            approvalDate: "",
+            projectCmOperations: "",
+            operator: "",
+            operateDate: "",
+            remark: "",
+          },
+          project: {
+            code: '',
+            softwareName: '',
+          },
+          cmAuditList: [],
+          configItemList: [],
+          qaAuditList: [],
+          flowInfoDto: {}
+        }
+      }
+    },
+    created() {
+      const roleName = localStorage.getItem('roleName')
+      if (roleName && roleName.includes('QA')) {
+        this.showColumn = true;
+      }
+      if (roleName && roleName.includes('娴嬭瘯鍛�')) {
+        this.showAddAndEdit = true;
+      }
+    },
+    computed: {},
+    components: {
+      AddOrUpdateCheck
+    },
+    methods: {
+      indexFormat(index) {
+        return index += 1
+      },
+      init(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
+        }
+        this.getInfo()
+        if (!this.dataForm.disabled) {
+          if (!row.stepMarker) {
+            this.stepMarker = 'pzxrk_first'
+            this.title = '鍏ュ簱鐢宠'
+          } else {
+            this.title = row.stepName
+            this.stepMarker = row.stepMarker
+          }
+        }
+        console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
+      },
+      // addConfigItemWarehouseRow(){
+      //   this.dataForm.configItemList.push({})
+      //   this.$nextTick(()=>{
+      //     const tableBody=this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper')
+      //     tableBody.scrollTop = tableBody.scrollHeight;
+      //   })
+      // },
+      handleCommand(pageCode) {
+        const selectedItem = this.menuOptions.find(item => item.pageCode === pageCode);
+        console.log(selectedItem, "handleCommand(pageCode) selectedItem")
+        if (selectedItem.pageCode === 'other') {
+          this.dataForm.configItemList.push({})
+        } else if (selectedItem) {
+          this.dataForm.configItemList.push({itemName: selectedItem.name, pageCode: selectedItem.pageCode})
+        }
+        this.$nextTick(() => {
+          const tableBody = this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper')
+          tableBody.scrollTop = tableBody.scrollHeight;
+        })
+      },
+      openCheckOrderWin(row) {
+        console.log(row, "openCheckOrderWin(row)")
+        row.projectId = this.dataForm.projectId
+        if (!row.pageCode) {
+          if (!row.checkId) {
+            row.checkId = -1
+          }
+          row.pageCode = this.pageNameCode[row.itemName]
+          console.log(row.itemName, row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode")
+        }
+        this.$refs.addOrUpdate.$refs.dialog.init(null, row)
+
+      },
+      setCheckId(checkId, row) {
+        console.log(checkId, row, "setCheckId(checkId, row)")
+        this.$set(row, 'checkId', checkId)
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let params = {
+          warehouseId: this.dataForm.id,
+          projectId: this.dataForm.projectId
+        }
+        let res = await this.$http.get(`/configItemChange/ConfigItemWarehouse/getDto`, {params: params})
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+        if (this.dataForm.project === null) {
+          this.dataForm.project = {}
+        }
+        if (this.dataForm.configItemChange === null) {
+          this.dataForm.circulatOrder = {}
+        }
+        if (this.dataForm.flowInfoDto === null) {
+          this.dataForm.flowInfoDto = {}
+        }
+        console.log(this.dataForm, "getInfo this.dataForm")
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit(submitType) {
+        if (this.showColumn && submitType == 'bl') {
+          for (let item of this.dataForm.configItemList) {
+            if (item) {
+              if (this.pageNameCode[item.itemName] && !item.checkId) {
+                this.$alert("鏈夋湭鎻愪氦鐨勬鏌ュ崟")
+                return
+              }
+            }
+          }
+        }
+        if (submitType == 'tj' || submitType == 'bl') {
+          let flowInfo = {
+            flowCode: 'pzxrk',
+            stepIdMark: this.stepMarker,
+            submitType: submitType
+          }
+          this.dataForm.flowInfoDto = flowInfo;
+        }
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/configItemChange/ConfigItemWarehouse/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('refreshDataList')
+        }
+      }
+    }
+  }
+</script>
+<style>
+  .ManageFormAuto {
+    width: 70%;
+    margin: 0 auto;
+  }
+
+  .confirmDAuto {
+    border: 1px solid;
+  }
+
+  .el-flexManageDialog {
+    display: flex;
+    align-items: center;
+  }
+
+  .DFormWidth {
+    width: 120px;
+  }
+
+  .DAlign {
+    text-align: center;
+  }
+
+  .DManageForm {
+    /*border-left: 1px solid;*/
+    width: 100%;
+  }
+
+  .DManageForm > .el-form-item > .el-form-item__content {
+    width: calc(100% - 120px);
+  }
+
+  .el-form-item.el-CMTextarea > .el-form-item__content {
+    width: 100%;
+  }
+
+  .el-form .el-form-item.el-wt-form-item-margin {
+    margin-left: 120px;
+  }
+
+  .el-form-border {
+    border-top: 1px solid;
+    border-bottom: 1px solid;
+  }
+
+  .el-margin-top-bot {
+    margin-top: 5px;
+    margin-bottom: 5px;
+  }
+
+  .zt .el-table.el-software th {
+    background: transparent;
+  }
+
+  .zt .el-table.el-software th > .cell {
+    font-weight: 500;
+  }
+
+  .DHold {
+    font-weight: 600;
+  }
+
+  .zt .el-table.el-software {
+    font-size: 14px;
+  }
+
+  .warehouseContentWidth > .el-form-item > .el-form-item__content {
+    width: calc(100% - 120px);
+  }
+
+  .warehouseContentWidth > .el-form-item.lastChild > .el-form-item__content {
+    width: calc(100% - 142px);
+  }
+
+  .warehouseFormAuto .marginTopAndMarginBottom {
+    margin-top: 10px !important;
+    margin-bottom: 0 !important;
+  }
+
+  .warehouseFormAuto .marginTopAndMarginBottom2 {
+    margin-top: -10px !important;
+    margin-bottom: 0 !important;
+  }
+</style>
diff --git a/web/src/views/modules/configItemChange/ConfigItemChange.vue b/web/src/views/modules/configItemChange/ConfigItemChange.vue
new file mode 100644
index 0000000..14ad47f
--- /dev/null
+++ b/web/src/views/modules/configItemChange/ConfigItemChange.vue
@@ -0,0 +1,70 @@
+<template>
+  <div class="fa-card-a">
+      <zt-table-wraper query-url="/configItemChange/ConfigItemWarehouse/page" delete-url="/configItemChange/ConfigItemWarehouse/deleteConfigItem" v-slot="{ table }">
+        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+          <el-form-item>
+            <el-input v-model="dataForm.code" placeholder="璇疯緭鍏ラ厤缃」鍏ュ簱缂栧彿" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-input v-model="dataForm.projectCode" placeholder="璇疯緭鍏ラ」鐩紪鍙�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-input v-model="dataForm.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <zt-dict v-model="dataForm.libraryType" dict="library_type" clearable></zt-dict>
+          </el-form-item>
+          <el-form-item>
+            <zt-button type="query" @click="table.query()"/>
+            <zt-button type="primary" class="el-icon-edit" perm="configItemChange:add" @click="add()">鏂板</zt-button>
+            <zt-button type="delete" perm="configItemChange:delete" @click="table.deleteHandle()"/>
+          </el-form-item>
+        </el-form>
+        <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle">
+          <el-table-column align="center" type="selection" width="40"/>
+            <el-table-column prop="code" label="閰嶇疆椤瑰叆搴撶紪鍙�"/>
+                <el-table-column prop="projectCode" label="椤圭洰缂栧彿"/>
+                <el-table-column prop="softwareName" label="椤圭洰鍚嶇О"/>
+                <zt-table-column-dict prop="libraryType" label="搴撶被鍨�" dict="library_type"/>
+              <zt-table-column-handle :table="table" edit-perm="configItemChange:update" delete-perm="configItemChange::delete"/>
+        </el-table>
+        <!-- 寮圭獥, 鏂板 / 淇敼 -->
+        <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/>
+        <ProjectSelect ref="projectSelect"
+                       @refreshDataList="table.query"
+                       @setProjectInfo="openAddWin">
+        </ProjectSelect>
+      </zt-table-wraper>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './ConfigItemChange-AddOrUpdate'
+  import ProjectSelect from "../project/Project-select";
+  export default {
+    data() {
+      return {
+        dataForm: {
+          code: '',
+          projectCode: '',
+          softwareName: '',
+          libraryType: ''
+        }
+      }
+    },
+    components: {
+      AddOrUpdate,
+      ProjectSelect
+    },
+    methods:{
+      add() {
+        this.$refs.projectSelect.$refs.dialog.init("config_item_warehouse")
+      },
+      openAddWin(row) {
+        console.log(row.id, 'row.id')
+        // this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id})
+        this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id})
+      },
+    }
+  }
+</script>
diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
index 2526e2b..15701d3 100644
--- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -250,7 +250,7 @@
         disabled: true,
         stepMarker: '',
         title: '鏌ョ湅',
-        showColumn:false,
+        showColumn: false,
         showAddAndEdit:false,
         menuOptions: [
           {pageCode: 'plan', name: '杞欢娴嬭瘯璁″垝',itemIdentify:''},
@@ -259,7 +259,7 @@
           {pageCode: 'report', name: '杞欢娴嬭瘯鎶ュ憡'},
           {pageCode: 'other', name: '鍏朵粬'}
         ],
-        pageNameCode: {'杞欢娴嬭瘯璁″垝':'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'},
+        pageNameCode: {'杞欢娴嬭瘯璁″垝': 'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'},
         dataForm: {
           id: '',
           configItemWarehouse: {
@@ -302,9 +302,7 @@
         this.showAddAndEdit = true;
       }
     },
-    computed: {
-
-    },
+    computed: {},
     components: {
       AddOrUpdateCheck
     },
@@ -357,9 +355,12 @@
       openCheckOrderWin(row) {
         console.log(row, "openCheckOrderWin(row)")
         row.projectId = this.dataForm.projectId
-        if (!row.pageCode){
+        if (!row.pageCode) {
+          if (!row.checkId) {
+            row.checkId = -1
+          }
           row.pageCode = this.pageNameCode[row.itemName]
-          console.log(row.itemName,row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode")
+          console.log(row.itemName, row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode")
         }
         this.$refs.addOrUpdate.$refs.dialog.init(null, row)
 
diff --git a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
index ff2903a..964c9db 100644
--- a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
@@ -98,11 +98,11 @@
           <div style="width: calc(100% - 120px);">
             <div class="el-border-left">
               <el-form-item label="鐗╁搧鏄惁闇�瑕佽繑杩�" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0">
-                <zt-dict :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">
-                <el-input :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input>
+                <el-input :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.itemOther"></el-input>
               </el-form-item>
             </div>
           </div>
@@ -129,10 +129,10 @@
           </div>
           <div class="el-border-left " style="width: 35%;height: 80px;">
             <el-form-item label="鏄惁瀹屾垚鐥呮瘨鏌ユ潃" label-width="150px" style="padding-left:20px;margin-bottom:0">
-              <zt-dict :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict>
+              <zt-dict :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.acceptSituation" :radio="true" dict="is_or_not"></zt-dict>
             </el-form-item>
             <el-form-item label="鐥呮瘨搴撶増鏈細" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0">
-              <el-input :disabled="stepMarker=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input>
+              <el-input :disabled="stepMarker!=='wplz_first'" v-model="dataForm.circulatOrder.virusLibraryVersion"></el-input>
             </el-form-item>
           </div>
         </div>
@@ -185,7 +185,7 @@
           </div>
           <div class="el-border-left " style="width: 35%;height: 40px;">
             <el-form-item label="鏄惁婊¤冻娴嬭瘯瑕佹眰" label-width="150px" style="padding-left:20px;margin-bottom:0">
-              <zt-dict :disabled="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>
@@ -238,7 +238,7 @@
           </div>
           <div class="el-border-left " style="width: 35%;height: 40px;">
             <el-form-item label="鏄惁瀹屾垚鏍峰搧鍙戞斁" label-width="150px" style="padding-left:20px;margin-bottom:0">
-              <zt-dict :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>
diff --git a/web/src/views/modules/sys/task/stay-task.vue b/web/src/views/modules/sys/task/stay-task.vue
index d4a7626..d20ab58 100644
--- a/web/src/views/modules/sys/task/stay-task.vue
+++ b/web/src/views/modules/sys/task/stay-task.vue
@@ -219,7 +219,7 @@
         if (row.flowCode === 'wplz') {
           this.$refs.itemCirculatOrder.$refs.dialog.init(row.bizId, row)
         } else if (row.flowCode === 'pzxrk') {
-          this.$refs.configItemWarehouse.$refs.dialog.init(row.bizId, row)
+          this.$refs.configItemChange.$refs.dialog.init(row.bizId, row)
         }else if (row.flowCode === 'csjcd') {
           this.$refs.testCheckOrder.$refs.dialog.init(row.bizId, row)
         } else {
diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
index c08ac2d..f5a4aa4 100644
--- a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
@@ -4,7 +4,7 @@
              label-width="120px" class="testCheckFormAuto">
       <div>
         <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px">
-          <span>{{dataForm.testCheckOrder.code || '缂栧彿鑷姩鐢熸垚'}}</span>
+          <span>{{dataForm.checkOrder.code || '缂栧彿鑷姩鐢熸垚'}}</span>
         </el-form-item>
       </div>
       <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
@@ -16,12 +16,13 @@
             <el-input v-model="dataForm.project.softwareName" placeholder="椤圭洰鍚嶇О"></el-input>
           </el-form-item>
           <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ヤ汉" style="width: 49%">
-            <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.testCheckOrder.examiner" placeholder="妫�鏌ヤ汉"></el-input>
+            <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.checkOrder.examiner"
+                      placeholder="妫�鏌ヤ汉"></el-input>
           </el-form-item>
           <el-form-item class="marginTopAndMarginBottom3" label="妫�鏌ユ椂闂�" style="width: 49%">
             <el-date-picker
               :disabled="stepMarker!=='csjcd_first'"
-              v-model="dataForm.testCheckOrder.examDate"
+              v-model="dataForm.checkOrder.examDate"
               type="date"
               placeholder="璇烽�夋嫨妫�鏌ユ椂闂�">
             </el-date-picker>
@@ -40,9 +41,9 @@
                   </template>
                 </el-table-column>
                 <el-table-column prop="checkContent" min-width="180" label="涓昏妫�鏌ュ唴瀹�">
-<!--                  <template v-slot="{ row }">-->
-<!--                    <el-input v-model="row.checkContent" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input>-->
-<!--                  </template>-->
+                  <!--                  <template v-slot="{ row }">-->
+                  <!--                    <el-input v-model="row.checkContent" placeholder="涓昏妫�鏌ュ唴瀹�"></el-input>-->
+                  <!--                  </template>-->
                 </el-table-column>
                 <el-table-column prop="checkResult" align="center" width="180" label="妫�鏌ョ粨鏋�">
                   <template v-slot="{ row }">
@@ -76,7 +77,7 @@
           <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
             <el-form-item style="width: 100%;padding-left:20px;margin:0;">
               <el-input type="textarea"
-                        :rows="3" v-model="dataForm.testCheckOrder.problemDescription" placeholder="闂鎻忚堪..."></el-input>
+                        :rows="3" v-model="dataForm.checkOrder.problemDescription" placeholder="闂鎻忚堪..."></el-input>
             </el-form-item>
           </div>
         </div>
@@ -87,7 +88,7 @@
           <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
             <el-form-item style="width: 100%;padding-left:20px;margin:0;">
               <el-input type="textarea"
-                        :rows="3" v-model="dataForm.testCheckOrder.problemProcess" placeholder="闂澶勭悊..."></el-input>
+                        :rows="3" v-model="dataForm.checkOrder.problemProcess" placeholder="闂澶勭悊..."></el-input>
             </el-form-item>
           </div>
         </div>
@@ -97,7 +98,7 @@
           </div>
           <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;">
             <el-form-item style="width: 100%;padding-left:20px;margin:0;">
-              <span>{{dataForm.testCheckOrder.processor}}</span>
+              <span>{{dataForm.checkOrder.processor}}</span>
             </el-form-item>
           </div>
           <div style="width: 84px;text-align: center;font-weight: 600">
@@ -105,7 +106,7 @@
           </div>
           <div class="el-border-left acceptDate1" style="width: 40%;height: 40px;">
             <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0">
-              <span>{{dataForm.testCheckOrder.verifier}}</span>
+              <span>{{dataForm.checkOrder.verifier}}</span>
             </el-form-item>
           </div>
         </div>
@@ -132,7 +133,7 @@
             softwareIdentity: '',
             softwareName: '',
           },
-          testCheckOrder: {
+          checkOrder: {
             code: '',
             examiner: '',
             examDate: '',
@@ -149,7 +150,9 @@
       init(id, row) {
         this.configDetailRow = row
         if (row.checkId) {
-          this.dataForm.id = row.checkId
+          if (row.checkId != -1) {
+            this.dataForm.id = row.checkId
+          }
         } else if (id) {
           this.dataForm.id = id
         } else {
@@ -196,8 +199,8 @@
       },
       // 琛ㄥ崟鎻愪氦
       async formSubmit(submitType) {
+        let isFlow = false
         if (submitType == 'tj') {
-          let isFlow = false
           for (let item of this.dataForm.checkOrderList) {
             if (!item.checkResult) {
               this.$alert("鏈夋湭濉啓鐨勬暟鎹�")
@@ -210,7 +213,7 @@
             submitType == ''
           }
         }
-        if (submitType == 'tj' || submitType == 'bl' && isFlow) {
+        if (submitType == 'tj' || submitType == 'bl') {
           let flowInfo = {
             flowCode: 'csjcd',
             stepIdMark: this.stepMarker,
@@ -218,7 +221,7 @@
           }
           this.dataForm.flowInfoDto = flowInfo;
         }
-
+        console.log(this.dataForm, "this.dataForm formSubmit(submitType)")
         let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm)
         if (res.success) {
           await this.$tip.success()
diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue
index ea1a61b..43fd251 100644
--- a/web/src/views/modules/testCheckOrder/TestCheckOrder.vue
+++ b/web/src/views/modules/testCheckOrder/TestCheckOrder.vue
@@ -1,14 +1,14 @@
 <template>
   <el-card shadow="never" class="aui-card--fill">
     <div class="mod-testCheckOrder-testCheckOrder}">
-      <zt-table-wraper :query-url="QueryUrl" delete-url="/testCheckOrder/TestCheckOrder/deleteCheckOrder"
+      <zt-table-wraper query-url="/testCheckOrder/TestCheckOrder/page" delete-url="/testCheckOrder/TestCheckOrder/deleteCheckOrder"
                        v-slot="{ table }">
         <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
           <el-form-item>
             <el-input v-model="dataForm.code" placeholder="璇疯緭鍏ョ紪鍙�" clearable></el-input>
           </el-form-item>
           <el-form-item>
-            <el-input v-model="dataForm.softwarename" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input>
+            <el-input v-model="dataForm.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input>
           </el-form-item>
           <el-form-item>
             <zt-button type="query" @click="table.query()"/>
@@ -55,20 +55,16 @@
         QueryUrl:'',
         dataForm: {
           code: '',
-          softwareidentity: '',
-          softwarename: '',
+          softwareIdentity: '',
+          softwareName: '',
+          pageCode:this.$route.query.pageCode
         }
       }
     },
     mounted() {
       this.pageCode = this.$route.query.pageCode
+      this.dataForm.pageCode = this.$route.query.pageCode
       console.log(this.pageCode,'this.pageCode this.pageCode')
-    },
-    watch:{
-      pageCode(){
-        this.QueryUrl=`/testCheckOrder/TestCheckOrder/page?pageCode=${this.pageCode}`
-        console.log(this.QueryUrl,'watch pageCode url')
-      }
     },
     components: {
       AddOrUpdate,

--
Gitblit v1.9.1