From e9d51762bf342f3f9b542ef0214ed41a6ff7d679 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期二, 07 十一月 2023 13:58:45 +0800 Subject: [PATCH] Changes --- modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java | 2 modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java | 40 ++++- zt/core/src/main/resources/template/index.vue.vm | 19 ++ zt/core/src/main/java/com/zt/generator/controller/SysGeneratorController.java | 4 zt/core/src/main/java/com/zt/generator/utils/GenUtils.java | 5 modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java | 2 zt/core/src/main/resources/template/add-or-update.vue.vm | 6 /dev/null | 49 ------- web/src/views/modules/project/Project-AddOrUpdate.vue | 109 +++++++++++++++ web/src/views/modules/project/Project.vue | 90 ++++++++++++ zt/core/src/main/java/com/zt/generator/data/DBUtil.java | 30 +++- web/packages/views/pages/generator.vue | 37 +++-- modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java | 4 13 files changed, 299 insertions(+), 98 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java index 483d93a..d28c818 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/project/controller/ProjectController.java +++ b/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)); diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java index 0a88920..a5b0fb4 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/project/dao/ProjectDao.java +++ b/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> { diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java index 9d7cdc1..ca54ea8 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/project/model/Project.java +++ b/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; } diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java index f9d905c..33fe756 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/ProjectService.java +++ b/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> { diff --git a/modules/mainPart/src/main/resources/mapper/mainParts/TaskCenterDao.xml b/modules/mainPart/src/main/resources/mapper/mainParts/TaskCenterDao.xml deleted file mode 100644 index 21ea4e8..0000000 --- a/modules/mainPart/src/main/resources/mapper/mainParts/TaskCenterDao.xml +++ /dev/null @@ -1,241 +0,0 @@ -<?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.mainPart.task.dao.TaskCenterDao"> - <delete id="deleteTable"> - drop table ${tableName} - </delete> - - <select id="page" resultType="com.zt.modules.workflow.model.WfRunTask"> - SELECT - a.id, - a.prev_id, - a.prev_step_id, - a.flow_id, - a.step_id, - a.step_name, - a.biz_id, - a.title, - a.sender_id, - a.sender_name, - a.sender_time, - a.group_id, - a.receive_id, - a.receive_name, - a.receive_time, - a.open_time, - /* a.finish_time,*/ - a.finish_time2, - a.comment, - a.is_sign, - a.sort, - a.note, - a.remark, - a.is_delete, - a.dept_id, - a.company_id, - a.tenant_id, - a.topic, - a.apply_user_id, - a.apply_time, -/* a.apply_user,*/ - a.step_marker, - /*--step_router,*/ - a.flow_code, - a.group_id2, - a.finish_id, - a.finish_name, - a.biz_group_id, - a.opinion, - (case when status = 1 then '琚┏鍥�' else '' end) as statusName, - DateDiff(CURRENT_DATE,a.RECEIVE_TIME) as idleDays, - a.topic AS taskName, - a.step_name as taskType, - a.biz_id as id, - 0 as Product_id, - 0 as MAINTAIN_LEVEL, - 0 as YEAR, - a.RECEIVE_NAME as apply_user, - date_add(a.RECEIVE_TIME,interval 7 day) AS finishTime, - a.STEP_ID as APPROVE_STEP_ID, - a.STEP_MARKER, - a.FLOW_CODE, - a.APPLY_USER as taskPeople, - 2 code, - a.title as summary, - b.STEP_ROUTER, - b.STEP_ROUTER_ID - FROM WF_RUN_TASK a - left join WF_DEF_STEP b on a.step_id = b.id - WHERE a.is_delete =0 and a.status in (0,1) - AND a.RECEIVE_ID = #{userId} - <if test="projectId != null and projectId != ''"> - and a.biz_group_id = #{projectId} - </if> - <if test="djxlSystem != null and djxlSystem != ''"> - and a.FLOW_ID in (select id from wf_def where system_type = #{djxlSystem}) - </if> - ORDER BY a.receive_time DESC - </select> - - <update id="pageDone_temp"> - drop table if exists ${pageDone_temp1}; - create table ${pageDone_temp1} as - SELECT * FROM ( - SELECT - a1.id, - a1.title, - a1.topic, - a1.remark, - a1.biz_id, - a1.biz_group_id, - a1.flow_code, - a1.step_id, - a1.step_marker, - /*a.step_name as step_name_my,*/ - a1.receive_name as sender_name, - a1.receive_time, - a1.finish_time as finish_time, - a1.status - FROM WF_RUN_TASK a1 - WHERE a1.is_delete = 0 - and (a1.receive_id=#{userId} - or EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND - s2.is_delete=0 and s1.CODE in ('all','xtglybm'))) - <if test="djxlSystem != null and djxlSystem != ''"> - and a1.FLOW_ID in (select id from wf_def where system_type = #{djxlSystem}) - </if> - - ) a2 - where status in (20,10) - group by a2.biz_id,a2.flow_code,a2.step_id; - - drop table if exists ${pageDone_temp2}; - create table ${pageDone_temp2} as - select * from - (select - b1.prev_id, - b1.group_id, - b1.biz_id, - b1.flow_code, - b1.step_id, - b1.step_marker, - b1.step_name, - b1.receive_name, - b1.receive_time, - b1.status - from ${pageDone_temp1} a1, - WF_RUN_TASK b1 - WHERE b1.is_delete = 0 - and b1.status in(0,1,100) - - and a1.biz_id = b1.biz_id - and a1.flow_code = b1.flow_code - order by b1.receive_time DESC - ) b2 group by biz_id,flow_code,step_id; - </update> - - <select id="pageDone" resultType="com.zt.modules.workflow.model.WfRunTask"> - SELECT - a.id, - a.title, - a.topic, - a.remark, - a.biz_id, - a.flow_code, - a.biz_group_id, - c.STEP_READ_ROUTER_ID, - a.sender_name, - a.finish_time, - b.prev_id, - b.step_marker, - b.step_name, - case when c.CAN_RECALL=1 and a.id=b.prev_id and c.step_no < d.step_no and d.step_no < 100 - then 1 else 0 end as canRecall, - c.step_no as myStepNo, - d.step_no as curStepNo, - (select group_concat(DISTINCT receive_name) from ${pageDone_temp2} s where s.group_id=b.group_id limit 0,3) receive_name, - b.receive_time, - (case when a.status = 10 then '椹冲洖' else '' end) as statusName, - c.name as finishStepName, - a.sender_name as finishUserName - FROM ${pageDone_temp1} a - join ${pageDone_temp2} b on a.biz_id = b.biz_id and a.flow_code = b.flow_code - left join WF_DEF_STEP c on a.step_id = c.id - left join WF_DEF_STEP d on b.step_id = d.id - group by a.biz_id,a.flow_code,a.step_id - ORDER BY a.receive_time DESC - </select> - - <select id="getRowByProjectId" resultType="com.zt.modules.workflow.model.WfRunTask"> - SELECT - a.id, - a.prev_id, - a.prev_step_id, - a.flow_id, - a.step_id, - a.step_name, - a.biz_id, - a.title, - a.sender_id, - a.sender_name, - a.sender_time, - a.group_id, - a.receive_id, - a.receive_name, - a.receive_time, - a.open_time, - a.finish_time, - a.finish_time2, - a.comment, - a.is_sign, - a.sort, - a.note, - a.remark, - a.is_delete, - a.dept_id, - a.company_id, - a.tenant_id, - a.topic, - a.apply_user_id, - a.apply_time, - a.apply_user, - a.step_marker, - /*--step_router,*/ - a.flow_code, - a.group_id2, - a.finish_id, - a.finish_name, - a.biz_group_id, - a.opinion, - (case when status = 1 then '琚┏鍥�' else '' end) as statusName, - DateDiff(CURRENT_DATE,a.RECEIVE_TIME) as idleDays, - a.topic AS taskName, - a.step_name as taskType, - a.biz_id as id, - 0 as Product_id, - 0 as MAINTAIN_LEVEL, - 0 as YEAR, - a.RECEIVE_TIME AS finishTime, - a.STEP_ID as APPROVE_STEP_ID, - a.STEP_MARKER, - a.FLOW_CODE, - a.APPLY_USER as taskPeople, - 2 code, - a.title as summary, - b.STEP_ROUTER, - b.STEP_ROUTER_ID - FROM WF_RUN_TASK a - left join WF_DEF_STEP b on a.step_id = b.id - WHERE a.is_delete =0 and a.status in (0,1) - and a.topic=(select model_name from wx_project where id=#{projectId}) - and a.step_marker='jsfa_sc' - ORDER BY a.receive_time DESC limit 1 - </select> - - <update id="oneKeyDoneCy"> - update wf_run_task - set status=20, UPDATER=#{userId}, UPDATE_DATE=CURRENT_TIMESTAMP - where STEP_MARKER in('rjh_cy','zjh_cy','yjh_cy') and status=0 and RECEIVE_ID=#{userId} - </update> -</mapper> diff --git a/web/packages/views/pages/generator.vue b/web/packages/views/pages/generator.vue index 0915787..b9c071b 100644 --- a/web/packages/views/pages/generator.vue +++ b/web/packages/views/pages/generator.vue @@ -1,14 +1,15 @@ <template> <div class="fa-card-a calcHeight" style="height: calc(100vh - 198px);overflow-y: hidden"> - <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-button @click="getTableInfo()">鏌ヨ</el-button> - </el-form-item> - </el-form> - <el-table :data="dataForm.tableData" height="320" stripe style="width: 100%"> - <el-table-column prop="columnName" label="CODE"> </el-table-column> + <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-button @click="getTableInfo()">鏌ヨ</el-button> + </el-form-item> + </el-form> + <el-table :data="dataForm.tableData" height="320" stripe style="width: 100%"> + <el-table-column prop="columnName" label="CODE"></el-table-column> <el-table-column prop="remarks" label="鍚嶇О"> <template v-slot="{ row }"> <el-input size="small" v-model="row.remarks"></el-input> @@ -23,7 +24,7 @@ <!-- <el-table-column prop="columnSize" label="鏁版嵁闀垮害"></el-table-column> --> <el-table-column prop="isTableColumn" label="椤甸潰琛ㄦ牸鍒�"> <template v-slot="{ row }"> - <el-checkbox v-model="row.isTableColumn"></el-checkbox> + <el-checkbox v-model="row.isTableColumn"></el-checkbox> </template> </el-table-column> <el-table-column prop="isSelectColumn" label="椤甸潰鏌ヨ鍒�"> @@ -41,16 +42,18 @@ </el-table-column> </el-table> - <el-divider><el-tag type="primary">鐢熸垚浠g爜鍙傛暟:</el-tag></el-divider> + <el-divider> + <el-tag type="primary">鐢熸垚浠g爜鍙傛暟:</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"> <el-form-item prop="className" label="瀹炰綋瀵硅薄鍚嶇О" style="width: 60%"> - <el-input v-model="dataForm.className" placeholder="璇疯緭鍏ョ敓鎴愮殑瀹炰綋瀵硅薄鍚嶇О" ></el-input> + <el-input v-model="dataForm.className" placeholder="璇疯緭鍏ョ敓鎴愮殑瀹炰綋瀵硅薄鍚嶇О"></el-input> </el-form-item> <el-form-item prop="packName" label="鍖呭悕" style="width: 60%"> - <el-input v-model="dataForm.packName" placeholder="璇疯緭鍏ョ敓鎴愮殑Java鍖呭悕" ></el-input> + <el-input v-model="dataForm.packName" placeholder="璇疯緭鍏ョ敓鎴愮殑Java鍖呭悕"></el-input> </el-form-item> <el-form-item prop="javaFilePath" label="Java椤圭洰璺緞" :inline="true"> @@ -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: [] diff --git a/web/src/views/modules/project/Project-AddOrUpdate.vue b/web/src/views/modules/project/Project-AddOrUpdate.vue new file mode 100644 index 0000000..e0f1801 --- /dev/null +++ b/web/src/views/modules/project/Project-AddOrUpdate.vue @@ -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> diff --git a/web/src/views/modules/project/Project.vue b/web/src/views/modules/project/Project.vue new file mode 100644 index 0000000..599ad11 --- /dev/null +++ b/web/src/views/modules/project/Project.vue @@ -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> diff --git a/web/src/views/modules/project/project-add-or-update.vue b/web/src/views/modules/project/project-add-or-update.vue deleted file mode 100644 index 5fac391..0000000 --- a/web/src/views/modules/project/project-add-or-update.vue +++ /dev/null @@ -1,85 +0,0 @@ -<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="softwarename" rules="required"> - <el-input v-model="dataForm.softwarename"></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"> - <el-input v-model="dataForm.secretClass"></el-input> - </zt-form-item> - <zt-form-item label="鍏抽敭绛夌骇" prop="criticalLevel" rules="required"> - <el-input v-model="dataForm.criticalLevel"></el-input> - </zt-form-item> - <zt-form-item label="杩愯鐜" prop="optEnviron" rules="required"> - <el-input v-model="dataForm.optEnviron"></el-input> - </zt-form-item> - <zt-form-item label="缂栫▼璇█" prop="programLang" rules="required"> - <el-input v-model="dataForm.programLang"></el-input> - </zt-form-item> - <zt-form-item label="杞欢绫诲瀷" prop="softwareType" rules="required"> - <el-input v-model="dataForm.softwareType"></el-input> - </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"> - <el-input v-model="dataForm.isContract"></el-input> - </zt-form-item> - </el-form> - </zt-dialog> -</template> - -<script> - export default { - data() { - return { - dataForm: { - id: '', - softwarename: '', - code: '', - identity: '', - secretClass: '', - criticalLevel: '', - optEnviron: '', - programLang: '', - softwareType: '', - 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> diff --git a/web/src/views/modules/project/project.vue b/web/src/views/modules/project/project.vue deleted file mode 100644 index 8efe674..0000000 --- a/web/src/views/modules/project/project.vue +++ /dev/null @@ -1,49 +0,0 @@ -<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> - <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="softwarename" label="杞欢鍚嶇О"/> - <el-table-column prop="code" label="椤圭洰缂栧彿"/> - <el-table-column prop="identity" label="椤圭洰鏍囪瘑"/> - <el-table-column prop="secretClass" label="瀵嗙骇"/> - <el-table-column prop="criticalLevel" label="鍏抽敭绛夌骇"/> - <el-table-column prop="optEnviron" label="杩愯鐜"/> - <el-table-column prop="programLang" label="缂栫▼璇█"/> - <el-table-column prop="softwareType" label="杞欢绫诲瀷"/> - <el-table-column prop="projectLeader" label="椤圭洰璐熻矗浜�"/> - <el-table-column prop="projectTesters" label="椤圭洰娴嬭瘯浜哄憳"/> - <el-table-column prop="projectReviewer" label="椤圭洰瀹℃牳浜哄憳"/> - <el-table-column prop="isContract" label="鏄惁绛剧讲鍚堝悓"/> - - <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-add-or-update' - export default { - data() { - return { - dataForm: { - } - } - }, - components: { - AddOrUpdate - } - } -</script> diff --git a/zt/core/src/main/java/com/zt/generator/controller/SysGeneratorController.java b/zt/core/src/main/java/com/zt/generator/controller/SysGeneratorController.java index e9c794b..a609970 100644 --- a/zt/core/src/main/java/com/zt/generator/controller/SysGeneratorController.java +++ b/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"); } } diff --git a/zt/core/src/main/java/com/zt/generator/data/DBUtil.java b/zt/core/src/main/java/com/zt/generator/data/DBUtil.java index d9d6eca..1bc6b4f 100644 --- a/zt/core/src/main/java/com/zt/generator/data/DBUtil.java +++ b/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 { @@ -18,7 +16,7 @@ try { DatabaseMetaData dbm = conn.getMetaData(); String currentCatalog = conn.getCatalog(); - String[] types = { "TABLE" }; + String[] types = {"TABLE"}; ResultSet tabs = dbm.getTables(currentCatalog, null, tableName, types); if (tabs.next()) { return true; @@ -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) { diff --git a/zt/core/src/main/java/com/zt/generator/utils/GenUtils.java b/zt/core/src/main/java/com/zt/generator/utils/GenUtils.java index bdfc5af..0dfe9a1 100644 --- a/zt/core/src/main/java/com/zt/generator/utils/GenUtils.java +++ b/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"; diff --git a/zt/core/src/main/resources/template/add-or-update.vue.vm b/zt/core/src/main/resources/template/add-or-update.vue.vm index e7b9b4a..fb3afda 100644 --- a/zt/core/src/main/resources/template/add-or-update.vue.vm +++ b/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"> - <el-input v-model="dataForm.${column.attrName}"></el-input> + #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> diff --git a/zt/core/src/main/resources/template/index.vue.vm b/zt/core/src/main/resources/template/index.vue.vm index d1e57e7..67593bd 100644 --- a/zt/core/src/main/resources/template/index.vue.vm +++ b/zt/core/src/main/resources/template/index.vue.vm @@ -6,21 +6,30 @@ #foreach($column in $columns) #if($column.isSelectColumn == 'true') <el-form-item> - <el-input v-model="dataForm.${column.attrName}" placeholder="璇疯緭鍏�${column.comments}" clearable></el-input> + #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') - <el-table-column prop="${column.attrName}" label="${column.comments}"/> + #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 { -- Gitblit v1.9.1