增加模糊查询

master
王兵 4 years ago
parent 96d4f7e2fb
commit 46ad3a03f1

@ -1170,7 +1170,9 @@ public class JavaFxApplication extends Application {
FieldType fieldType = FieldType.parse(field.getFieldType());
if (fieldType.isFix() && fieldType.getDefaultLength() != field.getFieldLength()) {
field.setFieldLength(fieldType.getDefaultLength());
mFields.refresh();
}
if (!field.getFieldType().contains("String_var")){
field.setIsLike(false);
}
if (field.getIsSystem()) {
ignoreField(this);
@ -1433,7 +1435,7 @@ public class JavaFxApplication extends Application {
public ObservableValue<Boolean> call(Integer param) {
super.call(param);
List<Field> fields = currentTable.getFields();
if (fields.get(param).getIsSystem()) {
if (fields.get(param).getIsSystem() || !fields.get(param).getFieldType().contains("String_var")) {
checkBoxTableCell.setInvalid(true);
} else {
checkBoxTableCell.setInvalid(false);

@ -3,7 +3,7 @@
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<GridPane fx:controller="xyz.wbsite.dbtool.javafx.ctrl.DetailModuleController" maxHeight="-Infinity" maxWidth="-Infinity"
minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/8.0.65"
minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/8"
xmlns:fx="http://javafx.com/fxml/1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" prefWidth="10.0" />

@ -11,7 +11,7 @@
<?import javafx.scene.layout.RowConstraints?>
<GridPane fx:controller="xyz.wbsite.dbtool.javafx.ctrl.DetailProjectController" maxHeight="-Infinity"
maxWidth="-Infinity"
minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/8.0.65"
minHeight="-Infinity" minWidth="-Infinity" xmlns="http://javafx.com/javafx/8"
xmlns:fx="http://javafx.com/fxml/1">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" prefWidth="10.0"/>

@ -7,7 +7,7 @@
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.*?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity"
xmlns="http://javafx.com/javafx/8.0.101" xmlns:fx="http://javafx.com/fxml/1"
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="xyz.wbsite.dbtool.javafx.ctrl.DetailTableController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" prefWidth="10.0"/>

@ -4,7 +4,7 @@
<?import javafx.scene.layout.*?>
<BorderPane fx:controller="xyz.wbsite.dbtool.javafx.ctrl.ConnectInfoController" maxHeight="-Infinity" maxWidth="-Infinity"
minHeight="-Infinity" minWidth="-Infinity" prefHeight="214.0" prefWidth="399.0"
xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<center>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>

@ -12,7 +12,7 @@
<?import javafx.scene.control.TreeView?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.Pane?>
<BorderPane xmlns="http://javafx.com/javafx/8.0.112" minWidth="765" minHeight="550" prefWidth="765" prefHeight="550"
<BorderPane xmlns="http://javafx.com/javafx/8" minWidth="765" minHeight="550" prefWidth="765" prefHeight="550"
xmlns:fx="http://javafx.com/fxml/1" fx:controller="xyz.wbsite.dbtool.javafx.ctrl.MainController">
<top>
<MenuBar BorderPane.alignment="CENTER">

@ -4,7 +4,7 @@
<?import javafx.scene.layout.*?>
<BorderPane fx:controller="xyz.wbsite.dbtool.javafx.ctrl.OptionApiController" maxHeight="-Infinity" maxWidth="-Infinity"
minHeight="-Infinity" minWidth="-Infinity" prefHeight="400" prefWidth="500"
xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1">
xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<center>
<GridPane BorderPane.alignment="CENTER">
<columnConstraints>

@ -169,53 +169,58 @@
<include refid="table"/>
WHERE `IS_DELETED` = 0
<#list table.fields as field>
<#if field.isQuery>
<#if field.isQuery || field.isLike>
<#if field.getFieldTypeJava() == "Boolean">
<if test="request.${field.getFName()} != null">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Byte">
<#if field.getFieldTypeJava() == "Byte" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Short">
<#if field.getFieldTypeJava() == "Short" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Integer">
<#if field.getFieldTypeJava() == "Integer" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Long">
<#if field.getFieldTypeJava() == "Long" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Float">
<#if field.getFieldTypeJava() == "Float" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Double">
<#if field.getFieldTypeJava() == "Double" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Character">
<#if field.getFieldTypeJava() == "Character" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "String">
<#if field.getFieldTypeJava() == "String" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND `${field.fieldName}` = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Date">
<#if field.getFieldTypeJava() == "String" && field.isLike>
<if test="request.${field.getFName()}Like != null and request.${field.getFName()}Like != ''">
AND `${field.fieldName}` LIKE CONCAT('%',${r"#{"}request.${field.getFName()}Like},'%')
</if>
</#if>
<#if field.getFieldTypeJava() == "Date" && field.isQuery>
<if test="request.${field.getFName()} != null">
AND DATE_FORMAT(`${field.fieldName}`,"%Y-%m-%d %T") = DATE_FORMAT(${r"#{"}request.${field.getFName()}},"%Y-%m-%d %T")
</if>

@ -171,53 +171,58 @@
<include refid="table"/>
WHERE "IS_DELETED" = 0
<#list table.fields as field>
<#if field.isQuery>
<#if field.isQuery || field.isLike>
<#if field.getFieldTypeJava() == "Boolean">
<if test="request.${field.getFName()} != null">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Byte">
<#if field.getFieldTypeJava() == "Byte" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Short">
<#if field.getFieldTypeJava() == "Short" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Integer">
<#if field.getFieldTypeJava() == "Integer" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Long">
<#if field.getFieldTypeJava() == "Long" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Float">
<#if field.getFieldTypeJava() == "Float" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Double">
<#if field.getFieldTypeJava() == "Double" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Character">
<#if field.getFieldTypeJava() == "Character" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "String">
<#if field.getFieldTypeJava() == "String" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Date">
<#if field.getFieldTypeJava() == "String" && field.isLike>
<if test="request.${field.getFName()}Like != null and request.${field.getFName()}Like != ''">
AND "${field.fieldName}" LIKE '%'||${r"#{"}request.${field.getFName()}Like}||'%'
</if>
</#if>
<#if field.getFieldTypeJava() == "Date" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND to_char("${field.fieldName}",'yyyy-MM-dd HH24:mi:ss') = to_char(${r"#{"}request.${field.getFName()}},'yyyy-MM-dd HH24:mi:ss')
</if>

@ -169,53 +169,58 @@
<include refid="table"/>
WHERE "IS_DELETED" = 0
<#list table.fields as field>
<#if field.isQuery>
<#if field.isQuery || field.isLike>
<#if field.getFieldTypeJava() == "Boolean">
<if test="request.${field.getFName()} != null">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Byte">
<#if field.getFieldTypeJava() == "Byte" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Short">
<#if field.getFieldTypeJava() == "Short" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Integer">
<#if field.getFieldTypeJava() == "Integer" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Long">
<#if field.getFieldTypeJava() == "Long" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Float">
<#if field.getFieldTypeJava() == "Float" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Double">
<#if field.getFieldTypeJava() == "Double" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != 0">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Character">
<#if field.getFieldTypeJava() == "Character" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "String">
<#if field.getFieldTypeJava() == "String" && field.isQuery>
<if test="request.${field.getFName()} != null and request.${field.getFName()} != ''">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>
</#if>
<#if field.getFieldTypeJava() == "Date">
<#if field.getFieldTypeJava() == "String" && field.isLike>
<if test="request.${field.getFName()}Like != null and request.${field.getFName()}Like != ''">
AND "${field.fieldName}" LIKE '%'||${r"#{"}request.${field.getFName()}Like}||'%'
</if>
</#if>
<#if field.getFieldTypeJava() == "Date" && field.isQuery>
<if test="request.${field.getFName()} != null">
AND "${field.fieldName}" = ${r"#{"}request.${field.getFName()}}
</if>

@ -21,7 +21,7 @@ public class ${table.getCName()}FindRequest extends BaseFindRequest {
<#if field.isQuery>
/**
* ${field.fieldComment?default("")}.
* ${field.fieldComment?default("")}精确查询.
*/
<#if field.fieldType?contains("Dict")>
@Dict(name = "${field.getFieldName()}")
@ -31,15 +31,22 @@ public class ${table.getCName()}FindRequest extends BaseFindRequest {
</#if>
private ${field.getFieldTypeJava()} ${field.getFName()};
</#if>
<#if field.isLike>
/**
* ${field.fieldComment?default("")}模糊查询.
*/
private ${field.getFieldTypeJava()} ${field.getFName()}Like;
</#if>
</#list>
/**
* 开始日期
* 开始日期.
*/
private Date startDate;
/**
* 结束日期
* 结束日期.
*/
private Date endDate;
<#list table.fields as field>
@ -53,6 +60,16 @@ public class ${table.getCName()}FindRequest extends BaseFindRequest {
this.${field.getFName()} = ${field.getFName()};
}
</#if>
<#if field.isLike>
public ${field.getFieldTypeJava()} ${field.getterName()}Like() {
return this.${field.getFName()}Like;
}
public void ${field.setterName()}Like(${field.getFieldTypeJava()} ${field.getFName()}Like) {
this.${field.getFName()}Like = ${field.getFName()}Like;
}
</#if>
</#list>
public Date getStartDate() {

@ -3,43 +3,43 @@
<el-card class="box-card">
<el-form class="search" :inline="true" :model="vm" ref="vm" label-position="right" label-width="90px">
<#list fields as item>
<#if item.isQuery>
<#if item.getFieldTypeJava() =="Boolean">
<#if item.isQuery || item.isLike>
<#if item.getFieldTypeJava() =="Boolean" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-radio-group v-model="vm.${item.getFName()}" clearable size="mini">
<el-radio :label="true">${item.getLabel("true","是")}</el-radio>
<el-radio :label="false">${item.getLabel("false","否")}</el-radio>
</el-radio-group>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Byte">
<#elseif item.getFieldTypeJava() =="Byte" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" controls-position="right" :min="-128" :max="127" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Character">
<#elseif item.getFieldTypeJava() =="Character" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" minlength="0" maxlength="1"></el-input>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Short">
<#elseif item.getFieldTypeJava() =="Short" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" controls-position="right" :min="-32768" :max="32767" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Integer">
<#elseif item.getFieldTypeJava() =="Integer" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" controls-position="right" :min="-2147483648" :max="2147483647" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Long">
<#elseif item.getFieldTypeJava() =="Long" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" controls-position="right" :step="1" step-strictly></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Float">
<#elseif item.getFieldTypeJava() =="Float" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" controls-position="right" :step="0.01" step-strictly :precision="2"></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Double">
<#elseif item.getFieldTypeJava() =="Double" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" controls-position="right" :step="0.01" step-strictly :precision="2"></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="Date">
<#elseif item.getFieldTypeJava() =="Date" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-date-picker
size="mini"
@ -50,15 +50,15 @@
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<#elseif item.getFieldTypeJava() =="BigDecimal">
<#elseif item.getFieldTypeJava() =="BigDecimal" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-number v-model="vm.${item.getFName()}"clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" :step="1" step-strictly :precision="2" :step="0.01"></el-input-number>
</el-form-item>
<#elseif item.getFieldTypeJava() =="String" && item.fieldType == "Dict">
<#elseif item.getFieldTypeJava() =="String" && item.fieldType == "Dict" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input-dict v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}" dict-name="${item.getFieldName()}" ></el-input-dict>
</el-form-item>
<#elseif item.getFieldTypeJava() =="String" && item.fieldType == "Select">
<#elseif item.getFieldTypeJava() =="String" && item.fieldType == "Select" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-select v-model="vm.${item.getFName()}" clearable size="mini" filterable placeholder="请输入${item.fieldComment?default("")}">
<#list item.selectItems as st>
@ -66,11 +66,16 @@
</#list>
</el-select>
</el-form-item>
<#elseif item.getFieldTypeJava() =="String">
<#elseif item.getFieldTypeJava() =="String" && item.isQuery>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}"></el-input>
</el-form-item>
</#if>
<#if item.getFieldTypeJava() =="String" && item.isLike>
<el-form-item label="${item.fieldComment?default("")}" prop="${item.getFName()}">
<el-input v-model="vm.${item.getFName()}Like" clearable size="mini" placeholder="请输入${item.fieldComment?default("")}模糊查询"></el-input>
</el-form-item>
</#if>
</#if>
</#list>
<el-form-item label="开始日期" prop="startDate">
@ -432,8 +437,13 @@
target: '${table.getFName()}',
vm: {//条件及分页参数
<#list fields as item>
<#if item.isQuery>
<#if item.isQuery || item.isLike>
<#if item.isQuery>
${item.getFName()}: null,
</#if>
<#if item.isQuery>
${item.getFName()}Like: null,
</#if>
</#if>
</#list>
startDate: null,

Loading…
Cancel
Save

Powered by TurnKey Linux.