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;
}
} }
...@@ -132,14 +132,6 @@ public class CoreCodeGenController { ...@@ -132,14 +132,6 @@ public class CoreCodeGenController {
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;
} }
} }
...@@ -16,17 +16,25 @@ ...@@ -16,17 +16,25 @@
<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" >
@}else{
<layui:simpleDictSelect style='layui-input-inline' type="${item.dictType}"
id="${item.name}" name="${item.name}" value="" />
@}
</div> </div>
</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>
<!--#} --> <!--#} -->
......
...@@ -15,16 +15,26 @@ ...@@ -15,16 +15,26 @@
<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" >
@}else{
<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>
</div> </div>
@} @}
<input type="hidden" name="${entity.idAttribute.name}" value=\${${entity.code}.${entity.idAttribute.name}} />
@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" /> <layui:submitButtons id="updateButton" />
</form> </form>
<!--#} --> <!--#} -->
......
...@@ -2,12 +2,16 @@ ...@@ -2,12 +2,16 @@
<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){
<layui:accessButton function="${entity.code}.exportExcel" action="exportExcel">导出excel</layui:accessButton>
<layui:accessButton function="${entity.code}.importExcel" action="importExcel">导入excel</layui:accessButton>
@}
</div>
</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>
......
...@@ -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) {
@if(isNotEmpty(attr.dictType)) {
\@Query(name = "${attr.displayName}", display = true,type=Query.TYPE_DICT,dict="${attr.dictType}")
@}else {
\@Query(name = "${attr.displayName}", display = true) \@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};
} }
......
...@@ -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>
...@@ -8,53 +8,55 @@ ...@@ -8,53 +8,55 @@
<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" style="margin-top: 30px;"> <fieldset class="layui-elem-field layui-field-title"
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"
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">
<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" style="margin-top: 30px;"> <fieldset class="layui-elem-field layui-field-title"
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>
...@@ -63,14 +65,14 @@ ...@@ -63,14 +65,14 @@
<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>
...@@ -79,10 +81,10 @@ ...@@ -79,10 +81,10 @@
<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>
...@@ -90,7 +92,7 @@ ...@@ -90,7 +92,7 @@
<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>
...@@ -100,8 +102,7 @@ ...@@ -100,8 +102,7 @@
<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>
...@@ -109,50 +110,83 @@ ...@@ -109,50 +110,83 @@
<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-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>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="entity.list[${attrLP.index-1}].name" readonly value="${attr.name}" <input type="checkbox"
class="layui-input" > name="entity.includeExcel"
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="text" name="entity.list[${attrLP.index-1}].displayName" value="${attr.displayName}" <input type="checkbox"
class="layui-input" > name="entity.attachment"
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>
<fieldset class="layui-elem-field layui-field-title"
style="margin-top: 30px;">
<legend>字段信息(重要)</legend>
</fieldset>
</div> <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>
</div>
<!--# } -->
......
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