teddyhuang 5 лет назад
Родитель
Сommit
f5d8d67618
4 измененных файлов: 121 добавлений и 22 удалений
  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 Просмотреть файл

@@ -426,14 +426,22 @@
<v-container>
<v-row>
<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-btn class="ml-2" @click='pushModifySelectItem'>新增</v-btn>
<v-btn class="ml-2 mb-8" @click='pushModifySelectItem'>新增</v-btn>
</v-col>
</v-row>
<p class="font-italic mb-0 mt-1">拖曳選項以排序</p>
<v-card
class="mt-2 col-10"
min-height="300px"
style="border: 1px solid grey; border-radius: 10px"
>
<draggable v-model="modifySelectItems">
@@ -542,6 +550,7 @@
}
],
oldIndex: '',
modifyTypeSelectItem: '',
}
},
async mounted() {
@@ -564,9 +573,7 @@
this.getCols();
},
dialogModifySelectItem() {
if (this.modifySelectItems.length === 0) {
this.getModifySelectItems();
}

},
modifySelectItems() {
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();
},
dialogModify() {
if (this.modifyColItem.isselect === 'true') {
this.getModifySelectItems();
}
this.oldIndex = this.modifyColItem.index;
}
},
@@ -592,6 +602,7 @@
this.dialogInsertSelectItem = false;
},
getModifySelectItems() {
this.modifySelectItems = [];
this.$axios.get(`/assert/selectItems?tablename=${this.modifyColItem.tablename}&&colname=${this.modifyColItem.colname}`).then((resp) => {
console.log(resp.data.data);
this.modifySelectItems = resp.data.data;
@@ -610,11 +621,17 @@
}
},
pushModifySelectItem() {
if (this.modifySelectItems.indexOf(this.modifySelectItem) >= 0 || this.modifySelectItem === '') {
if (this.modifySelectItems.indexOf(this.modifySelectItem) >= 0 || this.modifySelectItem === '' || this.modifyTypeSelectItem === '') {
alert('選項不得重複或為空');
} 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) {


+ 9
- 3
app/src/components/Inventory.vue Просмотреть файл

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

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

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


+ 5
- 1
src/main/java/com/moze/rms/controller/AssertGroupController.java Просмотреть файл

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

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

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

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

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

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

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


+ 82
- 10
src/main/java/com/moze/rms/dao/AssertDAO.java Просмотреть файл

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

Handle handle = this.getHandle();
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 += " name varchar,";
sql += " descript varchar,";
sql += " example varchar";
sql += " name nvarchar(256),";
sql += " descript nvarchar(256),";
sql += " example nvarchar(256)";
sql += ")";

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) {
Handle handle = this.getHandle();
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];")
@RegisterBeanMapper(SelectItemDTO.class)
List<String> getSelectItemsByCol(String tablename, String colname);
@@ -192,15 +240,38 @@ public interface AssertDAO extends SqlObject {
}

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();

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();
}
}
@@ -236,4 +307,5 @@ public interface AssertDAO extends SqlObject {

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

}

Загрузка…
Отмена
Сохранить