From ba36cce1a2989afbc1c656c0535850afe3d829ff Mon Sep 17 00:00:00 2001 From: zsvg <8680782@qq.com> Date: Thu, 9 Dec 2021 18:06:28 +0800 Subject: [PATCH] =?UTF-8?q?oracle=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- README.md | 2 +- pom.xml | 4 +- vboot-application/pom.xml | 13 +- .../com/abc/sd/proj/main/SdProjMainApi.java | 2 +- .../src/main/resources/application.properties | 35 ++++-- .../src/main/resources/application.yml | 19 +-- .../src/main/resources/config/logback.xml | 2 +- vboot-core/pom.xml | 27 ++-- .../zsvg/vboot/common/mvc/dao/JdbcDao.java | 7 +- .../com/zsvg/vboot/common/mvc/dao/Sqler.java | 55 ++++++++- .../zsvg/vboot/common/util/file/XpdfUtil.java | 4 - .../vboot/common/util/file/XqcodeUtil.java | 8 -- .../config/security/authn/AuthnService.java | 2 +- .../ass/file/att/AssFileAttHandler.java | 37 ------ .../zsvg/vboot/module/gen/file/GenAttApi.java | 1 + .../zsvg/vboot/module/gen/file/GenImgApi.java | 2 - .../gen/org/rece/GenOrgReceService.java | 2 +- .../vboot/module/sys/job/main/SysJobDemo.java | 33 ++--- .../vboot/module/sys/job/main/SysJobMain.java | 28 ++++- .../module/sys/job/main/SysJobMainApi.java | 59 ++++++--- .../sys/job/main/SysJobMainService.java | 26 ++-- .../zsvg/vboot/module/sys/job/root/IJob.java | 2 +- .../module/sys/job/root/SysJobHandler.java | 11 +- .../vboot/module/sys/org/post/SysOrgPost.java | 4 +- vboot-extend-bi/pom.xml | 115 +++++++++++++++++- vboot-extend-wf/pom.xml | 3 +- .../java/com/zsvg/vboot/wf/WfTestApi.java | 2 +- 28 files changed, 339 insertions(+), 169 deletions(-) diff --git a/.gitignore b/.gitignore index b4c21cb..f7841a3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ # 项目排除路径 /vboot-application/target/ /vboot-core/target/ -/vboot-extend-bi/target/ -/vboot-extend-wf/target/ \ No newline at end of file +/vboot-extend-wf/target/ diff --git a/README.md b/README.md index 56b3c3e..b77a258 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

vboot-net

+

vboot-java

一个开箱即用的快速开发平台.JAVA版

