Przeglądaj źródła

02/25 08:46

master
teddyhuang 5 lat temu
rodzic
commit
1ba9e9f30c
19 zmienionych plików z 494 dodań i 301 usunięć
  1. +0
    -8
      app/src/components/FileAndData.vue
  2. +0
    -153
      app/src/components/Hardware.vue
  3. +24
    -23
      app/src/components/Home.vue
  4. +280
    -0
      app/src/components/Inventory.vue
  5. +0
    -8
      app/src/components/Person.vue
  6. +0
    -8
      app/src/components/Software.vue
  7. +6
    -24
      app/src/router/index.js
  8. +0
    -10
      pom.xml
  9. +17
    -3
      src/main/java/com/moze/rms/config/JdbiFactory.java
  10. +10
    -0
      src/main/java/com/moze/rms/controller/AccountController.java
  11. +0
    -23
      src/main/java/com/moze/rms/controller/HardwareController.java
  12. +60
    -0
      src/main/java/com/moze/rms/controller/InventoryController.java
  13. +0
    -18
      src/main/java/com/moze/rms/dao/HardwareDAO.java
  14. +35
    -0
      src/main/java/com/moze/rms/dao/InventoryDAO.java
  15. +16
    -0
      src/main/java/com/moze/rms/dao/MappingColDAO.java
  16. +18
    -0
      src/main/java/com/moze/rms/dao/MappingTableDAO.java
  17. +0
    -23
      src/main/java/com/moze/rms/entity/model/Hardware.java
  18. +15
    -0
      src/main/java/com/moze/rms/entity/model/MappingCol.java
  19. +13
    -0
      src/main/java/com/moze/rms/entity/model/MappingTable.java

+ 0
- 8
app/src/components/FileAndData.vue Wyświetl plik

@@ -1,8 +0,0 @@
<template>
<div></div>
</template>
<script>
export default {
name: ''
}
</script>

+ 0
- 153
app/src/components/Hardware.vue Wyświetl plik

@@ -1,153 +0,0 @@
<template>
<div>
<v-data-table class="pa-3 pt-5" :headers="headers">
<template v-slot:top>
<v-toolbar flat>
<v-dialog
v-model="dialog"
max-width="500px"
>
<template v-slot:activator="{ on, attrs }">
<v-spacer></v-spacer>
<v-btn
color="primary"
v-bind="attrs"
v-on="on"
>
<v-icon large>mdi-plus-circle</v-icon>
新增
</v-btn>

</template>
<v-card>
<v-card-title>
<!-- <span class="headline">{{ formTitle }}</span>-->
</v-card-title>

<!-- <v-card-text>-->
<!-- <v-container>-->
<!-- <v-row>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.name"-->
<!-- label="Dessert name"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.calories"-->
<!-- label="Calories"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.fat"-->
<!-- label="Fat (g)"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.carbs"-->
<!-- label="Carbs (g)"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.protein"-->
<!-- label="Protein (g)"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- </v-row>-->
<!-- </v-container>-->
<!-- </v-card-text>-->

<v-card-actions>
<v-spacer></v-spacer>
<!-- <v-btn-->
<!-- color="blue darken-1"-->
<!-- text-->
<!-- @click="close"-->
<!-- >-->
<!-- Cancel-->
<!-- </v-btn>-->
<!-- <v-btn-->
<!-- color="blue darken-1"-->
<!-- text-->
<!-- @click="save"-->
<!-- >-->
<!-- Save-->
<!-- </v-btn>-->
</v-card-actions>
</v-card>
</v-dialog>
<!-- <v-dialog v-model="dialogDelete" max-width="500px">-->
<!-- <v-card>-->
<!-- <v-card-title class="headline">Are you sure you want to delete this item?</v-card-title>-->
<!-- <v-card-actions>-->
<!-- <v-spacer></v-spacer>-->
<!-- <v-btn color="blue darken-1" text @click="closeDelete">Cancel</v-btn>-->
<!-- <v-btn color="blue darken-1" text @click="deleteItemConfirm">OK</v-btn>-->
<!-- <v-spacer></v-spacer>-->
<!-- </v-card-actions>-->
<!-- </v-card>-->
<!-- </v-dialog>-->
</v-toolbar>
</template>
</v-data-table>
</div>
</template>
<script>
export default {
name: '',
data() {
return {
dialog: false,
headers: [
{text: '主機名稱', value: 'hostname'},
{text: '資產群組', value: 'type'},
{text: '對應應用系統', value: 'descript'},
{text: 'IP1', value: 'ip1'},
{text: 'IP2', value: 'ip2'},
{text: '機型(型號)', value: 'model'},
{text: '環境別', value: 'environment'},
{text: '放置地點', value: 'position'},
{text: '機櫃編號', value: 'position_number'},
{text: '數量', value: 'amount'},
{text: '擁有者', value: 'owner_department'},
{text: '保管單位', value: 'keep_department'},
{text: '保管者', value: 'keeper'},
{text: '備註', value: 'remark'},
],
items: [],
}
},
mounted() {
this.getHardwares();
},
methods: {
async getHardwares() {
this.items = await this.$axios.get('/hardware/hardwares');
}
}
}
</script>

