FTP文件上传及回执文件下载并解析

FTP文件上传及回执文件下载并解析

功能简介:

操作1:将本地的订单xml文件上传到FTP上,然后在本地其他文件夹进行备
份并删除源文件。
操作2:将FTP上面其他公司上传的订单回执Xml下载下来然后删除,并将文
件解析存到数据中。

操作流程:

  • 使用说明

    双击文件夹下的exe的执行文件,程序就自动运行。关闭则需要启动任务管理器结束一下进程即可。


  • 注意事项

    使用前需要在ftpConfig文件夹下的配置文件中配置好上传和下载的路径,否则程序会报找不到路径的错误!


  • 目录说明
  1. AddOrderParse.jar ——> java代码(已安装java环境的电脑上级即可执行程序)

  2. libs ——> java程序所使用的依赖库,勿操作此文件夹。

  3. ftpConfig ——> 此文件夹下放置配置ftp的地址,用户名和密码。且还有相对应的ftp上的文件路径以及本地的文件路径,均可再次配置。-----
    注意:需要确保配置的路径均是真实的,否则会报错!并且最后一个文件夹后需要加上/

  4. log ——> 此文件放置程序执行错误的日志信息。

  5. addXml ——> 此文件为我调试用的本地的文件路径,你可以自行在ftpConfig配置。

  6. jre ——> 此文件夹存放的是java的运行环境,这样即使电脑没有安装java环境,也可以执行java的程序。不过有点大,待优化。


  • 具体流程

    开启了一个定时器并开辟了两个线程,分别用来循环执行上传和下载两个任务。循环时间设置为60s。

    1. 上传订单文件: 循环扫描本地上的orderXml存放路径,有则上传至ftp上,并在本地备份此文件。

    2. 下载回执文件: 循环扫描ftp上的回执文件存放路径,有则下载至本地,按照日期创建文件夹存放文件,所以同一天的文件会放在一个文件夹下 。然后将下载的文件进行解析添加至数据库的表add_receipt中,字段与xml主题字体一致,并多了一个记录添加时间的字段。由于暂不知道筛选条件,所以目前的做法只是将所有的回执文件解析成对象并添加,所以数据库中会出现同一订单的多个状态。


  • 待优化

  1. 还需新增定时删除过期文件夹的功能。
  2. 回执文件没有筛选直接添加至数据库中,需要根据条件来更新过期的状态。
  3. 日志记录还不完善。
  4. 需要转成C/S项目,实现可视化操作。

以上是写给公司操作人员的操作手册



一点感想:

从老大让我做这个东西到现在大概过了将近半个月的时间吧,其实程序不难,关键是前期的需求不明确,老大也是惜字如金!再加上我也只是刚学java,学我的mybatis学的开开心的,把我抓过来弄这个,不过也是挺感谢他的。代码这东西还是需要实战的,光自己弄真的不行,感觉我这半个月了解的小知识比过去一个月看的东西掌握的还多。特别是最后需要打包成jar文件还需要转成exe的可执行文件并且需要将jre环境也一起打包来让没有安装java环境的电脑用真的愁死我了,啥都不了解!原理不了解,做起东西来真的事倍功半啊!!!


以上内容写于22号,你敢信第二天给同事用立马就出错了么!!!

真的无语.......

因为一个路径的问题导致我弄了两天,特别我用的mac,不知道怎么连接他们加密的vpn,每次mac写完代码然后打成jar包放到win下的电脑使用,然后一次次报错。特别本来一个小时就能弄好的问题,耽误了两天!


代码简介:

  • 项目目录简介:
工程目录
  1. bean层放的是bean对象。

  2. main是含有main方法的一个主体类。

  • ThreadUtils主要是开辟两个分线程分别用来执行上传和下载两个进程,通过输出看到两个线程的资源的确不是平均的,而且也只是一个进程切换来切换去的。

  • TimerTaskUtils是用来开启定时器,没60s执行一次任务。

  1. mapper 和 mapperImp 这两个是mybatis做数据持久层的实现。

  2. service是上传和下载的具体业务逻辑实现类。

  3. utils是一系列的工具类,由上而下分别是:文件夹操作类、封装了FTP常用方法的工具类、将一个map映射成一个对象的类、mybatis工厂的获取类、XMl文件解析的工具

  • map映射成对象的类是看别人博客里面的项目所使用的工具类,直接复制的。。。(侵删!!!)

代码中需要注意的地方

  • FTP连接

     if (task.equals("orderXmlUpload")){
         //订单xml上传
         System.out.println("查找订单文件" + new Date().toString());
         OrderInfoDeal.orderXmlUpload();
         FtpUtils.closeFtpClient(FtpUtils.getFTPClient());
     }else if(task.equals("receiptXmlDownload")){
         //回执xml下载
         System.out.println("查找回执文件" + new Date().toString());
         ReceiptDeal receiptDeal = new ReceiptDeal();
         receiptDeal.receiptXmlDownload();
         FtpUtils.closeFtpClient(FtpUtils.getFTPClient());
     }
    

有没有注意到我的ftp是每次循环都会关闭的,因为你不关闭的话人家传了新的东西到ftp上面你还是用原来的连接就更新不了别人新上传的文件了。

  • 属性文件乱码问题

      localOrderXmlPath = new 
      String(localOrderXmlPath.getBytes("ISO-8859-1"), "UTF-8");
    

    我把ftp的地址,用户名还有密码还有各种上传下载的路径都配置在配置文件里面。由于路径有中文,所以直接读出来是乱码的,需要进行转码才能正常使用。而且我是把ftp的相关配置放在外面,也就是不在src下面,这样方便别人修改。


好吧,感觉很啰嗦但是又没说到重点。。。再次审视了下我的代码都发现没啥可说的了。。。那就这样吧,我把代码上传到github上面,有需要的小伙伴可以下载看一看,有啥问题的可以联系我。新手代码有点渣,勿喷。

联系方式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,361评论 25 707
  • 我叫王伟,一名普通的工人,住在普通一个小城W,干着普通的工作:搬运工。工作几年后娶了个老婆,生了个可爱的女儿,人生...
    大黄蜂_a757阅读 908评论 3 9
  • 我刚刚走过这里, 路边的树, 开了花, 白色的, 红色的, 掩映在夕阳里, 很纯粹,不装饰, 我曾活过, 连神情都...
    lize_333阅读 329评论 0 1
  • 今天跟大家分享一下我对王阳明心学的理解。 王阳明是继承了儒释道、甚至鬼谷子和兵家的学说,集大成者创立了心学。 自己...
    猫黍阅读 669评论 0 2