两相比较,虽然还是个菜鸟,不得不给自己赞一个!由于结构比较乱,业务处理层就省了
/**
* @description 处理上传的采购申请文件(Excel文件)
* @author ....
* @date 2010-12-29
*/
public class OrdersBatchUploadAction extends Action {
private static Logger logger = Logger.getLogger(OrdersBatchUploadAction.class);
/**
* 采购订单上传处理的步骤:1)获取上传的Excel文件,并将文件保存为服务器的临时文件
* 2)解析临时文件中的数据
* 3)数据完整性校验
* 3)将解析的数据保存到数据库
* 4)删除临时文件
* 5)显示结果数据列表
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String forward = "prompt";
HttpSession session = request.getSession();
User loginUser = (User)session.getAttribute("loginUser");
String mode = request.getParameter("mode"); //获取将要执行的操作标志。mode='init'为初始化
if (mode!=null && mode.equals("init")) {
return mapping.findForward("init");
}
OrdersBatchUploadForm ordersUploadForm = (OrdersBatchUploadForm)form;
FormFile file = ordersUploadForm.getFile();
try {
if (file == null) {
throw new ExpFoundException("上传文件发生异常!上传的文件不存在。");
}
//暂时保存上传文件的文件夹路径(为部署的工程目录下的temp文件夹)
String directory = servlet.getServletContext().getRealPath("/temp");
String fileName = loginUser.getUserName() + "_" + file.getFileName(); //设置暂存文件的文件名
String filefullpath = directory + "/" + fileName;
//缓存上传的采购申请数据文件
saveTempFile(file, directory, fileName);
//解析及检验上传的Excel文件
ArrayList<PurchasingAppModel> purAppList =
ParsingImportedDataService.validatePurchasingAppData(filefullpath, loginUser);
//校验采购申请数据的完整性,并生成采购订单
ArrayList<PurchaseOrder> orderList = ParsingImportedDataService.
validateIntegrityOfPurchasingAppData(purAppList, loginUser);
//持久化采购申请数据(即备份批量导入的采购申请数据到数据库)
PurchasingAppPO.batchPersistency(purAppList);
//持久化采购订单数据,并获取采购订单凭证号列表
ArrayList<String> ebelnList =
PurchaseOrderPO.batchPersistency(orderList);
//删除采购申请导入的临时文件
deleteTempFile(filefullpath);
//检查采购申请数据是否都通过了完整性校验,如果存在没通过校验的,给用户提示出来。
boolean isAllPassed = isAllPassedIntegralityValidation(purAppList);
if (!isAllPassed) {
String tip = "采购申请数据中存在未通过完整性校验的记录,请转到完整性校验结果处进行处理!";
request.setAttribute("tip", tip);
}
//将生成的采购订单的凭证号集合传到结果显示Action
String ebelnListTag = loginUser.getDepartment() + "ebelns";
session.setAttribute(ebelnListTag, ebelnList);
forward = "listresult";
} catch (ExpFoundException efe) {
request.setAttribute("prompt", "采购申请导入失败!" + efe.getMessage());
}
return mapping.findForward(forward);
}
分享到:
相关推荐
JAVA自己写的一个分页类 大家可以看看 里面有1个辅助类和1个JSP页面。一个CSS。还有我自己写的类。应该有注释你们可以看看!
做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!做一个项目的总结。给自己看!!!!
安装Ubuntu的朋友不妨看看!很好的东西!安装Ubuntu的朋友不妨看看!很好的东西!安装Ubuntu的朋友不妨看看!很好的东西!安装Ubuntu的朋友不妨看看!很好的东西!安装Ubuntu的朋友不妨看看!很好的东西!安装Ubuntu...
java处理常规加密解密,设计到类库的调用,编码的格式等等,大家可以看看,然后自己写写!! java处理常规加密解密,设计到类库的调用,编码的格式等等,大家可以看看,然后自己写写!! java处理常规加密解密,设计到...
这个资源,是配合此前自己写过的一篇博客“QT 写一个属于自己的消息弹窗MessageBox”所建立的,里面是一个自己写的消息弹窗源码和资源文件,博客里会从头介绍如何自己写一个消息弹窗,有兴趣去朋友可以关注一下!...
C编程规 写程序得同学必看!!!C编程规 写程序得同学必看!!! C编程规 写程序得同学必看!!!C编程规 写程序得同学必看!!!
我写的调用网页的javascript函数!请大家帮忙看看!
自己综合网上的一些技术写了个推箱子的小游戏!给大家分享下!
想学口译的可以看看! 20个字符是不是太长了一点. 又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写作文!又不是写...
一个脚本,用来检测UNIX系统健康情况的!没事做的兄弟可以看看,写的算太好!但是还是比较正规的!
DevExpress.Patch.for13.1.5的源代码,喜欢自己研究破解的,看看!!!现在帖子已经关闭,没地方下载了:)我共享出来,造福大家:)
看看,大三的时候写的!不完善!希望对大家有用!
自己写的一个分页控件,可以实现dataGridView的分页显示!很值得下载看看!资源免费,大家分享!!
采用CSS架构 人事管理系统,初学者必先!自己看看吧,分就不多了
一个简单的分页控件,自己可以随便改,控制器数量自己定义,需要的看看,GitHub地址:https://github.com/yy342901/YYPageController.git 这里的下载大家别点了,直接去GitHub下载!!!这里的下载大家别点了,...
php与mysql写的简易博客 ~初学者必看! 请在wamp的www目录下打开~
自己做的浏览器,很实用!想学易语言的朋友就要看看了!!!
看了很多网上的贪吃蛇 大部分都是由错误的于是自己用纯API写了一个 供大家参考! 如有疑问请加群3244625!一起讨论!
有兴趣的朋友可以下下来看看!!这是一本比较好的书。
vb操作word的一个示例及自己写的一个转换word到html的宏,主要是自己想要做个方便转换的工具,因为公司不让传资料,只能csdn中转传过去了.大家还是可以看看前面的文件操作的,最后面我写的就免了,粗稿还没有完善了,本人...