AtsOverTimeBillEditHandlerEx.java 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package com.kingdee.eas.custom.ot.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.util.BOSUuid;
  5. import com.kingdee.eas.common.EASBizException;
  6. import com.kingdee.eas.custom.ot.util.OverTimeAgainstApproveUtil;
  7. import com.kingdee.eas.framework.CoreBaseInfo;
  8. import com.kingdee.eas.hr.ats.AtsOverTimeBillInfo;
  9. import com.kingdee.eas.util.app.DbUtil;
  10. import com.kingdee.shr.ats.web.handler.AtsOverTimeBillEditHandler;
  11. import com.kingdee.shr.base.syssetting.context.SHRContext;
  12. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  13. import org.springframework.ui.ModelMap;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.util.Map;
  17. /**
  18. * 多人加班单审核通过的单据分录变更后保存新增单据的实现
  19. * @author lhbj
  20. */
  21. public class AtsOverTimeBillEditHandlerEx extends AtsOverTimeBillEditHandler {
  22. protected void beforeSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
  23. //处理原单分录,以跳过标准校验
  24. AtsOverTimeBillInfo billInfo = (AtsOverTimeBillInfo)model;
  25. Context ctx = SHRContext.getInstance().getContext();
  26. String oldEntryId = request.getParameter("oldEntryId");
  27. String oldBillID = request.getParameter("oldBillID");
  28. String updEntry = "update T_HR_ATS_OverTimeBillEntry set fbillid=? where fid=?";
  29. String newId = String.valueOf(BOSUuid.create(billInfo.getBOSType()));
  30. try {
  31. DbUtil.execute(ctx, updEntry, new String[]{newId.toString(), oldEntryId});
  32. } catch (BOSException e) {
  33. throw new RuntimeException(e);
  34. }
  35. super.beforeSave(request, response, model);
  36. }
  37. protected void afterSave(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
  38. super.afterSave(request, response, model);
  39. //处理原单分录,以跳过标准校验
  40. AtsOverTimeBillInfo billInfo = (AtsOverTimeBillInfo)model;
  41. Context ctx = SHRContext.getInstance().getContext();
  42. String oldEntryId = request.getParameter("oldEntryId");
  43. String oldBillID = request.getParameter("oldBillID");
  44. String newId = billInfo.getId().toString();
  45. try {
  46. String updBill = "update T_HR_ATS_OverTimeBill set FBillState=3 where fid=?";
  47. DbUtil.execute(ctx, updBill, new String[]{newId});
  48. String updEntry = "update T_HR_ATS_OverTimeBillEntry set fbillid=? where fid=?";
  49. DbUtil.execute(ctx, updEntry, new String[]{oldBillID, oldEntryId});
  50. //生成新单据完成后,删除原单据分录数据,然后触发计算
  51. OverTimeAgainstApproveUtil u = new OverTimeAgainstApproveUtil();
  52. Map<String, Object> map = u.deleteOTEntry(ctx, oldBillID, oldEntryId);
  53. System.out.println("afterSave:"+map);
  54. } catch (BOSException e) {
  55. throw new RuntimeException(e);
  56. } catch (EASBizException e) {
  57. throw new RuntimeException(e);
  58. }
  59. }
  60. public String saveAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
  61. return super.saveAction(request, response, modelMap);
  62. }
  63. }