|
@@ -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;
|
|
|
|
|
+ /* */ }
|
|
|
|
|
+ /* */
|
|
|
|
|
+}
|