jinlin
2023-11-07 e9d51762bf342f3f9b542ef0214ed41a6ff7d679
Changes
10个文件已修改
2个文件已添加
3个文件已删除
693 ■■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/mainParts/TaskCenterDao.xml 241 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/packages/views/pages/generator.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Project-AddOrUpdate.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Project.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/project-add-or-update.vue 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/project.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/generator/controller/SysGeneratorController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/generator/data/DBUtil.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/java/com/zt/generator/utils/GenUtils.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/resources/template/add-or-update.vue.vm 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zt/core/src/main/resources/template/index.vue.vm 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java
@@ -30,7 +30,7 @@
 * project
 *
 * @author zt generator 
 * @since 1.0.0 2023-11-06
 * @since 1.0.0 2023-11-07
 */
@RestController
@RequestMapping("/project/")
@@ -46,7 +46,7 @@
        @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 = "entrustUnitName", value = "委托单位名称", dataType = Constant.QT.STRING, format = "entrust_unit_name^LK"),        @ApiImplicitParam(name = "developUnitName", value = "开发单位名称", dataType = Constant.QT.STRING, format = "develop_unit_name^LK"),        @ApiImplicitParam(name = "software", value = "软件名称", dataType = Constant.QT.STRING, format = "software^LK"),        @ApiImplicitParam(name = "code", value = "项目编号", dataType = Constant.QT.STRING, format = "CODE^LK"),        @ApiImplicitParam(name = "identity", value = "项目标识", dataType = Constant.QT.STRING, format = "IDENTITY^LK"),        @ApiImplicitParam(name = "criticalLevel", value = "关键等级", dataType = Constant.QT.STRING, format = "critical_level^EQ"),        @ApiImplicitParam(name = "testLevel", value = "测试级别", dataType = Constant.QT.STRING, format = "test_level^EQ")    })
    public PageResult<Project> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
        return PageResult.ok(projectService.page(queryFilter));
modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java
@@ -13,7 +13,7 @@
 * project
 *
 * @author zt generator 
 * @since 1.0.0 2023-11-06
 * @since 1.0.0 2023-11-07
 */
@Mapper
public interface ProjectDao extends BaseDao<Project> {
modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java
@@ -13,7 +13,7 @@
 * project
 *
 * @author zt generator 
 * @since 1.0.0 2023-11-06
 * @since 1.0.0 2023-11-07
 */
@Data
@EqualsAndHashCode(callSuper=false)
@@ -21,8 +21,32 @@
public class Project extends BusiEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "委托单位名称")
    private String entrustUnitName;
    @ApiModelProperty(value = "委托单位地址")
    private String entrustUnitAddress;
    @ApiModelProperty(value = "委托单位联系人")
    private String entrustUnitContact;
    @ApiModelProperty(value = "委托单位联系方式")
    private String entrustUnitContWay;
    @ApiModelProperty(value = "开发单位名称")
    private String developUnitName;
    @ApiModelProperty(value = "开发单位地址")
    private String developUnitAddress;
    @ApiModelProperty(value = "开发单位联系人")
    private String developUnitContact;
    @ApiModelProperty(value = "开发单位联系方式")
    private String developUnitContWay;
    @ApiModelProperty(value = "软件名称")
    private String softwarename;
    private String software;
    @ApiModelProperty(value = "项目编号")
    private String code;
@@ -36,14 +60,8 @@
    @ApiModelProperty(value = "关键等级")
    private Integer criticalLevel;
    @ApiModelProperty(value = "运行环境")
    private String optEnviron;
    @ApiModelProperty(value = "编程语言")
    private String programLang;
    @ApiModelProperty(value = "软件类型")
    private Integer softwareType;
    @ApiModelProperty(value = "测试级别")
    private Integer testLevel;
    @ApiModelProperty(value = "项目负责人")
    private String projectLeader;