+ 24
- 23
app/src/components/Home.vue Wyświetl plik

@@ -1,7 +1,8 @@
<template>
<v-app id="inspire">
<v-app>
<v-navigation-drawer
v-model="drawer"
width="130"
:clipped="$vuetify.breakpoint.lgAndUp"
app
>
@@ -41,13 +42,15 @@
v-else
:key="item.text"
link
dense
:to="item.route"
class="px-0 pl-5"
>
<v-list-item-action>
<v-icon>{{ item.icon }}</v-icon>
</v-list-item-action>
<!-- <v-list-item-action>-->
<!-- <v-icon>{{ item.icon }}</v-icon>-->
<!-- </v-list-item-action>-->
<v-list-item-content>
<v-list-item-title>
<v-list-item-title class="font-weight-bold subtitle-2">
{{ item.text }}
</v-list-item-title>
</v-list-item-content>
@@ -60,6 +63,7 @@
app
color="blue darken-3"
dark
dense
>
<v-app-bar-nav-icon @click.stop="drawer = !drawer" />
<v-toolbar-title
@@ -85,11 +89,9 @@
</v-btn>
</v-app-bar>
<v-content>
<v-container class="grey lighten-5">
<keep-alive>
<router-view></router-view>
</keep-alive>
</v-container>
</v-content>
<v-snackbar v-model="error" top :timeout="2500">
{{ message }}
@@ -116,6 +118,7 @@
drawer: null,
error: false,
message: "",
items: [{ text: '資訊資產群組', route: '/asset_group' }],
}),
created(){
this.$root.$on('showError', (message) => {
@@ -128,27 +131,25 @@
let roles = localStorage.getItem('roles');
return (roles != null && roles.indexOf('ADMIN') >= 0 );
},
items() {
let ret = [
{ icon: 'mdi-history', text: '資訊資產群組', route: '/asset_group' },
{ icon: 'mdi-history', text: '硬體', route: '/hardware' },
{ icon: 'mdi-history', text: '軟體', route: '/software' },
{ icon: 'mdi-history', text: '資料與文件', route: '/fileAndData' },
{ icon: 'mdi-history', text: '人員', route: '/person' },
];
// if (this.isAdmin) {
// ret.push({ icon: 'mdi-account', text: '帳號權限管理', route: '/account' });
// ret.push({ icon: 'mdi-poll-box', text: '報表組態管理', route: '/report_conf' });
// ret.push({ icon: 'mdi-message', text: '通知信管理', route: '/notice' });
// ret.push({ icon: 'mdi-account-details', text: '收信人管理', route: '/receiver' });
// }
return ret;
}
},
mounted() {
this.getRoutes();
},
methods: {
logout(){
this.$emit("authenticated", null);
},
async getRoutes() {
this.$axios.get('/routes').then((resp) => {
resp.data.data.forEach((item) => {
let route = {'text': '', 'route': ''};
route.text = item.descript;
route.route = `/inventory/${item.tablename}`;
this.items.push(route);
});
console.log(this.items);
});
},
}
}
</script>

+ 280
- 0
app/src/components/Inventory.vue Wyświetl plik

@@ -0,0 +1,280 @@
<template>
<div>
<v-data-table class="pa-3 pt-5" :headers="headers" :items="items">
<template v-slot:top>
<v-toolbar flat>
<v-toolbar-title class="title font-weight-bold">{{title}}</v-toolbar-title>
<v-divider
class="mx-4"
inset
vertical
/>
<v-spacer />
<v-dialog
v-model="dialogInsert"
max-width="500px"
@click:outside="close"
>
<template v-slot:activator="{ on, attrs }">
<v-btn
color="white"
class="primary"
v-bind="attrs"
v-on="on"
icon
>
<v-icon>mdi-plus</v-icon>
</v-btn>

