项目三总结

项目三总结

一、功能总结:

1.档案录入功能

·功能描述:

单独的一个档案录入页面,点击提交把档案内容提交保存到数据库

·功能实现过程:

在接到这个模块时候,首先看了文档的描述,发现字段比较多有二十多个,关联对象也比较多,接着就开始建表,在建表的过程过程中好多字段都不太明白其中含义,也没有管那么多,直接把表建好。

而后开始做前台页面,但是马上就发现了问题,就是忘记from表单立面怎么嵌入一个表格,后来慢慢查询以前的资料,把前台页面做好。

前台页面完成后开始写后台代码,这个时候就发现在存入值的时候遇到了关联对象值没有存入数据库,造成页面显示不出数据,进过一系列的修改和配置domain关系把新增页面做好。这个时候就有个问题档案附件上传可以直接写在新增页面,也可以分开写。我的选择是写在了新增页面,后面有时间在分开写。

·页面展示


2.档案查询

·功能描述:

用户通过点击菜单按钮,或者添加档案成功后,或者修改档案成功后进入该模块,分页展示所有的档案信息,并且可以根据档案类型、存档点、标题进行组合模糊查询。其中档案管理员和系统管理员可以选择对应的档案进行修改操作。

·功能实现过程:

在看到这个需求时候开始觉得这个界面就是最基础的增删改查,自己在做的时候发现增删改查好像也不简单。

以前做的两个项目模式都是老师做一遍,然后我们自己回去敲出来,现在自己做的时候发现增删改查自己掌握的也不是那么好,在做分页查询的时候遇到了两个问题,一个是关联对象没有格式化到页面,找不到mapper的xml映射,高级查询sql映射报错,添加条件就报错找不到映射,最终通过问同学和老师把问题解决了。

分页条件查询代码

@Override

public PageResult selectByQuery(ArchiveQuery aq){

//分页查询

    PageHelper.startPage(aq.getPage(),aq.getRows());

Page pagelist = (Page)archiveMapper.selectByQueryMapper(aq);

PageResult pageResult =new PageResult<>(pagelist.getTotal(), pagelist.getResult());

return pageResult;

}


在做时间区间的添加没有注意到前台页面要引一个汉化js包,还有就是传入的数据用easyui时间主键需要格式化set方法才能不包400类型错误。

@DateTimeFormat(pattern ="yyyy-MM-dd")

public void setExpirationTime(Date expirationTime) {

this.expirationTime = expirationTime;

}

@DateTimeFormat(pattern ="yyyy-MM-dd")

public void setStartTime(Date startTime) {

this.startTime = startTime;

}

最后就是条件查询没有做那么多,只写了一个档案名称的条件查询。


·页面展示

3.档案导出

·功能描述:

档案导出可以先根据档案类型、存档点进行筛选数据后,选择导出数据保存文件的类型进行导出数据,可以导出成PDF、DOC文档、EXCEL表格、TXT文本文件


·功能实现过程:

在做档案导出功能时候遇到的错主要有两个,档案导出按钮直接写在档案查询页面。

问题1:档案导出这个功能也是之前老师讲过的,遇到的第一个问题就是页面上传的字段没有传入后台,再对比了前台页面和后台页面的字段发现字段没问题,这个时候就有点没有思路了,后来通过百度包问题解决了原是什么也没搞清楚,单效果出来了,给传入字段加了一个别名就没问题了。

上传加别名(@RequestParam("fileImage") MultipartFile fileImage)

//导出excel表格功能

@RequestMapping("/download")

public String download(ArchiveQuery aq, HttpServletRequest req, ModelMap map){

//查询出要导入出的数据

    List queryList =archiveService.findByQuery(aq);

//导出的参数

    ExportParams params =new ExportParams("档案列表","内容", ExcelType.XSSF);

//params.setFreezeCol(2);//冻结的列

    map.put(NormalExcelConstants.DATA_LIST, queryList);//前台传入的数据集合

    map.put(NormalExcelConstants.CLASS, Archive.class);//导出实体

    map.put(NormalExcelConstants.PARAMS, params);//参数

    map.put(NormalExcelConstants.FILE_NAME,"archive");//导入的文件名称

    return NormalExcelConstants.EASYPOI_EXCEL_VIEW;//View名称

}


问题2:就是导出文件用的是easypoi,domain配置需要打标签,关联对象多对一没什么问题能够成功导出,但是一对多的配置就不能导出关联对象,这个问题还没有解决

·页面展示



4.档案附件上传 

·功能描述:

档案的附件上传功能,首先根据用户输入要添加附件的档案编号进行查询出档案的数据,通过点击“上传“进行添加附件的操作,操作时需要提供数据有:附件标题、附件类型、附件文件、备注信息、所属档案编号、上传附件时间、文件大小、上传用户等数据,上传成功后返回查询页面。


·功能实现过程:

附件上传要求是单独的一个页面进行上传,刚开始做项目是直接把附件上传功能和新增档案功能做在一起的,后面又分开了,但是遇到的问题是前台页面不知道怎么从数组里面取值处理,造成这个功能没有做成功。

还有个问题就是之前上传图片附件都是一张图片上传到本地,数据库保存图片的项目路径地址,如果有多个图片时候这个功能就不行,于是新建了一个附件表,用来存图片和附件相关描述,但是功能没有做出来。

·代码实现

private void uploadImage(Archive archive, MultipartFile fileImage, HttpServletRequest req)throws IOException {

//判断上传的文件是否为空

    if(fileImage.getSize()!=0L){//上传文件不为空

//获取绝对路径

        String realPath = req.getServletContext().getRealPath("/");

String rootpath = realPath.substring(0, realPath.lastIndexOf("mg"));

//如果类型不为空,证明是修改图片

        if(archive.getId() !=null && StringUtils.isNotBlank(archive.getArchiveItem())){

//删除图片

            File file =new File(rootpath, archive.getArchiveItem());

file.delete();

}

//随机产生名字

        long name = System.currentTimeMillis();//3434543534534534

//获取上传附件的名字

        String filename = fileImage.getOriginalFilename();//a.png

//获取文件的后缀名

        String extension = FilenameUtils.getExtension(filename);//png

//最终生成文件的名字

        String bigFileName = name +"." + extension;//3434543534534534.png

//存储附件图片的路径

        String filePath ="/upload/" + bigFileName;//    /upload/3434543534534534.png

//附件图片的绝对路径

        File file =new File(rootpath, filePath);//  E:\ideaProject\target\aisell/upload/3434543534534534.png

//如果图片的父文件夹不存在,则创建

        if(!file.getParentFile().exists()){

file.getParentFile().mkdirs();

}

//获取输出流

        FileOutputStream fileOutputStream =new FileOutputStream(file);

//上传的核心代码

        IOUtils.copy(fileImage.getInputStream(),fileOutputStream);

//图片上传完毕之后,则把路径设置到archive中

        archive.setArchiveItem(filePath);

//关闭流

        fileOutputStream.close();

}

}

·页面展示



5.档案到期管理

·功能描述:

档案到期查询功能中,需要提供到期时间来查询数据,如:已经到期、今天到期、三天内到期、一周内到期、两周内到期、一个月内到期、三个月内到期、半年内到期、一年内到期等进行查询。


·功能实现过程:

刚开始做这个功能的时候没有搞清楚功能要求,做错一次,在理解到意思过后发现实现有些困难,需要动态的获取创建文档日期和文档到期的时间差进行判断什么时间文件过期,然在百度查询到计算时间差的方法后,开始写逻辑,但写出来的逻辑怎么都不对,最后只好放弃,改用手动修改到期时间来解决这个功能需求。

·页面展示



二、心得总结:

做第三个项目之前还跃跃欲试,在做的过程中才发现自己掌握的多么差,但是在做这个项目还是学到了很多东西,收获感觉比较上课要多,独立完成能力和对代码的理解能力都有提升,最后遗憾的是做项目过程中我们小组基本都没有过什么交流,造成了我的档案模块和其他人冲突(关联对象维护关系递归),项目合并出了很多问题。总的来说这个项目做完后收获还是比较多的。

 

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

推荐阅读更多精彩内容

  • 1.测试工程师的具体职责 1.****编写测试计划,在这过程中了解规格说明、设计文档、使用说明书等相关文档,充分掌...
    热心网友周先生阅读 268评论 1 1
  • Web网站测试流程和方法(转载) 1测试流程与方法 1.1测试流程 进行正式测试之前,应先确定如何开展测试,不可盲...
    夏了夏夏夏天阅读 1,271评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,065评论 1 32
  • 因为要做物流信息展示,展示相关快递信息等,可能会有电话、座机号等联系方式,要求可点击并能打电话。开始网上找的一个,...
    世玉茹花阅读 2,994评论 2 4
  • 【日文】聞き上手の話し下手 (ききじょうずのはなしべた) 【中文】光听别人讲,自己像哑巴 【感悟】对一件事情的坚持...
    行禅者阅读 320评论 0 1