From 0632911e4ad7d19e6da45a3f99c1bc6f902d7351 Mon Sep 17 00:00:00 2001 From: xiongcz Date: Wed, 5 Mar 2025 13:12:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=A4=9A=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=89=8D=E7=9A=84=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 33 ++++ README.md | 1 + pom.xml | 150 ++++++++++++++++++ .../connor/bh/bhdemo/BhDemoApplication.java | 16 ++ .../demos/web/Listener/StoCAPPListener.java | 22 +++ .../web/controller/DrawingController.java | 96 +++++++++++ .../demos/web/controller/FtpController.java | 35 ++++ .../demos/web/controller/PartController.java | 93 +++++++++++ .../bh/bhdemo/demos/web/entity/CappTask.java | 33 ++++ .../bhdemo/demos/web/mapper/TaskMapper.java | 16 ++ .../demos/web/service/CallExeService.java | 66 ++++++++ .../demos/web/service/MqQueueService.java | 21 +++ .../bh/bhdemo/demos/web/utils/CurlUtil.java | 31 ++++ .../bh/bhdemo/demos/web/utils/FtpUtil.java | 112 +++++++++++++ src/main/resources/application.properties.txt | 17 ++ src/main/resources/application.yml | 26 +++ src/main/resources/application_test.yml | 25 +++ src/main/resources/mapper/TaskMapper.xml | 25 +++ src/main/resources/static/index.html | 6 + .../bh/bhdemo/BhDemoApplicationTests.java | 13 ++ 20 files changed, 837 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/BhDemoApplication.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/Listener/StoCAPPListener.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/DrawingController.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/FtpController.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/PartController.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/entity/CappTask.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/mapper/TaskMapper.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/CallExeService.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/MqQueueService.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/CurlUtil.java create mode 100644 src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/FtpUtil.java create mode 100644 src/main/resources/application.properties.txt create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/application_test.yml create mode 100644 src/main/resources/mapper/TaskMapper.xml create mode 100644 src/main/resources/static/index.html create mode 100644 src/test/java/cn/com/connor/bh/bhdemo/BhDemoApplicationTests.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..549e00a --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..6dbde6a --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +当前项目为滨湖项目物料&图纸自动下发的中转服务 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..a25ab3d --- /dev/null +++ b/pom.xml @@ -0,0 +1,150 @@ + + + 4.0.0 + org.example + BHDemo + 0.0.1-SNAPSHOT + BHDemo + BHDemo + + 1.8 + UTF-8 + UTF-8 + 2.6.13 + + + + org.springframework.boot + spring-boot-starter-web + + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + com.oracle.database.jdbc + ojdbc6 + 11.2.0.4 + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.0 + + + + com.alibaba + druid + 1.2.23 + + + org.mybatis + mybatis + 3.5.13 + + + org.mybatis + mybatis-spring + 2.1.1 + + + org.springframework + spring-context + 6.1.14 + + + cn.hutool + hutool-all + 5.8.24 + + + + commons-net + commons-net + 3.6 + + + commons-lang + commons-lang + 2.4 + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring-boot.version} + pom + import + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + + + + + + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + cn.com.connor.bh.bhdemo.BhDemoApplication + false + + + + repackage + + repackage + + + + + + + + diff --git a/src/main/java/cn/com/connor/bh/bhdemo/BhDemoApplication.java b/src/main/java/cn/com/connor/bh/bhdemo/BhDemoApplication.java new file mode 100644 index 0000000..5b4c0d7 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/BhDemoApplication.java @@ -0,0 +1,16 @@ +package cn.com.connor.bh.bhdemo; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +@SpringBootApplication +@MapperScan("cn.com.connor.bh.bhdemo.demos.web.mapper") +public class BhDemoApplication { + + public static void main(String[] args) { + SpringApplication.run(BhDemoApplication.class, args); + } + +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/Listener/StoCAPPListener.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/Listener/StoCAPPListener.java new file mode 100644 index 0000000..703f81a --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/Listener/StoCAPPListener.java @@ -0,0 +1,22 @@ +package cn.com.connor.bh.bhdemo.demos.web.Listener; + +import cn.com.connor.bh.bhdemo.demos.web.service.CallExeService; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 队列监听器 + */ +@Component +public class StoCAPPListener { + + @Autowired + private CallExeService callExeService; + @RabbitListener(queues = "StoCAPP") + public void listenQueueMsg(String msg) { + System.out.println("StoCAPPListener 监听到消息:" + msg); + //调用批处理文件,开始执行EXE程序 + callExeService.callExe(msg); + } +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/DrawingController.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/DrawingController.java new file mode 100644 index 0000000..f3eb642 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/DrawingController.java @@ -0,0 +1,96 @@ +package cn.com.connor.bh.bhdemo.demos.web.controller; + +import cn.com.connor.bh.bhdemo.demos.web.mapper.TaskMapper; +import cn.com.connor.bh.bhdemo.demos.web.service.CallExeService; +import cn.com.connor.bh.bhdemo.demos.web.service.MqQueueService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@RequestMapping("/drawing") +public class DrawingController { + @Autowired + private CallExeService callExeService; + @Autowired + private TaskMapper taskMapper; + @Autowired + private MqQueueService mqQueueService; + + @PostMapping("/getByMSG") + public int getByMSG(@RequestBody Map map) { + System.out.println("getByMSG - 已收到异步任务信息:"+ map.toString()); + int result = 0; + try { + String param = map.get("MSG").toString(); + System.out.println("----"+param); + result = taskMapper.getByMSG(param); + System.out.println("==>result:"+result); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("getByMSG方法执行完毕!"); + return result; + } + + @PostMapping("/updateTask") + public int updateTask(@RequestBody Map map) { + System.out.println("updateTask - 已收到异步任务信息:"+ map.toString()); + int result = 0; + try { + String param = map.get("MSG").toString(); + System.out.println("----"+param); + result = taskMapper.updateTask(map); + System.out.println("==>result:"+result); +// callExeService.callExe(); + mqQueueService.sendMsgToQueue(param); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("updateTask方法执行完毕!"); + return result; + } + + @PostMapping("/insertTask") + public int insertTask(@RequestBody Map map) { + System.out.println("insertTask - 已收到异步任务信息:"+ map.toString()); + int result = 0; + try { + String param = map.get("MSG").toString(); + System.out.println("----"+param); + result = taskMapper.insertTask(map); + System.out.println("==>result:"+result); +// callExeService.callExe(); + mqQueueService.sendMsgToQueue(param); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("insertTask方法执行完毕!"); + return result; + } + + /** + * 场景:handler下发时触发 + * 解释:因为handler操作数据库使用单独的c++库,而手动下发通过当前服务操作数据库后会直接触发,不用单独调用一次 + * + */ + @GetMapping + public void drawToExe() { + System.out.println("已收到异步任务请求,开始调用exe程序"); + try { +// callExeService.callExe(); + mqQueueService.sendMsgToQueue("handler"); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + } + System.out.println("drawToExe方法执行完毕!"); + } +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/FtpController.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/FtpController.java new file mode 100644 index 0000000..1a3def1 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/FtpController.java @@ -0,0 +1,35 @@ +package cn.com.connor.bh.bhdemo.demos.web.controller; + +import cn.com.connor.bh.bhdemo.demos.web.utils.CurlUtil; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@RequestMapping("/ftp") +public class FtpController { + + @PostMapping + public int localToFTP(@RequestBody Map map) { + System.out.println("localToFTP - 已收到操作FTP相关信息:"+ map.toString()); + int result = 0; + try { + String ftpip = map.get("ftp_ip").toString();//ftp的ip· + String username = map.get("user_name").toString();//ftp的账号· + String password = map.get("pass_word").toString();//ftp的密码· + String source = map.get("source_path").toString();//本地文件路径(文件全路径:包含文件名)· + String targetPath = map.get("target_path").toString();//ftp目标文件夹路径· + String targetFileName = map.get("target_file_name").toString();//ftp目标文件名· + //连接ftp并登录 +// String resultString = FtpUtil.upload(targetPath,targetFileName, source, ftpip, 21, username, password, null); + String resultString = CurlUtil.uploadToFTP(source, username, password, ftpip, targetPath, targetFileName); + System.out.println(resultString); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》上传FTP异常!《《《《《《《《《《"); + return 0; + } + return result; + } + +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/PartController.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/PartController.java new file mode 100644 index 0000000..d1f55fd --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/controller/PartController.java @@ -0,0 +1,93 @@ +package cn.com.connor.bh.bhdemo.demos.web.controller; + +import cn.com.connor.bh.bhdemo.demos.web.mapper.TaskMapper; +import cn.com.connor.bh.bhdemo.demos.web.service.CallExeService; +import cn.com.connor.bh.bhdemo.demos.web.service.MqQueueService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@RequestMapping("/part") +public class PartController { + @Autowired + private CallExeService callExeService; + @Autowired + private MqQueueService mqQueueService; + @Autowired + private TaskMapper taskMapper; + + @PostMapping("/getByMSG") + public int getByMSG(@RequestBody Map map) { + System.out.println("getByMSG - 已收到异步任务信息:"+ map.toString()); + int result = 0; + try { + String param = map.get("MSG").toString(); + System.out.println("----"+param); + result = taskMapper.getByMSG(param); + System.out.println("==>result:"+result); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("getByMSG方法执行完毕!"); + return result; + } + + @PostMapping("/updateTask") + public int updateTask(@RequestBody Map map) { + System.out.println("updateTask - 已收到异步任务信息:"+ map.toString()); + int result = 0; + try { + String param = map.get("MSG").toString(); + System.out.println("----"+param); + result = taskMapper.updateTask(map); + System.out.println("==>result:"+result); +// callExeService.callExe(); + mqQueueService.sendMsgToQueue(param); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("updateTask方法执行完毕!"); + return result; + } + + @PostMapping("/insertTask") + public int insertTask(@RequestBody Map map) { + System.out.println("insertTask - 已收到异步任务信息:"+ map.toString()); + int result = 0; + try { + String param = map.get("MSG").toString(); + System.out.println("----"+param); + result = taskMapper.insertTask(map); + System.out.println("==>result:"+result); +// callExeService.callExe(); + mqQueueService.sendMsgToQueue(param); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("insertTask方法执行完毕!"); + return result; + } + + @GetMapping + public int partToExe() { + System.out.println("已收到异步任务请求,开始调用exe程序"); + try { +// callExeService.callExe(); + mqQueueService.sendMsgToQueue("handler"); + }catch (Exception e){ + e.printStackTrace(); + System.out.println("》》》》》》》》》》转发异常《《《《《《《《《《"); + return 0; + } + System.out.println("partToExe方法执行完毕!"); + return 1; + } +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/entity/CappTask.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/entity/CappTask.java new file mode 100644 index 0000000..f017034 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/entity/CappTask.java @@ -0,0 +1,33 @@ +package cn.com.connor.bh.bhdemo.demos.web.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class CappTask { + + private String code; + //任务来源 + private String taskSource; + //用户名称 + private String userName; + //用户id + private String userId; + //流程uid + private String flowId; + //状态 + private String status; + //数据信息 + private String msg; + //处理开始时间 + private String starttime; + //处理完成时间 + private String finishtime; + //下发完成时间 + private String endingtime; +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/mapper/TaskMapper.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/mapper/TaskMapper.java new file mode 100644 index 0000000..3815564 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/mapper/TaskMapper.java @@ -0,0 +1,16 @@ +package cn.com.connor.bh.bhdemo.demos.web.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + + +@Mapper +public interface TaskMapper { + int getByMSG(@Param("MSG") String MSG); + + int insertTask(@Param("map") Map map); + + int updateTask(@Param("map") Map map); +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/CallExeService.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/CallExeService.java new file mode 100644 index 0000000..00e7baa --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/CallExeService.java @@ -0,0 +1,66 @@ +package cn.com.connor.bh.bhdemo.demos.web.service; + +import org.springframework.stereotype.Service; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +@Service +public class CallExeService { + /** + * 调用exe,执行下发操作 + */ + public void callExe(String msg){ + System.out.println("callExe方法被调用!开始执行批处理命令!"); + String command = "C:\\Users\\Administrator\\Desktop\\TOCAPP.bat"; + System.out.println("cmd====="+command); + try { + // 使用 Runtime.exec() 执行命令 + Process process = Runtime.getRuntime().exec(command); + + // 获取命令的输入流 + try(InputStream inputStream = process.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))){ + System.out.println("执行exe程序打印信息begin···"); + // 读取并打印输出 + String line; + while ((line = reader.readLine()) != null) { + System.out.println("line => "+line); + } + System.out.println("执行exe程序打印信息end!"); + // 等待命令执行完毕 + int exitCode = process.waitFor(); +/* System.out.println(); + System.out.println(); + System.out.println();*/ + System.out.println("Command executed with exit code: " + exitCode); + } + + // 关闭资源 +// reader.close(); + } catch (IOException e) { + // 处理命令执行失败的情况 + System.err.println("命令执行失败: " + e.getMessage()); + e.printStackTrace(); + } catch (InterruptedException e) { + // 重新设置中断状态 + Thread.currentThread().interrupt(); + System.err.println("命令执行被中断: " + e.getMessage()); + e.printStackTrace(); + } + } + +} + + + + + + + + + + + diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/MqQueueService.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/MqQueueService.java new file mode 100644 index 0000000..c945409 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/service/MqQueueService.java @@ -0,0 +1,21 @@ +package cn.com.connor.bh.bhdemo.demos.web.service; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class MqQueueService { + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * 发送消息到指定队列中 + */ + public void sendMsgToQueue(String msg) { + String queueName = "StoCAPP"; + System.out.println("发送消息:" + msg + "到队列:" + queueName); + rabbitTemplate.convertAndSend(queueName,msg); + } +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/CurlUtil.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/CurlUtil.java new file mode 100644 index 0000000..ac4cfb2 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/CurlUtil.java @@ -0,0 +1,31 @@ +package cn.com.connor.bh.bhdemo.demos.web.utils; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class CurlUtil { + public static String uploadToFTP(String localFile, String username, String password, String ip, String targetPath, String targetFileName) { + String command = "curl -T " + localFile + " ftp://" + username + ":" + password + "@"+ ip + targetPath; + System.out.println("执行curl命令:"+ command); + try { + // 执行一个简单的命令,例如:dir + Process process = Runtime.getRuntime().exec(command); + + // 获取命令输出流 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + + // 等待命令执行完成 + int exitCode = process.waitFor(); + System.out.println("命令执行完成,退出码: " + exitCode); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + return "error"; + } + return "success"; + } +} diff --git a/src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/FtpUtil.java b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/FtpUtil.java new file mode 100644 index 0000000..5e8b857 --- /dev/null +++ b/src/main/java/cn/com/connor/bh/bhdemo/demos/web/utils/FtpUtil.java @@ -0,0 +1,112 @@ +package cn.com.connor.bh.bhdemo.demos.web.utils; + +import cn.hutool.core.io.FileUtil; +import cn.hutool.extra.ftp.Ftp; +import cn.hutool.extra.ftp.FtpMode; +import org.apache.commons.lang.StringUtils; + +import java.io.File; +import java.io.IOException; + + +public class FtpUtil { + /** + * 下载ftp服务器上的文件到本地 + * @param remoteFile + * @param localFile + * @param ip + * @param port + * @param username + * @param password + * @param ftpMode + * @return 成功则返回字符串:success + */ + public static String download(String remoteFile, String localFile, String ip, Integer port, String username, String password, FtpMode ftpMode) { + if(StringUtils.isBlank(localFile)) { + return "本地保存路径及名称不能为空"; + } + File lFile = FileUtil.file(localFile); + Ftp ftp = null; + try { + //匿名登录(无需帐号密码的FTP服务器) + ftp = new Ftp(ip,port == null ? 21 : port,username,password); + if(ftpMode != null) { + ftp.setMode(ftpMode); + } + ftp.download(remoteFile, lFile); + } catch (Exception e) { + return e.getMessage(); + } finally { + //关闭连接 + try { + if(ftp != null) ftp.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + if(lFile.exists() && lFile.length() > 0) { + return "success"; + } else { + lFile.delete(); + return "download failure,"+ remoteFile +" maybe not exists !!"; + } + } + + /** + * 此方法不指定上传后保存的名称, 则按本地文件的名称保存 + * @param remoteDir + * @param localFile + * @param ip + * @param port + * @param username + * @param password + * @return 成功则返回字符串:success + */ + public static String upload(String remoteDir, String localFile, String ip, Integer port, String username, String password, FtpMode ftpMode) { + return upload(remoteDir, null, localFile, ip, port, username, password, ftpMode); + } + + /** + * + * @param remoteDir 上传的ftp目录 + * @param remoteFileName 保存到ftp服务器上的名称 + * @param localFile 本地文件全名称 + * @param ip + * @param port + * @param username + * @param password + * @return 成功则返回字符串:success + */ + public static String upload(String remoteDir, String remoteFileName, String localFile, String ip, Integer port, String username, String password, FtpMode ftpMode) { + if(StringUtils.isBlank(localFile)) { + return "本地文件名称不能为空"; + } + File lFile = FileUtil.file(localFile); + if(!lFile.exists()) { + return "本地文件不存在"; + } + Ftp ftp = null; + try { + //匿名登录(无需帐号密码的FTP服务器) + ftp = new Ftp(ip,port == null ? 21 : port,username,password); + if(ftpMode != null) { + ftp.setMode(ftpMode); + } + if(StringUtils.isBlank(remoteFileName)) { + ftp.upload(remoteDir, lFile); + } else { + ftp.upload(remoteDir, remoteFileName, lFile); + } + } catch (Exception e) { + return e.getMessage(); + } finally { + //关闭连接 + try { + if(ftp != null) ftp.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + return "success"; + } +} diff --git a/src/main/resources/application.properties.txt b/src/main/resources/application.properties.txt new file mode 100644 index 0000000..2804576 --- /dev/null +++ b/src/main/resources/application.properties.txt @@ -0,0 +1,17 @@ +#下面这些内容是为了让MyBatis映射 +#指定Mybatis的Mapper文件 +mybatis.mapper-locations=classpath:mappers/*xml +#指定Mybatis的实体目录 +mybatis.type-aliases-package=cn.com.connor.bh.bhdemo.mybatis.entity +# 应用服务 WEB 访问端口 +server.port=8080 + +#数据库连接配置 +spring.datasource.type=com.alibaba.druid.pool.DruidDataSource +spring.datasource.druid.url=jdbc:sqlserver://192.168.189.128:1433/bhdemo +spring.datasource.druid.username=root +spring.datasource.druid.password=123456 +spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver + + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..69a8d73 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,26 @@ +server: + port: 8080 +spring: + datasource: + driverClassName: oracle.jdbc.driver.OracleDriver + url: jdbc:oracle:thin:@10.41.213.19:1521/orcl + username: system + password: Aa12345678 + rabbitmq: + host: 192.168.3.125 + port: 5672 +# virtual-host: / + username: kuma + password: 123 + + template: + default-receive-queue: StoCAPP + +# url: jdbc:oracle:thin:@192.168.3.125:1521/TC12 +# username: infodba +# password: infodba +mybatis: + mapper-locations: classpath:mapper/*.xml + type-aliases-package: cn.com.connor.bh.bhdemo.demos.web.entity + configuration: + map-underscore-to-camel-case: true diff --git a/src/main/resources/application_test.yml b/src/main/resources/application_test.yml new file mode 100644 index 0000000..4fcf011 --- /dev/null +++ b/src/main/resources/application_test.yml @@ -0,0 +1,25 @@ +server: + port: 8080 +spring: + datasource: + driverClassName: oracle.jdbc.driver.OracleDriver + url: jdbc:oracle:thin:@10.41.213.19:1521/orcl + username: system + password: Aa12345678 + rabbitmq: + host: 192.168.3.125 + port: 5672 + username: kuma + password: 123 + + template: + default-receive-queue: StoCAPP + +# url: jdbc:oracle:thin:@192.168.3.125:1521/TC12 +# username: infodba +# password: infodba +mybatis: + mapper-locations: classpath:mapper/*.xml + type-aliases-package: cn.com.connor.bh.bhdemo.demos.web.entity + configuration: + map-underscore-to-camel-case: true diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml new file mode 100644 index 0000000..175ec9b --- /dev/null +++ b/src/main/resources/mapper/TaskMapper.xml @@ -0,0 +1,25 @@ + + + + + insert into WHBH_CAPP_TASK (TASKSOURCE, USERNAME, USERID, STATUS, MSG, STARTTIME) + values (#{map.TASKSOURCE},#{map.USERNAME},#{map.USERID},#{map.STATUS},#{map.MSG},#{map.STARTTIME}) + + + + update WHBH_CAPP_TASK set TASKSOURCE = #{map.TASKSOURCE}, + USERNAME = #{map.USERNAME}, + USERID = #{map.USERID}, + STATUS = #{map.STATUS}, + STARTTIME = #{map.STARTTIME} + where MSG = #{map.MSG} + + + + + + diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html new file mode 100644 index 0000000..89bb8ba --- /dev/null +++ b/src/main/resources/static/index.html @@ -0,0 +1,6 @@ + + +

hello word!!!

+

this is a html page

+ + \ No newline at end of file diff --git a/src/test/java/cn/com/connor/bh/bhdemo/BhDemoApplicationTests.java b/src/test/java/cn/com/connor/bh/bhdemo/BhDemoApplicationTests.java new file mode 100644 index 0000000..711fcf8 --- /dev/null +++ b/src/test/java/cn/com/connor/bh/bhdemo/BhDemoApplicationTests.java @@ -0,0 +1,13 @@ +package cn.com.connor.bh.bhdemo; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BhDemoApplicationTests { + + @Test + void contextLoads() { + } + +}