Jelajahi Sumber

修改成员校验

qingyang_zhang 5 bulan lalu
induk
melakukan
79c526d358

+ 36 - 22
websrc/com/kingdee/eas/hr/project/handler/MemberManagementEditHandler.java

@@ -11,22 +11,29 @@ import com.kingdee.bos.metadata.query.util.CompareType;
 import com.kingdee.eas.basedata.person.PersonInfo;
 import com.kingdee.eas.common.EASBizException;
 import com.kingdee.eas.framework.CoreBaseInfo;
+import com.kingdee.eas.framework.ICoreBase;
 import com.kingdee.eas.hr.project.*;
 import com.kingdee.shr.base.syssetting.context.SHRContext;
 import com.kingdee.shr.base.syssetting.exception.SHRWebException;
 
 import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
+import com.kingdee.shr.base.syssetting.ml.SHRWebResource;
 import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
 
+import com.kingdee.shr.base.syssetting.web.plugin.PluginUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.ui.ModelMap;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.text.MessageFormat;
 import java.util.Map;
 
-/** 项目成员管理表单
+/**
+ * 项目成员管理表单
+ *
  * @BelongsProject: dataImpExp820
  * @BelongsPackage: com.kingdee.eas.hr.project.handler
  * @Author: lhbj
@@ -36,7 +43,10 @@ import java.util.Map;
  */
 public class MemberManagementEditHandler extends EditHandler {
 
-    protected String pTypeNumber="003";
+
+
+    protected String pTypeNumber = "003";
+
     protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
         Context ctx = SHRContext.getInstance().getContext();
         MemberManagementInfo management = (MemberManagementInfo) model;
@@ -47,53 +57,57 @@ public class MemberManagementEditHandler extends EditHandler {
         ProjectManagementInfo projectManagement = management.getProjectManagement();
 
         try {
-            projectRole= ProjectRoleFactory.getLocalInstance(ctx).getProjectRoleInfo(new ObjectUuidPK(projectRole.getId()));
-            pType= ProjectTypeFactory.getLocalInstance(ctx).getProjectTypeInfo(new ObjectUuidPK(pType.getId()));
+            projectRole = ProjectRoleFactory.getLocalInstance(ctx).getProjectRoleInfo(new ObjectUuidPK(projectRole.getId()));
+            pType = ProjectTypeFactory.getLocalInstance(ctx).getProjectTypeInfo(new ObjectUuidPK(pType.getId()));
             FilterInfo filterInfo = new FilterInfo();
             filterInfo.getFilterItems().add(new FilterItemInfo("projectManagement.id", projectManagement.getId().toString(), CompareType.EQUALS));
             filterInfo.getFilterItems().add(new FilterItemInfo("projectRole.id", projectRole.getId().toString(), CompareType.EQUALS));
+            filterInfo.getFilterItems().add(new FilterItemInfo("state", "1", CompareType.EQUALS));
 
             FilterInfo filterInfo2 = new FilterInfo();
             filterInfo2.getFilterItems().add(new FilterItemInfo("ptype.id", pType.getId().toString(), CompareType.EQUALS));
             FilterInfo filterInfo3 = new FilterInfo();
             filterInfo3.getFilterItems().add(new FilterItemInfo("ptype.number", pTypeNumber, CompareType.NOTEQUALS));
 
-            filterInfo2.mergeFilter(filterInfo3,"or");
-            filterInfo.mergeFilter(filterInfo2,"and");
-
-            if(MemberManagementFactory.getLocalInstance(ctx).exists(filterInfo)){
-                throw new ShrWebBizException("已经存在项目类别:"+pType.getName()+",项目角色:"+projectRole.getName()+"的成员了");
+            filterInfo2.mergeFilter(filterInfo3, "and");
+            filterInfo.mergeFilter(filterInfo2, "and");
+            System.out.println(filterInfo.toSql());
+            if (MemberManagementFactory.getLocalInstance(ctx).exists(filterInfo)) {
+                throw new ShrWebBizException("已经存在项目类别:" + pType.getName() + ",项目角色:" + projectRole.getName() + "的成员了");
             }
+
         } catch (BOSException e) {
             throw new RuntimeException(e);
         } catch (EASBizException e) {
             throw new RuntimeException(e);
         }
     }
+
     @Override
     protected void setInitData(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Map<String, Object> initData) throws SHRWebException {
         super.setInitData(request, response, modelMap, initData);
         MemberManagementInfo management = (MemberManagementInfo) modelMap.getAttribute("model");
-        initData.put("MemberState",management.getState().getValue());
+        initData.put("MemberState", management.getState().getValue());
         Context ctx = SHRContext.getInstance().getContext();
         try {
             String prijectId = this.getProjectId(request);
-            if(StringUtils.isNotBlank(prijectId)) {
-                Map<String,String> projectMap = Maps.newHashMap();
+            if (StringUtils.isNotBlank(prijectId)) {
+                Map<String, String> projectMap = Maps.newHashMap();
                 ProjectManagementInfo p = ProjectManagementFactory.getLocalInstance(ctx).getProjectManagementInfo(new ObjectUuidPK(prijectId));
-                projectMap.put("id",p.getId().toString());
-                projectMap.put("number",p.getNumber());
-                projectMap.put("projectCode",p.getString("projectCode"));
-                projectMap.put("projectName",p.getString("projectName"));
-                projectMap.put("projectLevel",p.getString("projectLevel"));
-                projectMap.put("notes",p.getString("notes"));
-                projectMap.put("projectState",p.getString("projectState"));
-                initData.put("projectManagement",projectMap);
+                projectMap.put("id", p.getId().toString());
+                projectMap.put("number", p.getNumber());
+                projectMap.put("projectCode", p.getString("projectCode"));
+                projectMap.put("projectName", p.getString("projectName"));
+                projectMap.put("projectLevel", p.getString("projectLevel"));
+                projectMap.put("notes", p.getString("notes"));
+                projectMap.put("projectState", p.getString("projectState"));
+                initData.put("projectManagement", projectMap);
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
+
     protected String getProjectId(HttpServletRequest request) throws SHRWebException {
         String billId = request.getParameter("prijectID");
         if (StringUtils.isEmpty(billId)) {
@@ -101,7 +115,7 @@ public class MemberManagementEditHandler extends EditHandler {
         }
 
         if (StringUtils.isEmpty(billId)) {
-            billId = (String)request.getAttribute("prijectId");
+            billId = (String) request.getAttribute("prijectId");
         }
         return billId;
 

+ 58 - 0
websrc/com/kingdee/eas/hr/project/handler/MemberManagementListHandler.java

@@ -1,9 +1,18 @@
 package com.kingdee.eas.hr.project.handler;
 
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 import com.kingdee.bos.metadata.entity.FilterInfo;
 import com.kingdee.bos.metadata.entity.FilterItemCollection;
 import com.kingdee.bos.metadata.entity.FilterItemInfo;
+import com.kingdee.bos.metadata.query.util.CompareType;
+import com.kingdee.eas.basedata.person.PersonInfo;
+import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.hr.project.*;
+import com.kingdee.shr.base.syssetting.context.SHRContext;
 import com.kingdee.shr.base.syssetting.exception.SHRWebException;
+import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
 import com.kingdee.shr.base.syssetting.web.dynamic.model.ListUIViewInfo;
 import com.kingdee.shr.base.syssetting.web.dynamic.model.TreeNavigationInfo;
 import com.kingdee.shr.base.syssetting.web.dynamic.model.UIViewInfo;
@@ -21,7 +30,56 @@ import javax.servlet.http.HttpServletResponse;
  * @Version: 1.0
  */
 public class MemberManagementListHandler extends ProjectTreeListHandler {
+    protected String pTypeNumber = "003";
+    @Override
+    public String enableAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) throws SHRWebException {
+        String billId = this.getBillId(request);
+        String[] ids = billId.split(",");
+        Context ctx = SHRContext.getInstance().getContext();
+        boolean isHandleEnable=false;
+        try {
+
+            IMemberManagement iManagement = MemberManagementFactory.getLocalInstance(ctx);
+            IProjectRole iProjectRole = ProjectRoleFactory.getLocalInstance(ctx);
+            IProjectType iPType = ProjectTypeFactory.getLocalInstance(ctx);
+            for (String str : ids) {
+                MemberManagementInfo management = iManagement.getMemberManagementInfo(new ObjectUuidPK(str));
+                ProjectRoleInfo projectRole = management.getProjectRole();
+                PersonInfo personInfo = management.getEmployee();
+                ProjectTypeInfo pType = management.getPtype();
+                ProjectManagementInfo projectManagement = management.getProjectManagement();
+                projectRole =iProjectRole.getProjectRoleInfo(new ObjectUuidPK(projectRole.getId()));
+                pType = iPType.getProjectTypeInfo(new ObjectUuidPK(pType.getId()));
+                FilterInfo filterInfo = new FilterInfo();
+                filterInfo.getFilterItems().add(new FilterItemInfo("projectManagement.id", projectManagement.getId().toString(), CompareType.EQUALS));
+                filterInfo.getFilterItems().add(new FilterItemInfo("projectRole.id", projectRole.getId().toString(), CompareType.EQUALS));
+                filterInfo.getFilterItems().add(new FilterItemInfo("state", "1", CompareType.EQUALS));
 
+                FilterInfo filterInfo2 = new FilterInfo();
+                filterInfo2.getFilterItems().add(new FilterItemInfo("ptype.id", pType.getId().toString(), CompareType.EQUALS));
+                FilterInfo filterInfo3 = new FilterInfo();
+                filterInfo3.getFilterItems().add(new FilterItemInfo("ptype.number", pTypeNumber, CompareType.NOTEQUALS));
+
+                filterInfo2.mergeFilter(filterInfo3, "and");
+                filterInfo.mergeFilter(filterInfo2, "and");
+                System.out.println(filterInfo.toSql());
+                if (iManagement.exists(filterInfo)) {
+                    isHandleEnable=false;
+                    throw new ShrWebBizException("已经存在项目类别:" + pType.getName() + ",项目角色:" + projectRole.getName() + "的成员了,请先将该员工禁用后再启用。");
+                }else{
+                    isHandleEnable=true;
+                }
+            }
+        } catch (BOSException e) {
+            throw new RuntimeException(e);
+        } catch (EASBizException e) {
+            throw new RuntimeException(e);
+        }
+        if(isHandleEnable){
+            super.handleEnable(request, "enable");
+        }
+        return null;
+    }
     @Override
     protected FilterInfo getDefaultFilter(HttpServletRequest request, HttpServletResponse response) throws SHRWebException {
         String userAdminOrgRangeSql = this.assembleTreeDataUserAdminOrgRangeSQL(request);