### 🍟 概述 diff --git a/pom.xml b/pom.xml index 586b24b..8aa462c 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.zsvg vboot pom - 0.1 + 0.2 vboot-core vboot-application @@ -20,7 +20,7 @@ UTF-8 UTF-8 1.8 - 0.1 + 0.2 2.2.13.RELEASE diff --git a/vboot-application/pom.xml b/vboot-application/pom.xml index 8d8245f..4cfb6e7 100644 --- a/vboot-application/pom.xml +++ b/vboot-application/pom.xml @@ -5,7 +5,7 @@ vboot com.zsvg - 0.1 + 0.2 4.0.0 @@ -28,6 +28,17 @@ + + + + mysql + mysql-connector-java + 5.1.49 + + + + + diff --git a/vboot-application/src/main/java/com/abc/sd/proj/main/SdProjMainApi.java b/vboot-application/src/main/java/com/abc/sd/proj/main/SdProjMainApi.java index b175f7c..e580c7b 100644 --- a/vboot-application/src/main/java/com/abc/sd/proj/main/SdProjMainApi.java +++ b/vboot-application/src/main/java/com/abc/sd/proj/main/SdProjMainApi.java @@ -14,7 +14,7 @@ public class SdProjMainApi { public RestResult get(String name) { Sqler sqler = new Sqler("sd_proj_main"); sqler.addLike("t.name", name); - sqler.addSelect("t.addre,t.crtim,t.notes"); + sqler.addSelect("t.addre,t.notes"); return RestResult.ok(service.findPageData(sqler)); } diff --git a/vboot-application/src/main/resources/application.properties b/vboot-application/src/main/resources/application.properties index 00c6841..9d29ba8 100644 --- a/vboot-application/src/main/resources/application.properties +++ b/vboot-application/src/main/resources/application.properties @@ -1,25 +1,30 @@ -ldap.url= -ldap.base= -ldap.userDn= -ldap.userPwd= -ldap.referral= -ldap.domainName= - #web\u914D\u7F6E server.port=5000 -spring.servlet.multipart.max-file-size=1024 -spring.servlet.multipart.max-request-size=1024 +spring.servlet.multipart.max-file-size=10240000 +spring.servlet.multipart.max-request-size=10240000 server.compression.enabled=true server.compression.mime-types=application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css -server.compression.min-response-size=4096 +server.compression.min-response-size=40960000 +#mysql +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/vboot-java?characterEncoding=utf-8&useSSL=false +#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +#spring.datasource.url=jdbc:mysql://127.0.0.1:3306/vboot-java?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true +spring.datasource.username=root +spring.datasource.password=123456 + +#oracle +#spring.datasource.driver-class-name=oracle.jdbc.OracleDriver +#spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl +#spring.datasource.username=vboot +#spring.datasource.password=123456 app.db.type=MYSQL -app.att.path=D:/zsvg/att +app.att.path=C:/vboot/att #1代表session,2待办jwt token,4待办蓝凌token app.authc.type=7 - #\u6700\u5927\u8FDE\u63A5\u6570 http.maxTotal: 100 http.defaultMaxPerRoute: 20 @@ -29,3 +34,9 @@ http.socketTimeout: 10000 http.staleConnectionCheckEnabled: true http.validateAfterInactivity: 3000000 +ldap.url= +ldap.base= +ldap.userDn= +ldap.userPwd= +ldap.referral= +ldap.domainName= diff --git a/vboot-application/src/main/resources/application.yml b/vboot-application/src/main/resources/application.yml index a2a0767..aaddf8f 100644 --- a/vboot-application/src/main/resources/application.yml +++ b/vboot-application/src/main/resources/application.yml @@ -41,11 +41,11 @@ spring: wall: config: multi-statement-allow: true - # driver-class-name: com.mysql.jdbc.Driver - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://127.0.0.1:3306/vboot-java?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true - username: root - password: 123456 +# driver-class-name: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://127.0.0.1:3306/vboot-java?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC&nullCatalogMeansCurrent=true +# url: jdbc:mysql://127.0.0.1:3306/vboot-java?characterEncoding=utf-8&useSSL=false +# username: root +# password: 123456 jpa: hibernate: ddl-auto: update @@ -56,18 +56,9 @@ spring: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 -ldap: - url: - base: - userDn: - userPwd: - referral: - domainName: - logging.config: classpath:config/logback.xml - zsvg: jwt: header: Authorization diff --git a/vboot-application/src/main/resources/config/logback.xml b/vboot-application/src/main/resources/config/logback.xml index 930ee19..2fa0671 100644 --- a/vboot-application/src/main/resources/config/logback.xml +++ b/vboot-application/src/main/resources/config/logback.xml @@ -8,7 +8,7 @@ logback - + diff --git a/vboot-core/pom.xml b/vboot-core/pom.xml index 27c5f17..8465053 100644 --- a/vboot-core/pom.xml +++ b/vboot-core/pom.xml @@ -5,7 +5,7 @@ vboot com.zsvg - 0.1 + 0.2 4.0.0 @@ -60,13 +60,6 @@ spring-boot-starter-data-redis - - mysql - mysql-connector-java - 8.0.26 - - - @@ -272,7 +265,25 @@ yauaa 5.23 + + + + + org.springframework.boot + spring-boot-maven-plugin + 2.2.13.RELEASE + + + + + src/main/resources + + **/* + + + + \ No newline at end of file diff --git a/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/JdbcDao.java b/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/JdbcDao.java index fd75c09..c82ccaa 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/JdbcDao.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/JdbcDao.java @@ -33,8 +33,11 @@ public class JdbcDao { List> list; if ("MYSQL".equals(DB_TYPE)) { list = jdbcTemplate.queryForList(sqler.getMysqlPagingSql(), sqler.getParams()); - } else { - list = jdbcTemplate.queryForList(sqler.getOraclePagingSql(), sqler.getParams()); + }else if ("ORACLE".equals(DB_TYPE)) { + list = jdbcTemplate.queryForList(sqler.getOraclePagingLowerCaseSql(), sqler.getParams()); + } else { + System.err.println("目前只支持mysql与oracle"); + list = new ArrayList<>(); } return new PageData(count, list); } diff --git a/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/Sqler.java b/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/Sqler.java index d69cc54..6ad2fc5 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/Sqler.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/common/mvc/dao/Sqler.java @@ -340,6 +340,7 @@ public class Sqler return selectClause + fromClause + whereClause+groupClause + orderClause + " limit " + fromIndex + "," + pasiz; } + public String getOraclePagingSql() { int rownum = panum * pasiz; @@ -365,9 +366,24 @@ public class Sqler for (String aStrArr : strArr) { if(aStrArr.contains("(")&&!aStrArr.contains(")")){ changeSelectClause.append(" ").append(aStrArr); + }else if(aStrArr.contains("SELECT")){ + String[] firstArr = aStrArr.split(" "); + if(firstArr.length>=3){ + firstArr[firstArr.length - 1] = "\"" + firstArr[firstArr.length - 1] + "\""; + }else{ + firstArr[1]=firstArr[1]+" \"" + firstArr[1].substring(firstArr[1].lastIndexOf(".")+1) + "\""; + } + for (String afirstArr : firstArr) { + changeSelectClause.append(" ").append(afirstArr); + } }else{ + String[] strArr2 = aStrArr.split(" "); - strArr2[strArr2.length - 1] = "\"" + strArr2[strArr2.length - 1] + "\""; + if(strArr2.length>=2){ + strArr2[strArr2.length - 1] = "\"" + strArr2[strArr2.length - 1] + "\""; + }else{ + strArr2[0]=strArr2[0]+" \"" + strArr2[0].substring(strArr2[0].lastIndexOf(".")+1) + "\""; + } for (String aStrArr2 : strArr2) { changeSelectClause.append(" ").append(aStrArr2); } @@ -376,6 +392,43 @@ public class Sqler } } + +// public String getOraclePagingSql() +// { +// int rownum = panum * pasiz; +// int rn = (panum - 1) * pasiz; +// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + selectClause + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; +//// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + changeSelectClause.toString() + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; +// } +// +// public String getOraclePagingLowerCaseSql() +// { +// //字段转成小写 +// StringBuilder changeSelectClause= new StringBuilder(); +// String[] strArr= selectClause.split(","); +// lowerCaseSelect(changeSelectClause, strArr); +// changeSelectClause.deleteCharAt(changeSelectClause.length()-1); +// //分页 +// int rownum = panum * pasiz; +// int rn = (panum - 1) * pasiz; +// return " SELECT * FROM (SELECT PPGG.*, ROWNUM RN FROM (" + changeSelectClause.toString() + fromClause + whereClause+groupClause + orderClause + ") PPGG WHERE ROWNUM <= " + rownum + ") WHERE RN > " + rn; +// } +// +// private void lowerCaseSelect(StringBuilder changeSelectClause, String[] strArr) { +// for (String aStrArr : strArr) { +// if(aStrArr.contains("(")&&!aStrArr.contains(")")){ +// changeSelectClause.append(" ").append(aStrArr); +// }else{ +// String[] strArr2 = aStrArr.split(" "); +// strArr2[strArr2.length - 1] = "\"" + strArr2[strArr2.length - 1] + "\""; +// for (String aStrArr2 : strArr2) { +// changeSelectClause.append(" ").append(aStrArr2); +// } +// } +// changeSelectClause.append(","); +// } +// } + public Object[] getParams() { return parameters.toArray(); diff --git a/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XpdfUtil.java b/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XpdfUtil.java index 556cbcf..90cea37 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XpdfUtil.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XpdfUtil.java @@ -12,10 +12,6 @@ import com.itextpdf.text.pdf.PdfStamper; import java.io.*; public class XpdfUtil { -// public static void main(String[] args) throws IOException { -// setWatermark(new BufferedOutputStream(new FileOutputStream(new File("D:\\bb.pdf"))), -// new FileInputStream("D:\\aa.pdf"), "借阅借阅水印借阅水印借阅水印水印", 1); -// } /** diff --git a/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XqcodeUtil.java b/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XqcodeUtil.java index 611c79f..70bff09 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XqcodeUtil.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/common/util/file/XqcodeUtil.java @@ -99,13 +99,5 @@ public class XqcodeUtil { // System.out.println(result.getText()); } - /** - * 测试代码 - * @throws WriterException - */ - public static void main(String[] args) throws IOException, WriterException { - createQrCode(new FileOutputStream(new File("d:\\qrcode.jpg")),"WE1231238239128sASDASDSADSDWEWWREWRERWSDFDFSDSDF123123123123213123",900,"JPEG"); - readQrCode(new FileInputStream(new File("d:\\qrcode.jpg"))); - } } \ No newline at end of file diff --git a/vboot-core/src/main/java/com/zsvg/vboot/config/security/authn/AuthnService.java b/vboot-core/src/main/java/com/zsvg/vboot/config/security/authn/AuthnService.java index a2554fa..803b297 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/config/security/authn/AuthnService.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/config/security/authn/AuthnService.java @@ -157,7 +157,7 @@ public class AuthnService { private List findPostList(String uid) { - String sql = "select pid as id from sys_org_post_user where uid=?"; + String sql = "select pid as id from sys_org_post_org where oid=?"; return jdbcDao.findStringList(sql, uid); } diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/ass/file/att/AssFileAttHandler.java b/vboot-core/src/main/java/com/zsvg/vboot/module/ass/file/att/AssFileAttHandler.java index b506038..d357b02 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/ass/file/att/AssFileAttHandler.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/ass/file/att/AssFileAttHandler.java @@ -243,43 +243,6 @@ public class AssFileAttHandler { bos.close(); } - public void downloadWithWatermark(HttpServletRequest request, - HttpServletResponse response, AssFileAtt att, String userInfo) throws Exception - { - - response.setContentType("text/html;charset=UTF-8"); - request.setCharacterEncoding("UTF-8"); - String realName = att.getPname()+"."+att.getSname(); - String storeName = att.getAddress() + "/" + att.getId() + realName.substring(realName.lastIndexOf(".")); - String downLoadPath = ATT_PATH + "/" + storeName; - String dirM = XdateUtil.getMM(); - String path2="D:/zsvg/temp/"+dirM+"/"+XstringUtil.getUUID()+".pdf"; - XpdfUtil.setWatermark(new BufferedOutputStream(new FileOutputStream(new File(path2))),new FileInputStream(downLoadPath), userInfo, 1); - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path2)); - - long fileLength = new File(path2).length(); - response.setContentType("application/octet-stream"); - realName = URLEncoder.encode(realName, "UTF-8"); - Locale localLanguage = request.getLocale(); - if (realName.length() > 150) - { - realName = new String(realName.getBytes("gb2312"), "ISO8859-1"); - } - response.setHeader("Content-disposition", "attachment; filename=" + realName); - response.setHeader("Content-Length", String.valueOf(fileLength)); - BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); - byte[] buff = new byte[2048]; - int bytesRead; - while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) - { - bos.write(buff, 0, bytesRead); - } - bis.close(); - bos.close(); - } - - private void byte2File(byte[] buf, String filePath, String fileName){ BufferedOutputStream bos = null; FileOutputStream fos = null; diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenAttApi.java b/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenAttApi.java index 3ded41e..a2f3af8 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenAttApi.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenAttApi.java @@ -16,6 +16,7 @@ public class GenAttApi { @PostMapping(value="up",produces = "text/html;charset=UTF-8") public String upload(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception { + System.out.println("上传xxxxxx"); AssFileAtt att = handler.saveFile(file); repo.save(att); return "{\"id\":\"" + att.getId() + "\",\"address\":\"" + att.getAddress() + "\",\"pname\":\"" + att.getPname() + "\",\"sname\":\"" + att.getSname() + "\",\"zsize\":\"" + att.getZsize() + "\",\"zimg\":\"" + att.getZimg() + "\"}"; diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenImgApi.java b/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenImgApi.java index d0b478d..7b17634 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenImgApi.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/gen/file/GenImgApi.java @@ -49,8 +49,6 @@ public class GenImgApi { size=900; } InputStream inputStream= XqcodeUtil.createQrCode(label, size, "JPEG"); -// File file = new File("D:/qrcode.jpg"); -// FileInputStream inputStream = new FileInputStream(file); byte[] bytes = new byte[inputStream.available()]; inputStream.read(bytes, 0, inputStream.available()); return bytes; diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/gen/org/rece/GenOrgReceService.java b/vboot-core/src/main/java/com/zsvg/vboot/module/gen/org/rece/GenOrgReceService.java index 818e6be..a2107a6 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/gen/org/rece/GenOrgReceService.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/gen/org/rece/GenOrgReceService.java @@ -34,7 +34,7 @@ public class GenOrgReceService { if ("MYSQL".equals(jdbcDao.getDbType())) { list = jdbcDao.getTp().query(sqler.getMysqlPagingSql(), sqler.getParams(), new BeanPropertyRowMapper<>(GenOrgRece.class)); } else { - list = jdbcDao.getTp().query(sqler.getOraclePagingSql(), sqler.getParams(), new BeanPropertyRowMapper<>(GenOrgRece.class)); + list = jdbcDao.getTp().query(sqler.getOraclePagingLowerCaseSql(), sqler.getParams(), new BeanPropertyRowMapper<>(GenOrgRece.class)); } //去重 for (GenOrgRece dbRece : list) { diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobDemo.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobDemo.java index 2569473..500fc99 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobDemo.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobDemo.java @@ -11,20 +11,21 @@ public class SysJobDemo { private static boolean usingFlag = false; - //每10分钟一次 - @IJob(key="demo1",cron = "0 10 0-23 * * ?", name = "10分钟执行一次的DEMO1") + @IJob(code="demo1",cron = "0/10 * 0-23 * * ?", name = "10秒执行一次的DEMO1") public void demo1() + { + System.out.println("定时任务-demo1:" + XtimeUtil.getTime()); + } + + @IJob(code="demo2",cron = "0/20 * 0-23 * * ?", name = "20秒执行一次的DEMO2") + public void demo2() { if (!usingFlag) { usingFlag = true; try { -// Thread.sleep(20000); - //Thread.sleep(5000); -// int i=1/0; - System.out.println("定时任务-demo1:" + XtimeUtil.getTime()); - //--------------- + System.out.println("定时任务-demo2:" + XtimeUtil.getTime()); } finally { usingFlag = false; @@ -32,22 +33,4 @@ public class SysJobDemo } } - -// //每10秒 -// @IJob(key="demo2",cron = "0/20 * 0-23 * * ?", name = "20秒执行一次的DEMO2") -// public void demo2() -// { -// if (!usingFlag) -// { -// usingFlag = true; -// try -// { -// System.out.println("job-demo2:" + XtimeUtil.getTime()); -// } finally -// { -// usingFlag = false; -// } -// } -// -// } } \ No newline at end of file diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMain.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMain.java index 238dc3c..144a233 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMain.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMain.java @@ -6,6 +6,8 @@ import lombok.Data; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.Transient; +import java.util.Date; @Data @Entity @@ -18,16 +20,32 @@ public class SysJobMain @Column(length = 128, updatable = false) private String name; - @Column(length = 32, updatable = false) - private String jid; + @Column(length = 128, updatable = false) + private String code; - @Column(length = 32, updatable = false) +// @Column(length = 32, updatable = false) + @Transient + private String jid; +// +// @Column(length = 32, updatable = false) + @Transient private String jgroup; - @Column(length = 32) - private String state; + private Integer retyp; + + @Column(length = 32, updatable = false) + private String reurl; + + private Boolean avtag; + + private Integer ornum; + + @Column(updatable = false) + private Date crtim = new Date(); @Column(length = 32) private String cron; + private String notes; + } diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainApi.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainApi.java index cf55f39..186d047 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainApi.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainApi.java @@ -16,50 +16,73 @@ public class SysJobMainApi { @GetMapping public RestResult get(String id, String name) { - Sqler sqler = new Sqler("t.id,t.name,t.jid,t.jgroup,t.cron,t.state", table); + Sqler sqler = new Sqler("t.id,t.name,t.reurl,t.cron,t.avtag,t.code,t.crtim,t.notes", table); sqler.addLike("t.name", name); return RestResult.ok(jdbcDao.findPageData(sqler)); } - @GetMapping("start/{ids}") + @GetMapping("one/{id}") + public RestResult getOne(@PathVariable String id) { + SysJobMain main=repo.findById(id).get(); + return RestResult.ok(main); + } + + @PutMapping + public RestResult put(@RequestBody SysJobMain main) throws SchedulerException { + SysJobMain dbJob = repo.findById(main.getId()).get(); + if(dbJob.getAvtag()){ + String[] arr= dbJob.getReurl().split("/"); + dbJob.setJgroup(arr[0]); + dbJob.setJid(arr[1]); + handler.stopJob(dbJob); + } + repo.save(main); + if(main.getAvtag()){ + String[] arr2= main.getReurl().split("/"); + main.setJgroup(arr2[0]); + main.setJid(arr2[1]); + handler.startJob(main); + } + return RestResult.ok(); + } + + + @PostMapping("start/{ids}") public RestResult startJob(@PathVariable String[] ids) throws SchedulerException { for (int i = 0; i < ids.length; i++) { SysJobMain job = repo.findById(ids[i]).get(); + String[] arr= job.getReurl().split("/"); + job.setJgroup(arr[0]); + job.setJid(arr[1]); handler.startJob(job); } return RestResult.ok(); } - @GetMapping("stop/{ids}") - public RestResult list_stop(@PathVariable String[] ids) throws SchedulerException { + @PostMapping("stop/{ids}") + public RestResult stopJob(@PathVariable String[] ids) throws SchedulerException { for (int i = 0; i < ids.length; i++) { SysJobMain job = repo.findById(ids[i]).get(); + String[] arr= job.getReurl().split("/"); + job.setJgroup(arr[0]); + job.setJid(arr[1]); handler.stopJob(job); } return RestResult.ok(); } - @GetMapping("one/{id}") - public RestResult get(@PathVariable String id) { - SysJobMain main=repo.findById(id).get(); - return RestResult.ok(main); - } - @GetMapping("once/{id}") - public RestResult edit_startOnce(@PathVariable String id) throws InterruptedException, SchedulerException { + @PostMapping("once/{id}") + public RestResult startOnce(@PathVariable String id) throws InterruptedException, SchedulerException { SysJobMain main=repo.findById(id).get(); + String[] arr= main.getReurl().split("/"); + main.setJgroup(arr[0]); + main.setJid(arr[1]); handler.onceJob(main); return RestResult.ok(); } - @PutMapping - public RestResult update(@RequestBody SysJobMain main) { - SysJobMain sysJobMain = repo.findById(main.getId()).get(); - sysJobMain.setCron(main.getCron()); - repo.save(sysJobMain); - return RestResult.ok(); - } @Autowired private SysJobHandler handler; diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainService.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainService.java index e50febb..2ba2044 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainService.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/main/SysJobMainService.java @@ -25,21 +25,22 @@ public class SysJobMainService { for (int j = 0; j < dbJobList.size(); j++) { boolean flag = false; for (int i = 0; i < scanJobList.size(); i++) { - if(dbJobList.get(j).getId().equals(scanJobList.get(i).getId())){ + if(dbJobList.get(j).getReurl().equals(scanJobList.get(i).getReurl())){ flag=true; } } - if(!flag) { - repo.deleteById(dbJobList.get(j).getId());//删除已移除的JOB - } +// if(!flag) { +// repo.deleteById(dbJobList.get(j).getCode());//删除已移除的JOB +// } } for (int i = 0; i < scanJobList.size(); i++) { boolean flag = false; for (int j = 0; j < dbJobList.size(); j++) { - if(dbJobList.get(j).getId().equals(scanJobList.get(i).getId())){ + if(dbJobList.get(j).getReurl().equals(scanJobList.get(i).getReurl())){ scanJobList.get(i).setCron(dbJobList.get(j).getCron()); - scanJobList.get(i).setState(dbJobList.get(j).getState()); + scanJobList.get(i).setAvtag(dbJobList.get(j).getAvtag()); + scanJobList.get(i).setCode(dbJobList.get(j).getCode()); flag=true; } } @@ -66,19 +67,22 @@ public class SysJobMainService { if (xjob != null) { SysJobMain job = new SysJobMain(); + job.setId(XstringUtil.getUUID()); job.setCron(xjob.cron()); job.setJgroup(XstringUtil.toLowerfirst(clazz.getSimpleName())); job.setName(xjob.name()); job.setJid(method.getName()); - job.setState("是"); - if(XstringUtil.isBlank(xjob.key())){ - job.setId(job.getJgroup()+":"+method.getName()); + job.setReurl(job.getJgroup()+"/"+job.getJid()); + job.setAvtag(false); + job.setRetyp(0); + if(XstringUtil.isBlank(xjob.code())){ + job.setCode(job.getReurl()); }else{ - job.setId(xjob.key()); + job.setCode(xjob.code()); } boolean flag=false; for (int i = 0; i < list.size(); i++) { - if(list.get(i).getId().equals(job.getId())){ + if(list.get(i).getCode().equals(job.getCode())){ flag=true; log.warn("存在相同key的job,已屏蔽"); break; diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/IJob.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/IJob.java index 92eaa84..68ef5c3 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/IJob.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/IJob.java @@ -14,5 +14,5 @@ public @interface IJob String name() default ""; - String key() default ""; + String code() default ""; } \ No newline at end of file diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/SysJobHandler.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/SysJobHandler.java index f175d65..feb19af 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/SysJobHandler.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/job/root/SysJobHandler.java @@ -20,7 +20,10 @@ public class SysJobHandler { //开始执行所有任务 public void startAllJobs(List jobList) throws SchedulerException { for (int i = 0; i < jobList.size(); i++) { - if ("是".equals(jobList.get(i).getState())) { + if (jobList.get(i).getAvtag()) { + String[] arr= jobList.get(i).getReurl().split("/"); + jobList.get(i).setJgroup(arr[0]); + jobList.get(i).setJid(arr[1]); initJob(scheduler, jobList.get(i)); } } @@ -45,7 +48,7 @@ public class SysJobHandler { public void stopJob(SysJobMain job) throws SchedulerException { JobKey jobKey = JobKey.jobKey(job.getJid(), job.getJgroup()); scheduler.deleteJob(jobKey); - job.setState("否"); + job.setAvtag(false); repo.save(job); } @@ -66,13 +69,13 @@ public class SysJobHandler { trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); scheduler.rescheduleJob(triggerKey, trigger); } - job.setState("是"); + job.setAvtag(true); repo.save(job); } //立即执行一次 public void onceJob(SysJobMain job) throws SchedulerException, InterruptedException { - if ("是".equals(job.getState())) { + if (job.getAvtag()) { JobKey jobKey = JobKey.jobKey(job.getJid(), job.getJgroup()); scheduler.triggerJob(jobKey); } else { diff --git a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/org/post/SysOrgPost.java b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/org/post/SysOrgPost.java index 9d3a4c2..8db875c 100644 --- a/vboot-core/src/main/java/com/zsvg/vboot/module/sys/org/post/SysOrgPost.java +++ b/vboot-core/src/main/java/com/zsvg/vboot/module/sys/org/post/SysOrgPost.java @@ -44,8 +44,8 @@ public class SysOrgPost{ private String ldnam;//ldap 层级名称 @ManyToMany - @JoinTable(name = "sys_org_post_user", joinColumns = {@JoinColumn(name = "pid")}, - inverseJoinColumns = {@JoinColumn(name = "uid")}) + @JoinTable(name = "sys_org_post_org", joinColumns = {@JoinColumn(name = "pid")}, + inverseJoinColumns = {@JoinColumn(name = "oid")}) private List users;//员工列表 diff --git a/vboot-extend-bi/pom.xml b/vboot-extend-bi/pom.xml index 8f9af0d..140f77f 100644 --- a/vboot-extend-bi/pom.xml +++ b/vboot-extend-bi/pom.xml @@ -5,18 +5,129 @@ vboot com.zsvg - 0.1 + 0.2 4.0.0 vboot-extend-bi - com.zsvg vboot-core ${vboot.version} + + + pentaho-kettle + kettle-core + 7.1 + system + ${project.basedir}/lib/kettle-core-8.2.0.0-342.jar + + + pentaho-kettle + kettle-engine + 7.1 + system + ${project.basedir}/lib/kettle-engine-8.2.0.0-342.jar + + + pentaho-kettle + vfs2 + 2.1 + system + ${project.basedir}/lib/commons-vfs2-2.2.jar + + + pentaho-kettle + metastore + 7.1 + system + ${project.basedir}/lib/metastore-8.2.0.0-342.jar + + + pentaho-kettle + scannotation + 1.0.2 + system + ${project.basedir}/lib/scannotation-1.0.2.jar + + + + pentaho-kettle + mozjs + 1.7.2 + system + ${project.basedir}/lib/org.mozilla.javascript_1.7.2.jar + + + + + pentaho-kettle + kettleui + 7.1 + system + ${project.basedir}/lib/kettle-ui-swt-8.2.0.0-342.jar + + + + pentaho-kettle + jface + 3.0 + system + ${project.basedir}/lib/jface-3.3.0-I20070606-0010.jar + + + + com.oracle + ojdbc6 + 11.2.0 + system + ${project.basedir}/lib/ojdbc6.jar + + + + org.javassist + javassist + 3.20.0-GA + + + + com.google.guava + guava + 27.0-jre + + + + commons-codec + commons-codec + 1.11 + + + + commons-lang + commons-lang + 2.6 + + + commons-io + commons-io + 2.7 + + + + + + + lib + /BOOT-INF/lib/ + + **/*.jar + + + + + \ No newline at end of file diff --git a/vboot-extend-wf/pom.xml b/vboot-extend-wf/pom.xml index bace3d4..58673bd 100644 --- a/vboot-extend-wf/pom.xml +++ b/vboot-extend-wf/pom.xml @@ -5,13 +5,12 @@ vboot com.zsvg - 0.1 + 0.2 4.0.0 vboot-extend-wf - com.zsvg diff --git a/vboot-extend-wf/src/main/java/com/zsvg/vboot/wf/WfTestApi.java b/vboot-extend-wf/src/main/java/com/zsvg/vboot/wf/WfTestApi.java index 6e5e6e7..c2843e7 100644 --- a/vboot-extend-wf/src/main/java/com/zsvg/vboot/wf/WfTestApi.java +++ b/vboot-extend-wf/src/main/java/com/zsvg/vboot/wf/WfTestApi.java @@ -11,7 +11,7 @@ public class WfTestApi { @GetMapping("test") public RestResult get() { - return RestResult.ok("这里可以放扩展模块2"); + return RestResult.ok("这里可以放扩展模块"); } } \ No newline at end of file