Commit bd3d0133 authored by xiandafu's avatar xiandafu
Browse files

增加数据字典,附件,excel导入导出生成

parent e8b30d62
...@@ -24,7 +24,7 @@ logging.level.org.springframework.web.servlet.mvc.method.annotation=warn ...@@ -24,7 +24,7 @@ logging.level.org.springframework.web.servlet.mvc.method.annotation=warn
server.port=8080 server.port=8080
#html视图交给beetl渲染 #html视图交给beetl渲染
beetl.suffix=html beetl.suffix=html
beetlsql.dbStyle=org.beetl.sql.core.db.OracleStyle beetlsql.dbStyle=org.beetl.sql.core.db.MySqlStyle
#beetlsql.basePackage=com.ibeetl,com.xxx.yourpackage #beetlsql.basePackage=com.ibeetl,com.xxx.yourpackage
beetlsql.basePackage=com beetlsql.basePackage=com
app.name=SpringBoot-Plus app.name=SpringBoot-Plus
......
...@@ -72,6 +72,7 @@ class JavaEntityGen implements AutoGen{ ...@@ -72,6 +72,7 @@ class JavaEntityGen implements AutoGen{
map.put("name", attr.getName()); map.put("name", attr.getName());
map.put("methodName", BaseTarget.upperFirst(attr.getName())); map.put("methodName", BaseTarget.upperFirst(attr.getName()));
map.put("isId", attr.isId()); map.put("isId", attr.isId());
map.put("dictType", attr.getDictType());
attrs.add(map); attrs.add(map);
} }
......
...@@ -7,6 +7,8 @@ public class Attribute { ...@@ -7,6 +7,8 @@ public class Attribute {
private String displayName; private String displayName;
private boolean isId; private boolean isId;
private boolean showInQuery =false; private boolean showInQuery =false;
//数据字典
private String dictType;
private String comment; private String comment;
...@@ -58,5 +60,11 @@ public class Attribute { ...@@ -58,5 +60,11 @@ public class Attribute {
public void setComment(String comment) { public void setComment(String comment) {
this.comment = comment; this.comment = comment;
} }
public String getDictType() {
return dictType;
}
public void setDictType(String dictType) {
this.dictType = dictType;
}
} }
...@@ -14,6 +14,9 @@ public class Entity { ...@@ -14,6 +14,9 @@ public class Entity {
Attribute nameAttribute; Attribute nameAttribute;
String comment; String comment;
String system; String system;
boolean includeExcel =false;
boolean attachment=false;
public String getName() { public String getName() {
return name; return name;
} }
...@@ -90,5 +93,17 @@ public class Entity { ...@@ -90,5 +93,17 @@ public class Entity {
} }
return newList; return newList;
} }
public boolean isIncludeExcel() {
return includeExcel;
}
public void setIncludeExcel(boolean includeExcel) {
this.includeExcel = includeExcel;
}
public boolean isAttachment() {
return attachment;
}
public void setAttachment(boolean attachment) {
this.attachment = attachment;
}
} }
...@@ -131,15 +131,7 @@ public class CoreCodeGenController { ...@@ -131,15 +131,7 @@ public class CoreCodeGenController {
copy(resource,"beetl.properties"); copy(resource,"beetl.properties");
copy(resource,"btsql-ext.properties"); copy(resource,"btsql-ext.properties");
copy(resource,"banner.txt"); copy(resource,"banner.txt");
//修改application.properties的配置,改成手工添加
// Properties ps = new Properties();
// ps.load(new FileReader(config));
//// String str = ps.getProperty("beetlsql.basePackag");
// ps.put("beetlsql.basePackag", "ibeetl.com,"+basePackage);
// ps.store(new FileWriter(config), "");
//
return JsonResult.success(); return JsonResult.success();
} }
...@@ -319,22 +311,22 @@ public class CoreCodeGenController { ...@@ -319,22 +311,22 @@ public class CoreCodeGenController {
entity.setCode(info.getCode()); entity.setCode(info.getCode());
entity.setDisplayName(info.getDisplayName()); entity.setDisplayName(info.getDisplayName());
entity.setSystem(info.getSystem()); entity.setSystem(info.getSystem());
entity.setAttachment(data.entity.isAttachment());
entity.setIncludeExcel(data.entity.isIncludeExcel());
for (int i = 0; i < entity.getList().size(); i++) { for (int i = 0; i < entity.getList().size(); i++) {
Attribute attr = entity.getList().get(i); Attribute attr = entity.getList().get(i);
attr.setDisplayName(info.getList().get(i).getDisplayName()); attr.setDisplayName(info.getList().get(i).getDisplayName());
attr.setShowInQuery(info.getList().get(i).isShowInQuery()); attr.setShowInQuery(info.getList().get(i).isShowInQuery());
attr.setDictType(info.getList().get(i).getDictType());
if(attr.getName().equals(data.getNameAttr())) { if(attr.getName().equals(data.getNameAttr())) {
entity.setNameAttribute(attr); entity.setNameAttribute(attr);
} }
} }
if (StringUtils.isEmpty(entity.getCode()) || StringUtils.isEmpty(entity.getSystem())) { if (StringUtils.isEmpty(entity.getCode()) || StringUtils.isEmpty(entity.getSystem())) {
throw new PlatformException("code,system不能为空"); throw new PlatformException("code,system不能为空");
} }
return entity; return entity;
} }
...@@ -432,6 +424,7 @@ class EntityInfo { ...@@ -432,6 +424,7 @@ class EntityInfo {
String basePackage; String basePackage;
String nameAttr; String nameAttr;
public Entity getEntity() { public Entity getEntity() {
return entity; return entity;
} }
...@@ -464,4 +457,6 @@ class EntityInfo { ...@@ -464,4 +457,6 @@ class EntityInfo {
this.nameAttr = nameAttr; this.nameAttr = nameAttr;
} }
} }
...@@ -8,31 +8,39 @@ ...@@ -8,31 +8,39 @@
@ var item1=(size-i==1)?null:list[i+1]; @ var item1=(size-i==1)?null:list[i+1];
@ i=i+1; @ i=i+1;
@ var array = [item0,item1]; @ var array = [item0,item1];
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
@for(item in array){ @for(item in array){
@if(item==null){continue;} @if(item==null){continue;}
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">${item.displayName}</label> <label class="layui-form-label">${item.displayName}</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="${item.name}" @if(isEmpty(item.dictType)){
class="layui-input" > <input type="text" name="${item.name}" class="layui-input" >
</div> @}else{
</div> <layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
id="${item.name}" name="${item.name}" value="" />
@}
</div>
</div>
@} @}
</div> </div>
</div>
</div> @}
@if(entity.attachment){
<div class="layui-row">
<!-- 业务对象得有一个字段保存附件id,假设是attachmentId -->
<layui:attachment name="attachmentId" batchFileUUID="\${uuid()}" isNew="true"/>
</div>
@} @}
<layui:submitButtons id="addButton" />
<layui:submitButtons id="addButton" />
</form> </form>
<!--#} --> <!--#} -->
<script> <script>
layui.use(['add'], function(){ layui.use(['add'], function(){
var ${entity.code}Add = layui.add var ${entity.code}Add = layui.add
${entity.code}Add.init(); ${entity.code}Add.init();
}); });
</script> </script>
...@@ -8,29 +8,39 @@ ...@@ -8,29 +8,39 @@
@ var item1=(size-i==1)?null:list[i+1]; @ var item1=(size-i==1)?null:list[i+1];
@ i=i+1; @ i=i+1;
@ var array = [item0,item1]; @ var array = [item0,item1];
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
@for(item in array){ @for(item in array){
@if(item==null){continue;} @if(item==null){continue;}
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">${item.displayName}</label> <label class="layui-form-label">${item.displayName}</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="${item.name}" value="\${${entity.code}.${item.name}}" @if(isEmpty(item.dictType)){
<input type="text" id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}"
class="layui-input" > class="layui-input" >
</div> @}else{
</div> <layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
id="${item.name}" name="${item.name}" value="\${${entity.code}.${item.name}}" />
@}
</div>
</div>
@} @}
</div> </div>
</div> </div>
@} @}
<input type="hidden" name="${entity.idAttribute.name}" value=\${${entity.code}.${entity.idAttribute.name}} />
<layui:submitButtons id="updateButton" /> @if(entity.attachment){
<div class="layui-row">
<layui:attachment name="attachmentId" batchFileUUID="\${${entity.code}.attachmentId}" isNew="false" bizId="\${${entity.code}.${entity.idAttribute.name}}" bizType="${entity.name}"/>
</div>
@}
<input type="hidden" name="${entity.idAttribute.name}" value=\${${entity.code}.${entity.idAttribute.name}} />
<layui:submitButtons id="updateButton" />
</form> </form>
<!--#} --> <!--#} -->
<script> <script>
layui.use(['edit'], function(){ layui.use(['edit'], function(){
var ${entity.code}Edit = layui.edit var ${entity.code}Edit = layui.edit
${entity.code}Edit.init(); ${entity.code}Edit.init();
}); });
</script> </script>
...@@ -2,19 +2,23 @@ ...@@ -2,19 +2,23 @@
<layui:searchForm formId="searchForm" condition="\${search}"> <layui:searchForm formId="searchForm" condition="\${search}">
</layui:searchForm> </layui:searchForm>
<div class="layui-btn-group"> <div class="layui-btn-group">
<layui:accessButton function="${entity.code}.add" action="add">增加</layui:accessButton> <layui:accessButton function="${entity.code}.add" action="add">增加</layui:accessButton>
<layui:accessButton function="${entity.code}.edit" action="edit">编辑</layui:accessButton> <layui:accessButton function="${entity.code}.edit" action="edit">编辑</layui:accessButton>
<layui:accessButton function="${entity.code}.del" action="del">删除</layui:accessButton> <layui:accessButton function="${entity.code}.del" action="del">删除</layui:accessButton>
@if(entity.includeExcel){
</div> <layui:accessButton function="${entity.code}.exportExcel" action="exportExcel">导出excel</layui:accessButton>
<layui:accessButton function="${entity.code}.importExcel" action="importExcel">导入excel</layui:accessButton>
@}
</div>
<table id="${entity.code}Table" lay-filter="${entity.code}Table"></table> <table id="${entity.code}Table" lay-filter="${entity.code}Table"></table>
<!--#} --> <!--#} -->
<script> <script>
layui.use(['index'], function(){ layui.use(['index'], function(){
var index = layui.index var index = layui.index
index.init(); index.init();
}); });
</script> </script>
...@@ -13,6 +13,8 @@ import com.ibeetl.admin.core.util.ValidateConfig; ...@@ -13,6 +13,8 @@ import com.ibeetl.admin.core.util.ValidateConfig;
import org.beetl.sql.core.TailBean; import org.beetl.sql.core.TailBean;
import java.math.*; import java.math.*;
import com.ibeetl.admin.core.annotation.Dict;
import com.ibeetl.admin.core.entity.BaseEntity; import com.ibeetl.admin.core.entity.BaseEntity;
/* /*
...@@ -30,6 +32,10 @@ public class ${className} extends BaseEntity{ ...@@ -30,6 +32,10 @@ public class ${className} extends BaseEntity{
\@SeqID(name = ORACLE_CORE_SEQ_NAME) \@SeqID(name = ORACLE_CORE_SEQ_NAME)
\@AutoID \@AutoID
@} @}
@if(isNotEmpty(attr.dictType)) {
\@Dict(type="${attr.dictType}")
@}
private ${attr.type} ${attr.name} ; private ${attr.type} ${attr.name} ;
@} @}
......
...@@ -8,11 +8,15 @@ import java.util.Date; ...@@ -8,11 +8,15 @@ import java.util.Date;
*${entity.displayName}查询 *${entity.displayName}查询
*/ */
public class ${entity.name}Query extends PageParam { public class ${entity.name}Query extends PageParam {
@for(attr in attrs) { @for(attr in attrs) {
\@Query(name = "${attr.displayName}", display = true) @if(isNotEmpty(attr.dictType)) {
\@Query(name = "${attr.displayName}", display = true,type=Query.TYPE_DICT,dict="${attr.dictType}")
@}else {
\@Query(name = "${attr.displayName}", display = true)
@}
private ${attr.javaType} ${attr.name}; private ${attr.javaType} ${attr.name};
@} @}
@for(attr in attrs) { @for(attr in attrs) {
public ${attr.javaType} get${upperFirst(attr.name)}(){ public ${attr.javaType} get${upperFirst(attr.name)}(){
return ${attr.name}; return ${attr.name};
} }
......
...@@ -4,8 +4,8 @@ layui.define([ 'form', 'laydate', 'table','${entity.code}Api'], function(exports ...@@ -4,8 +4,8 @@ layui.define([ 'form', 'laydate', 'table','${entity.code}Api'], function(exports
var index = layui.index; var index = layui.index;
var view = { var view = {
init:function(){ init:function(){
Lib.initGenrealForm($("#updateForm"),form); Lib.initGenrealForm($("#updateForm"),form);
this.initSubmit(); this.initSubmit();
}, },
initSubmit:function(){ initSubmit:function(){
$("#updateButton").click(function(){ $("#updateButton").click(function(){
......
...@@ -27,7 +27,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { ...@@ -27,7 +27,7 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
}, },
@for(attr in entity.list){ @for(attr in entity.list){
{ {
field : '${attr.name}', field : '${isEmpty(attr.dictType)?attr.name:(attr.name+"Text")}', ${isNotEmpty(attr.dictType)?"//数据字典类型为 "+attr.dictType}
title : '${attr.displayName}', title : '${attr.displayName}',
@if(attrLP.first){ @if(attrLP.first){
fixed:'left', fixed:'left',
...@@ -69,6 +69,17 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { ...@@ -69,6 +69,17 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
delView.delBatch(); delView.delBatch();
}); });
} }
@if(entity.includeExcel){
,
exportExcel : function() {
Common.alert("未完成的导出功能,参考数据字典到处")
},
importExcel:function(){
//参考数据字典导入导出
Common.alert("未完成的导入功能能,参考数据字段导入")
}
@}
}; };
$('.ext-toolbar').on('click', function() { $('.ext-toolbar').on('click', function() {
var type = $(this).data('type'); var type = $(this).data('type');
......
...@@ -26,12 +26,15 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) { ...@@ -26,12 +26,15 @@ layui.define([ 'form', 'laydate', 'table' ], function(exports) {
{ {
field : 'tableName', field : 'tableName',
title : '表名称', title : '表名称',
width : 200, width : 400,
sort : true
}, },
{ {
field : 'name', field : 'name',
title : '类名', title : '类名',
width : 300, width : 400,
sort : true
} }
] ] ] ]
......
<!--# layout("/common/layout.html",{"jsBase":"/js/core/codeGen/"}){ --> <!--# layout("/common/layout.html",{"jsBase":"/js/core/codeGen/"}){ -->
<div class="layui-btn-group"> <div class="layui-btn-group">
<button class="layui-btn ext-toolbar" data-type="js">预览JS</button> <button class="layui-btn ext-toolbar" data-type="js">预览JS</button>
<button class="layui-btn ext-toolbar" data-type="java">预览Java</button> <button class="layui-btn ext-toolbar" data-type="java">预览Java</button>
<button class="layui-btn ext-toolbar" data-type="sql">预览SQL</button> <button class="layui-btn ext-toolbar" data-type="sql">预览SQL</button>
<button class="layui-btn ext-toolbar" data-type="html">预览HTML</button> <button class="layui-btn ext-toolbar" data-type="html">预览HTML</button>
<button class="layui-btn ext-toolbar" data-type="gen">立即生成</button> <button class="layui-btn ext-toolbar" data-type="gen">立即生成</button>
<button class="layui-btn ext-toolbar" data-type="cancel">取消</button> <button class="layui-btn ext-toolbar" data-type="cancel">取消</button>
</div> </div>
<form class="layui-form layui-form-pane" id="updateForm" <form class="layui-form layui-form-pane" id="updateForm">
>
<fieldset class="layui-elem-field layui-field-title"
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> style="margin-top: 30px;">
<legend>主健字段</legend> <legend>主健字段</legend>
</fieldset> </fieldset>
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">主健</label> <label class="layui-form-label">主健</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.idAttribute.name" disable value="${entity.idAttribute.name}" <input type="text" name="entity.idAttribute.name" disable
class="layui-input" > value="${entity.idAttribute.name}" class="layui-input">
</div>
</div> </div>
</div> </div>
</div> </div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> <fieldset class="layui-elem-field layui-field-title"
<legend>显示字段</legend> style="margin-top: 30px;">
</fieldset> <legend>显示字段</legend>
</fieldset>
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<select name="nameAttr"> <select name="nameAttr">
<!--# <!--#
for(attr in entity.list){ for(attr in entity.list){
--> -->
<option value="${attr.name}" ${attrLP.index==1?"selected=''"}>${attr.name}</option> <option value="${attr.name}" ${attrLP.index==1? "selected=''"}>${attr.name}</option>
<!--#} --> <!--#} -->
</select> </select>
</div>
</div> </div>
</div> </div>
</div> <fieldset class="layui-elem-field layui-field-title"
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> style="margin-top: 30px;">
<legend>配置基本信息</legend> <legend>配置基本信息</legend>
</fieldset> </fieldset>
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">表名</label> <label class="layui-form-label">表名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.tableName" readonly value="${entity.tableName}" <input type="text" name="entity.tableName" readonly
class="layui-input" > value="${entity.tableName}" class="layui-input">
</div>
</div> </div>
</div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">类名</label> <label class="layui-form-label">类名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.name" value="${entity.name}" <input type="text" name="entity.name" value="${entity.name}"
class="layui-input" > class="layui-input">
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">系统包名</label> <label class="layui-form-label">系统包名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="basePackage" value="com.ibeetl.admin.console" <input type="text" name="basePackage"
class="layui-input" > value="com.ibeetl.admin.console" class="layui-input">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">显示名</label> <label class="layui-form-label">业务名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.displayName" value="${entity.name}" <input type="text" name="entity.displayName" value="${entity.name}"
class="layui-input" > class="layui-input">
</div>
</div> </div>
</div>
<div class="layui-inline">
<div class="layui-inline">
<label class="layui-form-label">变量名</label> <label class="layui-form-label">变量名</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.code" value="${entity.code}" <input type="text" name="entity.code" value="${entity.code}"
class="layui-input" > class="layui-input">
</div>
</div> </div>
</div>
</div> </div>
<div class="layui-row"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">urlBase</label> <label class="layui-form-label">urlBase</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="urlBase" value="admin" <input type="text" name="urlBase" value="admin" class="layui-input">
class="layui-input" > </div>
</div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">system</label> <label class="layui-form-label">system</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.system" value="console" <input type="text" name="entity.system" value="console"
class="layui-input" > class="layui-input">
</div>
</div> </div>
</div>
</div> </div>
</div> </div>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
<legend>字段信息</legend> <fieldset class="layui-elem-field layui-field-title"
</fieldset> style="margin-top: 30px;">
<!--# <legend>可选配置</legend>
var attrs = entity.list; </fieldset>
for(attr in attrs){ <div class="layui-row">
--> <div class="layui-form-item">
<div class="layui-row">
<div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">名称</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input type="checkbox"
<input type="text" name="entity.list[${attrLP.index-1}].name" readonly value="${attr.name}" name="entity.includeExcel"
class="layui-input" > lay-skin="primary" value="true" title="导入导出"/>
</div> </div>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">显示名</label> <div class="layui-input-inline">
<div class="layui-input-inline"> <input type="checkbox"
<input type="text" name="entity.list[${attrLP.index-1}].displayName" value="${attr.displayName}" name="entity.attachment"
class="layui-input" > lay-skin="primary" value="true" title="关联附件"/>
</div> </div>
</div> </div>
<div class="layui-inline">
<div class="layui-input-inline">
<input type="checkbox" name="entity.list[${attrLP.index-1}].showInQuery" lay-skin="primary" value="true" title="作为搜索" >
</div>
</div>
</div> </div>
</div> </div>
<!--# } -->
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>字段信息(重要)</legend>
</fieldset>
<table class="layui-table">
<colgroup>
<col width="200">
<col width="250">
<col width="250">
<col>
</colgroup>
<thead>
<tr>
<th>名称</th>
<th>显示名</th>
<th>查询</th>
<th>字典类型(可选)</th>
</tr>
</thead>
<tbody>
<!--#
var attrs = entity.list;
for(attr in attrs){
-->
<tr>
<td><input type="text"
name="entity.list[${attrLP.index-1}].name" readonly
value="${attr.name}" class="layui-input" /></td>
<td><input type="text"
name="entity.list[${attrLP.index-1}].displayName"
value="${attr.displayName}" class="layui-input"></td>
<td><input type="checkbox"
name="entity.list[${attrLP.index-1}].showInQuery"
lay-skin="primary" value="true" title="作为搜索"></td>
<td><input type="text" name="entity.list[${attrLP.index-1}].dictType" value=""
class="layui-input"></td>
</tr>
<!--# } -->
</tbody>
</table>
</form> </form>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment