2014工作报名+总结

图书系统


展示图:

  

项目步骤

  0:同业务员分析需求

  1:抓取数据,这些数据足足有306G4000多本pdf图书

  2:搭建前台静态页面,使用jquery解决了在IE8IE6不兼容故障

  3:开始搭建框架(springMVC3.0.2+hibernate3+log4j)

   4:测试

使用到的技术

   1:采用对pdf进行简单加密,使用^来回换算。防止客户直接复制pdf,限制只能使用本系统浏览?

   2:通过json+过滤器结合配置来控制外网IP段和内网ip段。

   3:jquery+ajax异步分页,并带有加载特效,增加用户体验度。

   4:使用Lucene检索

后话:

  这个项目是在7月份做的,整个流程大概用了3星期时间(晚上+周末)

  后来去深圳现场部署系统,让我在运维上又实践了一吧。一个晚上,在部署时,现场测试,发现新bug,那晚直接干到3点。

  由于机房空调温暖太低,在调试时使用局域网运程安装的,可能是太困的原因,操作过快,服务器(servlet 2008)有些卡了。不小心把200多个G的数据给删了,这使我冒了一身冷汗。。。幸好移动硬盘还有备份,不然后果相当严重。经过那次事件,让我知道数据无价,不可乱来。

语言文字报抓取

需求:某公司网站,每天都要派工作人员去某网站摘取文章放到自己的网站上。而文章也是时不定的有,如果有文章,工作人员就有一块一块复制过来,一个版有10几个文章,还有插图,一期有12个版,12*10+*图片,还要按手动按文章顺序排序,工作量较大又烦琐,决定弄一个小软件来协助下载数据和一个组合到asp中直接上传一整期数据

|--手动监听


|--自动监听

   ps:在服务器共享一个目录,将自动监听程序在服务器启动,每时不隔的就去扫描,一有新数据便立即抓取。

然后工作人员便可在共享目录看到。


|--抓取数据后打包成zip包,上传到后台,后台即可随便排序标题顺序

标引系统(报纸版)

  需求:

某报社为保留历史的报纸,需要制作成电子版。扫描--修图-校对-录入-采集或标引。  采集便是通过读取PDF的文本,计算每块区域文本,自动将相应段落框起来,提高生产人员效率。但由于有一部分报纸太古老,图|字墨很重,排版方式比较复杂,采集的智能画框已失去主权,框不准。所以便有了标引。将PDF转为JPG,让制作人员在通过软件来自定画框,补齐相应文本数据。为制作电子报数据在老报纸上提高了效率。

 

电子版预览效果


小结:

  1:这个项目不难,核心就是在图上画线,截图,图片按比例绽放其区域x,y,w,h也随着变化。

  2:第一次在系统上使用了加密注册激活功能。(序号号+使用次数+过期日期

  3:制作人员用的比较多,对系统操作灵活比较高。让我体会写程序更注重一些细节问题。怎么更方便,怎么提高工作效率。

  4:为防止意外出错,每做完一个区域备份一次,出错也能及时还原。(采用序列化流)


收寄系统

需求:

某公司以为扩充物流业务,与各快递公司合作,帮他们收件。便需要开发一个收寄系统。

功能:

b:离线版使用。

    a:各站点的资费管理(保价+代收货款+首重+续重+首价+续价),不同付款方式有不同物品类型,不同物品类型便有不同价格。有些快递公司还限制一些地区不能寄达。

    b:针对寄件人提供(月结|季结);

c:各站点数据上传

d:后台与快递公司结算(月清|日结)


小结:

1: 价格表使用XML设计的(运输方式|物品类型|首重|续重|首价|续价|到达时间|到达城市)

2: 这个项目涉及到细节东西比较多,不停的有新业务加入,历经3个大版本,数据库改过4次,价格也改过3次。

3:怎么实现站数据上传?怎么实现本地数据删除|也同步更新服务器数据?

a:在本地数据表中添加如下字段

create table tbName(

...

uploadStatus number(2),/*上传状态0:等待上传,1:正在上传,9:上传完毕,2:上传失败*/

serviceMethod varchar(25)/*业务方法状态 save保存,update:更新:delete删除*/ 

)

b:开启一个定时器,每2分钟就巡逻一次。将状态为02的数据给拿出来

  b1:遍历数据02的数据。

  b2:为防止执行任务执行重复,每获取一行数据,通过ID将其updateStatus更新为1

  b3:组织数据:我们模拟get请求,?属性名=

属性名:表名(:itemcollitemrecv)

:首行是每个值的属性名。行数据之间的值以,拼接,多行使用||

形成了itemcoll=serviceStationId,orgnizationNo,itemNo||200000001,ST,768706636070||200000001,ST,768706636058||....  最后转大串以UTF-8转为byte数组,使用POST上传。

  b4:后台servlet

b4.1直接使用与站约定的表进行获取属性值。

b4.2||字符串切割,获取0索引的值,以再次,切割。得到一个属性名称数组(nameArray)

b4.2遍历以||切割的数组,将>1以后的值,以,切割(valueArray)

b4.3遍历nameArray,获取属性名称,通过反射将值赋到属性名称相应的值。

b4.4:然后我们可根据serviceMethod来决定客户端是要请求那个业务方法。

b4.5:定义一个StringBuffer来将ID与状态拼接起来,用于响应客户端。

 b5:获取到服务器响应后,同样以字符串截取,将将更新每个IDuploadStatus值。



2014总结:   缓一缓,再生气。想一想,再行动。

写代码总结:

1:先理思路,把整个流程想一遍过去。最好能用纸画下来,把每个环节写上备注。(ps:虽然消耗时间,但能减少你调试的时间)

2:写完之后,自己测试。

      

   




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值