</template>
<v-card>
<v-card-title>
<span class="headline font-weight-bold">新增</span>
</v-card-title>

<!-- <v-card-text>-->
<!-- <v-container>-->
<!-- <v-row>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.name"-->
<!-- label="Dessert name"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.calories"-->
<!-- label="Calories"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.fat"-->
<!-- label="Fat (g)"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.carbs"-->
<!-- label="Carbs (g)"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- <v-col-->
<!-- cols="12"-->
<!-- sm="6"-->
<!-- md="4"-->
<!-- >-->
<!-- <v-text-field-->
<!-- v-model="editedItem.protein"-->
<!-- label="Protein (g)"-->
<!-- ></v-text-field>-->
<!-- </v-col>-->
<!-- </v-row>-->
<!-- </v-container>-->
<!-- </v-card-text>-->

<v-card-actions>
<v-spacer></v-spacer>
<v-btn
color="blue darken-1"
text
@click="close"
>
取消
</v-btn>
<v-btn
color="blue darken-1"
text
@click="insertOne"
>
新增
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</v-toolbar>
</template>
<template v-slot:item.actions="{ item }">
<v-dialog
v-model="dialogModify"
@click:outside="close"
>
<template v-slot:activator="{ on, attrs }">
<v-btn
v-bind="attrs"
v-on="on"
icon
@click="modifyItem = item;"
>
<v-icon>mdi-pencil</v-icon>
</v-btn>
</template>
<v-card>
<v-card-title>
<span class="headline font-weight-bold">修改</span>
</v-card-title>
<v-card-text>
<v-container>
<v-row>
<v-col

v-for="(val, key, index) in modifyItem"
:key="index"
cols="12"
sm="6"
md="4"
class="d-flex"
>
<v-text-field
:label="headers[index].text"
v-bind:value="val"
v-on:input="oninput(key, $event)"
></v-text-field>
</v-col>
</v-row>
</v-container>
</v-card-text>

<v-card-actions>
<v-spacer></v-spacer>
<v-btn
color="blue darken-1"
text
@click="close"
>
取消
</v-btn>
<v-btn
color="blue darken-1"
text
@click="modifyOne(item)"
>
修改
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-icon
small
@click="deleteOne(item)"
>
mdi-delete
</v-icon>
</template>
</v-data-table>
</div>
</template>
<script>
export default {
name: '',
data() {
return {
dialogInsert: false,
dialogModify: false,
title: '',
headers: [
],
items: [],
modifyItem: {}
}
},
mounted() {
this.getHeaders();
this.getInventories();
console.log(this.$route.params.tablename);
},
computed: {
tablename() {
return this.$route.params.tablename;
}
},
watch: {
tablename() {
this.headers = [];
this.headers = [];
this.getHeaders();
this.items = [];
this.getInventories();
this.title = '';
this.getTitle();
},
modifyItem() {
// this.modifyItem.sort
console.log(this.modifyItem);
},
},
methods: {
log() {
alert('as');
},
oninput(key, val) {
console.log(val);
this.$set(this.modifyItem, key, val);
console.log(this.modifyItem);

},
async getTitle() {
this.$axios.get(`/title?tablename=${this.tablename}`).then((resp) => {
this.title = `${resp.data.data}類`;
});
},
async getHeaders() {
this.$axios.get(`/headers?tablename=${this.tablename}`).then((resp) => {
resp.data.data.forEach((item) => {
let header = {};
header.text = item.descript;
header.value = item.colname;
this.headers.push(header);
});
this.headers.push({text: '', value: 'actions', sortable: false});
});
},
async getInventories() {
this.$axios.get(`/inventory?tablename=${this.tablename}`).then((resp) => {
console.log(resp);
this.items = resp.data.data;
});
},
async insertOne(item, prop) {
console.log(item);
console.log(prop);
},
async close() {
this.dialogInsert = false;
this.dialogModify = false;
},
async modifyOne(item) {
item.tablename = this.tablename;
console.log(item);
this.$axios.put(`/inventory?`, item).then(() => {
this.getInventories();
this.close();
}
);
},
async deleteOne(item) {
let yes = confirm('確定刪除');
if (yes) {
alert('已刪除');
}
console.log(item);
},
}
}
</script>

+ 0
- 8
app/src/components/Person.vue Wyświetl plik

