12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- 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;
- import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
- import org.springframework.ui.ModelMap;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /** 项目成员管理列表
- * @BelongsProject: dataImpExp820
- * @BelongsPackage: com.kingdee.eas.hr.project.handler
- * @Author: lhbj
- * @CreateTime: 2024-11-27 18:21
- * @Description: TODO
- * @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);
- FilterInfo ifo = new FilterInfo();
- ifo.getFilterItems().add(new FilterItemInfo("projectManagement.adminOrg.id in("+userAdminOrgRangeSql+")"));
- ifo.getFilterItems().add(new FilterItemInfo("projectManagement.projectState in('1','2')"));
- return ifo;
- }
- }
|