teddyhuang пре 5 година
родитељ
комит
0e9e86bb7d
6 измењених фајлова са 258 додато и 163 уклоњено
  1. +1
    -0
      .gitignore
  2. +93
    -94
      app/src/components/AssetGroup.vue
  3. +1
    -1
      app/src/components/Inventory.vue
  4. +25
    -17
      src/main/java/com/moze/rms/controller/AssertGroupController.java
  5. +135
    -50
      src/main/java/com/moze/rms/dao/AssertDAO.java
  6. +3
    -1
      src/main/java/com/moze/rms/entity/model/MappingCol.java

+ 1
- 0
.gitignore Прегледај датотеку

@@ -3,3 +3,4 @@
/target/
/rms.iml
/app/node_modules/
/app/.idea/

+ 93
- 94
app/src/components/AssetGroup.vue Прегледај датотеку

@@ -166,6 +166,18 @@
:headers='headers'
hide-default-footer
>
<template v-slot:item.isselect='{ item }'>
{{item.isselect === 'true' ? '選項':'文字'}}
</template>
<template v-slot:item.isrequire='{ item }'>
{{item.isselect === 'true' ? '是':'否'}}
</template>
<template v-slot:item.isexport='{ item }'>
{{item.isselect === 'true' ? '是':'否'}}
</template>
<template v-slot:item.issearch='{ item }'>
{{item.isselect === 'true' ? '是':'否'}}
</template>
<template v-slot:item.actions='{ item }'>
<!--修改資產群駔欄位對話-->
<v-dialog
@@ -246,7 +258,7 @@
<v-btn
color='blue darken-1'
text
@click='modifyCol(modifyColItem)'
@click='modifyCol'
>
修改
</v-btn>
@@ -297,6 +309,7 @@
<v-text-field
v-if="header.text !== '' && header.value !== 'isselect' && isBooleanCol.indexOf(header.value) < 0"
:label='header.text'
:value="insertColItem[header.value]"
hint='必填'
v-on:input='oninput(insertColItem, header.value, $event)'
/>
@@ -352,7 +365,7 @@
</v-tabs-items>
<!--新增資產群組欄位選項對話-->
<v-dialog
width="80%"
width="40%"
v-model='dialogInsertSelectItem'
@click:outside='closeDialogInsertSelectItem'
:retain-focus="false"
@@ -365,22 +378,23 @@
<v-card-text>
<v-container>
<v-row>
<v-col cols="3" class="d-flex align-center">
<v-col cols="11" class="d-flex align-center">
<v-text-field outlined rounded hide-details
v-model="insertSelectItem"/>
<v-btn class="ml-2" @click='pushSelectItem'>新增</v-btn>
<v-btn class="ml-2" @click='pushInsertSelectItem'>新增</v-btn>
</v-col>
</v-row>
<v-card class="mt-2 elevation-2"
style="border: 1px solid grey;min-height: 250px;border-radius: 10px">
<v-card class="mt-2 col-10"
style="border: 1px solid grey;min-height: 500px;border-radius: 10px">
<v-chip
v-for="(insertSelectItem, index) in insertSelectItems"
:key="index"
class="ma-2"
class="col-12 my-1"
color="secondary"
>
{{insertSelectItem}}
<v-icon small class="ml-4" @click="deleteSelectItem(index)">mdi-close</v-icon>
<v-icon small class="ml-4" @click="deleteInsertSelectItem(index)">mdi-close
</v-icon>
</v-chip>
</v-card>
</v-container>
@@ -414,27 +428,24 @@
<v-row>
<v-col cols="11" class="d-flex align-center">
<v-text-field outlined rounded hide-details
v-model="insertSelectItem"/>
<v-btn class="ml-2" @click='pushSelectItem'>新增</v-btn>
v-model="modifySelectItem"/>
<v-btn class="ml-2" @click='pushModifySelectItem'>新增</v-btn>
</v-col>
</v-row>
<p class="font-italic mb-0 mt-1">拖曳選項以排序</p>
<v-card
max-width="80%"
class="mt-2"
class="mt-2 col-10"
style="border: 1px solid grey; border-radius: 10px"
>
<v-card-text>
<v-chip-group
v-model="selection"
column
>
<draggable @start="dragStart" @end="dragEnd">
<v-chip v-for="(modifySelectItem, i) in modifySelectItems" :key="i" color="secondary" class="col-12" draggable>
{{ modifySelectItem }}
</v-chip>
</draggable>
</v-chip-group>
</v-card-text>
<draggable v-model="modifySelectItems">
<v-chip v-for="(modifySelectItem, index) in modifySelectItems" :key="index"
color="secondary" class="col-12 my-1" draggable>
{{ modifySelectItem }}
<v-icon small class="ml-4" @click="deleteModifySelectItem(index)">
mdi-close
</v-icon>
</v-chip>
</draggable>
</v-card>
</v-container>
</v-card-text>
@@ -449,28 +460,6 @@
</v-btn>
</v-card-actions>
</v-card>
<div id="app">
<v-app id="inspire">
<v-card
max-width="400"
class="mx-auto"
>
<v-card-text>
<v-chip-group
v-model="selection"
column
active-class="primary--text"
>
<draggable v-model="tags" @start="dragStart" @end="dragEnd">
<v-chip v-for="(tag, i) in tags" :key="i" draggable>
{{ tag.name }}
</v-chip>
</draggable>
</v-chip-group>
</v-card-text>
</v-card>
</v-app>
</div>
</v-dialog>
</v-tabs>
</div>
@@ -542,11 +531,9 @@
modifySelectItems: [],
modifySelectItem: '',
dialogModifySelectItem: false,
selection: null,
currentTag: null,
tags: [{
name: 'Shoping',
},{
}, {
name: 'Art',
}, {
name: 'Tech',
@@ -554,6 +541,7 @@
name: 'Creative Writing'
}
],
oldIndex: '',
}
},
async mounted() {
@@ -570,8 +558,19 @@
this.getCols();
},
dialogModifySelectItem() {
this.getModifySelectItems();
if (this.modifySelectItems.length === 0) {
this.getModifySelectItems();
}
},
modifySelectItems() {
console.log(this.modifySelectItems[0]);
},
dialogInsert() {
this.insertColItem.index = (parseInt(this.allCols[this.assertGroup[this.currentTab].value][this.allCols[this.assertGroup[this.currentTab].value].length - 1].index) + 1).toString();
},
dialogModify() {
this.oldIndex = this.modifyColItem.index;
}
},
methods: {
// eslint-disable-next-line no-unused-vars
@@ -579,34 +578,8 @@
// console.log(col);
console.log(this.modifySelectItems);
},
dragStart() {

if (this.modifySelectItems[this.selection]) {
this.currentTag = this.modifySelectItems[this.selection];
}
else {
this.currentTag = null;
}
// console.log(this.selection);
// console.log(this.currentTag);
// console.log(this.tags[0].name);
},
dragEnd() {
var self = this;
console.log(this.currentTag);
if (this.currentTag) {
this.modifySelectItems.forEach((x, i) => {
if (x === self.currentTag) self.selection = i;
});
}
// console.log(this.selection);
// console.log(this.currentTag);
console.log(this.modifySelectItems[0]);

},
closeDialogInsertSelectItem() {
this.dialogInsertSelectItem = false
this.insertSelectItems = [];
this.dialogInsertSelectItem = false;
},
getModifySelectItems() {
this.$axios.get(`/assert/selectItems?tablename=${this.modifyColItem.tablename}&&colname=${this.modifyColItem.colname}`).then((resp) => {
@@ -616,9 +589,9 @@
},
closeDialogModifySelectItem() {
this.dialogModifySelectItem = false;
this.modifySelectItems = [];
// this.modifySelectItems = [];
},
pushSelectItem() {
pushInsertSelectItem() {
if (this.insertSelectItems.indexOf(this.insertSelectItem) >= 0 || this.insertSelectItem === '') {
alert('選項不得重複或為空');
} else {
@@ -626,9 +599,20 @@
this.insertSelectItem = '';
}
},
deleteSelectItem(index) {
pushModifySelectItem() {
if (this.modifySelectItems.indexOf(this.modifySelectItem) >= 0 || this.modifySelectItem === '') {
alert('選項不得重複或為空');
} else {
this.modifySelectItems.push(this.modifySelectItem);
this.modifySelectItem = '';
}
},
deleteInsertSelectItem(index) {
this.insertSelectItems.splice(index, 1);
},
deleteModifySelectItem(index) {
this.modifySelectItems.splice(index, 1);
},
oninput(item, key, val) {
this.$set(item, key, val);
},
@@ -658,20 +642,23 @@
},
insertCol() {
for (const key in this.insertColItem) {
if (this.insertColItem[key] === '') {
if (this.insertColItem[key] === '' && key !== 'tablename') {
console.log(key);
alert('所有資料不可為空');
return;
} else {
this.insertColItem.tablename = this.assertGroup[this.currentTab].value;
this.insertColItem.insertselectItems = this.insertSelectItems;
this.$axios.post(`/assert/col`, this.insertColItem).then(() => {
this.getCols();
this.close();
this.insertSelectItems = [];
}
);
}
}
this.insertColItem.tablename = this.assertGroup[this.currentTab].value;
this.insertColItem.insertSelectItems = this.insertSelectItems;
this.$axios.post(`/assert/col`, this.insertColItem).then(() => {
this.getCols();
this.close();
this.insertSelectItems = [];
delete this.insertColItem.tablename;
delete this.insertColItem.insertselectItems;
}
);

},
close() {
this.dialogInsert = false;
@@ -697,14 +684,26 @@
this.selectItem = resp.data.data;
});
},
modifyCol(item) {
console.log(item);
item.tablename = this.tablename;
this.$axios.put(`/assert/col`, item).then(() => {
modifyCol() {
for (const key in this.modifyColItem) {
if (this.modifyColItem[key] === '') {
alert('所有資料不可為空');
return;
}
}
this.modifyColItem.tablename = this.assertGroup[this.currentTab].value;
this.modifyColItem.modifySelectItems = this.modifySelectItems;
this.modifyColItem.oldIndex = this.oldIndex;
this.$axios.put(`/assert/col`, this.modifyColItem).then(() => {
this.getCols();
this.close();
this.modifySelectItems = [];
delete this.modifyColItem.tablename;
delete this.modifyColItem.modifySelectItems;
delete this.modifyColItem.oldIndex;
}
);

},
deleteCol(item) {
let yes = confirm('確定刪除');


+ 1
- 1
app/src/components/Inventory.vue Прегледај датотеку

@@ -321,6 +321,7 @@
});
},
getHeaders() {
this.headers.push({'text': '', 'value': 'actions', sortable: false});
this.$axios.get(`/headers?tablename=${this.tablename}`).then((resp) => {
this.cols = resp.data.data;
resp.data.data.forEach((item) => {
@@ -337,7 +338,6 @@
this.insertItem[item.colname] = null;
this.searchItem[item.colname] = null;
});
this.headers.push({'text': '', 'value': 'actions', sortable: false});
});
},
getInventories() {


+ 25
- 17
src/main/java/com/moze/rms/controller/AssertGroupController.java Прегледај датотеку

@@ -1,11 +1,11 @@
package com.moze.rms.controller;

import com.moze.rms.dao.AssertDAO;
import com.moze.rms.entity.dto.SelectItemDTO;
import com.moze.rms.entity.model.MappingCol;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -53,12 +53,12 @@ public class AssertGroupController {
}

@GetMapping("/Types")
public JsonResult getTypesByTable(@RequestParam String tablename) {
public JsonResult getTypesByTable(@RequestParam String tablename) {
return new JsonResult(StatusCode.SUCCESS, assertDAO.findTypesByTable(tablename));
}

@GetMapping("/allCols")
public JsonResult getCols(@RequestParam String tablename) {
public JsonResult getCols(@RequestParam String tablename) {

// return new JsonResult(StatusCode.SUCCESS, data.stream().collect(Collectors.groupingBy(SelectItemDTO::getColname)));
List<MappingCol> data = assertDAO.findAllCols();
@@ -66,19 +66,35 @@ public class AssertGroupController {
return new JsonResult(StatusCode.SUCCESS, data.stream().collect(Collectors.groupingBy(MappingCol::getTablename)));
}

@GetMapping("/selectItems")
public JsonResult getSelectItemsByCol(@RequestParam String tablename, @RequestParam String colname) {

List<String> data = assertDAO.getSelectItemsByCol(tablename, colname);
return new JsonResult(StatusCode.SUCCESS, data);
}

@PostMapping("/col")
public JsonResult insertCol(@RequestBody MappingCol mappingCol) {
public JsonResult insertCol(@RequestBody MappingCol mappingCol) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {

System.out.println(mappingCol);
assertDAO.insertCol(mappingCol);
assertDAO.addColToTable(mappingCol);
assertDAO.insertColToMappingCol(mappingCol);
assertDAO.insertSelectItems(mappingCol);

return new JsonResult(StatusCode.SUCCESS, null);
}

@PutMapping("/col")
public JsonResult modifyCol(@RequestBody MappingCol mappingCol) {
public JsonResult modifyCol(@RequestBody MappingCol mappingCol) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {

System.out.println(mappingCol);
// assertDAO.modifyCol(mappingCol;
// assertDAO.modifyColToTable(mappingCol);

assertDAO.sortCol1(mappingCol.getOldIndex(), mappingCol.getIndex());
assertDAO.sortCol2(mappingCol.getOldIndex(), mappingCol.getIndex());

assertDAO.modifyColToMappingCol(mappingCol);
assertDAO.modifySelectItems(mappingCol);

return new JsonResult(StatusCode.SUCCESS, null);
}
@@ -86,20 +102,12 @@ public class AssertGroupController {
@DeleteMapping("/deleteCol")
public JsonResult deleteCol(@RequestParam String tablename, @RequestParam String colname) {

// assertDAO.deleteColFromTable(tablename, colname);
assertDAO.deleteColFromTable(tablename, colname);
assertDAO.deleteColFromMappingCol(tablename, colname);
if (colname.equals("type")) {
//TODO
}
assertDAO.deleteColFromSelectItem(tablename, colname);
assertDAO.deleteFromSelectItem(tablename, colname);
return new JsonResult(StatusCode.SUCCESS, null);
}

@GetMapping("/selectItems")
public JsonResult getSelectItemsByCol(@RequestParam String tablename, @RequestParam String colname) {

List<String> data = assertDAO.getSelectItemsByCol(tablename , colname);
return new JsonResult(StatusCode.SUCCESS, data);
}
}


+ 135
- 50
src/main/java/com/moze/rms/dao/AssertDAO.java Прегледај датотеку

@@ -7,7 +7,12 @@ import org.jdbi.v3.core.Handle;
import org.jdbi.v3.sqlobject.SqlObject;
import org.jdbi.v3.sqlobject.config.RegisterBeanMapper;
import org.jdbi.v3.sqlobject.statement.SqlQuery;
import org.jdbi.v3.sqlobject.statement.SqlUpdate;

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

@@ -25,39 +30,33 @@ public interface AssertDAO extends SqlObject {
List<Map<String, Object>> assertGroup = findAssertGroups();

Handle handle = this.getHandle();
// String sql = "select * from mapping.mapping_" + assertGroup.get(0).get("tablename");
// for (int i = 1; i <= assertGroup.size() - 1; i++) {
// sql += " union select * from mapping.mapping_" + assertGroup.get(i).get("tablename");
// }
// String sql = "select * from mapping.\"selectItem\" where tablename = '" + tablename + "' and colname = 'type' order by index;";
String sql = "select * from mapping.mapping_" + tablename + " order by type";
return handle.createQuery(sql).mapToMap().list();
}


// default List<Map<String, Object>> findInventoryItemByTable() {
// List<Map<String, Object>> assertGroup = findAssertGroups();
//
// Handle handle = this.getHandle();
//// String sql = "select * from mapping.mapping_col where tablename = '" + tablename + "' order by index;";
// String sql = "select * from mapping.mapping_col;";
// return handle.createQuery(sql).mapToMap().list();
// }

@RegisterBeanMapper(MappingCol.class)
@SqlQuery("select * from mapping.mapping_col;")
@SqlQuery("select * from mapping.mapping_col order by index;")
List<MappingCol> findAllCols();


//新增類別
default void insertAssertGroup(Map<String, Object> data) {
Handle handle = this.getHandle();
String sql = "CREATE TABLE " + data.get("assertGroupTablename") + "()";
handle.createUpdate(sql).execute();
}

default void deleteAssertGroup(String tablename) {
default void insertMappingType(Map<String, Object> data) {

Handle handle = this.getHandle();
String sql = "drop TABLE " + tablename;
String sql = "CREATE TABLE mapping.mapping_" + data.get("assertGroupTablename") + "(";
sql += " type varchar not null";
sql += " constraint mapping_" + data.get("assertGroupTablename") + "_pk primary key,";
sql += " name varchar,";
sql += " descript varchar,";
sql += " example varchar";
sql += ")";

handle.createUpdate(sql).execute();
}

@@ -67,82 +66,168 @@ public interface AssertDAO extends SqlObject {
handle.createUpdate(sql).execute();
}

//修改類別
default void modifyMappingTable(String tablename, String newDescript) {
Handle handle = this.getHandle();
String sql = "update mapping.mapping_table set descript = '" + newDescript + "' where tablename = '" + tablename + "'";
handle.createUpdate(sql).execute();
}

//刪除類別
default void deleteAssertGroup(String tablename) {
Handle handle = this.getHandle();
String sql = "drop TABLE " + tablename;
handle.createUpdate(sql).execute();
}

default void deleteMappingTable(String tablename) {
Handle handle = this.getHandle();
String sql = "delete from mapping.mapping_table where tablename = '" + tablename + "'";
handle.createUpdate(sql).execute();
}

default void insertMappingType(Map<String, Object> data) {
default void deleteMappingType(String tablename) {

Handle handle = this.getHandle();
String sql = "CREATE TABLE mapping.mapping_" + data.get("assertGroupTablename") + "(";
String sql = "drop TABLE mapping.mapping_" + tablename;
handle.createUpdate(sql).execute();

sql += " type varchar not null";
sql += " constraint mapping_" + data.get("assertGroupTablename") + "_pk primary key,";
sql += " name varchar,";
sql += " descript varchar,";
sql += " example varchar";
sql += ")";
}

@SqlQuery("select item from mapping.\"selectItem\" where tablename = ? and colname = ? order by index;")
@RegisterBeanMapper(SelectItemDTO.class)
List<String> getSelectItemsByCol(String tablename, String colname);

//新增欄位sql
default void addColToTable(MappingCol m) {
Handle handle = this.getHandle();
String sql = "ALTER TABLE " + m.getTablename() + " ADD " + m.getColname() + " " + "varchar";
handle.createUpdate(sql).execute();

}

default void deleteMappingType(String tablename) {
default void insertColToMappingCol(MappingCol m) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {

Field[] fields = m.getClass().getDeclaredFields();
Handle handle = this.getHandle();
String sql = "drop TABLE mapping.mapping_" + tablename;

String cols = "";
String values = "";
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
String type = fields[i].getGenericType().toString();
if (type.equals("class java.lang.String") && i < fields.length - 1) {
cols += name;
if (i < fields.length - 1) {
cols += ",";
}
String name2 = name.substring(0, 1).toUpperCase() + name.substring(1);
Method method = m.getClass().getMethod("get" + name2);
String value = (String) method.invoke(m);
values += "'" + value + "'";
if (i < fields.length - 1) {
values += ",";
}

}
}
if (cols.endsWith(",")) {
cols = cols.substring(0, cols.length() - 1);
}
if (values.endsWith(",")) {
values = values.substring(0, values.length() - 1);
}
String sql = "insert into mapping.mapping_col(" + cols + ")values(" + values + ")";
handle.createUpdate(sql).execute();
}

default void insertSelectItems(MappingCol m) {
Handle handle = this.getHandle();

for (int i = 1; i <= m.getInsertSelectItems().size(); i++) {
String sql = "insert into mapping.\"selectItem\" values(";
sql += "'" + m.getTablename() + "',";
sql += "'" + m.getColname() + "',";
sql += "'" + m.getInsertSelectItems().get(i - 1) + "',";
sql += "'" + i + "')";

handle.createUpdate(sql).execute();
}
}

default void deleteColFromMappingCol(String tablename, String colname) {
//修改欄位sql
// default void modifyColToTable(MappingCol m) {
// Handle handle = this.getHandle();
// String sql = "ALTER TABLE " + m.getTablename() + " ADD " + m.getColname() + " " + "character varying";
// handle.createUpdate(sql).execute();
//
// }

default void modifyColToMappingCol(MappingCol m) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
Field[] fields = m.getClass().getDeclaredFields();
Handle handle = this.getHandle();
String sql = "delete from mapping.mapping_col where tablename = '" + tablename + "' and colname = '" + colname + "'";
String sql = "update mapping.mapping_col set ";
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
String type = fields[i].getGenericType().toString();
if (type.equals("class java.lang.String") && !"tablename&colname&oldIndex".contains(name)) {
String name2 = name.substring(0, 1).toUpperCase() + name.substring(1);
Method method = m.getClass().getMethod("get" + name2);
String value = (String) method.invoke(m);
sql += " " + name + " = '" + value + "',";
}
}
if (sql.endsWith(",")) {
sql = sql.substring(0, sql.length() - 1);
}
sql += " where tablename = '" + m.getTablename() + "'";
sql += " and colname = '" + m.getColname() + "'";
handle.createUpdate(sql).execute();
}

default void deleteColFromTable(String tablename, String colname) {
default void modifySelectItems(MappingCol m) {
Handle handle = this.getHandle();

if (m.getInsertSelectItems() != null) {
for (int i = 1; i <= m.getInsertSelectItems().size(); i++) {
String sql = "update mapping.\"selectItem\" set ";
sql += "index = '" + i + "'";
sql += "where tablename = '" + m.getTablename() + "'";
sql += "and colname = '" + m.getColname() + "'";

handle.createUpdate(sql).execute();
}
}
}

//刪除欄位sql
default void deleteColFromTable(String tablename, String colname) {

Handle handle = this.getHandle();
String sql = "ALTER TABLE " + tablename + " DROP " + colname;
handle.createUpdate(sql).execute();
}

default void deleteColFromSelectItem(String tablename, String colname) {
default void deleteColFromMappingCol(String tablename, String colname) {

Handle handle = this.getHandle();
String sql = "delete from mapping.\"selectItem\" where tablename = '" + tablename + "' and colname = '" + colname + "'";
String sql = "delete from mapping.mapping_col where tablename = '" + tablename + "' and colname = '" + colname + "'";
handle.createUpdate(sql).execute();
}

default void insertCol(MappingCol m) {
default void deleteFromSelectItem(String tablename, String colname) {

Handle handle = this.getHandle();
String sql = "insert into mapping.mapping_col(tablename,colname,descript,level,type,index,\"isselect\",isrequire,issearch,isexport)";
sql += " values (";
sql += "'" + m.getTablename() + "',";
sql += "'" + m.getColname() + "',";
sql += "'" + m.getDescript() + "',";
sql += "'" + m.getLevel() + "',";
sql += "'" + m.getType() + "',";
sql += "" + m.getIndex() + ",";
sql += "'" + m.getIsselect() + "',";
sql += "'" + m.getIsrequire() + "',";
sql += "'" + m.getIssearch() + "',";
sql += "'" + m.getIsexport() + "'";
sql += ")";
String sql = "delete from mapping.\"selectItem\" where tablename = '" + tablename + "' and colname = '" + colname + "'";
handle.createUpdate(sql).execute();
}

@SqlQuery("select item from mapping.\"selectItem\" where tablename = ? and colname = ? order by index;")
@RegisterBeanMapper(SelectItemDTO.class)
List<String> getSelectItemsByCol(String tablename, String colname);
@SqlUpdate("update mapping.mapping_col set index = index + 1 where index < ?::numeric and index >= ?::numeric ")
void sortCol1(String oldIndex ,String index);

@SqlUpdate("update mapping.mapping_col set index = index - 1 where index > ?::numeric and index <= ?::numeric ")
void sortCol2(String oldIndex ,String index);

@SqlUpdate("select index from mapping.mapping_col where tablename = ? order by index desc limit 1;")
Integer getLastIndex(String tablename);
}

+ 3
- 1
src/main/java/com/moze/rms/entity/model/MappingCol.java Прегледај датотеку

@@ -19,5 +19,7 @@ public class MappingCol {
private String issearch;
private String isexport;
private String isrequire;
private List<String> insertselectItem;
private List<String> insertSelectItems;
private List<String> modifySelectItems;
private String oldIndex;
}

Loading…
Откажи
Сачувај