WorkHandoverEditHandler.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.kingdee.eas.custom.handover.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.dao.IObjectPK;
  5. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  6. import com.kingdee.bos.metadata.entity.*;
  7. import com.kingdee.bos.util.BOSUuid;
  8. import com.kingdee.eas.basedata.org.*;
  9. import com.kingdee.eas.common.EASBizException;
  10. import com.kingdee.eas.custom.handover.WorkHandoverInfo;
  11. import com.kingdee.eas.custom.handover.utils.WorkHandoverUtil;
  12. import com.kingdee.eas.framework.CoreBaseInfo;
  13. import com.kingdee.eas.hr.affair.ResignBizBillEntryInfo;
  14. import com.kingdee.eas.hr.affair.ResignBizBillFactory;
  15. import com.kingdee.eas.hr.affair.ResignBizBillInfo;
  16. import com.kingdee.eas.hr.base.*;
  17. import com.kingdee.shr.base.syssetting.context.SHRContext;
  18. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  19. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  20. import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
  21. import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
  22. import com.kingdee.util.StringUtils;
  23. import org.apache.log4j.Logger;
  24. import org.springframework.ui.ModelMap;
  25. import javax.servlet.http.HttpServletRequest;
  26. import javax.servlet.http.HttpServletResponse;
  27. /**
  28. * @Description 工作交接人表单EditHandler
  29. * @Date 2025/5/30 17:46
  30. * @Created by Heyuan
  31. */
  32. public class WorkHandoverEditHandler extends EditHandler {
  33. private static Logger logger = Logger.getLogger(WorkHandoverEditHandler.class);
  34. @Override
  35. protected void afterCreateNewModel(
  36. HttpServletRequest request,
  37. HttpServletResponse response,
  38. CoreBaseInfo coreBaseInfo
  39. ) throws SHRWebException {
  40. super.afterCreateNewModel(request, response, coreBaseInfo);
  41. //录用审批单据
  42. WorkHandoverInfo info = (WorkHandoverInfo) coreBaseInfo;
  43. HROrgUnitInfo hrOrgUnitInfo = new HROrgUnitInfo();
  44. hrOrgUnitInfo.setId(BOSUuid.read("00000000-0000-0000-0000-000000000000CCE7AED4"));
  45. info.setHrOrgUnit(hrOrgUnitInfo);
  46. }
  47. /**
  48. * 通过单据id获取离职单数据
  49. *
  50. * @param request
  51. * @param response
  52. * @param modelMap
  53. * @return
  54. * @throws SHRWebException
  55. */
  56. public void getResignBizBillInfoByBillIdAction(
  57. HttpServletRequest request,
  58. HttpServletResponse response,
  59. ModelMap modelMap
  60. ) throws SHRWebException {
  61. Context ctx = SHRContext.getInstance().getContext();
  62. String resignBizBillId = request.getParameter("resignBizBillId");
  63. if (StringUtils.isEmpty(resignBizBillId)) {
  64. throw new ShrWebBizException("离职单id不能为空!");
  65. }
  66. try {
  67. SelectorItemCollection sic = new SelectorItemCollection();
  68. sic.add("entrys.*");
  69. sic.add("entrys.person.*");
  70. sic.add("entrys.adminOrg.*");
  71. sic.add("entrys.hrBizDefine.*");
  72. sic.add("entrys.position.*");
  73. sic.add("entrys.jobGrade.*");
  74. sic.add("entrys.oldEmpType.*");
  75. sic.add("entrys.empType.*");
  76. sic.add("entrys.variationReason.*");
  77. ResignBizBillInfo resignBizBillInfo =
  78. ResignBizBillFactory.getRemoteInstance().getResignBizBillInfo(new ObjectUuidPK(resignBizBillId), sic);
  79. ResignBizBillEntryInfo resignBizBillEntryInfo = resignBizBillInfo.getEntrys().get(0);
  80. String personId = resignBizBillEntryInfo.getPerson().getId().toString();
  81. //是否为领导
  82. boolean isLeader = WorkHandoverUtil.isLeader(ctx, personId);
  83. resignBizBillEntryInfo.put("isLeader", isLeader);
  84. JSONUtils.SUCCESS(resignBizBillEntryInfo);
  85. } catch (Exception e) {
  86. logger.error(e.getMessage(), e);
  87. throw new ShrWebBizException(e);
  88. }
  89. }
  90. @Override
  91. protected void beforeSubmit(
  92. HttpServletRequest request,
  93. HttpServletResponse response,
  94. CoreBaseInfo model
  95. ) throws SHRWebException {
  96. //设置单据状态为未审批
  97. model.setInt("billState", 1);
  98. super.beforeSubmit(request, response, model);
  99. }
  100. /**
  101. * 提交生效
  102. *
  103. * @param request
  104. * @param response
  105. * @param modelMap
  106. * @throws SHRWebException
  107. */
  108. public void submitEffectAction(
  109. HttpServletRequest request,
  110. HttpServletResponse response,
  111. ModelMap modelMap
  112. ) throws SHRWebException {
  113. CoreBaseInfo model = (CoreBaseInfo) request.getAttribute("dynamic_model");
  114. this.beforeSave(request, response, model);
  115. HRBillBaseInfo hrBillBaseInfo = (HRBillBaseInfo) model;
  116. hrBillBaseInfo.setApproveType(ApproveTypeEnum.DIRECT);
  117. try {
  118. IHRBillBase ihrBillBase = (IHRBillBase) this.getBizInterface();
  119. IObjectPK objectPK = ihrBillBase.submitEffect(model);
  120. model.setId(BOSUuid.read(objectPK.toString()));
  121. } catch (EASBizException var8) {
  122. logger.error(var8);
  123. throw new ShrWebBizException(var8.getMessage(), var8);
  124. } catch (BOSException var9) {
  125. logger.error(var9);
  126. throw new ShrWebBizException(var9.getMessage(), var9);
  127. } catch (Exception var10) {
  128. logger.error(var10);
  129. throw new ShrWebBizException(var10);
  130. }
  131. this.afterSave(request, response, model);
  132. this.saveAttachment(request, response, model);
  133. this.writeSuccessData(model.getId().toString());
  134. }
  135. }