@@ -1,8 +0,0 @@
<template>
<div></div>
</template>
<script>
export default {
name: ''
}
</script>

+ 0
- 8
app/src/components/Software.vue Wyświetl plik

@@ -1,8 +0,0 @@
<template>
<div></div>
</template>
<script>
export default {
name: ''
}
</script>

+ 6
- 24
app/src/router/index.js Wyświetl plik

@@ -1,12 +1,9 @@
import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/components/Login'
import Home from "../components/Home";
import AssetGroup from "../components/AssetGroup";
import Hardware from "../components/Hardware";
import Software from "../components/Software";
import FileAndData from "../components/FileAndData";
import Person from "../components/Person";
import Home from '../components/Home';
import AssetGroup from '../components/AssetGroup';
import Inventory from '../components/Inventory';

Vue.use(Router);

@@ -27,24 +24,9 @@ export const constantRoutes = [
component: AssetGroup
},
{
path: '/hardware',
name: 'hardware',
component: Hardware
},
{
path: '/software',
name: 'software',
component: Software
},
{
path: '/fileAndData',
name: 'fileAndData',
component: FileAndData
},
{
path: '/person',
name: 'person',
component: Person
path: '/inventory/:tablename',
name: 'inventory',
component: Inventory
},
]
}


+ 0
- 10
pom.xml Wyświetl plik

@@ -97,16 +97,6 @@
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>

<build>


+ 17
- 3
src/main/java/com/moze/rms/config/JdbiFactory.java Wyświetl plik

@@ -1,6 +1,8 @@
package com.moze.rms.config;

import com.moze.rms.dao.HardwareDAO;
import com.moze.rms.dao.InventoryDAO;
import com.moze.rms.dao.MappingColDAO;
import com.moze.rms.dao.MappingTableDAO;
import org.jdbi.v3.core.Jdbi;
import org.jdbi.v3.core.statement.SqlLogger;
import org.jdbi.v3.core.statement.StatementContext;
@@ -12,6 +14,7 @@ import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;

import javax.sql.DataSource;


