wente
2023-11-14 7adee41ff145c50e244e4565de4dbf5240c35e04
项目表
5个文件已修改
208 ■■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/project/dao/SoftwareTestOrderDao.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/SoftwareTestOrder.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/dao/SoftwareTestOrderDao.java
@@ -14,7 +14,7 @@
/**
 * software_test_order
 *
 * @author zt generator
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Mapper
@@ -23,5 +23,4 @@
    List<SoftwareTestOrder> getList(Map<String, Object> params);
    List<SoftwareTestOrderDeliverable> getdeliverableDictList();
    List<SoftwareTestOrderMeasured> getMeasuredDictList();
}
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -63,7 +63,8 @@
     * @return
     */
    public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
        return baseDao.getList(queryFilter.getQueryParams());
        List<SoftwareTestOrder> list = baseDao.getList(queryFilter.getQueryParams());
        return list;
    }
@@ -84,6 +85,7 @@
        else {
            Map<String, String> map = new HashMap<>();
            map.put("funCode", "software_test_order");
            softwareTestOrderDto.getSoftwareTestOrder().setProjectId(softwareTestOrderDto.getProjectId());
            softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map));
            baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder());
            softwareTestOrderId = softwareTestOrderDto.getSoftwareTestOrder().getId();
@@ -94,6 +96,7 @@
            if (softwareTestOrderMeasured.getId() != null) {
                softwareTestOrderMeasuredService.update(softwareTestOrderMeasured);
            } else {
                softwareTestOrderMeasured.setOrderId(softwareTestOrderId);
                softwareTestOrderMeasuredService.insert(softwareTestOrderMeasured);
            }
        }
@@ -103,6 +106,7 @@
            if (softwareTestOrderDeliverable.getId() != null) {
                softwareTestOrderDeliverableService.update(softwareTestOrderDeliverable);
            } else {
                softwareTestOrderDeliverable.setOrderId(softwareTestOrderId);
                softwareTestOrderDeliverableService.insert(softwareTestOrderDeliverable);
            }
        }
@@ -123,38 +127,18 @@
            SoftwareTestOrder softwareTestOrder = this.get(orderId);
            data.setSoftwareTestOrder(softwareTestOrder);
            if (projectId == null)
