MemberManagementListHandler.java 4.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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.FilterInfo;
  6. import com.kingdee.bos.metadata.entity.FilterItemCollection;
  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.hr.project.*;
  12. import com.kingdee.shr.base.syssetting.context.SHRContext;
  13. import com.kingdee.shr.base.syssetting.exception.SHRWebException;
  14. import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
  15. import com.kingdee.shr.base.syssetting.web.dynamic.model.ListUIViewInfo;
  16. import com.kingdee.shr.base.syssetting.web.dynamic.model.TreeNavigationInfo;
  17. import com.kingdee.shr.base.syssetting.web.dynamic.model.UIViewInfo;
  18. import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
  19. import org.springframework.ui.ModelMap;
  20. import javax.servlet.http.HttpServletRequest;
  21. import javax.servlet.http.HttpServletResponse;
  22. /** 项目成员管理列表
  23. * @BelongsProject: dataImpExp820
  24. * @BelongsPackage: com.kingdee.eas.hr.project.handler
  25. * @Author: lhbj
  26. * @CreateTime: 2024-11-27 18:21
  27. * @Description: TODO
  28. * @Version: 1.0
  29. */
  30. public class MemberManagementListHandler extends ProjectTreeListHandler {
  31. protected String pTypeNumber = "003";
  32. @Override
  33. public String enableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
  34. String billId = this.getBillId(request);
  35. String[] ids = billId.split(",");
  36. Context ctx = SHRContext.getInstance().getContext();
  37. boolean isHandleEnable=false;
  38. try {
  39. IMemberManagement iManagement = MemberManagementFactory.getLocalInstance(ctx);
  40. IProjectRole iProjectRole = ProjectRoleFactory.getLocalInstance(ctx);
  41. IProjectType iPType = ProjectTypeFactory.getLocalInstance(ctx);
  42. for (String str : ids) {
  43. MemberManagementInfo management = iManagement.getMemberManagementInfo(new ObjectUuidPK(str));
  44. ProjectRoleInfo projectRole = management.getProjectRole();
  45. PersonInfo personInfo = management.getEmployee();
  46. ProjectTypeInfo pType = management.getPtype();
  47. ProjectManagementInfo projectManagement = management.getProjectManagement();
  48. projectRole =iProjectRole.getProjectRoleInfo(new ObjectUuidPK(projectRole.getId()));
  49. pType = iPType.getProjectTypeInfo(new ObjectUuidPK(pType.getId()));
  50. FilterInfo filterInfo = new FilterInfo();
  51. filterInfo.getFilterItems().add(new FilterItemInfo("projectManagement.id", projectManagement.getId().toString(), CompareType.EQUALS));
  52. filterInfo.getFilterItems().add(new FilterItemInfo("projectRole.id", projectRole.getId().toString(), CompareType.EQUALS));
  53. filterInfo.getFilterItems().add(new FilterItemInfo("state", "1", CompareType.EQUALS));
  54. FilterInfo filterInfo2 = new FilterInfo();
  55. filterInfo2.getFilterItems().add(new FilterItemInfo("ptype.id", pType.getId().toString(), CompareType.EQUALS));
  56. FilterInfo filterInfo3 = new FilterInfo();
  57. filterInfo3.getFilterItems().add(new FilterItemInfo("ptype.number", pTypeNumber, CompareType.NOTEQUALS));
  58. filterInfo2.mergeFilter(filterInfo3, "and");
  59. filterInfo.mergeFilter(filterInfo2, "and");
  60. System.out.println(filterInfo.toSql());
  61. if (iManagement.exists(filterInfo)) {
  62. isHandleEnable=false;
  63. throw new ShrWebBizException("已经存在项目类别:" + pType.getName() + ",项目角色:" + projectRole.getName() + "的成员了,请先将该员工禁用后再启用。");
  64. }else{
  65. isHandleEnable=true;
  66. }
  67. }
  68. } catch (BOSException e) {
  69. throw new RuntimeException(e);
  70. } catch (EASBizException e) {
  71. throw new RuntimeException(e);
  72. }
  73. if(isHandleEnable){
  74. super.handleEnable(request, "enable");
  75. }
  76. return null;
  77. }
  78. @Override
  79. protected FilterInfo getDefaultFilter(HttpServletRequest request, HttpServletResponse response) throws SHRWebException {
  80. String userAdminOrgRangeSql = this.assembleTreeDataUserAdminOrgRangeSQL(request);
  81. FilterInfo ifo = new FilterInfo();
  82. ifo.getFilterItems().add(new FilterItemInfo("projectManagement.adminOrg.id in("+userAdminOrgRangeSql+")"));
  83. ifo.getFilterItems().add(new FilterItemInfo("projectManagement.projectState in('1','2')"));
  84. return ifo;
  85. }
  86. }