ProjectChangeEditHandler.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package com.kingdee.eas.hr.project.handler;
  2. import com.kingdee.bos.BOSException;
  3. import com.kingdee.bos.Context;
  4. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  5. import com.kingdee.bos.metadata.entity.SelectorItemCollection;
  6. import com.kingdee.bos.metadata.entity.SelectorItemInfo;
  7. import com.kingdee.eas.common.EASBizException;
  8. import com.kingdee.eas.framework.CoreBaseInfo;
  9. import com.kingdee.eas.hr.project.IProjectChange;
  10. import com.kingdee.eas.hr.project.IProjectManagement;
  11. import com.kingdee.eas.hr.project.ProjectChangeFactory;
  12. import com.kingdee.eas.hr.project.ProjectChangeInfo;
  13. import com.kingdee.eas.hr.project.ProjectManagementFactory;
  14. import com.kingdee.eas.hr.project.ProjectManagementInfo;
  15. import com.kingdee.shr.base.syssetting.context.SHRContext;
  16. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  17. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  18. import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
  19. import com.kingdee.shr.common.util.StringUtils;
  20. import java.util.HashMap;
  21. import java.util.Map;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import org.slf4j.Logger;
  25. import org.slf4j.LoggerFactory;
  26. import org.springframework.ui.ModelMap;
  27. public class ProjectChangeEditHandler extends EditHandler
  28. {
  29. private static final Logger logger = LoggerFactory.getLogger(ProjectChangeEditHandler.class);
  30. protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model)
  31. throws SHRWebException
  32. {
  33. try
  34. {
  35. super.verifyModel(request, response, model);
  36. if ((model instanceof ProjectChangeInfo))
  37. {
  38. ProjectChangeInfo info = (ProjectChangeInfo)model;
  39. ObjectUuidPK objectUuidPK = new ObjectUuidPK(info.getChangeProject().getId());
  40. IProjectManagement iProjectManagement = ProjectManagementFactory.getRemoteInstance();
  41. ProjectManagementInfo projectManagementInfo = iProjectManagement.getProjectManagementInfo(objectUuidPK);
  42. if(info.getId() != null ) {
  43. if(projectManagementInfo.isBeingChanged() && !projectManagementInfo.getSourceBillId().equals(info.getId().toString())){
  44. throw new ShrWebBizException("保存失败,项目正在变更,不能二次变更!");
  45. }
  46. }else {
  47. if (projectManagementInfo.isBeingChanged()) {
  48. throw new ShrWebBizException("保存失败,项目正在变更,不能二次变更!");
  49. }
  50. }
  51. }
  52. } catch (EASBizException e) {
  53. e.printStackTrace();
  54. } catch (BOSException e) {
  55. e.printStackTrace();
  56. }
  57. }
  58. public String submitAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  59. throws SHRWebException
  60. {
  61. Context ctx = SHRContext.getInstance().getContext();
  62. String billId = request.getParameter("billId");
  63. Map result = new HashMap();
  64. if (!StringUtils.isEmpty(billId)) {
  65. try {
  66. IProjectChange iProjectChange = ProjectChangeFactory.getLocalInstance(ctx);
  67. ProjectChangeInfo projectChangeInfo = iProjectChange.getProjectChangeInfo("where id = '" + billId + "'");
  68. ProjectManagementInfo changeProjectInfo = projectChangeInfo.getChangeProject();
  69. changeProjectInfo.setBeingChanged(true);
  70. changeProjectInfo.setSourceBillId(projectChangeInfo.getId().toString());
  71. IProjectManagement iProjectManagement = ProjectManagementFactory.getLocalInstance(ctx);
  72. SelectorItemCollection sic = new SelectorItemCollection();
  73. sic.add(new SelectorItemInfo("beingChanged"));
  74. sic.add(new SelectorItemInfo("sourceBillId"));
  75. iProjectManagement.updatePartial(changeProjectInfo, sic);
  76. } catch (Exception var9) {
  77. logger.error(var9.getMessage(), var9);
  78. throw new ShrWebBizException("项目失败!", var9);
  79. }
  80. }
  81. return super.submitAction(request, response, modelMap);
  82. }
  83. // public void auditPorjectAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap)
  84. // throws SHRWebException, BOSException, EASBizException
  85. // {
  86. // Context ctx = SHRContext.getInstance().getContext();
  87. // String billId = request.getParameter("billId");
  88. // Map result = new HashMap();
  89. // if (!StringUtils.isEmpty(billId))
  90. // try {
  91. // IProjectChange iProjectChange = ProjectChangeFactory.getLocalInstance(ctx);
  92. // ProjectChangeInfo projectChangeInfo = iProjectChange.getProjectChangeInfo("where id = '" + billId + "'");
  93. //
  94. // BigDecimal chaManDays = projectChangeInfo.getChaManDays();
  95. // BigDecimal oriManDays = projectChangeInfo.getOriManDays();
  96. // BigDecimal changedManDays = chaManDays.subtract(oriManDays);
  97. //
  98. // ProjectManagementInfo changeProject = projectChangeInfo.getChangeProject();
  99. // changeProject.setChangedManDays(changedManDays);
  100. // System.out.print("变更人天值赋值成功" + changedManDays);
  101. // changeProject.setBeingChanged(false);
  102. // System.out.print("是否变更中值为false");
  103. //
  104. // BigDecimal oriManDays2 = projectChangeInfo.getOriManDays();
  105. // System.out.print("项目总人天的值获取成功" + oriManDays2);
  106. // BigDecimal add = oriManDays2.add(changedManDays);
  107. // System.out.print("变更人天的值累加成功" + add);
  108. //
  109. // changeProject.setTotalPersonDays(add);
  110. // System.out.print("把累加后的值赋值给项目总人天成功");
  111. //
  112. // IProjectManagement iProjectManagement = ProjectManagementFactory.getLocalInstance(ctx);
  113. // SelectorItemCollection sic = new SelectorItemCollection();
  114. //
  115. // sic.add(new SelectorItemInfo("changedManDays"));
  116. // sic.add(new SelectorItemInfo("beingChanged"));
  117. // System.out.print("变更人天更新成功");
  118. //
  119. // sic.add(new SelectorItemInfo("totalPersonDays"));
  120. // System.out.print("项目总人天更新成功成功");
  121. //
  122. // iProjectManagement.updatePartial(changeProject, sic);
  123. // } catch (Exception var9) {
  124. // logger.error(var9.getMessage(), var9);
  125. // throw new ShrWebBizException("审核项目失败!", var9);
  126. // }
  127. // else {
  128. // result.put("errorMsg", "数据异常,billId为空!");
  129. // }
  130. //
  131. // JSONUtils.writeJson(response, result);
  132. // }
  133. }