提交 7d7c01f5 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码

上级 841200e7
...@@ -73,8 +73,9 @@ import AppDepartmentSelect from './components/app-department-select/app-departme ...@@ -73,8 +73,9 @@ import AppDepartmentSelect from './components/app-department-select/app-departme
import IBizGroupSelect from './components/ibiz-group-select/ibiz-group-select.vue' import IBizGroupSelect from './components/ibiz-group-select/ibiz-group-select.vue'
import IBizGroupPicker from './components/ibiz-group-picker/ibiz-group-picker.vue' import IBizGroupPicker from './components/ibiz-group-picker/ibiz-group-picker.vue'
import AppWFApproval from './components/app-wf-approval/app-wf-approval.vue' import AppWFApproval from './components/app-wf-approval/app-wf-approval.vue'
import Breadcrumb from './components/app-breadcrumb/app-breadcrumb.vue'; import Breadcrumb from './components/app-breadcrumb/app-breadcrumb.vue'
import AppTransfer from './components/app-transfer/app-transfer.vue' import AppTransfer from './components/app-transfer/app-transfer.vue'
import ContextMenuDrag from './components/context-menu-drag/context-menu-drag.vue'
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
...@@ -162,5 +163,6 @@ export const AppComponents = { ...@@ -162,5 +163,6 @@ export const AppComponents = {
v.component('app-wf-approval',AppWFApproval); v.component('app-wf-approval',AppWFApproval);
v.component('app-breadcrumb',Breadcrumb); v.component('app-breadcrumb',Breadcrumb);
v.component('app-transfer',AppTransfer); v.component('app-transfer',AppTransfer);
v.component('context-menu-drag',ContextMenuDrag);
}, },
}; };
\ No newline at end of file
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<el-breadcrumb class="app-breadcrumb" separator="/"> <el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb"> <transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id"> <el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
<span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ $t(item.title) }}</span> <span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ item.title }}</span>
<a v-else @click.prevent="handleLink(item)">{{ $t(item.title) }}</a> <a v-else @click.prevent="handleLink(item)">{{ item.title }}</a>
</el-breadcrumb-item> </el-breadcrumb-item>
</transition-group> </transition-group>
</el-breadcrumb> </el-breadcrumb>
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
import { Component, Vue, Watch, Prop } from 'vue-property-decorator' import { Component, Vue, Watch, Prop } from 'vue-property-decorator'
import { RouteRecord, Route } from 'vue-router' import { RouteRecord, Route } from 'vue-router'
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import {Subscription } from 'rxjs';
@Component({ @Component({
}) })
...@@ -23,7 +24,14 @@ export default class Breadcrumb extends Vue { ...@@ -23,7 +24,14 @@ export default class Breadcrumb extends Vue {
* *
* @memberof Breadcrumb * @memberof Breadcrumb
*/ */
private breadcrumbs: RouteRecord[] = []; private breadcrumbs: Array<any> = [];
/**
* 导航服务
*
* @memberof Breadcrumb
*/
private navDataService = NavDataService.getInstance();
/** /**
* 默认视图标识 * 默认视图标识
...@@ -40,14 +48,13 @@ export default class Breadcrumb extends Vue { ...@@ -40,14 +48,13 @@ export default class Breadcrumb extends Vue {
@Prop() public indexViewPath!: string; @Prop() public indexViewPath!: string;
/** /**
* 监听路由 * 导航服务事件
* *
* @memberof Breadcrumb * @public
*/ * @type {(Subscription | undefined)}
@Watch('$route') * @memberof Dev
private onRouteChange(route: Route) { */
this.getBreadcrumb() public serviceStateEvent: Subscription | undefined;
}
/** /**
* vue 生命周期 * vue 生命周期
...@@ -55,7 +62,12 @@ export default class Breadcrumb extends Vue { ...@@ -55,7 +62,12 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb * @memberof Breadcrumb
*/ */
created() { created() {
this.getBreadcrumb() this.getBreadcrumb();
this.serviceStateEvent = this.navDataService.serviceState.subscribe(({ action, data }) => {
if (Object.is(action, 'refresh')) {
this.getBreadcrumb();
}
});
} }
/** /**
...@@ -64,8 +76,8 @@ export default class Breadcrumb extends Vue { ...@@ -64,8 +76,8 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb * @memberof Breadcrumb
*/ */
private getBreadcrumb() { private getBreadcrumb() {
let navDataService = NavDataService.getInstance(); this.breadcrumbs = this.navDataService.getNavData();
this.breadcrumbs = navDataService.getNavData(); this.$forceUpdate();
} }
/** /**
...@@ -85,9 +97,20 @@ export default class Breadcrumb extends Vue { ...@@ -85,9 +97,20 @@ export default class Breadcrumb extends Vue {
console.warn(err); console.warn(err);
}); });
} }
let navDataService = NavDataService.getInstance(); this.navDataService.removeNavData(item.id);
navDataService.removeNavData(item.id);
} }
/**
* 组件销毁
*
* @memberof Breadcrumb
*/
public destroyed() {
if (this.serviceStateEvent) {
this.serviceStateEvent.unsubscribe();
}
}
} }
</script> </script>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
overflow: auto; overflow: auto;
> .ivu-tabs-tabpane { > .ivu-tabs-tabpane {
height: 100%; height: 100%;
overflow: auto; overflow: initial;
} }
} }
} }
......
<template>
<Drawer
class-name="sider-drawer"
placement="left"
:closable="false"
:mask="false"
width="240"
v-model="visiable"
>
<div class="context-menu-drag">
<div class="menu-list">
<div
class="menu-header"
@mouseover="showMenuDrawer"
@click="drawerVisiable=!drawerVisiable"
>
<div class="menuicon">
<Icon type="md-apps" />
</div>
<div class="content">
<span>服务</span>
</div>
<div class="forward">
<Icon type="ios-arrow-forward" />
</div>
</div>
<div style="padding:8px 0px;" class="col-6">
<draggable
class="list-group"
tag="ul"
v-model="selectlist"
v-bind="dragOptionsVal"
@start="onStart"
@end="onEnd"
:animation="250"
handle=".handle"
ghost-class="ghost"
>
<transition-group type="transition" :name="!drag ? 'flip-list' : null">
<li class="list-group-item" v-for="(item,index) in selectlist" :key="item.id">
<el-row>
<el-col class="menuicon" :span="4">
<span>
<Icon v-if="item.icon" :type="item.icon" />
<Icon v-else type="md-menu" />
</span>
</el-col>
<el-col :span="14">
<span>{{ item.label }}</span>
</el-col>
<el-col :span="6">
<div class="bar">
<div>
<Icon type="ios-close" @click="removeAt(index)" />
</div>
<div>
<Icon type="ios-move handle" />
</div>
</div>
</el-col>
</el-row>
</li>
</transition-group>
</draggable>
</div>
</div>
<Drawer
class-name="menu-drawer"
width="60"
:closable="true"
:mask="false"
placement="left"
v-model="drawerVisiable"
>
<div class="menuItems">
<div class="item" v-for="(item,index) in list" :key="item.id">
<span class="title">{{item.label}}</span>
<span v-if="isStar(item.id)" class="star" @click="outStar(item)">
<Icon type="ios-star" />
</span>
<span v-else class="star" @click="onStar(item)">
<Icon type="ios-star-outline" />
</span>
</div>
</div>
</Drawer>
</div>
</Drawer>
</template>
<script lang="ts">
import draggable from "vuedraggable";
import {
Vue,
Component,
Provide,
Watch,
Prop,
Model
} from "vue-property-decorator";
// tslint:disable-next-line:max-classes-per-file
@Component({
components: {
draggable
}
})
export default class ContextMenuDrag extends Vue {
drawerVisiable: boolean = false;
current: number = 0;
list: Array<any> = [];
selectlist: Array<any> = [];
drag: boolean = false;
@Model("change") dragOptions: any;
@Prop() contextMenuDragVisiable?: boolean;
visiable: boolean = false;
@Watch("contextMenuDragVisiable")
public onVisiableChange(newVal: any, oldVal: any) {
if (newVal) {
this.visiable = newVal;
} else {
let that: any = this;
let params: any = {};
params.model = this.selectlist;
const put: Promise<any> = this.$http.put("uaa/access-center/app-switcher/default",params);
put.then((response: any) => {
if(response){
console.log(response);
}
}).catch((e) => {
console.log(e);
});
this.drawerVisiable = false;
setTimeout(() => {
that.visiable = false;
}, 300);
}
}
public showMenuDrawer() {
let that: any = this;
if(this.contextMenuDragVisiable){
setTimeout(() => {
that.drawerVisiable = true;
}, 300);
}
}
public menuDrawerClose() {}
public onStart(evt: any) {
this.drag = true;
}
public onEnd(evt: any) {
this.drag = false;
console.log(...this.selectlist);
}
/**
* 判断是否已加入列表
*/
public isStar(id: any) {
let istar: boolean = false;
this.selectlist.forEach((item: any) => {
if (Object.is(item.id, id)) {
istar = true;
}
});
return istar;
}
/**
* 加入列表
*/
public onStar(item: any) {
item.visabled = 1;
this.selectlist.push(item);
}
/**
* 从列表中删除
*/
public outStar(item: any) {
item.visabled = 0;
let index: number = 0;
let that: any = this;
this.selectlist.forEach((select: any, index: number) => {
if (Object.is(item.id, select.id)) {
that.selectlist.splice(index,1);
}
});
}
get dragOptionsVal() {
return {
animation: 200,
group: "description",
disabled: false,
ghostClass: "ghost"
};
}
removeAt(index: any) {
this.selectlist.splice(index, 1);
}
sort() {
this.selectlist = this.selectlist.sort((a, b) => a.order - b.order);
}
listFilter() {
let that: any = this;
that.selectlist = [];
this.list.forEach((item: any) => {
if (item.visabled === 1) {
that.selectlist.push(item);
}
});
}
mounted() {
let that: any = this;
const get: Promise<any> = this.$http.get(
"uaa/access-center/app-switcher/default"
);
get
.then((response: any) => {
if (response) {
that.list = response.data.model;
that.listFilter();
console.log(response);
}
})
.catch(e => {
console.log(e);
});
}
}
</script>
<style lang='less'>
.menu-drawer {
.ivu-drawer-left {
left: 241px !important;
}
.ivu-drawer {
top: 64px !important;
}
.ivu-drawer-body {
padding: 32px !important;
.menuItems {
display: flex;
flex-wrap: wrap;
> .item {
margin: 0px 10px;
width: calc(33.333% - 20px);
padding: 0px 15px;
font-size: 13px;
transition: all 0.3s;
display: flex;
justify-content: space-between;
height: 32px;
align-items: center;
.star {
display: flex;
height: 100%;
width: 30px;
font-size: 15px;
align-items: center;
justify-content: center;
.ivu-icon-ios-star-outline{
display: none;
}
}
}
> .item:hover {
background-color: #eaeaea;
cursor: pointer;
.ivu-icon-ios-star-outline{
display: inline;
}
}
}
}
}
.sider-drawer {
.ivu-drawer {
background-color: #ffffff !important;
}
.ivu-drawer-body {
padding: 0px !important;
}
.ivu-drawer {
top: 64px !important;
}
.context-menu-drag {
display: flex;
.flip-list-move {
transition: transform 0.3s;
}
.menu-list {
width: 100%;
height: 100%;
.menu-header {
cursor: pointer;
border-bottom: 1px solid rgb(222, 222, 222);
height: 48px;
line-height: 48px;
display: flex;
align-items: center;
.menuicon {
display: inline-block;
width: 50px;
font-size: 16px;
text-align: center;
font-size: 22px;
}
.content {
display: inline-block;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1 1 0%;
overflow: hidden;
font-size: 13px;
}
.forward {
margin: 0px 8px 0px 4px;
color: rgb(222, 222, 222);
font-size: 15px;
}
}
.list-group-item {
transition: background 1s;
-webkit-transition: background 1s;
.menuicon {
text-align: center;
}
.el-row {
height: 100%;
display: flex;
align-items: center;
padding: 0px 5px;
}
height: 40px;
cursor: pointer;
position: relative;
display: block;
margin-bottom: -1px;
transition: background-color 0.5s;
transition-timing-function: ease-in-out;
.handle {
cursor: move;
}
.bar {
display: flex;
.ivu-icon-ios-close {
cursor: pointer;
font-size: 25px;
}
}
}
.list-group-item:hover {
background-color: #f5f5f5;
.ivu-icon-ios-star-outline{
display: inline;
}
}
}
}
}
</style>
...@@ -247,12 +247,15 @@ export default class EditViewEngine extends ViewEngine { ...@@ -247,12 +247,15 @@ export default class EditViewEngine extends ViewEngine {
*/ */
public setTabCaption(info: string): void { public setTabCaption(info: string): void {
let viewdata: any = this.view.model; let viewdata: any = this.view.model;
if (viewdata && info && !Object.is(info, '') && this.view.$tabPageExp && (viewdata.srfTitle.indexOf(" - ") === -1)) { if (viewdata && info && !Object.is(info, '') && (viewdata.srfTitle.indexOf("-") === -1)) {
this.view.$tabPageExp.setCurPageCaption(viewdata.srfTitle, viewdata.srfTitle, info); if(this.view.$tabPageExp){
this.view.$tabPageExp.setCurPageCaption(viewdata.srfTitle, viewdata.srfTitle, info);
}
if(this.view.$route){ if(this.view.$route){
this.view.$route.meta.info = info; this.view.$route.meta.info = info;
} }
this.view.model.srfTitle = `${this.view.$t(viewdata.srfTitle)} - ${viewdata.dataInfo}`; this.view.model.srfTitle = `${this.view.$t(viewdata.srfTitle)}-${viewdata.dataInfo}`;
this.view.initNavData();
} }
} }
......
...@@ -13,7 +13,7 @@ export default { ...@@ -13,7 +13,7 @@ export default {
next_time: '下次调度时间', next_time: '下次调度时间',
author: '所有者', author: '所有者',
remark: '备注', remark: '备注',
status: '状态(0、启用 1、已禁用)', status: '状态',
update_time: '更新时间', update_time: '更新时间',
create_time: '创建时间', create_time: '创建时间',
}, },
......
...@@ -12,7 +12,7 @@ export default { ...@@ -12,7 +12,7 @@ export default {
next_time: '下次调度时间', next_time: '下次调度时间',
author: '所有者', author: '所有者',
remark: '备注', remark: '备注',
status: '状态(0、启用 1、已禁用)', status: '状态',
update_time: '更新时间', update_time: '更新时间',
create_time: '创建时间', create_time: '创建时间',
}, },
......
...@@ -4,7 +4,7 @@ export default { ...@@ -4,7 +4,7 @@ export default {
id: '主键ID', id: '主键ID',
app: '服务名', app: '服务名',
address: '执行地址', address: '执行地址',
status: '状态(0、启用 1、已禁用)', status: '状态',
update_time: '更新时间', update_time: '更新时间',
}, },
}; };
\ No newline at end of file
...@@ -3,7 +3,7 @@ export default { ...@@ -3,7 +3,7 @@ export default {
id: '主键ID', id: '主键ID',
app: '服务名', app: '服务名',
address: '执行地址', address: '执行地址',
status: '状态(0、启用 1、已禁用)', status: '状态',
update_time: '更新时间', update_time: '更新时间',
}, },
}; };
\ No newline at end of file
...@@ -44,6 +44,25 @@ export interface NavDataElement { ...@@ -44,6 +44,25 @@ export interface NavDataElement {
} }
export interface ServiceState {
/**
* 行为
*
* @memberof ServiceState
*/
action: string;
/**
* 数据
*
* @memberof ServiceState
*/
data: any;
}
import { Subject } from 'rxjs';
/** /**
* 导航数据服务 * 导航数据服务
* *
...@@ -62,6 +81,13 @@ export default class NavDataService { ...@@ -62,6 +81,13 @@ export default class NavDataService {
*/ */
private static navDataService: NavDataService; private static navDataService: NavDataService;
/**
* 服务状态
*
* @memberof NavDataService
*/
public serviceState: Subject<ServiceState> = new Subject();
/** /**
* 导航数据栈 * 导航数据栈
* *
...@@ -133,6 +159,7 @@ export default class NavDataService { ...@@ -133,6 +159,7 @@ export default class NavDataService {
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack)); this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
return curNavData; return curNavData;
} }
this.serviceState.next({action:'refresh', data:this.navDataStack});
} }
/** /**
......
...@@ -62,10 +62,23 @@ ...@@ -62,10 +62,23 @@
border-top-color: #909399; border-top-color: #909399;
} }
// tab分页模式首页布局
.index_tab_content{
.view-container {
height: calc(100% - 65px);
margin: 0px 12px;
}
}
// 面包屑模式首页布局
.index_route_content{
.view-container {
height: calc(100% - 36px);
margin: 12px;
}
}
.view-container { .view-container {
height: calc(100% - 65px);
padding: 0 12px; padding: 0 12px;
margin: 0px 12px;
background: white; background: white;
box-shadow: 0 2px 4px 0 rgba(0,0,0,.12), 0 0 6px 0 rgba(0,0,0,.04); box-shadow: 0 2px 4px 0 rgba(0,0,0,.12), 0 0 6px 0 rgba(0,0,0,.04);
// flex-direction: column; // flex-direction: column;
...@@ -237,12 +250,6 @@ ...@@ -237,12 +250,6 @@
} }
} }
// 清除看板里视图的阴影
.dashboard .portlet .view-container{
-webkit-box-shadow: none ;
box-shadow: none;
}
/*** END:多数据视图属性布局 ***/ /*** END:多数据视图属性布局 ***/
// 看板视图,卡片模式 // 看板视图,卡片模式
......
...@@ -4,29 +4,6 @@ ...@@ -4,29 +4,6 @@
.app-theme-icon { .app-theme-icon {
color: #6ba1d1; color: #6ba1d1;
} }
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #2d5f8b;
color: #6ba1d1;
i {
color: #6ba1d1;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #4276a4;
color: #f1f1f1;
i {
color: #f1f1f1;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #3c6c95;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
} */
} }
> .ivu-layout { > .ivu-layout {
......
...@@ -3,30 +3,7 @@ ...@@ -3,30 +3,7 @@
> .ivu-layout-has-sider > .ivu-layout > header{ > .ivu-layout-has-sider > .ivu-layout > header{
.app-theme-icon { .app-theme-icon {
color: #606d80; color: #606d80;
}/* }
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #20222A;
color: #606d80;
i {
color: #606d80;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #20222A;
color: #f1f1f1;
i {
color: #f1f1f1;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #3e4b5c;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
} */
} }
> .ivu-layout { > .ivu-layout {
> .ivu-layout-sider { > .ivu-layout-sider {
......
...@@ -4,29 +4,6 @@ ...@@ -4,29 +4,6 @@
.app-theme-icon { .app-theme-icon {
color: #aaaaaa; color: #aaaaaa;
} }
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #e1e1e1;
color: #aaaaaa;
i {
color: #aaaaaa;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #f6f6f6;
color: #666666;
i {
color: #666666;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #e9e9e9;
color: #666666 !important;
i {
color: #666666;
}
}
} */
} }
> .ivu-layout { > .ivu-layout {
> .ivu-layout-sider { > .ivu-layout-sider {
......
...@@ -180,6 +180,7 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i ...@@ -180,6 +180,7 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i
@Override @Override
public List<JSONObject> select(String sql, Map param){ public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param); return this.baseMapper.selectBySQL(sql,param);
......
...@@ -156,6 +156,7 @@ public class JobsLockServiceImpl extends ServiceImpl<JobsLockMapper, JobsLock> i ...@@ -156,6 +156,7 @@ public class JobsLockServiceImpl extends ServiceImpl<JobsLockMapper, JobsLock> i
@Override @Override
public List<JSONObject> select(String sql, Map param){ public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param); return this.baseMapper.selectBySQL(sql,param);
......
...@@ -156,6 +156,7 @@ public class JobsLogServiceImpl extends ServiceImpl<JobsLogMapper, JobsLog> impl ...@@ -156,6 +156,7 @@ public class JobsLogServiceImpl extends ServiceImpl<JobsLogMapper, JobsLog> impl
@Override @Override
public List<JSONObject> select(String sql, Map param){ public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param); return this.baseMapper.selectBySQL(sql,param);
......
...@@ -156,6 +156,7 @@ public class JobsRegistryServiceImpl extends ServiceImpl<JobsRegistryMapper, Job ...@@ -156,6 +156,7 @@ public class JobsRegistryServiceImpl extends ServiceImpl<JobsRegistryMapper, Job
@Override @Override
public List<JSONObject> select(String sql, Map param){ public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param); return this.baseMapper.selectBySQL(sql,param);
......
<?xml version="1.1" encoding="UTF-8" standalone="no"?> !!!!模版产生代码错误:----
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
<!--输出实体[JOBS_INFO]数据结构 --> FTL stack trace ("~" means nesting-related):
<changeSet author="a_A_5d9d78509" id="tab-jobs_info-50-1"> - Failed at: ${dbinst.getUserName()} [in template "CODETEMPL_zh_CN" at line 28, column 24]
<createTable tableName="JOBS_INFO"> ----
<column name="ID" remarks="" type="BIGINT"> \ No newline at end of file
<constraints primaryKey="true" primaryKeyName="PK_JOBS_INFO_ID"/>
</column>
<column name="TENANT_ID" remarks="" type="VARCHAR(100)">
</column>
<column name="APP" remarks="" type="VARCHAR(100)">
</column>
<column name="CRON" remarks="" type="VARCHAR(100)">
</column>
<column name="HANDLER" remarks="" type="VARCHAR(255)">
</column>
<column name="PARAM" remarks="" type="VARCHAR(512)">
</column>
<column name="TIMEOUT" remarks="" type="INT">
</column>
<column name="FAIL_RETRY_COUNT" remarks="" type="INT">
</column>
<column name="LAST_TIME" remarks="" type="BIGINT">
</column>
<column name="NEXT_TIME" remarks="" type="BIGINT">
</column>
<column name="AUTHOR" remarks="" type="VARCHAR(30)">
</column>
<column name="REMARK" remarks="" type="VARCHAR(30)">
</column>
<column name="STATUS" remarks="" type="INT">
</column>
<column name="UPDATE_TIME" remarks="" type="BIGINT">
</column>
<column name="CREATE_TIME" remarks="" type="BIGINT">
</column>
</createTable>
</changeSet>
<!--输出实体[JOBS_REGISTRY]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-jobs_registry-15-2">
<createTable tableName="JOBS_REGISTRY">
<column name="ID" remarks="" type="BIGINT">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_REGISTRY_ID"/>
</column>
<column name="APP" remarks="" type="VARCHAR(100)">
</column>
<column name="ADDRESS" remarks="" type="VARCHAR(255)">
</column>
<column name="STATUS" remarks="" type="INT">
</column>
<column name="UPDATE_TIME" remarks="" type="BIGINT">
</column>
</createTable>
</changeSet>
<!--输出实体[JOBS_LOCK]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-jobs_lock-13-3">
<createTable tableName="JOBS_LOCK">
<column name="ID" remarks="" type="BIGINT">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_LOCK_ID"/>
</column>
<column name="NAME" remarks="" type="VARCHAR(30)">
</column>
<column name="OWNER" remarks="" type="VARCHAR(100)">
</column>
<column name="CREATE_TIME" remarks="" type="BIGINT">
</column>
</createTable>
</changeSet>
<!--输出实体[JOBS_LOG]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-jobs_log-29-4">
<createTable tableName="JOBS_LOG">
<column name="ID" remarks="" type="BIGINT">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_LOG_ID"/>
</column>
<column name="JOB_ID" remarks="" type="BIGINT">
</column>
<column name="ADDRESS" remarks="" type="VARCHAR(255)">
</column>
<column name="HANDLER" remarks="" type="VARCHAR(255)">
</column>
<column name="PARAM" remarks="" type="VARCHAR(512)">
</column>
<column name="FAIL_RETRY_COUNT" remarks="" type="INT">
</column>
<column name="TRIGGER_CODE" remarks="" type="INT">
</column>
<column name="TRIGGER_TYPE" remarks="" type="VARCHAR(30)">
</column>
<column name="TRIGGER_MSG" remarks="" type="TEXT(1048576)">
</column>
<column name="CREATE_TIME" remarks="" type="BIGINT">
</column>
</createTable>
</changeSet>
<!--输出实体[JOBS_INFO]外键关系 -->
<!--输出实体[JOBS_REGISTRY]外键关系 -->
<!--输出实体[JOBS_LOCK]外键关系 -->
<!--输出实体[JOBS_LOG]外键关系 -->
</databaseChangeLog>
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<select id="selectById" resultMap="JobsInfoResultMap" databaseId="mysql"> <select id="selectById" resultMap="JobsInfoResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`APP`, t1.`AUTHOR`, t1.`CREATE_TIME`, t1.`CRON`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`LAST_TIME`, t1.`NEXT_TIME`, t1.`PARAM`, t1.`REMARK`, t1.`STATUS`, t1.`TENANT_ID`, t1.`TIMEOUT`, t1.`UPDATE_TIME` FROM `JOBS_INFO` t1 ) t1 where id=#{id}]]> <![CDATA[select t1.* from (SELECT t1.`APP`, t1.`AUTHOR`, t1.`CREATE_TIME`, t1.`CRON`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`LAST_TIME`, t1.`NEXT_TIME`, t1.`PARAM`, t1.`REMARK`, t1.`STATUS`, t1.`TENANT_ID`, t1.`TIMEOUT`, t1.`UPDATE_TIME` FROM `JOBS_INFO` t1 ) t1 where id=#{id}]]>
</select> </select>
<select id="selectById" resultMap="JobsInfoResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.APP, t1.AUTHOR, t1.CREATE_TIME, t1.CRON, t1.FAIL_RETRY_COUNT, t1.HANDLER, t1.ID, t1.LAST_TIME, t1.NEXT_TIME, t1.PARAM, t1.REMARK, t1.STATUS, t1.TENANT_ID, t1.TIMEOUT, t1.UPDATE_TIME FROM JOBS_INFO t1 ) t1 where id=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 --> <!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="JobsInfoResultMap" type="cn.ibizlab.core.task.domain.JobsInfo" autoMapping="true"> <resultMap id="JobsInfoResultMap" type="cn.ibizlab.core.task.domain.JobsInfo" autoMapping="true">
...@@ -36,10 +39,20 @@ ...@@ -36,10 +39,20 @@
<![CDATA[ SELECT t1.`APP`, t1.`AUTHOR`, t1.`CREATE_TIME`, t1.`CRON`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`LAST_TIME`, t1.`NEXT_TIME`, t1.`PARAM`, t1.`REMARK`, t1.`STATUS`, t1.`TENANT_ID`, t1.`TIMEOUT`, t1.`UPDATE_TIME` FROM `JOBS_INFO` t1 <![CDATA[ SELECT t1.`APP`, t1.`AUTHOR`, t1.`CREATE_TIME`, t1.`CRON`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`LAST_TIME`, t1.`NEXT_TIME`, t1.`PARAM`, t1.`REMARK`, t1.`STATUS`, t1.`TENANT_ID`, t1.`TIMEOUT`, t1.`UPDATE_TIME` FROM `JOBS_INFO` t1
]]> ]]>
</sql> </sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.APP, t1.AUTHOR, t1.CREATE_TIME, t1.CRON, t1.FAIL_RETRY_COUNT, t1.HANDLER, t1.ID, t1.LAST_TIME, t1.NEXT_TIME, t1.PARAM, t1.REMARK, t1.STATUS, t1.TENANT_ID, t1.TIMEOUT, t1.UPDATE_TIME FROM JOBS_INFO t1
]]>
</sql>
<!--数据查询[View]--> <!--数据查询[View]-->
<sql id="View" databaseId="mysql"> <sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`APP`, t1.`AUTHOR`, t1.`CREATE_TIME`, t1.`CRON`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`LAST_TIME`, t1.`NEXT_TIME`, t1.`PARAM`, t1.`REMARK`, t1.`STATUS`, t1.`TENANT_ID`, t1.`TIMEOUT`, t1.`UPDATE_TIME` FROM `JOBS_INFO` t1 <![CDATA[ SELECT t1.`APP`, t1.`AUTHOR`, t1.`CREATE_TIME`, t1.`CRON`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`LAST_TIME`, t1.`NEXT_TIME`, t1.`PARAM`, t1.`REMARK`, t1.`STATUS`, t1.`TENANT_ID`, t1.`TIMEOUT`, t1.`UPDATE_TIME` FROM `JOBS_INFO` t1
]]> ]]>
</sql> </sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.APP, t1.AUTHOR, t1.CREATE_TIME, t1.CRON, t1.FAIL_RETRY_COUNT, t1.HANDLER, t1.ID, t1.LAST_TIME, t1.NEXT_TIME, t1.PARAM, t1.REMARK, t1.STATUS, t1.TENANT_ID, t1.TIMEOUT, t1.UPDATE_TIME FROM JOBS_INFO t1
]]>
</sql>
</mapper> </mapper>
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<select id="selectById" resultMap="JobsLockResultMap" databaseId="mysql"> <select id="selectById" resultMap="JobsLockResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`CREATE_TIME`, t1.`ID`, t1.`NAME`, t1.`OWNER` FROM `JOBS_LOCK` t1 ) t1 where id=#{id}]]> <![CDATA[select t1.* from (SELECT t1.`CREATE_TIME`, t1.`ID`, t1.`NAME`, t1.`OWNER` FROM `JOBS_LOCK` t1 ) t1 where id=#{id}]]>
</select> </select>
<select id="selectById" resultMap="JobsLockResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.CREATE_TIME, t1.ID, t1.NAME, t1.OWNER FROM JOBS_LOCK t1 ) t1 where id=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 --> <!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="JobsLockResultMap" type="cn.ibizlab.core.task.domain.JobsLock" autoMapping="true"> <resultMap id="JobsLockResultMap" type="cn.ibizlab.core.task.domain.JobsLock" autoMapping="true">
...@@ -31,10 +34,20 @@ ...@@ -31,10 +34,20 @@
<![CDATA[ SELECT t1.`CREATE_TIME`, t1.`ID`, t1.`NAME`, t1.`OWNER` FROM `JOBS_LOCK` t1 <![CDATA[ SELECT t1.`CREATE_TIME`, t1.`ID`, t1.`NAME`, t1.`OWNER` FROM `JOBS_LOCK` t1
]]> ]]>
</sql> </sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.CREATE_TIME, t1.ID, t1.NAME, t1.OWNER FROM JOBS_LOCK t1
]]>
</sql>
<!--数据查询[View]--> <!--数据查询[View]-->
<sql id="View" databaseId="mysql"> <sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`CREATE_TIME`, t1.`ID`, t1.`NAME`, t1.`OWNER` FROM `JOBS_LOCK` t1 <![CDATA[ SELECT t1.`CREATE_TIME`, t1.`ID`, t1.`NAME`, t1.`OWNER` FROM `JOBS_LOCK` t1
]]> ]]>
</sql> </sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.CREATE_TIME, t1.ID, t1.NAME, t1.OWNER FROM JOBS_LOCK t1
]]>
</sql>
</mapper> </mapper>
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<select id="selectById" resultMap="JobsLogResultMap" databaseId="mysql"> <select id="selectById" resultMap="JobsLogResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`ADDRESS`, t1.`CREATE_TIME`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`JOB_ID`, t1.`PARAM`, t1.`TRIGGER_CODE`, t1.`TRIGGER_MSG`, t1.`TRIGGER_TYPE` FROM `JOBS_LOG` t1 ) t1 where id=#{id}]]> <![CDATA[select t1.* from (SELECT t1.`ADDRESS`, t1.`CREATE_TIME`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`JOB_ID`, t1.`PARAM`, t1.`TRIGGER_CODE`, t1.`TRIGGER_MSG`, t1.`TRIGGER_TYPE` FROM `JOBS_LOG` t1 ) t1 where id=#{id}]]>
</select> </select>
<select id="selectById" resultMap="JobsLogResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.ADDRESS, t1.CREATE_TIME, t1.FAIL_RETRY_COUNT, t1.HANDLER, t1.ID, t1.JOB_ID, t1.PARAM, t1.TRIGGER_CODE, t1.TRIGGER_MSG, t1.TRIGGER_TYPE FROM JOBS_LOG t1 ) t1 where id=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 --> <!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="JobsLogResultMap" type="cn.ibizlab.core.task.domain.JobsLog" autoMapping="true"> <resultMap id="JobsLogResultMap" type="cn.ibizlab.core.task.domain.JobsLog" autoMapping="true">
...@@ -36,10 +39,20 @@ ...@@ -36,10 +39,20 @@
<![CDATA[ SELECT t1.`ADDRESS`, t1.`CREATE_TIME`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`JOB_ID`, t1.`PARAM`, t1.`TRIGGER_CODE`, t1.`TRIGGER_TYPE` FROM `JOBS_LOG` t1 <![CDATA[ SELECT t1.`ADDRESS`, t1.`CREATE_TIME`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`JOB_ID`, t1.`PARAM`, t1.`TRIGGER_CODE`, t1.`TRIGGER_TYPE` FROM `JOBS_LOG` t1
]]> ]]>
</sql> </sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.ADDRESS, t1.CREATE_TIME, t1.FAIL_RETRY_COUNT, t1.HANDLER, t1.ID, t1.JOB_ID, t1.PARAM, t1.TRIGGER_CODE, t1.TRIGGER_TYPE FROM JOBS_LOG t1
]]>
</sql>
<!--数据查询[View]--> <!--数据查询[View]-->
<sql id="View" databaseId="mysql"> <sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`ADDRESS`, t1.`CREATE_TIME`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`JOB_ID`, t1.`PARAM`, t1.`TRIGGER_CODE`, t1.`TRIGGER_MSG`, t1.`TRIGGER_TYPE` FROM `JOBS_LOG` t1 <![CDATA[ SELECT t1.`ADDRESS`, t1.`CREATE_TIME`, t1.`FAIL_RETRY_COUNT`, t1.`HANDLER`, t1.`ID`, t1.`JOB_ID`, t1.`PARAM`, t1.`TRIGGER_CODE`, t1.`TRIGGER_MSG`, t1.`TRIGGER_TYPE` FROM `JOBS_LOG` t1
]]> ]]>
</sql> </sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.ADDRESS, t1.CREATE_TIME, t1.FAIL_RETRY_COUNT, t1.HANDLER, t1.ID, t1.JOB_ID, t1.PARAM, t1.TRIGGER_CODE, t1.TRIGGER_MSG, t1.TRIGGER_TYPE FROM JOBS_LOG t1
]]>
</sql>
</mapper> </mapper>
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
<select id="selectById" resultMap="JobsRegistryResultMap" databaseId="mysql"> <select id="selectById" resultMap="JobsRegistryResultMap" databaseId="mysql">
<![CDATA[select t1.* from (SELECT t1.`ADDRESS`, t1.`APP`, t1.`ID`, t1.`STATUS`, t1.`UPDATE_TIME` FROM `JOBS_REGISTRY` t1 ) t1 where id=#{id}]]> <![CDATA[select t1.* from (SELECT t1.`ADDRESS`, t1.`APP`, t1.`ID`, t1.`STATUS`, t1.`UPDATE_TIME` FROM `JOBS_REGISTRY` t1 ) t1 where id=#{id}]]>
</select> </select>
<select id="selectById" resultMap="JobsRegistryResultMap" databaseId="oracle">
<![CDATA[select t1.* from (SELECT t1.ADDRESS, t1.APP, t1.ID, t1.STATUS, t1.UPDATE_TIME FROM JOBS_REGISTRY t1 ) t1 where id=#{id}]]>
</select>
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 --> <!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap id="JobsRegistryResultMap" type="cn.ibizlab.core.task.domain.JobsRegistry" autoMapping="true"> <resultMap id="JobsRegistryResultMap" type="cn.ibizlab.core.task.domain.JobsRegistry" autoMapping="true">
...@@ -31,10 +34,20 @@ ...@@ -31,10 +34,20 @@
<![CDATA[ SELECT t1.`ADDRESS`, t1.`APP`, t1.`ID`, t1.`STATUS`, t1.`UPDATE_TIME` FROM `JOBS_REGISTRY` t1 <![CDATA[ SELECT t1.`ADDRESS`, t1.`APP`, t1.`ID`, t1.`STATUS`, t1.`UPDATE_TIME` FROM `JOBS_REGISTRY` t1
]]> ]]>
</sql> </sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.ADDRESS, t1.APP, t1.ID, t1.STATUS, t1.UPDATE_TIME FROM JOBS_REGISTRY t1
]]>
</sql>
<!--数据查询[View]--> <!--数据查询[View]-->
<sql id="View" databaseId="mysql"> <sql id="View" databaseId="mysql">
<![CDATA[ SELECT t1.`ADDRESS`, t1.`APP`, t1.`ID`, t1.`STATUS`, t1.`UPDATE_TIME` FROM `JOBS_REGISTRY` t1 <![CDATA[ SELECT t1.`ADDRESS`, t1.`APP`, t1.`ID`, t1.`STATUS`, t1.`UPDATE_TIME` FROM `JOBS_REGISTRY` t1
]]> ]]>
</sql> </sql>
<!--数据查询[View]-->
<sql id="View" databaseId="oracle">
<![CDATA[ SELECT t1.ADDRESS, t1.APP, t1.ID, t1.STATUS, t1.UPDATE_TIME FROM JOBS_REGISTRY t1
]]>
</sql>
</mapper> </mapper>
...@@ -21,9 +21,9 @@ spring: ...@@ -21,9 +21,9 @@ spring:
max-idle: 16 max-idle: 16
min-idle: 8 min-idle: 8
datasource: datasource:
username: a_A_5d9d78509 username: root
password: '@6dEfb3@' password: 'root'
url: jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true url: jdbc:mysql://127.0.0.1:3306/ibztask?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver
filters: stat,wall,log4j2 filters: stat,wall,log4j2
#配置初始化大小/最小/最大 #配置初始化大小/最小/最大
...@@ -44,7 +44,7 @@ spring: ...@@ -44,7 +44,7 @@ spring:
pool-prepared-statements: false pool-prepared-statements: false
max-pool-prepared-statement-per-connection-size: 20 max-pool-prepared-statement-per-connection-size: 20
isSyncDBSchema: false isSyncDBSchema: false
defaultSchema: a_A_5d9d78509 defaultSchema: root
conf: classpath:liquibase/master.xml conf: classpath:liquibase/master.xml
#Mybatis-plus配置 #Mybatis-plus配置
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册