看看自己写的,诶,赞一个!!

两相比较,虽然还是个菜鸟,不得不给自己赞一个!由于结构比较乱,业务处理层就省了

/**
 * @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);
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值