From 7748cd8a79548e94299d24e080c4650924a215da Mon Sep 17 00:00:00 2001
From: zzw <wander.zheng@qq.com>
Date: 星期二, 28 十一月 2023 09:16:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseConfigItemController.java |   96 +++
 modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseCmAuditDao.xml                               |   20 
 web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue                                            |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dto/ConfigItemWarehouseDto.java               |   38 +
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java               |   25 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseQaAuditDao.java                  |   23 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseCmAuditController.java    |   96 +++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseCmAudit.java                   |   42 +
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseCmAuditService.java          |   48 +
 modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml                            |   35 +
 modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml                            |   32 +
 zt/common/src/main/java/com/zt/core/sys/dto/DictIstance.java                                                         |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java                |   87 +++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java |  120 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseQaAuditController.java    |   96 +++
 modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseQaAuditDao.xml                               |   20 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseQaAuditService.java          |   48 +
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java       |  167 ++++++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseConfigItemService.java       |   53 +
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java                |   45 +
 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse.vue                                                    |   72 ++
 web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue                                        |  338 ++++++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseConfigItemDao.java               |   25 
 web/src/assets/css/custom.css                                                                                        |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseCmAuditDao.java                  |   23 
 modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseQaAudit.java                   |   40 +
 26 files changed, 1,597 insertions(+), 1 deletions(-)

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
new file mode 100644
index 0000000..ba35e36
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/ConfigItemWarehouseController.java
@@ -0,0 +1,120 @@
+package com.zt.life.modules.configItemWarehouse.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto;
+import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
+import com.zt.life.modules.configItemWarehouse.service.ConfigItemWarehouseService;
+import com.zt.life.modules.itemCirculatOrder.dto.ItemCirculatOrderDto;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
+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 javax.servlet.http.HttpServletResponse;
+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 ConfigItemWarehouseController {
+    @Autowired
+    private ConfigItemWarehouseService configItemWarehouseService;
+
+    @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 = "code^LK"),
+        @ApiImplicitParam(name = "projectCode", value = "椤圭洰缂栧彿", dataType = Constant.QT.STRING, format = "project_code^LK"),
+        @ApiImplicitParam(name = "projectName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "project_name^LK"),
+        @ApiImplicitParam(name = "libraryType", value = "搴撶被鍨�", dataType = Constant.QT.STRING, format = "library_type^EQ")    })
+    public PageResult<ConfigItemWarehouse> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(configItemWarehouseService.page(queryFilter));
+    }
+
+    @GetMapping("getDto")
+    @ApiOperation("淇℃伅")
+    public Result<ConfigItemWarehouseDto> getDto(Long projectId, Long warehouseId) {
+        ConfigItemWarehouseDto data =configItemWarehouseService.getDto(projectId, warehouseId);
+        if (warehouseId!=null) {
+            OssDto ossDto = sysOssConfigService.getOssByBusiType(warehouseId, "config_item_warehouse");
+            if (ossDto != null) {
+                data.setFiles(ossDto);
+            }
+        }
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody ConfigItemWarehouseDto 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.getConfigItemWarehouse().setCode(sysCodeRuleService.getNewCode(map));
+        Boolean result = configItemWarehouseService.save(configItemDto);
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody ConfigItemWarehouseDto configItemDto){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(configItemDto, UpdateGroup.class, DefaultGroup.class);
+        Boolean result = configItemWarehouseService.save(configItemDto);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        configItemWarehouseService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseCmAuditController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseCmAuditController.java
new file mode 100644
index 0000000..8fba9dc
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseCmAuditController.java
@@ -0,0 +1,96 @@
+package com.zt.life.modules.configItemWarehouse.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseCmAuditService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * warehouse_cm_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@RestController
+@RequestMapping("/configItemWarehouse/WarehouseCmAudit/")
+@Api(tags="warehouse_cm_audit")
+public class WarehouseCmAuditController {
+    @Autowired
+    private WarehouseCmAuditService warehouseCmAuditService;
+
+    @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),
+    })
+    public PageResult<WarehouseCmAudit> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(warehouseCmAuditService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<WarehouseCmAudit> get(@PathVariable("id") Long id){
+        WarehouseCmAudit data = warehouseCmAuditService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody WarehouseCmAudit warehouseCmAudit){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(warehouseCmAudit, AddGroup.class, DefaultGroup.class);
+        warehouseCmAuditService.insert(warehouseCmAudit);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody WarehouseCmAudit warehouseCmAudit){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(warehouseCmAudit, UpdateGroup.class, DefaultGroup.class);
+        warehouseCmAuditService.update(warehouseCmAudit);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        warehouseCmAuditService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseConfigItemController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseConfigItemController.java
new file mode 100644
index 0000000..df899b7
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseConfigItemController.java
@@ -0,0 +1,96 @@
+package com.zt.life.modules.configItemWarehouse.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * warehouse_config_item
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@RestController
+@RequestMapping("/configItemWarehouse/WarehouseConfigItem/")
+@Api(tags="warehouse_config_item")
+public class WarehouseConfigItemController {
+    @Autowired
+    private WarehouseConfigItemService warehouseConfigItemService;
+
+    @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),
+    })
+    public PageResult<WarehouseConfigItem> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(warehouseConfigItemService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<WarehouseConfigItem> get(@PathVariable("id") Long id){
+        WarehouseConfigItem data = warehouseConfigItemService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody WarehouseConfigItem warehouseConfigItem){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(warehouseConfigItem, AddGroup.class, DefaultGroup.class);
+        warehouseConfigItemService.insert(warehouseConfigItem);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody WarehouseConfigItem warehouseConfigItem){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(warehouseConfigItem, UpdateGroup.class, DefaultGroup.class);
+        warehouseConfigItemService.update(warehouseConfigItem);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        warehouseConfigItemService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseQaAuditController.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseQaAuditController.java
new file mode 100644
index 0000000..4ba8e05
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/controller/WarehouseQaAuditController.java
@@ -0,0 +1,96 @@
+package com.zt.life.modules.configItemWarehouse.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseQaAuditService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * warehouse_qa_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@RestController
+@RequestMapping("/configItemWarehouse/WarehouseQaAudit/")
+@Api(tags="warehouse_qa_audit")
+public class WarehouseQaAuditController {
+    @Autowired
+    private WarehouseQaAuditService warehouseQaAuditService;
+
+    @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),
+    })
+    public PageResult<WarehouseQaAudit> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(warehouseQaAuditService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<WarehouseQaAudit> get(@PathVariable("id") Long id){
+        WarehouseQaAudit data = warehouseQaAuditService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody WarehouseQaAudit warehouseQaAudit){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(warehouseQaAudit, AddGroup.class, DefaultGroup.class);
+        warehouseQaAuditService.insert(warehouseQaAudit);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody WarehouseQaAudit warehouseQaAudit){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(warehouseQaAudit, UpdateGroup.class, DefaultGroup.class);
+        warehouseQaAuditService.update(warehouseQaAudit);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        warehouseQaAuditService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
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
new file mode 100644
index 0000000..1394bd3
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/ConfigItemWarehouseDao.java
@@ -0,0 +1,25 @@
+package com.zt.life.modules.configItemWarehouse.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
+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 ConfigItemWarehouseDao extends BaseDao<ConfigItemWarehouse> {
+
+    List<ConfigItemWarehouse> getList(Map<String, Object> params);
+
+    List<WarehouseCmAudit> itemList(String dictType);
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseCmAuditDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseCmAuditDao.java
new file mode 100644
index 0000000..ac188b2
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseCmAuditDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.configItemWarehouse.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * warehouse_cm_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Mapper
+public interface WarehouseCmAuditDao extends BaseDao<WarehouseCmAudit> {
+
+    List<WarehouseCmAudit> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseConfigItemDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseConfigItemDao.java
new file mode 100644
index 0000000..d879a25
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseConfigItemDao.java
@@ -0,0 +1,25 @@
+package com.zt.life.modules.configItemWarehouse.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.core.sys.dto.DictIstance;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * warehouse_config_item
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Mapper
+public interface WarehouseConfigItemDao extends BaseDao<WarehouseConfigItem> {
+
+    List<WarehouseConfigItem> getList(Map<String, Object> params);
+
+    List<DictIstance> itemList(Long projectId);
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseQaAuditDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseQaAuditDao.java
new file mode 100644
index 0000000..9354333
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dao/WarehouseQaAuditDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.configItemWarehouse.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * warehouse_qa_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Mapper
+public interface WarehouseQaAuditDao extends BaseDao<WarehouseQaAudit> {
+
+    List<WarehouseQaAudit> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dto/ConfigItemWarehouseDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dto/ConfigItemWarehouseDto.java
new file mode 100644
index 0000000..1c37670
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/dto/ConfigItemWarehouseDto.java
@@ -0,0 +1,38 @@
+package com.zt.life.modules.configItemWarehouse.dto;
+
+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.itemCirculatOrder.model.ItemCirculatOrder;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
+import com.zt.life.modules.project.model.Project;
+import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
+import com.zt.life.sys.dto.OssDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class ConfigItemWarehouseDto {
+    private Long id;
+    private Long projectId;
+    private Long warehouseId;
+
+    @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅")
+    private Project project;
+    @ApiModelProperty(value = "閰嶇疆椤瑰叆搴�")
+    private ConfigItemWarehouse configItemWarehouse;
+    @ApiModelProperty(value = "闄勪欢")
+    private OssDto files;
+
+    @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/configItemWarehouse/model/ConfigItemWarehouse.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java
new file mode 100644
index 0000000..596f425
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/ConfigItemWarehouse.java
@@ -0,0 +1,87 @@
+package com.zt.life.modules.configItemWarehouse.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * config_item_warehouse
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("config_item_warehouse")
+public class ConfigItemWarehouse 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瀹℃牳鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date qaAuditDate;
+
+	@ApiModelProperty(value = "CM瀹℃牳缁撴灉")
+	private String cmAuditResults;
+
+	@ApiModelProperty(value = "CM瀹℃牳浜�")
+	private String cmAuditor;
+
+	@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 = "鎿嶄綔鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date operateDate;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "骞翠唤")
+	private String year;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseCmAudit.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseCmAudit.java
new file mode 100644
index 0000000..af11239
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseCmAudit.java
@@ -0,0 +1,42 @@
+package com.zt.life.modules.configItemWarehouse.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * warehouse_cm_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("warehouse_cm_audit")
+public class WarehouseCmAudit 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/model/WarehouseConfigItem.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java
new file mode 100644
index 0000000..87a07a1
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java
@@ -0,0 +1,45 @@
+package com.zt.life.modules.configItemWarehouse.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * warehouse_config_item
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("warehouse_config_item")
+public class WarehouseConfigItem extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "鍏ュ簱ID")
+	private Long warehouseId;
+
+	@ApiModelProperty(value = "搴忓彿")
+	private Integer no;
+
+	@ApiModelProperty(value = "閰嶇疆椤瑰悕绉�")
+	private String itemName;
+
+	@ApiModelProperty(value = "閰嶇疆椤规爣璇�")
+	private String itemDentify;
+
+	@ApiModelProperty(value = "鐗堟湰")
+	private String version;
+
+	@ApiModelProperty(value = "涓婃函鐗�")
+	private Integer retrospectVersion;
+
+	@ApiModelProperty(value = "瀵嗙骇")
+	private String secretClass;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseQaAudit.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseQaAudit.java
new file mode 100644
index 0000000..277d539
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseQaAudit.java
@@ -0,0 +1,40 @@
+package com.zt.life.modules.configItemWarehouse.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * warehouse_qa_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("warehouse_qa_audit")
+public class WarehouseQaAudit 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
new file mode 100644
index 0000000..6d98b9e
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java
@@ -0,0 +1,167 @@
+package com.zt.life.modules.configItemWarehouse.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.configItemWarehouse.dao.ConfigItemWarehouseDao;
+import com.zt.life.modules.configItemWarehouse.dto.ConfigItemWarehouseDto;
+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.itemCirculatOrder.dto.ItemCirculatOrderDto;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrder;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
+import com.zt.life.modules.itemCirculatOrder.service.ItemCirculatOrderTechnicalService;
+import com.zt.life.modules.project.model.SoftwareTestOrderDeliverable;
+import com.zt.life.modules.project.model.SoftwareTestOrderMeasured;
+import com.zt.life.modules.project.service.ProjectService;
+import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
+import com.zt.life.sys.service.SysOssConfigService;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.oss.service.SysOssService;
+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;
+import java.util.Map;
+
+
+/**
+ * config_item_warehouse
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Service
+public class ConfigItemWarehouseService  extends BaseService<ConfigItemWarehouseDao, ConfigItemWarehouse> {
+    @Autowired
+    private SysOssConfigService sysOssConfigService;
+
+    @Autowired
+    private SysOssService sysOssService;
+
+    @Autowired
+    private TestAgencyInfoService testAgencyInfoService;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private WarehouseCmAuditService cmAuditService;
+
+    @Autowired
+    private WarehouseQaAuditService qaAuditService;
+
+    @Autowired
+    private WarehouseConfigItemService configItemService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<ConfigItemWarehouse> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public Boolean save(ConfigItemWarehouseDto configItemDto) {
+        Long warehouseId = configItemDto.getConfigItemWarehouse().getId();
+        if (warehouseId != null)
+            baseDao.updateById(configItemDto.getConfigItemWarehouse());
+        else {
+            Map<String, String> map = new HashMap<>();
+            map.put("funCode", "config_item_warehouse");
+            map.put("projectId",configItemDto.getProjectId().toString());
+            configItemDto.getConfigItemWarehouse().setProjectId(configItemDto.getProjectId());
+            configItemDto.getConfigItemWarehouse().setCode(sysCodeRuleService.getNewCode(map));
+            baseDao.insert(configItemDto.getConfigItemWarehouse());
+            warehouseId = configItemDto.getConfigItemWarehouse().getId();
+        }
+
+        for (WarehouseConfigItem configItem : configItemDto.getConfigItemList()) {
+            configItem.setWarehouseId(warehouseId);
+            if (configItem.getId() != null) {
+                configItemService.update(configItem);
+            } else {
+                configItem.setWarehouseId(warehouseId);
+                configItemService.insert(configItem);
+            }
+        }
+
+        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);
+            }
+        }
+        sysOssConfigService.updateOss(configItemDto.getId(), configItemDto.getFiles());// 淇濆瓨闄勪欢
+
+        return true;
+    }
+
+    public ConfigItemWarehouseDto getDto(Long projectId, Long warehouseId) {
+        ConfigItemWarehouseDto data = new ConfigItemWarehouseDto();
+        if (warehouseId != null) {
+            data.setId(warehouseId);
+            ConfigItemWarehouse configItemWarehouse = this.get(warehouseId);
+            data.setConfigItemWarehouse(configItemWarehouse);
+
+            projectId = configItemWarehouse.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 {
+            ConfigItemWarehouse configItemWarehouse =new ConfigItemWarehouse();
+            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<?> 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/service/WarehouseCmAuditService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseCmAuditService.java
new file mode 100644
index 0000000..2d7f6b0
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseCmAuditService.java
@@ -0,0 +1,48 @@
+package com.zt.life.modules.configItemWarehouse.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.configItemWarehouse.dao.WarehouseCmAuditDao;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * warehouse_cm_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Service
+public class WarehouseCmAuditService  extends BaseService<WarehouseCmAuditDao, WarehouseCmAudit> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<WarehouseCmAudit> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public List<WarehouseCmAudit> getList(Long warehouseId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("warehouseId",warehouseId);
+        return baseDao.getList(params);
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseConfigItemService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseConfigItemService.java
new file mode 100644
index 0000000..4ed09d9
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseConfigItemService.java
@@ -0,0 +1,53 @@
+package com.zt.life.modules.configItemWarehouse.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.core.sys.dto.DictIstance;
+import com.zt.life.modules.configItemWarehouse.dao.WarehouseConfigItemDao;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
+import com.zt.life.modules.itemCirculatOrder.model.ItemCirculatOrderTechnical;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * warehouse_config_item
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Service
+public class WarehouseConfigItemService  extends BaseService<WarehouseConfigItemDao, WarehouseConfigItem> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<WarehouseConfigItem> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public List<WarehouseConfigItem> getList(Long warehouseId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("warehouseId",warehouseId);
+        return baseDao.getList(params);
+    }
+
+    public List<DictIstance> ConfigItemList(Long projectId) {
+        return baseDao.itemList(projectId);
+    }
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseQaAuditService.java b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseQaAuditService.java
new file mode 100644
index 0000000..750e860
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/WarehouseQaAuditService.java
@@ -0,0 +1,48 @@
+package com.zt.life.modules.configItemWarehouse.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.configItemWarehouse.dao.WarehouseQaAuditDao;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * warehouse_qa_audit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-11-27
+ */
+@Service
+public class WarehouseQaAuditService  extends BaseService<WarehouseQaAuditDao, WarehouseQaAudit> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<WarehouseQaAudit> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public List<WarehouseQaAudit> getList(Long warehouseId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("warehouseId",warehouseId);
+        return baseDao.getList(params);
+    }
+
+}
diff --git a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
new file mode 100644
index 0000000..c822433
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/ConfigItemWarehouseDao.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.configItemWarehouse.dao.ConfigItemWarehouseDao">
+
+    <select id="getList" resultType="com.zt.life.modules.configItemWarehouse.model.ConfigItemWarehouse">
+        select a.* ,p.*
+        from config_item_warehouse a
+        INNER JOIN  project p ON p.id = a.project_id
+        <where>
+            a.is_delete = 0 and p.is_delete = 0
+            <if test="whereSql!=null">
+                and ${whereSql}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+    <select id="itemList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit">
+        SET @row_number = 0;
+        SELECT  dd.dict_label AS name,
+        (@row_number := @row_number + 1) AS no
+        FROM sys_dict_type dt
+        JOIN sys_dict_data dd ON dt.ID = dd.DICT_TYPE_ID
+        <where>
+            dd.IS_DELETE = 0
+            <if test="dictType != null and dictType != ''">
+                and dt.DICT_TYPE = #{dictType}
+            </if>
+        </where>
+        ORDER BY dd.sort
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseCmAuditDao.xml b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseCmAuditDao.xml
new file mode 100644
index 0000000..4b0dc7e
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseCmAuditDao.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.configItemWarehouse.dao.WarehouseCmAuditDao">
+
+    <select id="getList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseCmAudit">
+        select a.*
+        from warehouse_cm_audit a
+        <where>
+            a.is_delete = 0
+            <if test="warehouseId!=null">
+                and warehouse_id = ${warehouseId}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml
new file mode 100644
index 0000000..4a7a84f
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseConfigItemDao.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.configItemWarehouse.dao.WarehouseConfigItemDao">
+
+    <select id="getList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem">
+        select a.*
+        from warehouse_config_item a
+        <where>
+            a.is_delete = 0
+            <if test="warehouseId!=null">
+                and warehouse_id = ${warehouseId}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+    <select id="itemList" resultType="com.zt.core.sys.dto.DictIstance">
+        SELECT m.*, p.secret_class
+        FROM software_test_order_measured m
+        JOIN software_test_order s ON s.id = m.order_id
+        JOIN project p ON p.id = ${projectId}
+        <where>
+            s.is_delete = 0 and m.is_delete = 0
+            <if test="projectId!=null">
+                and s.project_id = ${projectId}
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseQaAuditDao.xml b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseQaAuditDao.xml
new file mode 100644
index 0000000..1884ee2
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/configItemWarehouse/WarehouseQaAuditDao.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.configItemWarehouse.dao.WarehouseQaAuditDao">
+
+    <select id="getList" resultType="com.zt.life.modules.configItemWarehouse.model.WarehouseQaAudit">
+        select a.*
+        from warehouse_qa_audit a
+        <where>
+            a.is_delete = 0
+            <if test="warehouseId!=null">
+                and warehouse_id = ${warehouseId}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+
+</mapper>
diff --git a/web/src/assets/css/custom.css b/web/src/assets/css/custom.css
index 060f782..5d4b486 100644
--- a/web/src/assets/css/custom.css
+++ b/web/src/assets/css/custom.css
@@ -324,6 +324,9 @@
 .el-border-left {
   border-left: 1px solid rgba(0, 0, 0, .2);
 }
+.el-border-top {
+  border-top: 1px solid rgba(0, 0, 0, .2);
+}
 .el-border-bottom {
   border-bottom: 1px solid rgba(0, 0, 0, .2);
 }
diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
new file mode 100644
index 0000000..382d02c
--- /dev/null
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -0,0 +1,338 @@
+<template>
+  <zt-dialog ref="dialog" column="2" @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.configItemWarehouse.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 v-model="dataForm.configItemWarehouse.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input>
+        </el-form-item>
+        <el-form-item label="鐢宠鏃ユ湡" style="width: 49%">
+          <el-date-picker
+            v-model="dataForm.configItemWarehouse.applyDate"
+            type="date"
+            placeholder="璇烽�夋嫨鐢宠鏃ユ湡">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item class="marginTopAndMarginBottom2" label="搴撶被鍨�" style="width: 99%">
+          <zt-dict v-model="dataForm.configItemWarehouse.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" min-width="200" label="閰嶇疆椤瑰悕绉�">
+                <template v-slot="{ row }">
+                  <el-input v-model="row.itemName" placeholder="閰嶇疆椤瑰悕绉�"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="itemDentify" align="center" width="220" label="閰嶇疆椤规爣璇�">
+                <template v-slot="{ row }">
+                  <el-input v-model="row.itemDentify" 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.version" placeholder="鐗堟湰"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="retrospectVersion" label="涓婃函鐗�" width="120"  align="center">
+                <template v-slot="{ row }">
+                  <el-input v-model="row.retrospectVersion" placeholder="涓婃函鐗�"></el-input>
+                </template>
+              </el-table-column>
+              <el-table-column prop="secretClass" label="瀵嗙骇" width="80"  align="center">
+                <template v-slot="{ row }">
+                  <zt-dict v-model="row.secretClass" placeholder="瀵嗙骇" dict="secret_class"
+                           clearable></zt-dict>
+                </template>
+              </el-table-column>
+            </el-table>
+              <div class="icon-container" @click="addConfigItemWarehouseRow()">
+                <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� -->
+                <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 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="涓嶉�傜敤璇存槑"></el-table-column>
+            </el-table>
+            <div class="el-border-top">
+            <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
+              <zt-dict v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true"
+                       clearable></zt-dict>
+            </el-form-item>
+            <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
+              <span>{{dataForm.configItemWarehouse.qaAuditor}}</span>
+            </el-form-item>
+            <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
+              <span>{{dataForm.configItemWarehouse.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 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="涓嶉�傜敤璇存槑"></el-table-column>
+            </el-table>
+            <div class="el-border-top">
+              <el-form-item label="瀹℃牳缁撴灉" style="width: 99%">
+                <zt-dict v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true"
+                         clearable></zt-dict>
+              </el-form-item>
+              <el-form-item label="瀹℃牳浜猴細" style="width: 48%">
+                <span>{{dataForm.configItemWarehouse.cmAuditor}}</span>
+              </el-form-item>
+              <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%">
+                <span>{{dataForm.configItemWarehouse.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 v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true"
+                       clearable></zt-dict>
+            </el-form-item>
+            <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%">
+              <span>{{dataForm.configItemWarehouse.approvalSign}}</span>
+            </el-form-item>
+            <el-form-item label="鏃ユ湡锛�" style="width: 20%">
+              <span>{{dataForm.configItemWarehouse.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  type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input>
+            </el-form-item>
+            <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%">
+              <span>{{dataForm.configItemWarehouse.operator}}</span>
+            </el-form-item>
+            <el-form-item label="鏃ユ湡锛�" style="width: 20%">
+              <span>{{dataForm.configItemWarehouse.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.configItemWarehouse.remark"></el-input>
+            </el-form-item>
+          </div>
+        </div>
+      </div>
+    </el-form>
+  </zt-dialog>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        dataForm: {
+          id: '',
+          configItemWarehouse:{
+            id:"",
+            code: "",
+            applicant: "",
+            applyDate: "",
+            libraryType: "",
+            qaAuditResults:"",
+            qaAuditor:"",
+            qaAuditDate:"",
+            cmAuditResults:"",
+            cmAuditor:"",
+            cmAuditDate:"",
+            approvalOpinions: "",
+            approvalSign: "",
+            approvalDate: "",
+            projectCmOperations: "",
+            operator: "",
+            operateDate: "",
+            remark: "",
+          },
+          project: {
+            code: '',
+            softwareName: '',
+          },
+          cmAuditList:[],
+          configItemList:[],
+          qaAuditList:[],
+        }
+      }
+    },
+    methods: {
+      indexFormat(index){
+        return index += 1
+      },
+      init(id,row){
+        this.dataForm.id = row.id
+        this.dataForm.projectId = row.projectId
+        // this.dataForm.disabled
+        this.getInfo()
+        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;
+        })
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let params = {
+          warehouseId: this.dataForm.id,
+          projectId: this.dataForm.projectId
+        }
+        let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/getDto`,{params: params})
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+        console.log(this.dataForm,"getInfo this.dataForm")
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit() {
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/configItemWarehouse/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/configItemWarehouse/ConfigItemWarehouse.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse.vue
new file mode 100644
index 0000000..30e0824
--- /dev/null
+++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse.vue
@@ -0,0 +1,72 @@
+<template>
+  <el-card shadow="never" class="aui-card--fill">
+    <div class="mod-configItemWarehouse-configItemWarehouse}">
+      <zt-table-wraper query-url="/configItemWarehouse/ConfigItemWarehouse/page" delete-url="/configItemWarehouse/ConfigItemWarehouse" 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.projectName" 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="configItemWarehouse:add" @click="add()">鏂板</zt-button>
+            <zt-button type="delete" perm="configItemWarehouse:delete" @click="table.deleteHandle()"/>
+          </el-form-item>
+        </el-form>
+        <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle">
+          <el-table-column type="selection" width="40"/>
+            <el-table-column prop="code" label="閰嶇疆椤瑰叆搴撶紪鍙�"/>
+                <el-table-column prop="projectCode" label="椤圭洰缂栧彿"/>
+                <el-table-column prop="projectName" label="椤圭洰鍚嶇О"/>
+                <zt-table-column-dict prop="libraryType" label="搴撶被鍨�" dict="library_type"/>
+              <zt-table-column-handle :table="table" edit-perm="configItemWarehouse:update" delete-perm="configItemWarehouse::delete"/>
+        </el-table>
+        <!-- 寮圭獥, 鏂板 / 淇敼 -->
+        <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/>
+        <ProjectSelect ref="projectSelect"
+                       @refreshDataList="table.query"
+                       @setProjectInfo="openAddWin">
+        </ProjectSelect>
+      </zt-table-wraper>
+    </div>
+  </el-card>
+</template>
+
+<script>
+  import AddOrUpdate from './ConfigItemWarehouse-AddOrUpdate'
+  import ProjectSelect from "../project/Project-select";
+  export default {
+    data() {
+      return {
+        dataForm: {
+          code: '',
+          projectCode: '',
+          projectName: '',
+          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/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
index 59a3e4e..be72b12 100644
--- a/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/itemCirculatOrder/ItemCirculatOrder-AddOrUpdate.vue
@@ -1,7 +1,7 @@
 <template>
   <zt-dialog ref="dialog" column="3" @confirm="formSubmit">
     <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled" label-width="120px" class="circulationFormAuto">
-      <div class="">
+      <div>
         <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px">
           <span>{{dataForm.circulatOrder.code}}</span>
         </el-form-item>
diff --git a/zt/common/src/main/java/com/zt/core/sys/dto/DictIstance.java b/zt/common/src/main/java/com/zt/core/sys/dto/DictIstance.java
index 52f5037..1b9e02b 100644
--- a/zt/common/src/main/java/com/zt/core/sys/dto/DictIstance.java
+++ b/zt/common/src/main/java/com/zt/core/sys/dto/DictIstance.java
@@ -12,6 +12,10 @@
 
     private String identify;
 
+    private String version;
+
     private String secretClass;
 
+    private String retrospect_version;
+
 }

--
Gitblit v1.9.1