6
jinlin
2023-12-06 da4cb0bcbb9c35105afe449b31b3e2b03828d5d2
6
16个文件已修改
644 ■■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseCmAudit.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseQaAudit.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue 436 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Project-select.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue 133 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/testCheckOrder/TestCheckOrder.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/sys/dao/SysRoleUserDao.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/sys/dao/SysUserDao.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/sys/service/SysRoleUserService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/resources/mapper/sys/SysUserDao.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseCmAudit.java
@@ -18,7 +18,7 @@
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("warehouse_cm_audit")
@TableName("config_item_warehouse_cm")
public class WarehouseCmAudit extends BusiEntity {
    private static final long serialVersionUID = 1L;
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseConfigItem.java
@@ -19,7 +19,7 @@
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("warehouse_config_item")
@TableName("config_item_warehouse_detail")
public class WarehouseConfigItem extends BusiEntity {
    private static final long serialVersionUID = 1L;
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/model/WarehouseQaAudit.java
@@ -18,7 +18,7 @@
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("warehouse_qa_audit")
@TableName("config_item_warehouse_qa")
public class WarehouseQaAudit extends BusiEntity {
    private static final long serialVersionUID = 1L;
@@ -36,5 +36,4 @@
    @ApiModelProperty(value = "不适用说明")
    private String notApplyExplan;
}
modules/mainPart/src/main/java/com/zt/life/modules/configItemWarehouse/service/ConfigItemWarehouseService.java
@@ -15,6 +15,8 @@
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.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;
@@ -62,6 +64,9 @@
    @Autowired
    private WarehouseConfigItemService configItemService;
    @Autowired
    private TestCheckOrderService testCheckOrderService;
    /**
     * 分页查询
     *
@@ -103,6 +108,15 @@
                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());// 保存附件
        }
@@ -129,7 +143,7 @@
        Long bizId = configItemDto.getConfigItemWarehouse().getId();
        FlowInfoDto flowInfoDto = configItemDto.getFlowInfoDto();
        if (flowInfoDto != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
        if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
            if ("tj".equals(flowInfoDto.getSubmitType())) {
                workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
            }
modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/controller/TestCheckOrderController.java
@@ -75,11 +75,11 @@
    public Result insert(@RequestBody CheckOrderDto checkOrderDto) {
        //效验数据
        ValidatorUtils.validateEntity(checkOrderDto, AddGroup.class, DefaultGroup.class);
        Map<String, String> map = new HashMap<>();
/*        Map<String, String> map = new HashMap<>();
        String pagecode = checkOrderDto.getPageCode();
        map.put("funCode", "test_check_order"+pagecode);
        map.put("funCode", "test_check_order_"+pagecode);
        map.put("projectId", checkOrderDto.getProjectId().toString());
        checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map));
        checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map));*/
        Boolean result = testCheckOrderService.save(checkOrderDto);
        return Result.ok();
    }
modules/mainPart/src/main/java/com/zt/life/modules/testCheckOrder/service/TestCheckOrderService.java
@@ -20,6 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
@@ -30,11 +31,11 @@
/**
 * test_check_order
 *
 * @author zt generator
 * @author zt generator
 * @since 1.0.0 2023-12-05
 */
@Service
public class TestCheckOrderService  extends BaseService<TestCheckOrderDao, TestCheckOrder> {
public class TestCheckOrderService extends BaseService<TestCheckOrderDao, TestCheckOrder> {
    @Autowired
    private TestCheckOrderListService checkOrderListService;
@@ -65,7 +66,7 @@
    }
    public CheckOrderDto getDto(Long checkId, Long projectId,String pageCode) {
    public CheckOrderDto getDto(Long checkId, Long projectId, String pageCode) {
        CheckOrderDto data = new CheckOrderDto();
        data.setPageCode(pageCode);
        if (checkId != null) {
@@ -82,7 +83,7 @@
        } else {
            TestCheckOrder checkOrder = new TestCheckOrder();
            data.setCheckOrder(checkOrder);
            List<TestCheckOrderList> checkOrderList = checkOrderListService.itemList(pageCode+"_check_item");
            List<TestCheckOrderList> checkOrderList = checkOrderListService.itemList(pageCode + "_check_item");
            data.setCheckOrderList(checkOrderList);
        }
        if (projectId != null) {
@@ -98,7 +99,8 @@
            baseDao.updateById(checkOrderDto.getCheckOrder());
        else {
            Map<String, String> map = new HashMap<>();
            map.put("funCode", "test_check_order");
            String pagecode = checkOrderDto.getPageCode();
            map.put("funCode", "test_check_order_" + pagecode);
            map.put("projectId", checkOrderDto.getProjectId().toString());
            checkOrderDto.getCheckOrder().setProjectId(checkOrderDto.getProjectId());
            checkOrderDto.getCheckOrder().setCode(sysCodeRuleService.getNewCode(map));
web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue
@@ -1,33 +1,35 @@
<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 >
  <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.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 :disabled="stepMarker=='pzxrk_first'"v-model="dataForm.configItemWarehouse.applicant" placeholder="请输入申请人"></el-input>
        </el-form-item>
        <el-form-item label="申请日期" style="width: 49%">
          <el-date-picker
            :disabled="stepMarker=='pzxrk_first'"
            v-model="dataForm.configItemWarehouse.applyDate"
            type="date"
            placeholder="请选择申请日期">
          </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>
          <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.configItemWarehouse.applicant"
                      placeholder="请输入申请人"></el-input>
          </el-form-item>
          <el-form-item label="申请日期" style="width: 49%">
            <el-date-picker
              :disabled="stepMarker=='pzxrk_first'"
              v-model="dataForm.configItemWarehouse.applyDate"
              type="date"
              placeholder="请选择申请日期">
            </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">
@@ -35,68 +37,73 @@
          </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.itemIdentify" 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="100"  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-column fixed="right" prop="files" label="上传附件" width="300" 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-column fixed="right" label="管理" width="80" align="center">
                <template v-slot="{ row }">
                  <zt-table-button @click="">管理</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>
              <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.itemIdentify" 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="100" 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-column fixed="right" prop="files" label="上传附件" width="300" 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-column fixed="right" label="管理" width="80" 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>
                    <!--                  <table-uploader busi-type="config_item_warehouse" model-name="row" :dataForm="row"-->
                    <!--                                  v-model="row.files"/>-->
                  </template>
                </el-table-column>
              </el-table>
              <div 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.command" :command="item.command">
                    <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>-->
                <!-- <i class="el-icon-plus"></i>-->
              </div>
            </div>
          </div>
@@ -106,13 +113,15 @@
            项目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"
            <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=='wplz_qash'" v-model="scope.row.examineResult" placeholder="检查结果" dict="tristate2" :radio="true"
                  <zt-dict :disabled="stepMarker=='wplz_qash'" v-model="scope.row.examineResult" placeholder="检查结果"
                           dict="tristate2" :radio="true"
                           clearable></zt-dict>
                </template>
              </el-table-column>
@@ -124,16 +133,17 @@
              </el-table-column>
            </el-table>
            <div class="el-border-top">
            <el-form-item label="审核结果" style="width: 99%">
              <zt-dict :disabled="stepMarker=='wplz_qash'" v-model="dataForm.configItemWarehouse.qaAuditResults" dict="is_pass" :radio="true"
                       clearable></zt-dict>
            </el-form-item>
            <el-form-item label="审核人:" style="width: 48%">
              <span>{{dataForm.configItemWarehouse.qaAuditor}}</span>
            </el-form-item>
            <el-form-item label="审核日期:" style="width: 48%">
              <span>{{dataForm.configItemWarehouse.qaAuditDate}}</span>
            </el-form-item>
              <el-form-item label="审核结果" style="width: 99%">
                <zt-dict :disabled="stepMarker=='wplz_qash'" v-model="dataForm.configItemWarehouse.qaAuditResults"
                         dict="is_pass" :radio="true"
                         clearable></zt-dict>
              </el-form-item>
              <el-form-item label="审核人:" style="width: 48%">
                <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>
@@ -142,13 +152,15 @@
            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"
            <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=='wplz_cmsh'" v-model="scope.row.examineResult" placeholder="检查结果" dict="tristate2" :radio="true"
                  <zt-dict :disabled="stepMarker!=='wplz_cmsh'" v-model="scope.row.examineResult" placeholder="检查结果"
                           dict="tristate2" :radio="true"
                           clearable></zt-dict>
                </template>
              </el-table-column>
@@ -161,7 +173,8 @@
            </el-table>
            <div class="el-border-top">
              <el-form-item label="审核结果" style="width: 99%">
                <zt-dict :disabled="stepMarker=='wplz_cmsh'" v-model="dataForm.configItemWarehouse.cmAuditResults" placeholder="审核结果" dict="is_pass" :radio="true"
                <zt-dict :disabled="stepMarker=='wplz_cmsh'" v-model="dataForm.configItemWarehouse.cmAuditResults"
                         placeholder="审核结果" dict="is_pass" :radio="true"
                         clearable></zt-dict>
              </el-form-item>
              <el-form-item label="审核人:" style="width: 48%">
@@ -179,7 +192,8 @@
          </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!=='wplz_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions" dict="is_pass" :radio="true"
              <zt-dict :disabled="stepMarker!=='wplz_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions"
                       dict="is_pass" :radio="true"
                       clearable></zt-dict>
            </el-form-item>
            <el-form-item label-width="80%" label="签字:" style="width: 65%">
@@ -196,7 +210,8 @@
          </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=='wplz_cmcz'" type="textarea" :rows="2" placeholder="请输入内容" v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input>
              <el-input v-if="stepMarker=='wplz_cmcz'" type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input>
              <span v-else>{{dataForm.configItemWarehouse.projectCmOperations}}</span>
            </el-form-item>
            <el-form-item label-width="80%" label="操作人:" style="width: 65%">
@@ -213,43 +228,47 @@
          </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-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.configItemWarehouse.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,
        disabled: true,
        stepMarker: '',
        title: '查看',
        menuOptions: [
          { command: 'a', name: '软件测试委托单' },
          { command: 'b', name: '软件需求规格说明' },
          { command: 'c', name: '软件设计说明' },
          { command: 'd', name: '软件研制任务书' },
          { command: 'e', name: '其他' }
          {pageCode: 'plan', name: '软件测试计划'},
          {pageCode: 'explain', name: '软件测试说明'},
          {pageCode: 'record', name: '软件测试记录'},
          {pageCode: 'report', name: '软件测试报告'},
          {pageCode: 'other', name: '其他'}
        ],
        dataForm: {
          id: '',
          configItemWarehouse:{
            id:"",
          configItemWarehouse: {
            id: "",
            code: "",
            applicant: "",
            applyDate: "",
            libraryType: "",
            qaAuditResults:"",
            qaAuditor:"",
            qaAuditDate:"",
            cmAuditResults:"",
            cmAuditor:"",
            cmAuditDate:"",
            qaAuditResults: "",
            qaAuditor: "",
            qaAuditDate: "",
            cmAuditResults: "",
            cmAuditor: "",
            cmAuditDate: "",
            approvalOpinions: "",
            approvalSign: "",
            approvalDate: "",
@@ -262,32 +281,35 @@
            code: '',
            softwareName: '',
          },
          cmAuditList:[],
          configItemList:[],
          qaAuditList:[],
          cmAuditList: [],
          configItemList: [],
          qaAuditList: [],
          flowInfoDto: {}
        }
      }
    },
    computed:{
      getRoleName(){
        console.log(this.$store.state.user.roleName,'this.$store.state.user.roleName')
    computed: {
      getRoleName() {
        console.log(this.$store.state.user.roleName, 'this.$store.state.user.roleName')
        return this.$store.state.user.roleName || ''
      },
    },
    components: {
      AddOrUpdateCheck
    },
    methods: {
      indexFormat(index){
      indexFormat(index) {
        return index += 1
      },
      init(id,row){
        console.log(id,row,'入库单的')
      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
        if (row.projectId) {
          this.dataForm.projectId = row.projectId
        }
        this.getInfo()
        if (!this.dataForm.disabled) {
@@ -299,7 +321,7 @@
            this.stepMarker = row.stepMarker
          }
        }
        console.log(this.dataForm.id,this.dataForm.projectId,'params params')
        console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
      },
      // addConfigItemWarehouseRow(){
      //   this.dataForm.configItemList.push({})
@@ -308,18 +330,24 @@
      //     tableBody.scrollTop = tableBody.scrollHeight;
      //   })
      // },
      handleCommand(command){
        const selectedItem = this.menuOptions.find(item => item.command === command);
        if (selectedItem.command === 'e') {
      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})
        } 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')
        this.$nextTick(() => {
          const tableBody = this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper')
          tableBody.scrollTop = tableBody.scrollHeight;
        })
      },
      openCheckOrderWin(row) {
          this.$refs.addOrUpdate.$refs.dialog.init(null, row)
      },
      setCheckId(checkId, row) {
        row.checkId = checkId
      },
      // 获取信息
      async getInfo() {
@@ -327,21 +355,21 @@
          warehouseId: this.dataForm.id,
          projectId: this.dataForm.projectId
        }
        let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/getDto`,{params: params})
        let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/getDto`, {params: params})
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
        if(this.dataForm.project === null){
          this.dataForm.project={}
        if (this.dataForm.project === null) {
          this.dataForm.project = {}
        }
        if(this.dataForm.configItemWarehouse === null){
          this.dataForm.circulatOrder={}
        if (this.dataForm.configItemWarehouse === null) {
          this.dataForm.circulatOrder = {}
        }
        if(this.dataForm.flowInfoDto === null){
          this.dataForm.flowInfoDto={}
        if (this.dataForm.flowInfoDto === null) {
          this.dataForm.flowInfoDto = {}
        }
        console.log(this.dataForm,"getInfo this.dataForm")
        console.log(this.dataForm, "getInfo this.dataForm")
      },
      // 表单提交
      async formSubmit(submitType) {
@@ -364,74 +392,86 @@
  }
</script>
<style>
.ManageFormAuto {
  width: 70%;
  margin: 0 auto;
}
.confirmDAuto{
  border: 1px solid;
}
  .ManageFormAuto {
    width: 70%;
    margin: 0 auto;
  }
.el-flexManageDialog {
  display: flex;
  align-items: center;
}
  .confirmDAuto {
    border: 1px solid;
  }
.DFormWidth {
  width: 120px;
}
  .el-flexManageDialog {
    display: flex;
    align-items: center;
  }
.DAlign {
  text-align: center;
}
  .DFormWidth {
    width: 120px;
  }
.DManageForm{
  /*border-left: 1px solid;*/
  width: 100%;
}
  .DAlign {
    text-align: center;
  }
.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;
}
  .DManageForm {
    /*border-left: 1px solid;*/
    width: 100%;
  }
.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;
}
  .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>
web/src/views/modules/project/Project-select.vue
@@ -55,6 +55,7 @@
    name: 'Project-select',
    data() {
      return {
        pageCode:'',
        dataForm: {
          softwareName: '',
          secretClass: '',
@@ -67,8 +68,9 @@
      }
    },
    methods: {
      init(tableName) {
      init(tableName,row) {
        this.dataForm.tableName = tableName
        this.pageCode = row.pageCode
        this.$nextTick(()=>{
          this.$refs.tableObj.query()
        })
@@ -78,7 +80,7 @@
        console.log(row, 'row')
        await this.$tip.success()
        this.$refs.dialog.close()
        this.$emit('setProjectInfo', row)
        this.$emit('setProjectInfo', row,this.pageCode)
      }
    },
  }
web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
@@ -24,7 +24,7 @@
        </div>
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);">
          <div style="padding-left:5px;padding-right:5px;">
            <div style="padding: 5px">测试计划:</div>
            <div style="padding: 5px">{{subtitle}}</div>
            <div class="table-container">
              <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border
                        :data="dataForm.checkOrderList"
@@ -49,18 +49,18 @@
                    <el-input v-model="row.remark" placeholder="备注"></el-input>
                  </template>
                </el-table-column>
<!--                <el-table-column fixed="right" prop="files" label="上传附件" width="300" align="center">
                  <template v-slot="{ row }">
                    &lt;!&ndash;                    <zt-table-button @click="files(row.id)">上传附件</zt-table-button>&ndash;&gt;
                    <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
                                    v-model="row.files"/>
                  </template>
                </el-table-column>-->
                <!--                <el-table-column fixed="right" prop="files" label="上传附件" width="300" align="center">
                                  <template v-slot="{ row }">
                                    &lt;!&ndash;                    <zt-table-button @click="files(row.id)">上传附件</zt-table-button>&ndash;&gt;
                                    <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
                                                    v-model="row.files"/>
                                  </template>
                                </el-table-column>-->
              </el-table>
<!--              <div class="icon-container" @click="addCirculatRow()">-->
<!--                &lt;!&ndash; 放置固定的图标 &ndash;&gt;-->
<!--                <i class="el-icon-plus"></i>-->
<!--              </div>-->
              <!--              <div class="icon-container" @click="addCirculatRow()">-->
              <!--                &lt;!&ndash; 放置固定的图标 &ndash;&gt;-->
              <!--                <i class="el-icon-plus"></i>-->
              <!--              </div>-->
            </div>
          </div>
        </div>
@@ -99,7 +99,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">
            <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0">
              <el-input v-model="dataForm.testCheckOrder.verifier" placeholder="验证人"></el-input>
            </el-form-item>
          </div>
@@ -114,22 +114,19 @@
<script>
  export default {
    props:{
      pageCode: {
        type: String,
        default: ''
      },
    },
    data() {
      return {
        parentRow: null,
        subtitle: '',
        pageName: {plan: '测试计划', explain: '测试说明', record: '测试记录', report: '测试报告'},
        dataForm: {
          id: '',
          projectId: '',
          project:{
            softwareIdentity:'',
            softwareName:'',
          project: {
            softwareIdentity: '',
            softwareName: '',
          },
          testCheckOrder:{
          testCheckOrder: {
            code: '',
            examiner: '',
            examDate: '',
@@ -138,33 +135,41 @@
            processor: '',
            verifier: '',
          },
          checkOrderList:{}
          checkOrderList: []
        }
      }
    },
    methods: {
      init(id, row) {
        console.log(id,row,'软件测试计划检查单')
        this.parentRow = 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.pageCode = row.pageCode
        this.subtitle = this.pageName[this.pageCode]
        if (row.projectId) {
          this.dataForm.projectId = row.projectId
        }
        // this.dataForm.disabled
        //this.dataForm.disabled
        this.getInfo()
        console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
        //console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
      },
      // 获取信息
      indexFormat(index) {
        return index += 1
      },
      async getInfo() {
        let params = {
          checkId: this.dataForm.id,
          projectId: this.dataForm.projectId,
          pageCode:this.pageCode
          pageCode: this.pageCode
        }
        console.log(this.pageCode, "getInfo pageCode")
        let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/getDto`, {params: params})
        this.dataForm = {
          ...this.dataForm,
@@ -177,46 +182,50 @@
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
          this.$emit('recall', this.dataForm, this.parentRow)
        }
      }
    }
  }
</script>
<style>
.el-flexCirculationDialog {
  display: flex;
  align-items: center
}
  .el-flexCirculationDialog {
    display: flex;
    align-items: center
  }
.testCheckFormAuto  .acceptDate > .el-form-item > .el-form-item__content {
  width: 100%;
}
.testCheckFormAuto  .acceptDate1 > .el-form-item > .el-form-item__content {
  width: 100%;
}
.testCheckFormAuto .marginTopAndMarginBottom {
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}
  .testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
    width: 100%;
  }
.testCheckFormAuto .marginTopAndMarginBottom2 {
  margin-top: -10px !important;
  margin-bottom: 10px !important;
}
  .testCheckFormAuto .acceptDate1 > .el-form-item > .el-form-item__content {
    width: 100%;
  }
.testCheckFormAuto .marginTopAndMarginBottom3 {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
  .testCheckFormAuto .marginTopAndMarginBottom {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
  }
.testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
  line-height: 78px;
}
.testCheckContentWidth > .el-form-item > .el-form-item__content {
  width: calc(100% - 120px);
}
.testCheckFormAuto .el-radio {
  margin-right: 10px;
}
  .testCheckFormAuto .marginTopAndMarginBottom2 {
    margin-top: -10px !important;
    margin-bottom: 10px !important;
  }
  .testCheckFormAuto .marginTopAndMarginBottom3 {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
  }
  .testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
    line-height: 78px;
  }
  .testCheckContentWidth > .el-form-item > .el-form-item__content {
    width: calc(100% - 120px);
  }
  .testCheckFormAuto .el-radio {
    margin-right: 10px;
  }
</style>
web/src/views/modules/testCheckOrder/TestCheckOrder.vue
@@ -23,12 +23,12 @@
              <zt-table-column-handle :table="table" edit-perm="testCheckOrder:update" delete-perm="testCheckOrder::delete"/>
        </el-table>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/>
        <ProjectSelect ref="projectSelect"
        <add-or-update ref="addOrUpdate" @recall="table.query"/>
        <ProjectSelect :pageCode="pageCode"  ref="projectSelect"
                       @refreshDataList="table.query"
                       @setProjectInfo="openAddWin">
        </ProjectSelect>
        <Preview ref="view" :pageMarkerfun="SoftwareTestOrder"></Preview>
        <Preview ref="view"></Preview>
      </zt-table-wraper>
    </div>
  </el-card>
@@ -61,11 +61,12 @@
    },
    methods:{
      add() {
        this.$refs.projectSelect.$refs.dialog.init("test_check_order")
        console.log(this.pageCode,'this.pageCode')
        this.$refs.projectSelect.$refs.dialog.init("test_check_order",{pageCode: this.pageCode})
      },
      openAddWin(row) {
      openAddWin(row,pageCode) {
        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,pageCode:pageCode})
      },
      preview(row){
        this.$refs.view.openAccessoryFormatSingle(row)
zt/core/src/main/java/com/zt/modules/sys/controller/SysUserController.java
@@ -220,7 +220,6 @@
    @ApiOperation("用户角色列表")
    @RequiresPermissions("sys:user:role")
    public Result<List<Long>> getRole(@PathVariable("id") Long id) {
        return Result.ok(sysRoleUserService.getUserRoles(id).stream().map(role -> role.getId())
                .collect(Collectors.toList()));
    }
zt/core/src/main/java/com/zt/modules/sys/dao/SysRoleUserDao.java
@@ -29,4 +29,5 @@
    List<RoleDto> getUserRoles(Long userId);
    List<SysUser> getRoleUsers(Long roleId);
    List<SysRoleUser> getSingleRoleUsers(Long roleId,Long userId);
}
zt/core/src/main/java/com/zt/modules/sys/dao/SysUserDao.java
@@ -55,4 +55,6 @@
    Integer checkTestHome(String systemId, Long userId);
    List<SysUser> getUsersList();
    String getUsersName();
}
zt/core/src/main/java/com/zt/modules/sys/service/SysRoleUserService.java
@@ -42,6 +42,7 @@
        return baseDao.getUserRoles(userId);
    }
    /**
     * 角色用户列表
     *
zt/core/src/main/java/com/zt/modules/sys/service/SysUserService.java
@@ -335,6 +335,10 @@
        return baseDao.getUsersList();
    }
    public String getUsersName(Long id) {
        return baseDao.getUsersName();
    }
    public SysUser getUserInfo(Long id) {
        SysUser data = super.get(id);
        if (data != null) {
@@ -349,4 +353,6 @@
        }
        return data;
    }
}
zt/core/src/main/resources/mapper/sys/SysUserDao.xml
@@ -240,7 +240,9 @@
    <select id="getUsersList" resultType="com.zt.core.sys.model.SysUser">
        select real_name as name,id as id from sys_user
    </select>
    <select id="getUsersName" resultType="java.lang.String">
        select real_name from sys_user WHERE id=#{id}
    </select>
    <update id="updatePassword">
        update
        SYS_USER