/*            if (projectId == null)
                projectId = softwareTestOrder.getProjectId();
            data.setTestAgencyInfo(testAgencyInfoService.get(orderId));
 */
            List<SoftwareTestOrderDeliverable> deliverableList = softwareTestOrderDeliverableService.childrenTables(orderId);
            if (deliverableList.isEmpty()) {
                deliverableList = this.deliverableDict();
                deliverableList = deliverableList.stream()
                        .peek(deliverable -> {
                            if (deliverable.getIdentify() == null) {
                                // 修改 identify 字段的值为新值
                                deliverable.setIdentify("1.0.0");
                            }
                        })
                        .collect(Collectors.toList());
            }
            data.setDeliverableList(deliverableList);
            List<SoftwareTestOrderMeasured> measuredList = softwareTestOrderMeasuredService.childrenTables(orderId);
            if (measuredList.isEmpty()) {
                measuredList = this.MeasuredDict();
                measuredList = measuredList.stream()
                        .peek(measured -> {
                            if (measured.getIdentify() == null) {
                                // 修改 identify 字段的值为新值
                                measured.setIdentify("1.0.0");
                            }
                        })
                        .collect(Collectors.toList());
            }
            data.setMeasuredList(measuredList);
        } else {
            List<SoftwareTestOrderDeliverable> deliverableList = baseDao.getdeliverableDictList();
            List<SoftwareTestOrderMeasured> measuredList = baseDao.getMeasuredDictList();
            data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
        }
        if (projectId != null) {
@@ -162,15 +146,6 @@
            data.setProject(projectService.get(projectId));
        }
        return data;
    }
    public List<SoftwareTestOrderDeliverable> deliverableDict() {
        return baseDao.getdeliverableDictList();
    }
    public List<SoftwareTestOrderMeasured> MeasuredDict() {
        return baseDao.getMeasuredDictList();
    }
    public void exportWord(Long id, HttpServletRequest request, HttpServletResponse response) {
@@ -193,7 +168,7 @@
        String testType = "," + dataObj.getSoftwareTestOrder().getTestType1() + ",";
        for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
            String value = dictItemDto.getDictValue();
            String desc = (testType.contains("," + value + ",")?"☑":"□")+dictItemDto.getDictLabel();
            String desc = (testType.contains("," + value + ",") ? "☑" : "□") + dictItemDto.getDictLabel();
            if ((i++) % 2 == 0) {
                testType12.add(desc);
            } else {
@@ -205,7 +180,7 @@
        testType = "," + dataObj.getSoftwareTestOrder().getTestType2() + ",";
        for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
            String value = dictItemDto.getDictValue();
            String desc = (testType.contains("," + value + ",")?"☑":"□")+dictItemDto.getDictLabel();
            String desc = (testType.contains("," + value + ",") ? "☑" : "□") + dictItemDto.getDictLabel();
            if ((i++) % 2 == 0) {
                testType22.add(desc);
            } else {
modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
@@ -19,33 +19,21 @@
    </select>
    <select id="getMeasuredDictList" resultType="com.zt.life.modules.project.model.SoftwareTestOrderMeasured">
        SELECT dd.*
        SELECT dd.dict_label as name,'1.0.0' as identify
        FROM sys_dict_type dt
        JOIN sys_dict_data dd ON dt.ID = dd.DICT_TYPE_ID
        WHERE dt.DICT_TYPE = 'testItem_type';
        <where>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
        </where>
        <if test="orderBySql!=null">
            ORDER BY ${orderBySql}
        </if>
        WHERE dt.DICT_TYPE = 'testItem_type'
            and IS_DELETE = 0
            ORDER BY sort
    </select>
    <select id="getdeliverableDictList" resultType="com.zt.life.modules.project.model.SoftwareTestOrderDeliverable">
        SELECT dd.*
        SELECT dd.dict_label as name,'1.0.0' as identify
        FROM sys_dict_type dt
        JOIN sys_dict_data dd ON dt.ID = dd.DICT_TYPE_ID
        WHERE dt.DICT_TYPE = 'product_library_file';
        <where>
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
        </where>
        <if test="orderBySql!=null">
            ORDER BY ${orderBySql}
        </if>
        WHERE dt.DICT_TYPE = 'product_library_file'
        and IS_DELETE = 0
            ORDER BY sort
    </select>
</mapper>
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -102,7 +102,7 @@
                    被测件及其他相关物品清单
                  </div>
                  <div style="width: calc(100% - 120px);padding: 5px">
                    <el-table class="el-software" height="230" border :data="dataForm.softwareTestOrderMeasuredList"
                    <el-table class="el-software" height="230" border :data="dataForm.measuredList"
                              @cell-click="handleCellClick"
                              stripe>
                      <el-table-column type="index" align="center" width="80" label="序号"/>
@@ -330,7 +330,7 @@
                    交付物清单
                  </div>
                  <div style="width: calc(100% - 120px);padding: 5px">
                    <el-table class="el-software" height="230" border :data="dataForm.softwareTestOrderDeliverableList"
                    <el-table class="el-software" height="230" border :data="dataForm.deliverableList"
                              stripe>
                      <el-table-column type="index" align="center" width="80" label="序号"/>
                      <el-table-column prop="dictLabel" min-width="300" label="名称"></el-table-column>
@@ -420,13 +420,12 @@
    </el-form>
    <template v-slot:footer>
      <el-button perm="project:view" type="primary">打印</el-button>
      <zt-button v-if="dataForm.disabled" type="primary">打印</zt-button>
    </template>
  </zt-dialog>
</template>
<script>
import {getYearMonDay} from '@/commonJS/common'
export default {
  data() {
@@ -435,8 +434,24 @@
      editingCell:null,
      dataForm: {
        id: null,
        testAgencyInfo: {},
        projectId: null,
        softwareTestOrder: {
          optEnviron:'',
          programLang:'',
          testBasis:'',
          testType1:'',
          testType2:'',
          testStandard:'',
          startDate:'',
          endDate:'',
          testVenue:'',
          otherRequire:'',
          testDate:'',
          deliveryDate:'',
          testCost:'',
          articleNature:'',
          sampleStatus:'',
        },
        project: {
          code: '',
          creator: '',
@@ -458,28 +473,15 @@
          softwareName: '',
          softwareType: '',
          tenantId: '',
          testLevel: '',
          testLevel: ''
        },
        softwareTestOrder: {},
        softwareTestOrderDeliverableList: [],
        softwareTestOrderMeasuredList: [],
        deliverableList: [],
        measuredList: [],
        testAgencyInfo: {}
      }
    }
  },
  computed: {
    getYear() {
      return getYearMonDay(this.dataForm.softwareTestOrder.startDate).year
    },
    getMon() {
      return getYearMonDay(this.dataForm.softwareTestOrder.startDate).month
    },
    getDay() {
      return getYearMonDay(this.dataForm.softwareTestOrder.startDate).day
    },
  },
  methods: {
    getYearMonDay,
    handleCellClick(row, column) {
      this.editingCell = {row, column}
      this.$nextTick(() => {
@@ -490,10 +492,11 @@
      console.log(this.editingCell, 'this.editingCell')
    },
    init2(data){
      this.dataForm.id = null
      this.dataForm.projectId = data.id
    init(id,row){
      this.dataForm.id = row.id
      this.dataForm.projectId = row.projectId
      this.getInfo()
      console.log(this.dataForm.id,this.dataForm.projectId,'params params')
    },
    // 获取信息
    async getInfo() {
@@ -501,11 +504,15 @@
        orderId: this.dataForm.id,
        projectId: this.dataForm.projectId
      }
      let res = await this.$http.get(`/project/SoftwareTestOrder/getDto`, {params: params})
      if (res.data) {
        this.dataForm = {
          ...res.data
        }
        if(this.dataForm.softwareTestOrder === null){
          this.dataForm.softwareTestOrder={}
        }
      }
      console.log(this.dataForm, "this.dataForm")
    },
web/src/views/modules/project/SoftwareTestOrder.vue
@@ -1,7 +1,8 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-project-softwareTestOrder}">
      <zt-table-wraper query-url="/project/SoftwareTestOrder/page" delete-url="/project/SoftwareTestOrder" v-slot="{ table }">
      <zt-table-wraper query-url="/project/SoftwareTestOrder/page" delete-url="/project/SoftwareTestOrder"
                       v-slot="{ table }">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
          <el-form-item>
            <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称" clearable></el-input>
@@ -10,30 +11,33 @@
            <zt-dict v-model="dataForm.testBasis" dict="test_basis" placeholder="请选择测试依据" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.testStandard" dict="test_standard" placeholder="请选择测试标准" clearable></zt-dict>
            <zt-dict v-model="dataForm.testStandard" dict="test_standard" placeholder="请选择测试标准"
                     clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.articleNature" dict="article_nature" placeholder="请选择物品性质" clearable></zt-dict>
            <zt-dict v-model="dataForm.articleNature" dict="article_nature" placeholder="请选择物品性质"
                     clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-button type="query" @click="table.query()"/>
<!--            <zt-button type="add" perm="project:add" @click="table.editHandle()"/>-->
            <!--            <zt-button type="add" perm="project:add" @click="table.editHandle()"/>-->
            <zt-button type="primary" class="el-icon-edit" perm="project:add" @click="add()">新增</zt-button>
            <zt-button type="delete" perm="project: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 v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
                  border @selection-change="table.selectionChangeHandle">
          <el-table-column type="selection" align="center" width="40"/>
          <el-table-column prop="softwareName" label="软件名称"/>
          <el-table-column prop="code" label="委托单编号"/>
          <el-table-column prop="softwareIdentity" label="项目标识"/>
            <zt-table-column-dict prop="testBasis" label="测试依据" dict="test_basis"/>
            <zt-table-column-dict prop="testStandard" width="370px" label="测试标准" dict="test_standard"/>
            <zt-table-column-dict prop="articleNature" label="物品性质" dict="article_nature"/>
              <zt-table-column-handle :table="table" edit-perm="project:update" delete-perm="project::delete"/>
          <zt-table-column-dict prop="testBasis" label="测试依据" dict="test_basis"/>
          <zt-table-column-dict prop="testStandard" width="370px" label="测试标准" dict="test_standard"/>
          <zt-table-column-dict prop="articleNature" label="物品性质" dict="article_nature"/>
          <zt-table-column-handle :table="table" edit-perm="project:update" delete-perm="project::delete"/>
        </el-table>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update ref="addOrUpdate"  @refreshDataList="table.query"/>
        <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/>
        <ProjectSelect ref="projectSelect"
                       @refreshDataList="table.query"
                       @setProjectInfo="openAddWin">
@@ -45,31 +49,32 @@
</template>
<script>
  import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
  import ProjectSelect from "./Project-select.vue"
  export default {
    data() {
      return {
        dataForm: {
          testBasis: '',
          testType: '',
          testStandard: '',
          articleNature: '',
        }
      }
    },
    components: {
      AddOrUpdate,
      ProjectSelect
    },
    methods:{
      add(){
        this.$refs.projectSelect.$refs.dialog.init("software_test_order")
      },
      openAddWin(row){
        console.log(row.id,'row.id')
        this.$refs.addOrUpdate.$refs.dialog.init(row.id,row)
import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
import ProjectSelect from "./Project-select.vue"
export default {
  data() {
    return {
      dataForm: {
        testBasis: '',
        testType: '',
        testStandard: '',
        articleNature: '',
      }
    }
  },
  components: {
    AddOrUpdate,
    ProjectSelect
  },
  methods: {
    add() {
      this.$refs.projectSelect.$refs.dialog.init("software_test_order")
    },
    openAddWin(row) {
      console.log(row.id, 'row.id')
      this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id})
    }
  }
}
</script>