// 提交单据 public Bill addNewBill(Bill bill) { Farm farm = billDao.getEntityById(Farm.class, bill.getFarm().getId()); Factory factory = billDao.getEntityById(Factory.class, bill.getFactory().getId()); // 生成订单号 bill.setOrderId(Util.genOrderId(farm.getName(), factory.getName(), getCurrNum())); // 当前处理人 User userObj = (User) ActionContext.getContext().getSession().get(WebConstants.SESS_USER_OBJ); if (userObj instanceof AreaAccount) { AreaAccount aa = (AreaAccount) userObj; bill.setCurrUserName(aa.getArea().getFarm().getManager().getName()); bill.setAreaAccount(aa); } else if (userObj instanceof ManagerAccount) { ManagerAccount aa = (ManagerAccount) userObj; bill.setCurrUserName(aa.getName()); bill.setManager(aa); } else if (userObj instanceof Admin) { bill.setCurrUserName(userObj.getName()); } // 保存创建人和创建日期 if (bill.getCreateDate() == null) bill.setCreateDate(new Date()); if (bill.getCreateName() == null) bill.setCreateName(userObj.getName()); baseDao.saveOrUpdate(bill); // 保存日志 BillLog log = Util.getBaseLog(BillLog.class, "草稿 -> 审核中"); log.setBill(bill); log.setRemark(bill.getApplyRemark()); baseDao.saveOrUpdate(log); // 发邮件 sendEmail(bill, "单据提交成功"); logger.info("提交单据【" + bill.getOrderId() + "】成功"); return bill; }