MemberManagementEditHandler.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.kingdee.eas.hr.project.handler;
  2. import com.google.common.collect.Maps;
  3. import com.kingdee.bos.BOSException;
  4. import com.kingdee.bos.Context;
  5. import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
  6. import com.kingdee.bos.metadata.entity.FilterInfo;
  7. import com.kingdee.bos.metadata.entity.FilterItemInfo;
  8. import com.kingdee.bos.metadata.query.util.CompareType;
  9. import com.kingdee.eas.basedata.person.PersonInfo;
  10. import com.kingdee.eas.common.EASBizException;
  11. import com.kingdee.eas.framework.CoreBaseInfo;
  12. import com.kingdee.eas.hr.project.*;
  13. import com.kingdee.shr.base.syssetting.context.SHRContext;
  14. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  15. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  16. import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.springframework.ui.ModelMap;
  19. import javax.servlet.http.HttpServletRequest;
  20. import javax.servlet.http.HttpServletResponse;
  21. import java.text.MessageFormat;
  22. import java.util.Map;
  23. /** 项目成员管理表单
  24. * @BelongsProject: dataImpExp820
  25. * @BelongsPackage: com.kingdee.eas.hr.project.handler
  26. * @Author: lhbj
  27. * @CreateTime: 2024-11-27 18:21
  28. * @Description: TODO
  29. * @Version: 1.0
  30. */
  31. public class MemberManagementEditHandler extends EditHandler {
  32. protected String pTypeNumber="003";
  33. protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
  34. Context ctx = SHRContext.getInstance().getContext();
  35. MemberManagementInfo management = (MemberManagementInfo) model;
  36. ProjectRoleInfo projectRole = management.getProjectRole();
  37. PersonInfo personInfo = management.getEmployee();
  38. ProjectTypeInfo pType = management.getPtype();
  39. ProjectManagementInfo projectManagement = management.getProjectManagement();
  40. try {
  41. projectRole= ProjectRoleFactory.getLocalInstance(ctx).getProjectRoleInfo(new ObjectUuidPK(projectRole.getId()));
  42. pType= ProjectTypeFactory.getLocalInstance(ctx).getProjectTypeInfo(new ObjectUuidPK(pType.getId()));
  43. FilterInfo filterInfo = new FilterInfo();
  44. filterInfo.getFilterItems().add(new FilterItemInfo("projectManagement.id", projectManagement.getId().toString(), CompareType.EQUALS));
  45. filterInfo.getFilterItems().add(new FilterItemInfo("projectRole.id", projectRole.getId().toString(), CompareType.EQUALS));
  46. FilterInfo filterInfo2 = new FilterInfo();
  47. filterInfo2.getFilterItems().add(new FilterItemInfo("ptype.id", pType.getId().toString(), CompareType.EQUALS));
  48. FilterInfo filterInfo3 = new FilterInfo();
  49. filterInfo3.getFilterItems().add(new FilterItemInfo("ptype.number", pTypeNumber, CompareType.NOTEQUALS));
  50. filterInfo2.mergeFilter(filterInfo3,"or");
  51. filterInfo.mergeFilter(filterInfo2,"and");
  52. if(MemberManagementFactory.getLocalInstance(ctx).exists(filterInfo)){
  53. throw new ShrWebBizException("已经存在项目类别:"+pType.getName()+",项目角色:"+projectRole.getName()+"的成员了");
  54. }
  55. } catch (BOSException e) {
  56. throw new RuntimeException(e);
  57. } catch (EASBizException e) {
  58. throw new RuntimeException(e);
  59. }
  60. }
  61. @Override
  62. protected void setInitData(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Map<String, Object> initData) throws SHRWebException {
  63. super.setInitData(request, response, modelMap, initData);
  64. MemberManagementInfo management = (MemberManagementInfo) modelMap.getAttribute("model");
  65. initData.put("MemberState",management.getState().getValue());
  66. Context ctx = SHRContext.getInstance().getContext();
  67. try {
  68. String prijectId = this.getProjectId(request);
  69. if(StringUtils.isNotBlank(prijectId)) {
  70. Map<String,String> projectMap = Maps.newHashMap();
  71. ProjectManagementInfo p = ProjectManagementFactory.getLocalInstance(ctx).getProjectManagementInfo(new ObjectUuidPK(prijectId));
  72. projectMap.put("id",p.getId().toString());
  73. projectMap.put("number",p.getNumber());
  74. projectMap.put("projectCode",p.getString("projectCode"));
  75. projectMap.put("projectName",p.getString("projectName"));
  76. projectMap.put("projectLevel",p.getString("projectLevel"));
  77. projectMap.put("notes",p.getString("notes"));
  78. projectMap.put("projectState",p.getString("projectState"));
  79. initData.put("projectManagement",projectMap);
  80. }
  81. }catch (Exception e){
  82. e.printStackTrace();
  83. }
  84. }
  85. protected String getProjectId(HttpServletRequest request) throws SHRWebException {
  86. String billId = request.getParameter("prijectID");
  87. if (StringUtils.isEmpty(billId)) {
  88. billId = request.getParameter("prijectId");
  89. }
  90. if (StringUtils.isEmpty(billId)) {
  91. billId = (String)request.getAttribute("prijectId");
  92. }
  93. return billId;
  94. }
  95. }