Browse Source

202103242230

master
teddyhuang 5 years ago
parent
commit
f5d8d67618
4 changed files with 121 additions and 22 deletions
  1. +25
    -8
      app/src/components/AssetGroup.vue
  2. +9
    -3
      app/src/components/Inventory.vue
  3. +5
    -1
      src/main/java/com/moze/rms/controller/AssertGroupController.java
  4. +82
    -10
      src/main/java/com/moze/rms/dao/AssertDAO.java

+ 25
- 8
app/src/components/AssetGroup.vue View File

@@ -426,14 +426,22 @@
<v-container> <v-container>
<v-row> <v-row>
<v-col cols="11" class="d-flex align-center"> <v-col cols="11" class="d-flex align-center">
<v-text-field outlined rounded hide-details
<v-text-field v-if="modifyColItem.colname === 'type'"
outlined rounded
label="代號"
hint="Ex:H7"
v-model="modifyTypeSelectItem"/>
<v-text-field class="col-12" outlined rounded
label="名稱"
hint="Ex:個人電腦"
v-model="modifySelectItem"/> v-model="modifySelectItem"/>
<v-btn class="ml-2" @click='pushModifySelectItem'>新增</v-btn>
<v-btn class="ml-2 mb-8" @click='pushModifySelectItem'>新增</v-btn>
</v-col> </v-col>
</v-row> </v-row>
<p class="font-italic mb-0 mt-1">拖曳選項以排序</p> <p class="font-italic mb-0 mt-1">拖曳選項以排序</p>
<v-card <v-card
class="mt-2 col-10" class="mt-2 col-10"
min-height="300px"
style="border: 1px solid grey; border-radius: 10px" style="border: 1px solid grey; border-radius: 10px"
> >
<draggable v-model="modifySelectItems"> <draggable v-model="modifySelectItems">
@@ -542,6 +550,7 @@
} }
], ],
oldIndex: '', oldIndex: '',
modifyTypeSelectItem: '',
} }
}, },
async mounted() { async mounted() {
@@ -564,9 +573,7 @@
this.getCols(); this.getCols();
}, },
dialogModifySelectItem() { dialogModifySelectItem() {
if (this.modifySelectItems.length === 0) {
this.getModifySelectItems();
}

}, },
modifySelectItems() { modifySelectItems() {
console.log(this.modifySelectItems[0]); console.log(this.modifySelectItems[0]);
@@ -575,6 +582,9 @@
this.insertColItem.index = (parseInt(this.allCols[this.assertGroup[this.currentTab].value][this.allCols[this.assertGroup[this.currentTab].value].length - 1].index) + 1).toString(); this.insertColItem.index = (parseInt(this.allCols[this.assertGroup[this.currentTab].value][this.allCols[this.assertGroup[this.currentTab].value].length - 1].index) + 1).toString();
}, },
dialogModify() { dialogModify() {
if (this.modifyColItem.isselect === 'true') {
this.getModifySelectItems();
}
this.oldIndex = this.modifyColItem.index; this.oldIndex = this.modifyColItem.index;
} }
}, },
@@ -592,6 +602,7 @@
this.dialogInsertSelectItem = false; this.dialogInsertSelectItem = false;
}, },
getModifySelectItems() { getModifySelectItems() {
this.modifySelectItems = [];
this.$axios.get(`/assert/selectItems?tablename=${this.modifyColItem.tablename}&&colname=${this.modifyColItem.colname}`).then((resp) => { this.$axios.get(`/assert/selectItems?tablename=${this.modifyColItem.tablename}&&colname=${this.modifyColItem.colname}`).then((resp) => {
console.log(resp.data.data); console.log(resp.data.data);
this.modifySelectItems = resp.data.data; this.modifySelectItems = resp.data.data;
@@ -610,11 +621,17 @@
} }
}, },
pushModifySelectItem() { pushModifySelectItem() {
if (this.modifySelectItems.indexOf(this.modifySelectItem) >= 0 || this.modifySelectItem === '') {
if (this.modifySelectItems.indexOf(this.modifySelectItem) >= 0 || this.modifySelectItem === '' || this.modifyTypeSelectItem === '') {
alert('選項不得重複或為空'); alert('選項不得重複或為空');
} else { } else {
this.modifySelectItems.push(this.modifySelectItem);
this.modifySelectItem = '';
if (this.modifyColItem.colname === 'type') {
this.modifySelectItems.push(`${this.modifyTypeSelectItem} ${this.modifySelectItem}`);
this.modifyTypeSelectItem = '';
this.modifySelectItem = '';
} else {
this.modifySelectItems.push(this.modifySelectItem);
this.modifySelectItem = '';
}
} }
}, },
deleteInsertSelectItem(index) { deleteInsertSelectItem(index) {


+ 9
- 3
app/src/components/Inventory.vue View File

@@ -22,6 +22,7 @@
> >
<v-icon>mdi-file-export-outline</v-icon> <v-icon>mdi-file-export-outline</v-icon>
</v-btn> </v-btn>
<!--搜尋對話-->
<v-dialog <v-dialog
v-model="dialogSearch" v-model="dialogSearch"
@click:outside="close" @click:outside="close"
@@ -48,7 +49,7 @@
<v-row> <v-row>
<v-col <v-col


v-for="(val, key, index) in insertItem"
v-for="(val, key, index) in searchItem"
:key="index" :key="index"
cols="12" cols="12"
sm="6" sm="6"
@@ -63,7 +64,7 @@
v-bind:value="val" v-bind:value="val"
:persistent-hint="isRequire(key)" :persistent-hint="isRequire(key)"
hint="必填" hint="必填"
v-on:input="oninput(insertItem, key, $event)"
v-on:input="oninput(searchItem, key, $event)"
/> />
<v-select <v-select
dense dense
@@ -72,7 +73,7 @@
hint="必選" hint="必選"
:label="headers[index].text" :label="headers[index].text"
:value="val" :value="val"
v-on:input="oninput(insertItem, key, $event)"
v-on:input="oninput(searchItem, key, $event)"
:items="selectItem[key]" :items="selectItem[key]"
item-text="item" item-text="item"
item-value="item" item-value="item"
@@ -101,6 +102,7 @@
</v-card-actions> </v-card-actions>
</v-card> </v-card>
</v-dialog> </v-dialog>
<!--新增對話-->
<v-dialog <v-dialog
v-model="dialogInsert" v-model="dialogInsert"
@click:outside="close" @click:outside="close"
@@ -196,6 +198,7 @@
</v-icon> </v-icon>
</template> </template>
</v-data-table> </v-data-table>
<!--修改對話-->
<v-dialog <v-dialog
v-model="dialogModify" v-model="dialogModify"
@click:outside="close" @click:outside="close"
@@ -407,6 +410,9 @@
} }
console.log(item); console.log(item);
}, },
search() {

},
exportFile() { exportFile() {
let yes = confirm('確定匯出'); let yes = confirm('確定匯出');
if (yes) { if (yes) {


+ 5
- 1
src/main/java/com/moze/rms/controller/AssertGroupController.java View File

@@ -30,6 +30,8 @@ public class AssertGroupController {
assertDAO.insertAssertGroup(data); assertDAO.insertAssertGroup(data);
assertDAO.insertMappingTable(data); assertDAO.insertMappingTable(data);
assertDAO.insertMappingType(data); assertDAO.insertMappingType(data);
assertDAO.insertIdToMapCol(data);
assertDAO.insertTypeToMapCol(data);


return new JsonResult(StatusCode.SUCCESS, null); return new JsonResult(StatusCode.SUCCESS, null);
} }
@@ -40,6 +42,8 @@ public class AssertGroupController {
assertDAO.deleteAssertGroup(tablename); assertDAO.deleteAssertGroup(tablename);
assertDAO.deleteMappingTable(tablename); assertDAO.deleteMappingTable(tablename);
assertDAO.deleteMappingType(tablename); assertDAO.deleteMappingType(tablename);
assertDAO.deleteMappingCol(tablename);
assertDAO.deleteFromSelectItem(tablename);


return new JsonResult(StatusCode.SUCCESS, null); return new JsonResult(StatusCode.SUCCESS, null);
} }
@@ -88,13 +92,13 @@ public class AssertGroupController {
public JsonResult modifyCol(@RequestBody MappingCol mappingCol) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { public JsonResult modifyCol(@RequestBody MappingCol mappingCol) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {


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


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


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


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


+ 82
- 10
src/main/java/com/moze/rms/dao/AssertDAO.java View File

@@ -56,16 +56,57 @@ public interface AssertDAO extends SqlObject {


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


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


default void insertIdToMapCol(Map<String, Object> data) {

Handle handle = this.getHandle();
String sql = "insert into mapping.mapping_col(tablename, colname, descript, level, type, [index], isselect, isrequire, issearch, isexport) values (";

sql += "'" + data.get("assertGroupTablename") + "',";
sql += "'id',";
sql += "'編號',";
sql += "'0',";
sql += "'int',";
sql += "'0',";
sql += "'false',";
sql += "'false',";
sql += "'false',";
sql += "'true'";
sql += ")";

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

default void insertTypeToMapCol(Map<String, Object> data) {

Handle handle = this.getHandle();
String sql = "insert into mapping.mapping_col(tablename, colname, descript, level, type, [index], isselect, isrequire, issearch, isexport) values (";

sql += "'" + data.get("assertGroupTablename") + "',";
sql += "'type',";
sql += "'資產群組',";
sql += "'0',";
sql += "'nvarchar',";
sql += "'2',";
sql += "'true',";
sql += "'true',";
sql += "'true',";
sql += "'true'";
sql += ")";

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


default void insertMappingTable(Map<String, Object> data) { default void insertMappingTable(Map<String, Object> data) {
Handle handle = this.getHandle(); Handle handle = this.getHandle();
String sql = "insert into mapping.mapping_table(tablename, descript) values ('" + data.get("assertGroupTablename") + "', '" + data.get("assertGroupDescript") + "')"; String sql = "insert into mapping.mapping_table(tablename, descript) values ('" + data.get("assertGroupTablename") + "', '" + data.get("assertGroupDescript") + "')";
@@ -100,6 +141,13 @@ public interface AssertDAO extends SqlObject {


} }


@SqlUpdate("delete from mapping.mapping_col where tablename = ?")
void deleteMappingCol(String tablename);

@SqlUpdate("delete from mapping.selectItem where tablename = ?")
void deleteFromSelectItem(String tablename);


@SqlQuery("select item from mapping.\"selectItem\" where tablename = ? and colname = ? order by [index];") @SqlQuery("select item from mapping.\"selectItem\" where tablename = ? and colname = ? order by [index];")
@RegisterBeanMapper(SelectItemDTO.class) @RegisterBeanMapper(SelectItemDTO.class)
List<String> getSelectItemsByCol(String tablename, String colname); List<String> getSelectItemsByCol(String tablename, String colname);
@@ -192,15 +240,38 @@ public interface AssertDAO extends SqlObject {
} }


default void modifySelectItems(MappingCol m) { default void modifySelectItems(MappingCol m) {

Handle handle = this.getHandle();


String sqlDelete = "delete from mapping.selectItem where tablename = '" + m.getTablename() + "' and colname = '" + m.getColname() + "'" ;
handle.createUpdate(sqlDelete).execute();

if (m.getModifySelectItems() != null) {
for (int i = 1; i <= m.getModifySelectItems().size(); i++) {
String sql = "insert into mapping.selectItem values(";
sql += "'" + m.getTablename() + "',";
sql += "'" + m.getColname() + "',";
sql += "'" + m.getModifySelectItems().get(i - 1) + "',";
sql += "'" + i + "')";
handle.createUpdate(sql).execute();
}
}
}

default void modifyMappingType(MappingCol m) {
Handle handle = this.getHandle(); 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() + "'";
String sqlDelete = "truncate table mapping.mapping_" + m.getTablename();
handle.createUpdate(sqlDelete).execute();


if (m.getModifySelectItems() != null) {
for (int i = 1; i <= m.getModifySelectItems().size(); i++) {
String sql = "insert into mapping.mapping_" + m.getTablename() +" values(";
sql += "'" + m.getModifySelectItems().get(i - 1).split(" ")[0] + "',";
sql += "'" + m.getModifySelectItems().get(i - 1).split(" ")[1] + "',";
sql += "'" + m.getModifySelectItems().get(i - 1).split(" ")[1] + "',";
sql += "'" + m.getModifySelectItems().get(i - 1).split(" ")[1] + "')";
handle.createUpdate(sql).execute(); handle.createUpdate(sql).execute();
} }
} }
@@ -236,4 +307,5 @@ public interface AssertDAO extends SqlObject {


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

} }

Loading…
Cancel
Save