yuanzhi_kuang 1 år sedan
incheckning
9b28a1b752

+ 233 - 0
web/ext/attendmanage_custom/com/kingdee/shr/ext/ats/web/handler/AtteExeMsgStatusListHandler.java

@@ -0,0 +1,233 @@
+package com.kingdee.shr.ext.ats.web.handler;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+
+import com.kingdee.bos.BOSException;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.dao.AbstractObjectCollection;
+import com.kingdee.bos.metadata.entity.EntityViewInfo;
+import com.kingdee.bos.metadata.entity.FilterInfo;
+import com.kingdee.bos.metadata.entity.FilterItemInfo;
+import com.kingdee.bos.metadata.entity.SelectorItemCollection;
+import com.kingdee.bos.metadata.entity.SelectorItemInfo;
+import com.kingdee.bos.metadata.query.util.CompareType;
+import com.kingdee.eas.base.permission.UserCollection;
+import com.kingdee.eas.base.permission.UserFactory;
+import com.kingdee.eas.base.permission.UserInfo;
+import com.kingdee.eas.basedata.org.HROrgUnitCollection;
+import com.kingdee.eas.basedata.org.HROrgUnitFactory;
+import com.kingdee.eas.basedata.org.OrgUnitCollection;
+import com.kingdee.eas.basedata.org.OrgUnitInfo;
+import com.kingdee.shr.base.syssetting.app.filter.AdvanceFilterService;
+import com.kingdee.shr.base.syssetting.context.SHRContext;
+import com.kingdee.shr.base.syssetting.exception.SHRWebException;
+import com.kingdee.shr.base.syssetting.json.GridDataEntity;
+import com.kingdee.shr.base.syssetting.web.handler.ListHandler;
+import com.kingdee.shr.base.syssetting.web.json.JSONUtils;
+import com.kingdee.util.StringUtils;
+
+
+/**
+ * 考勤异常消息状态表
+ * Attendance Exception Message Status Table
+ * @author kd_dev
+ * 20240808
+ */
+public class AtteExeMsgStatusListHandler extends ListHandler {
+	private static Logger logger = Logger.getLogger(AtteExeMsgStatusListHandler.class);
+	
+
+	protected FilterInfo getDefaultFilter(HttpServletRequest request, HttpServletResponse response)
+			throws SHRWebException {
+		String custom_params = request.getParameter("custom_params");
+		Map<?, ?> data = null;
+		Context ctx = SHRContext.getInstance().getContext();
+		if (!StringUtils.isEmpty(custom_params)) {
+			data = JSONUtils.convertJsonToObject(ctx, custom_params);
+		}
+
+		String uipk = null;
+		if (null != data) {
+			uipk = (String) data.get("uipk");
+		}
+
+//		UserInfo userinfo = (UserInfo) ctx.get("UserInfo");
+//		String userid = userinfo.getId().toString();
+		FilterInfo filterInfo = this.getFilter(uipk);
+ 
+		return filterInfo;
+	}
+
+	private FilterInfo getFilter(String uipk) throws SHRWebException {
+		/*
+		 * bizType 业务类型
+		 *	WVORKFLOWW      工作流          0
+		 *	FORWVARN        预警            10
+		 *	ONLINE          即时消息、      20
+		 *	OFFICE          办公消息        30
+		 *	URGENT          催办            40
+		 *	ASYNCHRONI..    后台事务消息    50
+		 *	XITONGOFFICE    协同办公        60
+		 *	HR              人力资源        70
+		 */
+		if (null == uipk) {
+			return null;
+		} else {
+			FilterInfo filterInfo = new FilterInfo();
+			if (uipk.equals("com.kingdee.eas.base.message.AtteExeMsgStatusList.list")) {
+//				filterInfo.getFilterItems().add(
+//						new FilterItemInfo("businessType.id", "G/LIhfIgTJ+u+l7UzHjmPU9YteI=", CompareType.EQUALS));
+			} 
+			return filterInfo;
+		}
+	}
+
+	protected void afterGetListData(HttpServletRequest request, HttpServletResponse response,
+			GridDataEntity gridDataEntity) throws SHRWebException {
+		super.afterGetListData(request, response, gridDataEntity);
+		String custom_params = request.getParameter("custom_params");
+		Map<?, ?> data = null;
+		if (!StringUtils.isEmpty(custom_params)) {
+			data = JSONUtils.convertJsonToObject(this.getContext(), custom_params);
+		}
+
+		String uipk = null;
+		if (null != data) {
+			uipk = (String) data.get("uipk");
+		}
+
+		Context ctx = SHRContext.getInstance().getContext();
+	 
+//		PermissionAssignmentRoleCollection permissionAssignmentRoleCollection = this.getReportCollectionByRole(ctx,
+//				userId, filterInfo);
+		List<Map<String, Object>> list = gridDataEntity.getRows();
+
+		//员工ids
+		Set<String> userIds = new HashSet<String>();
+		//组织ids
+		Set<String> orgIds = new HashSet<String>();
+		list.forEach(obj->{
+			userIds.add(StringUtils.cnulls(obj.get("senderId")));
+			userIds.add(StringUtils.cnulls(obj.get("receiver")));
+			orgIds.add(StringUtils.cnulls(obj.get("orgID")));
+		});
+		//职员查询
+		EntityViewInfo viewInfo = new EntityViewInfo();
+		FilterInfo filter = new FilterInfo();
+		filter.getFilterItems().add(new FilterItemInfo("id",  userIds, CompareType.INCLUDE));
+		viewInfo.setFilter(filter);
+		SelectorItemCollection selector = new SelectorItemCollection();
+		selector.add(new SelectorItemInfo("id"));
+		selector.add(new SelectorItemInfo("name"));
+		viewInfo.setSelector(selector);
+		UserCollection userCol;
+		try {
+			userCol = UserFactory.getLocalInstance(ctx).getUserCollection(viewInfo);
+			
+			//组织查询
+			FilterInfo orgFilter = new FilterInfo();
+			orgFilter.getFilterItems().add(new FilterItemInfo("id", orgIds, CompareType.INCLUDE));
+			viewInfo.setFilter(orgFilter);
+			selector = new SelectorItemCollection();
+			selector.add(new SelectorItemInfo("id"));
+			selector.add(new SelectorItemInfo("name"));
+			viewInfo.setSelector(selector);
+			HROrgUnitCollection orgCol = HROrgUnitFactory.getLocalInstance(ctx).getHROrgUnitCollection(viewInfo);
+			HashMap<String, String> userMap = getNameById(userCol);
+			HashMap<String, String> orgMap = getNameById(orgCol);
+			
+			int j = 0;
+			for (int listSize = list.size(); j < listSize; ++j) {
+				Map<String, Object> valMap = list.get(j);
+				//人员赋值********start
+				//发送者
+				String sendId = StringUtils.cnulls(valMap.get("senderId"));
+				String sendName = "";
+				if(userMap.containsKey(sendId) && !StringUtils.isEmpty(userMap.get(sendId))) {
+					sendName = userMap.get(sendId);
+				}
+				valMap.put("senderName",sendName );
+				//接收者
+				String receiver = StringUtils.cnulls(valMap.get("receiver"));
+				String receiverName = "";
+				if(userMap.containsKey(receiver) && !StringUtils.isEmpty(userMap.get(receiver))) {
+					receiverName = userMap.get(sendId);
+				}
+				valMap.put("receiverName",receiverName );
+				
+				//组织赋值
+				String orgId = StringUtils.cnulls(valMap.get("orgID"));
+				String orgName = "";
+				if(orgMap.containsKey(orgId) && !StringUtils.isEmpty(orgMap.get(orgId))) {
+					orgName = orgMap.get(orgId);
+				}
+				valMap.put("orgName",orgName );
+			}
+			if (logger.isDebugEnabled()) {
+				System.out.println("debugxgxg22:" + list.size());
+			}
+		} catch (BOSException e) {
+			// TODO 自动生成的 catch 块
+			e.printStackTrace();
+		}
+	}
+
+	
+	/**
+	 * 将id转为name
+	 * @param col
+	 * @return
+	 */
+	private HashMap<String,String> getNameById(AbstractObjectCollection col){
+		HashMap<String,String> map = new HashMap<>();
+		Iterator iterator = col.iterator();
+		while(iterator.hasNext()) {
+			if(col instanceof UserCollection) {
+				UserInfo next = (UserInfo)iterator.next();
+				map.put(StringUtils.cnulls(next.getId()), next.getName());
+			}else if(col instanceof OrgUnitCollection) {
+				OrgUnitInfo next = (OrgUnitInfo)iterator.next();
+				map.put(StringUtils.cnulls(next.getId()), next.getName());
+			}
+		}
+		return map;
+	}
+	
+	@Override
+	protected FilterInfo getCustomFilter(HttpServletRequest request, HttpServletResponse response)
+			throws SHRWebException {
+		// TODO 自动生成的方法存根
+		return super.getCustomFilter(request, response);
+	}
+	
+	 
+	
+	   protected FilterInfo getFastFilter(HttpServletRequest request) throws SHRWebException {
+	        FilterInfo atsFastFilter = super.getFastFilter(request);
+	        String fastFilterItems = request.getParameter("fastFilterItems");
+	        String fastFilterItem =  request.getParameter("filterItems");
+	        return atsFastFilter;
+	    }
+	   
+	   
+	   protected FilterInfo getAdvanceFilter(HttpServletRequest request) throws SHRWebException {
+		   /*  795 */       String advanceFilterItems = request.getParameter("advancedFilter");
+		   /*  796 */       FilterInfo filter = null;
+		   /*  797 */       if (!StringUtils.isEmpty(advanceFilterItems)) {
+		   /*  798 */   AdvanceFilterService advanceFilterService = new AdvanceFilterService(SHRContext.getInstance().getContext());
+		   /*  799 */   filter = advanceFilterService.parse(advanceFilterItems);
+		   /*      */       }
+		   /*  801 */       return filter;
+		   /*      */    }
+		   /*      */ 
+}