@Configuration
public class JdbiFactory {

@@ -48,8 +51,19 @@ public class JdbiFactory {
// return jdbi;
// }


@Bean
public MappingTableDAO mappingTableDAO(Jdbi jdbi) {
return jdbi.onDemand(MappingTableDAO.class);
}

@Bean
public MappingColDAO mappingColDAO(Jdbi jdbi) {
return jdbi.onDemand(MappingColDAO.class);
}

@Bean
public HardwareDAO hardwareDAO(Jdbi jdbi) {
return jdbi.onDemand(HardwareDAO.class);
public InventoryDAO inventoryDAO(Jdbi jdbi) {
return jdbi.onDemand(InventoryDAO.class);
}
}

+ 10
- 0
src/main/java/com/moze/rms/controller/AccountController.java Wyświetl plik

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


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/account")
public class AccountController {
}

+ 0
- 23
src/main/java/com/moze/rms/controller/HardwareController.java Wyświetl plik

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

import com.moze.rms.dao.HardwareDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/hardware")
public class HardwareController {

@Autowired
HardwareDAO hardwareDAO;

@GetMapping("/hardwares")
public JsonResult getHardwares() {

return new JsonResult(StatusCode.SUCCESS, hardwareDAO.findAll());
}


}

+ 60
- 0
src/main/java/com/moze/rms/controller/InventoryController.java Wyświetl plik

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


import com.moze.rms.dao.InventoryDAO;
import com.moze.rms.dao.MappingColDAO;
import com.moze.rms.dao.MappingTableDAO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/api")
public class InventoryController {

@Autowired
MappingTableDAO mappingTableDAO;

@Autowired
MappingColDAO mappingColDAO;

@Autowired
InventoryDAO inventoryDAO;


@GetMapping("/routes")
public JsonResult getRoutes() {

return new JsonResult(StatusCode.SUCCESS, mappingTableDAO.findAll());
}

@GetMapping("/title")
public JsonResult getTitle(@RequestParam String tablename) {

return new JsonResult(StatusCode.SUCCESS, mappingTableDAO.findTitle(tablename));
}


@GetMapping("/headers")
public JsonResult getHeaders(@RequestParam String tablename) {

return new JsonResult(StatusCode.SUCCESS, mappingColDAO.findByTable(tablename));
}
@GetMapping("/inventory")
public JsonResult getInventorys(@RequestParam String tablename) {
return new JsonResult(StatusCode.SUCCESS, inventoryDAO.getInventoryByTablename(tablename));
}

@PutMapping("/inventory")
public JsonResult modifyInventory(@RequestBody Map<String, Object> data) {
try {
inventoryDAO.modifyInventory(data);
return new JsonResult(StatusCode.SUCCESS, null);
} catch (Exception e) {
return new JsonResult(StatusCode.SYS_ERROR, e.getMessage());
}

}

}

+ 0
- 18
src/main/java/com/moze/rms/dao/HardwareDAO.java Wyświetl plik

@@ -1,18 +0,0 @@
package com.moze.rms.dao;


import com.moze.rms.entity.model.Hardware;
import org.jdbi.v3.sqlobject.config.RegisterBeanMapper;
import org.jdbi.v3.sqlobject.statement.SqlQuery;
import org.springframework.stereotype.Repository;

import java.util.List;

@RegisterBeanMapper(Hardware.class)
public interface HardwareDAO {
@SqlQuery("select * from hardware;")
List<Hardware> findAll();


}

+ 35
- 0
src/main/java/com/moze/rms/dao/InventoryDAO.java Wyświetl plik

@@ -0,0 +1,35 @@
package com.moze.rms.dao;


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.util.List;
import java.util.Map;

public interface InventoryDAO extends SqlObject {


@RegisterBeanMapper(Object.class)
default List<Map<String, Object>> getInventoryByTablename(String tablename) {
Handle handle = this.getHandle();
String sql = "select * from " + tablename;
return handle.createQuery(sql).mapToMap().list();
}

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

Handle handle = this.getHandle();
String sql = "update " + data.get("tablename") + " set ";
for (Map.Entry<String, Object> entry : data.entrySet()) {
if (!entry.getKey().equals("id") && !entry.getKey().equals("tablename"))
sql += entry.getKey() + " = " + entry.getValue() + ",";
}
sql = sql.substring(0, sql.length()-1);
sql += "where id = " + data.get("id");
handle.createUpdate(sql).execute();
}
}

+ 16
- 0
src/main/java/com/moze/rms/dao/MappingColDAO.java Wyświetl plik

@@ -0,0 +1,16 @@
package com.moze.rms.dao;


import com.moze.rms.entity.model.MappingCol;
import org.jdbi.v3.sqlobject.config.RegisterBeanMapper;
import org.jdbi.v3.sqlobject.statement.SqlQuery;

import java.util.List;

@RegisterBeanMapper(MappingCol.class)
public interface MappingColDAO {


@SqlQuery("select * from mapping.mapping_col where tablename = ? order by index;")
List<MappingCol> findByTable(String tablename);
}

+ 18
- 0
src/main/java/com/moze/rms/dao/MappingTableDAO.java Wyświetl plik

@@ -0,0 +1,18 @@
package com.moze.rms.dao;


import com.moze.rms.entity.model.MappingTable;
import org.jdbi.v3.sqlobject.config.RegisterBeanMapper;
import org.jdbi.v3.sqlobject.statement.SqlQuery;

import java.util.List;

@RegisterBeanMapper(MappingTable.class)
public interface MappingTableDAO {
@SqlQuery("select * from mapping.mapping_table;")
List<MappingTable> findAll();

@SqlQuery("select descript from mapping.mapping_table where tablename = ?;")
String findTitle(String tablename);
}

+ 0
- 23
src/main/java/com/moze/rms/entity/model/Hardware.java Wyświetl plik

@@ -1,23 +0,0 @@
package com.moze.rms.entity.model;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class Hardware {
private String hostname;
private String type;
private String descript;
private String ip1;
private String ip2;
private String model;
private String environment;
private String position;
private String position_number;
private Integer amount;
private String owner_department;
private String keep_department;
private String keeper;
private String remark;
}

+ 15
- 0
src/main/java/com/moze/rms/entity/model/MappingCol.java Wyświetl plik

@@ -0,0 +1,15 @@
package com.moze.rms.entity.model;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class MappingCol {

private String tablename;
private String colname;
private Integer level;
private String descript;
private String type;
}

+ 13
- 0
src/main/java/com/moze/rms/entity/model/MappingTable.java Wyświetl plik

@@ -0,0 +1,13 @@
package com.moze.rms.entity.model;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class MappingTable {

private String tablename;
private String descript;

}

Ładowanie…
Anuluj
Zapisz