|
@@ -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"));
|