@@ -55,6 +73,6 @@
    private String projectReviewer;
    @ApiModelProperty(value = "是否签署合同")
    private String isContract;
    private Integer isContract;
}
modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java
@@ -13,7 +13,7 @@
 * project
 *
 * @author zt generator 
 * @since 1.0.0 2023-11-06
 * @since 1.0.0 2023-11-07
 */
@Service
public class ProjectService  extends BaseService<ProjectDao, Project> {
modules/mainPart/src/main/resources/mapper/mainParts/TaskCenterDao.xml
File was deleted
web/packages/views/pages/generator.vue
@@ -3,7 +3,8 @@
    <div class="mod-sys__generator" >
        <el-form :model="dataForm" label-width="80px" @keyup.enter.native="getDataList()">
          <el-form-item>
            <el-input style="width: 30%;margin-right: 20px;" v-model="dataForm.tableName" placeholder="请输入表名" clearable></el-input>
          <el-input style="width: 30%;margin-right: 20px;" v-model="dataForm.tableName" placeholder="请输入表名"
                    clearable></el-input>
            <el-button @click="getTableInfo()">查询</el-button>
          </el-form-item>
        </el-form>
@@ -41,7 +42,9 @@
        </el-table-column>
      </el-table>
      <el-divider><el-tag type="primary">生成代码参数:</el-tag></el-divider>
      <el-divider>
        <el-tag type="primary">生成代码参数:</el-tag>
      </el-divider>
      <div v-show="dataForm.tableData.length > 0" style="height:300px;overflow-y: auto">
        <el-form :model="dataForm" :rules="dataRule" ref="dataForm" label-width="200px">
@@ -92,7 +95,11 @@
  export default {
    data() {
      return {
        modules: [], // 后台modules
        modules: [{id: '11', fileName: '后端', filePath: 'D:\\test_project\\modules\\mainPart'}, {
          id: '22',
          fileName: '前端',
          filePath: 'D:\\test_project\\web'
        }], // 后台modules
        eqList: [],
        dataForm: {
          tableName: '',
@@ -100,7 +107,7 @@
          javaFilePath: '',
          vueFilePath: '',
          checked: true,
          packName: 'com.zt.modules',
          packName: 'com.zt.life.modules',
          isPageFlag: true,
          isExport: false,
          tableData: []
web/src/views/modules/project/Project-AddOrUpdate.vue
New file
@@ -0,0 +1,109 @@
<template>
  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
      <zt-form-item label="委托单位名称" prop="entrustUnitName" rules="required">
                        <el-input v-model="dataForm.entrustUnitName"></el-input>
                </zt-form-item>
      <zt-form-item label="委托单位地址" prop="entrustUnitAddress" rules="required">
                        <el-input v-model="dataForm.entrustUnitAddress"></el-input>
                </zt-form-item>
      <zt-form-item label="委托单位联系人" prop="entrustUnitContact" rules="required">
                        <el-input v-model="dataForm.entrustUnitContact"></el-input>
                </zt-form-item>
      <zt-form-item label="委托单位联系方式" prop="entrustUnitContWay" rules="required">
                        <el-input v-model="dataForm.entrustUnitContWay"></el-input>
                </zt-form-item>
      <zt-form-item label="开发单位名称" prop="developUnitName" rules="required">
                        <el-input v-model="dataForm.developUnitName"></el-input>
                </zt-form-item>
      <zt-form-item label="开发单位地址" prop="developUnitAddress" rules="required">
                        <el-input v-model="dataForm.developUnitAddress"></el-input>
                </zt-form-item>
      <zt-form-item label="开发单位联系人" prop="developUnitContact" rules="required">
                        <el-input v-model="dataForm.developUnitContact"></el-input>
                </zt-form-item>
      <zt-form-item label="开发单位联系方式" prop="developUnitContWay" rules="required">
                        <el-input v-model="dataForm.developUnitContWay"></el-input>
                </zt-form-item>
      <zt-form-item label="软件名称" prop="software" rules="required">
                        <el-input v-model="dataForm.software"></el-input>
                </zt-form-item>
      <zt-form-item label="项目编号" prop="code" rules="required">
                        <el-input v-model="dataForm.code"></el-input>
                </zt-form-item>
      <zt-form-item label="项目标识" prop="identity" rules="required">
                        <el-input v-model="dataForm.identity"></el-input>
                </zt-form-item>
      <zt-form-item label="密级" prop="secretClass" rules="required">
                        <zt-dict v-model="dataForm.secretClass" dict="secret_class"></zt-dict>
                </zt-form-item>
      <zt-form-item label="关键等级" prop="criticalLevel" rules="required">
                        <zt-dict v-model="dataForm.criticalLevel" dict="critical_level"></zt-dict>
                </zt-form-item>
      <zt-form-item label="测试级别" prop="testLevel" rules="required">
                        <zt-dict v-model="dataForm.testLevel" dict="test_level"></zt-dict>
                </zt-form-item>
      <zt-form-item label="项目负责人" prop="projectLeader" rules="required">
                        <el-input v-model="dataForm.projectLeader"></el-input>
                </zt-form-item>
      <zt-form-item label="项目测试人员" prop="projectTesters" rules="required">
                        <el-input v-model="dataForm.projectTesters"></el-input>
                </zt-form-item>
      <zt-form-item label="项目审核人员" prop="projectReviewer" rules="required">
                        <el-input v-model="dataForm.projectReviewer"></el-input>
                </zt-form-item>
      <zt-form-item label="是否签署合同" prop="isContract" rules="required">
                        <zt-dict v-model="dataForm.isContract" dict="is_or_not"></zt-dict>
                </zt-form-item>
    </el-form>
  </zt-dialog>
</template>
<script>
  export default {
    data() {
      return {
        dataForm: {
          id: '',
          entrustUnitName: '',
          entrustUnitAddress: '',
          entrustUnitContact: '',
          entrustUnitContWay: '',
          developUnitName: '',
          developUnitAddress: '',
          developUnitContact: '',
          developUnitContWay: '',
          software: '',
          code: '',
          identity: '',
          secretClass: '',
          criticalLevel: '',
          testLevel: '',
          projectLeader: '',
          projectTesters: '',
          projectReviewer: '',
          isContract: ''
        }
      }
    },
    methods: {
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/project//${this.dataForm.id}`)
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
      },
      // 表单提交
      async formSubmit() {
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project//', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
        }
      }
    }
  }
</script>
web/src/views/modules/project/Project.vue
New file
@@ -0,0 +1,90 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-project-project}">
      <zt-table-wraper query-url="/project//page" delete-url="/project/" v-slot="{ table }">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
          <el-form-item>
                                <el-input v-model="dataForm.entrustUnitName" placeholder="请输入委托单位名称" clearable></el-input>
          </el-form-item>
          <el-form-item>
                                <el-input v-model="dataForm.developUnitName" placeholder="请输入开发单位名称" clearable></el-input>
          </el-form-item>
          <el-form-item>
                                <el-input v-model="dataForm.software" placeholder="请输入软件名称" clearable></el-input>
          </el-form-item>
          <el-form-item>
                                <el-input v-model="dataForm.code" placeholder="请输入项目编号" clearable></el-input>
          </el-form-item>
          <el-form-item>
                                <el-input v-model="dataForm.identity" placeholder="请输入项目标识" clearable></el-input>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.criticalLevel" dict="critical_level" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.testLevel" dict="test_level" 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="delete" perm="project:delete" @click="table.deleteHandle()"/>
          </el-form-item>
        </el-form>
        <el-table v-loading="table.dataLoading" :data="table.dataList" border @selection-change="table.selectionChangeHandle">
          <el-table-column type="selection" width="40"/>
            <el-table-column prop="entrustUnitName" label="委托单位名称"/>
                <el-table-column prop="entrustUnitAddress" label="委托单位地址"/>
                <el-table-column prop="entrustUnitContact" label="委托单位联系人"/>
                <el-table-column prop="entrustUnitContWay" label="委托单位联系方式"/>
                <el-table-column prop="developUnitName" label="开发单位名称"/>
                <el-table-column prop="developUnitAddress" label="开发单位地址"/>
                <el-table-column prop="developUnitContact" label="开发单位联系人"/>
                <el-table-column prop="developUnitContWay" label="开发单位联系方式"/>
                <el-table-column prop="software" label="软件名称"/>
                <el-table-column prop="code" label="项目编号"/>
                <el-table-column prop="identity" label="项目标识"/>
                <zt-table-column-dict prop="secretClass" label="密级" dict="secret_class"/>
                <zt-table-column-dict prop="criticalLevel" label="关键等级" dict="critical_level"/>
                <zt-table-column-dict prop="testLevel" label="测试级别" dict="test_level"/>
                <el-table-column prop="projectLeader" label="项目负责人"/>
                <el-table-column prop="projectTesters" label="项目测试人员"/>
                <el-table-column prop="projectReviewer" label="项目审核人员"/>
                <zt-table-column-dict prop="isContract" label="是否签署合同" dict="is_or_not"/>
          <zt-table-column-handle :table="table" edit-perm="project:update" delete-perm="project::delete"/>
        </el-table>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update @refreshDataList="table.query"/>
      </zt-table-wraper>
    </div>
  </el-card>
</template>
<script>
  import AddOrUpdate from './Project-AddOrUpdate'
  export default {
    data() {
      return {
        dataForm: {
          entrustUnitName: '',
          developUnitName: '',
          software: '',
          code: '',
          identity: '',
          criticalLevel: '',
          testLevel: '',
        }
      }
    },
    components: {
      AddOrUpdate
    }
  }
</script>
web/src/views/modules/project/project-add-or-update.vue
File was deleted
web/src/views/modules/project/project.vue
File was deleted
zt/core/src/main/java/com/zt/generator/controller/SysGeneratorController.java
@@ -45,7 +45,7 @@
public class SysGeneratorController {
    @GetMapping("properties")
    @RequiresPermissions(Constant.Permissions.SUPER_ADMIN)
    //@RequiresPermissions(Constant.Permissions.SUPER_ADMIN)
    public Result<JSONObject> queryProperties() {
        JSONObject jsonObject = new JSONObject();
        try {
@@ -133,7 +133,7 @@
                JSONObject json = array.getJSONObject(i);
                String columnName = json.getString("columnName");
                if ("is_delete,dept_id,company_id,tenant_id,creator,create_date,updater,update_date"
                        .indexOf(columnName) >= 0) {
                        .indexOf(columnName.toLowerCase()) >= 0) {
                    json.put("isTableColumn", "false");
                }
            }
zt/core/src/main/java/com/zt/generator/data/DBUtil.java
@@ -6,10 +6,8 @@
import org.springframework.jdbc.core.JdbcTemplate;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
public class DBUtil {
@@ -33,21 +31,35 @@
        try {
            DatabaseMetaData dbm = conn.getMetaData();
            String currentCatalog = conn.getCatalog();
            Map<String, String> mapDict = new HashMap<>();
            String sql = "SELECT * FROM sys_dict_type WHERE is_delete=0";
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            ResultSet resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                String dictType = resultSet.getString("DICT_TYPE");
                mapDict.put(dictType, dictType);
            }
            ResultSet rs = dbm.getColumns(currentCatalog, null, tableName, null);
            DataTable dt = new DataTable(rs);
            rs = dbm.getPrimaryKeys(currentCatalog, null, tableName);
            DataTable keyDt = new DataTable(rs);
            Map map = keyDt.toMap("Column_Name", "PK_Name");
            dt.insertColumn("isKey");
            dt.insertColumn("dictType");
            for (int i = 0; i < dt.getRowCount(); i++) {
                DataRow dr = dt.getDataRow(i);
                if (map.containsKey(dr.getString("Column_Name"))) {
                String columnName = dr.getString("Column_Name");
                if (map.containsKey(columnName)) {
                    dr.set("isKey", "Y");
                } else {
                    dr.set("isKey", "N");
                }
                if (mapDict.get(columnName) != null) {
                    dr.set("dictType", columnName);
                } else {
                    dr.set("dictType", "");
                }
            }
            return dt;
        } catch (Exception e) {
zt/core/src/main/java/com/zt/generator/utils/GenUtils.java
@@ -155,6 +155,7 @@
                pathName = pathName.substring(1);
            }
        }
        map.put("importPath", tableName.replaceAll("_", "-"));// url请求的
        map.put("pathName", pathName);// url请求的
        map.put("permName", pathName.replace("/", ":"));// 权限的
        map.put("columns", columsList);
@@ -197,10 +198,10 @@
            String fileName = "";
            String filePath = "";
            if (template.contains("index.vue")) {
                fileName = tableName.substring(tableName.indexOf("_") + 1).replaceAll("_", "-") + ".vue";
                fileName = className + ".vue";
                filePath = getFilePath(template, vueFilePath, packageName, moduleName);
            } else if (template.contains("add-or-update.vue")) {
                fileName = tableName.substring(tableName.indexOf("_") + 1).replaceAll("_", "-") + "-add-or-update.vue";
                fileName = className + "-AddOrUpdate.vue";
                filePath = getFilePath(template, vueFilePath, packageName, moduleName);
            } else if (template.contains("Entity.java.vm")) {
                fileName = className + ".java";
zt/core/src/main/resources/template/add-or-update.vue.vm
@@ -3,7 +3,11 @@
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
#foreach($column in $columns)
      <zt-form-item label="${column.comments}" prop="${column.attrName}" rules="required">
          #if($column.dictType != 'null' &&  $column.dictType != '')
              <zt-dict v-model="dataForm.${column.attrName}" dict="$column.dictType"></zt-dict>
          #else
        <el-input v-model="dataForm.${column.attrName}"></el-input>
          #end
      </zt-form-item>
#end
    </el-form>
zt/core/src/main/resources/template/index.vue.vm
@@ -6,21 +6,30 @@
#foreach($column in $columns)
#if($column.isSelectColumn == 'true')
          <el-form-item>
              #if($column.dictType != 'null' &&  $column.dictType != '')
                  <zt-dict v-model="dataForm.${column.attrName}" dict="$column.dictType" clearable></zt-dict>
              #else
            <el-input v-model="dataForm.${column.attrName}" placeholder="请输入${column.comments}" clearable></el-input>
              #end
          </el-form-item>
#end
#end
          <el-form-item>
            <zt-button type="query" @click="table.query()"/>
            <zt-button type="add" perm="${moduleName}::add" @click="table.editHandle()"/>
            <zt-button type="delete" perm="${moduleName}::delete" @click="table.deleteHandle()"/>
            <zt-button type="add" perm="${moduleName}:add" @click="table.editHandle()"/>
            <zt-button type="delete" perm="${moduleName}:delete" @click="table.deleteHandle()"/>
          </el-form-item>
        </el-form>
        <el-table v-loading="table.dataLoading" :data="table.dataList" border @selection-change="table.selectionChangeHandle">
          <el-table-column type="selection" width="40"/>
#foreach($column in $columns)
#if($column.isTableColumn == 'true')
    #if($column.dictType != 'null' &&  $column.dictType != '')
        <zt-table-column-dict prop="${column.attrName}" label="${column.comments}" dict="$column.dictType"/>
    #else
          <el-table-column prop="${column.attrName}" label="${column.comments}"/>
    #end
#end
#end
@@ -34,7 +43,7 @@
</template>
<script>
  import AddOrUpdate from './${tableName}-add-or-update'
  import AddOrUpdate from './${className}-AddOrUpdate'
  export default {
    data() {
      return {