Procházet zdrojové kódy

修改增加校验

qingyang_zhang před 5 měsíci
rodič
revize
8061f0aaa1

+ 35 - 4
websrc/com/kingdee/eas/hr/project/handler/MemberManagementEditHandler.java

@@ -1,12 +1,17 @@
 package com.kingdee.eas.hr.project.handler;
 
 import com.google.common.collect.Maps;
+import com.kingdee.bos.BOSException;
 import com.kingdee.bos.Context;
 import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
 
-import com.kingdee.eas.hr.project.MemberManagementInfo;
-import com.kingdee.eas.hr.project.ProjectManagementFactory;
-import com.kingdee.eas.hr.project.ProjectManagementInfo;
+import com.kingdee.bos.metadata.entity.FilterInfo;
+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.framework.CoreBaseInfo;
+import com.kingdee.eas.hr.project.*;
 import com.kingdee.shr.base.syssetting.context.SHRContext;
 import com.kingdee.shr.base.syssetting.exception.SHRWebException;
 
@@ -30,6 +35,32 @@ import java.util.Map;
  */
 public class MemberManagementEditHandler extends EditHandler {
 
+    protected String pTypeNumber="003";
+    protected void verifyModel(HttpServletRequest request, HttpServletResponse response, CoreBaseInfo model) throws SHRWebException {
+        Context ctx = SHRContext.getInstance().getContext();
+        MemberManagementInfo management = (MemberManagementInfo) model;
+        ProjectRoleInfo projectRole = management.getProjectRole();
+        PersonInfo personInfo = management.getEmployee();
+        ProjectTypeInfo pType = management.getPtype();
+        ProjectManagementInfo projectManagement = management.getProjectManagement();
+
+        pType.getId();
+
+        FilterInfo filterInfo = new FilterInfo();
+        filterInfo.getFilterItems().add(new FilterItemInfo("projectManagement.id", projectManagement.getId().toString(), CompareType.EQUALS));
+        filterInfo.getFilterItems().add(new FilterItemInfo("ptype.id", projectRole.getId().toString(), CompareType.EQUALS));
+        filterInfo.getFilterItems().add(new FilterItemInfo("projectRole.id", pType.getId().toString(), CompareType.EQUALS));
+        filterInfo.getFilterItems().add(new FilterItemInfo("ptype.number", pTypeNumber, CompareType.NOTEQUALS));
+        try {
+            if(MemberManagementFactory.getLocalInstance(ctx).exists(filterInfo)){
+                throw new SHRWebException("已经存在项目类别:"+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);
@@ -40,7 +71,7 @@ public class MemberManagementEditHandler extends EditHandler {
             String prijectId = this.getProjectId(request);
             if(StringUtils.isNotBlank(prijectId)) {
                 Map<String,String> projectMap = Maps.newHashMap();
-                ProjectManagementInfo p= ProjectManagementFactory.getLocalInstance(ctx).getProjectManagementInfo(new ObjectUuidPK(prijectId));
+                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"));