diff --git a/doc/md/codegen.md b/doc/md/codegen.md
index ae3620b30..e62851813 100644
--- a/doc/md/codegen.md
+++ b/doc/md/codegen.md
@@ -74,4 +74,16 @@ v 1.4.0 提供了代码图形化生成功能。

-##### 最后给角色分配,你新增的菜单和按钮喔
\ No newline at end of file
+5. **配置路由**
+前端 index.js
+```js
+ '/code': {
+ target: baseUrl,
+ changeOrigin: true,
+ pathRewrite: {
+ '^/code': '/code'
+ }
+ },
+```
+
+##### 最后给角色分配,你新增的菜单和按钮喔
diff --git a/doc/md/swagger.md b/doc/md/swagger.md
index 17a4b319c..7c2b82af0 100644
--- a/doc/md/swagger.md
+++ b/doc/md/swagger.md
@@ -40,7 +40,7 @@ swagger:
# 描述,默认空
description: '全宇宙最牛逼的Spring Cloud微服务开发脚手架'
# 版本,默认空
- version: '1.3.0'
+ version: '1.4.0'
# 许可证,默认空
license: 'Powered By PigX'
# 许可证URL,默认空
diff --git a/pigx-visual/pigx-codegen/pom.xml b/pigx-visual/pigx-codegen/pom.xml
index 77591ac3a..29f8a3a60 100755
--- a/pigx-visual/pigx-codegen/pom.xml
+++ b/pigx-visual/pigx-codegen/pom.xml
@@ -15,14 +15,6 @@
pigx-codegen
代码生成模块
-
- 1.3.0
- 2.6
- 2.5
- 1.10
- 1.7
-
-
@@ -45,16 +37,12 @@
pigx-common-core
${pigx.version}
+
com.pig4cloud
pigx-common-swagger
${pigx.version}
-
-
- org.springframework.cloud
- spring-cloud-starter-security
-
velocity
diff --git a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java
index 86922e13c..5c9d56ef5 100644
--- a/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java
+++ b/pigx-visual/pigx-codegen/src/main/java/com/pig4cloud/pigx/codegen/util/GenUtils.java
@@ -265,7 +265,7 @@ public class GenUtils {
}
if (template.contains(MAPPER_XML_VM)) {
- return "pigx" + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "mapper" + File.separator + moduleName + File.separator + className + "Mapper.xml";
+ return "pigx" + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "mapper" + File.separator + className + "Mapper.xml";
}
if (template.contains(MENU_SQL_VM)) {
diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/crud.js.vm b/pigx-visual/pigx-codegen/src/main/resources/template/crud.js.vm
index 7e9ac84b7..09d28226b 100644
--- a/pigx-visual/pigx-codegen/src/main/resources/template/crud.js.vm
+++ b/pigx-visual/pigx-codegen/src/main/resources/template/crud.js.vm
@@ -23,6 +23,7 @@ export const tableOption = {
"align": "center",
"editBtn": false,
"delBtn": false,
+ "addBtn": false,
"dic": [],
"column": [
#foreach ($column in $columns)
diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm b/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm
index abbc90032..bb76c5b6f 100644
--- a/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm
+++ b/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm
@@ -2,12 +2,12 @@
-- 菜单SQL
insert into `pigx`.`sys_menu` ( `parent_id`, `component`, `permission`, `type`, `path`, `icon`, `menu_id`, `del_flag`, `create_time`, `sort`, `update_time`, `name`)
- values ( '父菜单ID', 'views/${moduleName}/${pathName}/index', '菜单ID', '0', '${pathName}', 'icon-bangzhushouji', '8', '0', '2018-01-20 13:17:19', '8', '2018-07-29 13:38:19', '${comments}管理');
+ values ( '父菜单ID', 'views/${moduleName}/${pathName}/index', '', '0', '${pathName}', 'icon-bangzhushouji', '菜单ID', '0', '2018-01-20 13:17:19', '8', '2018-07-29 13:38:19', '${comments}管理');
-- 菜单对应按钮SQL
insert into `pigx`.`sys_menu` ( `parent_id`, `component`, `permission`, `type`, `path`, `icon`, `menu_id`, `del_flag`, `create_time`, `sort`, `update_time`, `name`)
- values ( '子按钮ID1', null, '${moduleName}_${pathName}_add', '1', null, '1', '菜单ID', '0', '2018-05-15 21:35:18', '0', '2018-07-29 13:38:59', '${comments}新增');
+ values ( '菜单ID', null, '${moduleName}_${pathName}_add', '1', null, '1', '子按钮ID1', '0', '2018-05-15 21:35:18', '0', '2018-07-29 13:38:59', '${comments}新增');
insert into `pigx`.`sys_menu` ( `parent_id`, `component`, `permission`, `type`, `path`, `icon`, `menu_id`, `del_flag`, `create_time`, `sort`, `update_time`, `name`)
- values ( '子按钮ID2', null, '${moduleName}_${pathName}_edit', '1', null, '1', '菜单ID', '0', '2018-05-15 21:35:18', '1', '2018-07-29 13:38:59', '${comments}修改');
+ values ( '菜单ID', null, '${moduleName}_${pathName}_edit', '1', null, '1', '子按钮ID2', '0', '2018-05-15 21:35:18', '1', '2018-07-29 13:38:59', '${comments}修改');
insert into `pigx`.`sys_menu` ( `parent_id`, `component`, `permission`, `type`, `path`, `icon`, `menu_id`, `del_flag`, `create_time`, `sort`, `update_time`, `name`)
- values ( '子按钮ID3', null, '${moduleName}_${pathName}_del', '1', null, '1', '菜单ID', '0', '2018-05-15 21:35:18', '2', '2018-07-29 13:38:59', '${comments}删除');
+ values ( '菜单ID', null, '${moduleName}_${pathName}_del', '1', null, '1', '子按钮ID3', '0', '2018-05-15 21:35:18', '2', '2018-07-29 13:38:59', '${comments}删除');
diff --git a/pigx-visual/pigx-daemon/pom.xml b/pigx-visual/pigx-daemon/pom.xml
index 7762c78b9..8102b16f0 100644
--- a/pigx-visual/pigx-daemon/pom.xml
+++ b/pigx-visual/pigx-daemon/pom.xml
@@ -44,15 +44,16 @@
pigx-common-job
${pigx.version}
-
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ ${mbp.boot.version}
+
mysql
mysql-connector-java
-
- org.springframework.boot
- spring-boot-starter-jdbc
-
org.apache.curator
@@ -64,6 +65,12 @@
curator-recipes
${curator.version}
+
+
+ com.pig4cloud
+ pigx-common-swagger
+ ${pigx.version}
+
org.springframework.boot
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/MybatisPlusConfigurer.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/MybatisPlusConfigurer.java
new file mode 100644
index 000000000..38950aa18
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/MybatisPlusConfigurer.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.daemon.config;
+
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author lengleng
+ * @date 2017/10/29
+ */
+@Configuration
+@MapperScan("com.pig4cloud.pigx.daemon.mapper")
+public class MybatisPlusConfigurer {
+ /**
+ * 分页插件
+ *
+ * @return PaginationInterceptor
+ */
+ @Bean
+ public PaginationInterceptor paginationInterceptor() {
+ return new PaginationInterceptor();
+ }
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java
new file mode 100644
index 000000000..fee0c9430
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/ResourceServerConfigurer.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.daemon.config;
+
+import com.pig4cloud.pigx.common.security.component.PigAccessDeniedHandler;
+import com.pig4cloud.pigx.common.security.component.ResourceAuthExceptionEntryPoint;
+import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
+import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
+
+/**
+ * @author lengleng
+ * @date 2018/6/22
+ */
+@Configuration
+@EnableResourceServer
+@AllArgsConstructor
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
+ private final PigAccessDeniedHandler pigAccessDeniedHandler;
+ private final ResourceAuthExceptionEntryPoint resourceAuthExceptionEntryPoint;
+
+ @Override
+ public void configure(HttpSecurity http) throws Exception {
+ http.authorizeRequests()
+ .antMatchers("/actuator/**", "/v2/api-docs").permitAll()
+ .anyRequest().authenticated()
+ .and().csrf().disable();
+ }
+
+ /**
+ * why add resourceId
+ * https://stackoverflow.com/questions/28703847/how-do-you-set-a-resource-id-for-a-token
+ *
+ * @param resources
+ * @throws Exception
+ */
+ @Override
+ public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
+ resources.authenticationEntryPoint(resourceAuthExceptionEntryPoint)
+ .accessDeniedHandler(pigAccessDeniedHandler);
+ }
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/controller/ExecutionLogController.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/controller/ExecutionLogController.java
new file mode 100755
index 000000000..ad092cada
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/controller/ExecutionLogController.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.daemon.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.pig4cloud.pigx.common.core.util.Query;
+
+import com.pig4cloud.pigx.daemon.entity.ExecutionLog;
+import com.pig4cloud.pigx.daemon.service.ExecutionLogService;
+import com.pig4cloud.pigx.common.core.util.R;
+import java.util.Map;
+
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:56
+ */
+@RestController
+@RequestMapping("/executionlog")
+public class ExecutionLogController {
+ @Autowired
+ private ExecutionLogService executionLogService;
+
+
+ /**
+ * 列表
+ * @param params
+ * @return
+ */
+ @GetMapping("/page")
+ public Page page(@RequestParam Map params) {
+ return executionLogService.selectPage(new Query<>(params), new EntityWrapper<>());
+ }
+
+
+ /**
+ * 信息
+ * @param id
+ * @return R
+ */
+ @GetMapping("/{id}")
+ public R info(@PathVariable("id") String id){
+ ExecutionLog executionLog = executionLogService.selectById(id);
+
+ return new R<>(executionLog);
+ }
+
+ /**
+ * 保存
+ * @param executionLog
+ * @return R
+ */
+ @PostMapping("/save")
+ public R save(@RequestBody ExecutionLog executionLog){
+ executionLogService.insert(executionLog);
+
+ return new R<>(Boolean.TRUE);
+ }
+
+ /**
+ * 修改
+ * @param executionLog
+ * @return R
+ */
+ @PutMapping("/update")
+ public R update(@RequestBody ExecutionLog executionLog){
+ executionLogService.updateById(executionLog);
+
+ return new R<>(Boolean.TRUE);
+ }
+
+ /**
+ * 删除
+ * @param ids
+ * @return R
+ */
+ @DeleteMapping("/delete")
+ public R delete(@RequestBody String[] ids){
+ executionLogService.deleteBatchIds(Arrays.asList(ids));
+
+ return new R<>(Boolean.TRUE);
+ }
+
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/controller/StatusTraceLogController.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/controller/StatusTraceLogController.java
new file mode 100755
index 000000000..478d61987
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/controller/StatusTraceLogController.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.daemon.controller;
+
+import java.util.Arrays;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.pig4cloud.pigx.common.core.util.Query;
+
+import com.pig4cloud.pigx.daemon.entity.StatusTraceLog;
+import com.pig4cloud.pigx.daemon.service.StatusTraceLogService;
+import com.pig4cloud.pigx.common.core.util.R;
+import java.util.Map;
+
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:45
+ */
+@RestController
+@RequestMapping("/statustracelog")
+public class StatusTraceLogController {
+ @Autowired
+ private StatusTraceLogService statusTraceLogService;
+
+
+ /**
+ * 列表
+ * @param params
+ * @return
+ */
+ @GetMapping("/page")
+ public Page page(@RequestParam Map params) {
+ return statusTraceLogService.selectPage(new Query<>(params), new EntityWrapper<>());
+ }
+
+
+ /**
+ * 信息
+ * @param id
+ * @return R
+ */
+ @GetMapping("/{id}")
+ public R info(@PathVariable("id") String id){
+ StatusTraceLog statusTraceLog = statusTraceLogService.selectById(id);
+
+ return new R<>(statusTraceLog);
+ }
+
+ /**
+ * 保存
+ * @param statusTraceLog
+ * @return R
+ */
+ @PostMapping("/save")
+ public R save(@RequestBody StatusTraceLog statusTraceLog){
+ statusTraceLogService.insert(statusTraceLog);
+
+ return new R<>(Boolean.TRUE);
+ }
+
+ /**
+ * 修改
+ * @param statusTraceLog
+ * @return R
+ */
+ @PutMapping("/update")
+ public R update(@RequestBody StatusTraceLog statusTraceLog){
+ statusTraceLogService.updateById(statusTraceLog);
+
+ return new R<>(Boolean.TRUE);
+ }
+
+ /**
+ * 删除
+ * @param ids
+ * @return R
+ */
+ @DeleteMapping("/delete")
+ public R delete(@RequestBody String[] ids){
+ statusTraceLogService.deleteBatchIds(Arrays.asList(ids));
+
+ return new R<>(Boolean.TRUE);
+ }
+
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/entity/ExecutionLog.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/entity/ExecutionLog.java
new file mode 100755
index 000000000..e57d3184f
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/entity/ExecutionLog.java
@@ -0,0 +1,76 @@
+package com.pig4cloud.pigx.daemon.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+ import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:56
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("JOB_EXECUTION_LOG")
+public class ExecutionLog extends Model {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId
+ private String id;
+ /**
+ *
+ */
+ private String jobName;
+ /**
+ *
+ */
+ private String taskId;
+ /**
+ *
+ */
+ private String hostname;
+ /**
+ *
+ */
+ private String ip;
+ /**
+ *
+ */
+ private Integer shardingItem;
+ /**
+ *
+ */
+ private String executionSource;
+ /**
+ *
+ */
+ private String failureCause;
+ /**
+ *
+ */
+ private Integer isSuccess;
+ /**
+ *
+ */
+ private LocalDateTime startTime;
+ /**
+ *
+ */
+ private LocalDateTime completeTime;
+
+ /**
+ * 主键值
+ */
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/entity/StatusTraceLog.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/entity/StatusTraceLog.java
new file mode 100755
index 000000000..81762b17b
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/entity/StatusTraceLog.java
@@ -0,0 +1,76 @@
+package com.pig4cloud.pigx.daemon.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+ import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:45
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("JOB_STATUS_TRACE_LOG")
+public class StatusTraceLog extends Model {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ *
+ */
+ @TableId
+ private String id;
+ /**
+ *
+ */
+ private String jobName;
+ /**
+ *
+ */
+ private String originalTaskId;
+ /**
+ *
+ */
+ private String taskId;
+ /**
+ *
+ */
+ private String slaveId;
+ /**
+ *
+ */
+ private String source;
+ /**
+ *
+ */
+ private String executionType;
+ /**
+ *
+ */
+ private String shardingItem;
+ /**
+ *
+ */
+ private String state;
+ /**
+ *
+ */
+ private String message;
+ /**
+ *
+ */
+ private LocalDateTime creationTime;
+
+ /**
+ * 主键值
+ */
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/mapper/ExecutionLogMapper.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/mapper/ExecutionLogMapper.java
new file mode 100755
index 000000000..fed6e61a0
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/mapper/ExecutionLogMapper.java
@@ -0,0 +1,16 @@
+package com.pig4cloud.pigx.daemon.mapper;
+
+import com.pig4cloud.pigx.daemon.entity.ExecutionLog;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:56
+ */
+@Mapper
+public interface ExecutionLogMapper extends BaseMapper {
+
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/mapper/StatusTraceLogMapper.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/mapper/StatusTraceLogMapper.java
new file mode 100755
index 000000000..58ae2daca
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/mapper/StatusTraceLogMapper.java
@@ -0,0 +1,16 @@
+package com.pig4cloud.pigx.daemon.mapper;
+
+import com.pig4cloud.pigx.daemon.entity.StatusTraceLog;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:45
+ */
+@Mapper
+public interface StatusTraceLogMapper extends BaseMapper {
+
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/ExecutionLogService.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/ExecutionLogService.java
new file mode 100755
index 000000000..98d717172
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/ExecutionLogService.java
@@ -0,0 +1,14 @@
+package com.pig4cloud.pigx.daemon.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.pig4cloud.pigx.daemon.entity.ExecutionLog;
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:56
+ */
+public interface ExecutionLogService extends IService {
+}
+
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/StatusTraceLogService.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/StatusTraceLogService.java
new file mode 100755
index 000000000..5555516c4
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/StatusTraceLogService.java
@@ -0,0 +1,14 @@
+package com.pig4cloud.pigx.daemon.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.pig4cloud.pigx.daemon.entity.StatusTraceLog;
+
+/**
+ *
+ *
+ * @author lengleng
+ * @date 2018-08-03 22:15:45
+ */
+public interface StatusTraceLogService extends IService {
+}
+
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/impl/ExecutionLogServiceImpl.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/impl/ExecutionLogServiceImpl.java
new file mode 100755
index 000000000..5d556c26c
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/impl/ExecutionLogServiceImpl.java
@@ -0,0 +1,17 @@
+package com.pig4cloud.pigx.daemon.service.impl;
+
+import org.springframework.stereotype.Service;
+import java.util.Map;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+
+import com.pig4cloud.pigx.daemon.mapper.ExecutionLogMapper;
+import com.pig4cloud.pigx.daemon.entity.ExecutionLog;
+import com.pig4cloud.pigx.daemon.service.ExecutionLogService;
+
+
+@Service("executionLogService")
+public class ExecutionLogServiceImpl extends ServiceImpl implements ExecutionLogService {
+
+}
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/impl/StatusTraceLogServiceImpl.java b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/impl/StatusTraceLogServiceImpl.java
new file mode 100755
index 000000000..9937f7712
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/service/impl/StatusTraceLogServiceImpl.java
@@ -0,0 +1,17 @@
+package com.pig4cloud.pigx.daemon.service.impl;
+
+import org.springframework.stereotype.Service;
+import java.util.Map;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+
+import com.pig4cloud.pigx.daemon.mapper.StatusTraceLogMapper;
+import com.pig4cloud.pigx.daemon.entity.StatusTraceLog;
+import com.pig4cloud.pigx.daemon.service.StatusTraceLogService;
+
+
+@Service("statusTraceLogService")
+public class StatusTraceLogServiceImpl extends ServiceImpl implements StatusTraceLogService {
+
+}
diff --git a/pigx-visual/pigx-daemon/src/main/resources/mapper/ExecutionLogMapper.xml b/pigx-visual/pigx-daemon/src/main/resources/mapper/ExecutionLogMapper.xml
new file mode 100755
index 000000000..c2430a6f3
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/resources/mapper/ExecutionLogMapper.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pigx-visual/pigx-daemon/src/main/resources/mapper/StatusTraceLogMapper.xml b/pigx-visual/pigx-daemon/src/main/resources/mapper/StatusTraceLogMapper.xml
new file mode 100755
index 000000000..74d67a9d7
--- /dev/null
+++ b/pigx-visual/pigx-daemon/src/main/resources/mapper/StatusTraceLogMapper.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index b133e8250..305c0affc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
2.9.2
2.0.0
2.10.0
+ 1.7
2.1.5
2.3.3.RELEASE