// 提交单据 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; }
private String buildEmailBody(Bill bill) { StringBuffer sb = new StringBuffer(); sb.append( "您有一条新任务,请进入<a href=\"" + WebConstants.URL + "\" target=\"_blank\">" + WebConstants.URL + "</a>来处理"); sb.append("农场管区: "); sb.append(bill.getFarm() == null ? "" : bill.getFarm().getName()); sb.append("-" + bill.getArea() == null ? "" : bill.getArea().getName()); sb.append("\n"); sb.append("饲料经理签名:" + (bill.getManager() == null ? "" : bill.getManager().getName())); sb.append("\n"); sb.append("单据编号:" + bill.getOrderId()); sb.append("\n"); sb.append("管区:" + (bill.getArea() == null ? "" : bill.getArea().getName())); sb.append("\n"); sb.append("单据:" + (bill.getOrderNo() == null ? "" : bill.getOrderNo())); sb.append("\n"); sb.append("负责人:" + bill.getCurrUserName()); sb.append("\n"); sb.append("饲料规格:" + bill.getModel()); sb.append("\n"); sb.append("饲料型号:" + bill.getSize()); sb.append("\n"); sb.append("饲料吨数:" + bill.getAmount()); sb.append("\n"); sb.append("预计达到时间:" + Util.getDate(bill.getPlanDate())); sb.append("\n"); return sb.toString(); }
// 保存单据草稿 public Bill saveBillDraft(Bill bill) { if (bill == null) return null; /* if (!Util.isEmpty(bill.getFarmer().getName())) { Farmer farmer = this.getEntityByUnique(Farmer.class, "name", bill.getFarmer().getName()); bill.setFarmer(farmer); }*/ 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.setAreaAccount(aa); } else if (userObj instanceof ManagerAccount) { ManagerAccount aa = (ManagerAccount) userObj; bill.setManager(aa); } bill.setCurrUserName(userObj.getName()); baseDao.saveOrUpdate(bill); // 保存日志 BillLog log = Util.getBaseLog( BillLog.class, (bill.getShenpiResult() != null && bill.getShenpiResult() == false) ? "审核中 -> 草稿" : "拟定 -> 草稿"); log.setBill(bill); log.setRemark( (bill.getShenpiResult() != null && bill.getShenpiResult() == false) ? bill.getShenpiRemark() : bill.getApplyRemark()); baseDao.saveOrUpdate(log); logger.info("保存单据草稿【" + bill.getOrderId() + "】成功"); return bill; }
// 对已经有的草稿进行提交 public Bill submitDraftBill(Bill bill) { // 当前处理人 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 Admin) { bill.setCurrUserName(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; }
// 确认单据 public Bill confirmBill(Bill bill) { // 当前处理人 Provider provider = billDao.getEntityById(Provider.class, bill.getProvider().getId()); bill.setCurrUserName(provider.getAccount().getName()); bill.setProviderAccount(provider.getAccount()); User userObj = (User) ActionContext.getContext().getSession().get(WebConstants.SESS_USER_OBJ); if (userObj instanceof ManagerAccount) { ManagerAccount aa = (ManagerAccount) userObj; bill.setManager(aa); } baseDao.saveOrUpdate(bill); // 保存日志 BillLog log = Util.getBaseLog(BillLog.class, "审核中 -> 已审核"); log.setBill(bill); log.setRemark(bill.getShenpiRemark()); baseDao.saveOrUpdate(log); // 发邮件 sendEmail(bill, "单据通过审核"); logger.info("提交单据【" + bill.getOrderId() + "】成功"); return bill; }