package com.cabletech.business.base.action; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import com.cabletech.baseinfo.business.Service.BaseInfoProvider; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.resource.model.ResourceInfo; import com.cabletech.business.resource.service.ResourceService; import com.cabletech.common.base.BaseAction; import com.cabletech.common.base.SysConstant; import com.cabletech.common.util.Page; import com.cabletech.common.util.ServiceException; /** * 通用访问模块 * * @author Administrator * */ @Namespace("/") @Results({ @Result(name = "stafftree", location = "/common/orgperson_select.jsp"), @Result(name = "regiontree", location = "/common/region_select.jsp"), @Result(name = "orgtree", location = "/common/org_select.jsp"), @Result(name = "patrolgrouptree", location = "/common/orgpatrolgroup_select.jsp"), @Result(name = "getresource", location = "/common/resource_select.jsp") }) @Action("commonaccess") public class CommonAccess extends BaseAction<String, String> { /** * */ private static final long serialVersionUID = 1L; @Resource(name = "baseInfoProvider") private BaseInfoProvider baseInfoProvider; /* * 资源信息服务 */ @Resource(name = "resourceServiceImpl") private ResourceService resourceService; /** * 资源信息实体 */ private ResourceInfo rsparameter = new ResourceInfo(); /** * 获取字典数据 */ public void getDic() { String columntype = this.getRequest().getParameter("columntype");// 字典类型 convertObjToJson(baseInfoProvider.getDicList(columntype)); } /** * 获取人员树Action * * @return */ public String getstaff() { List<Map<String, Object>> list = getOrgDeptUserList(); String jsonstr = super.convertObjToJsonStr(list); checkstyle(); logger.info("人员树数据:" + jsonstr); super.getRequest().getSession().setAttribute("stafftree", jsonstr); return "stafftree"; } /** * 获取用户树 * * @return */ public String getuser() { List<Map<String, Object>> list = getOrgDeptUserList(); if (null != list && list.size() > 0) { // 有用户人员 List<Map<String, Object>> newlist = new ArrayList<Map<String, Object>>(); for (int i = 0, len = list.size(); i < len; i++) { if ("STAFF".equals(list.get(i).get("OBJTYPE"))) { if (null != list.get(i).get("USERID")) { newlist.add(list.get(i)); } } else { newlist.add(list.get(i)); } } String jsonstr = super.convertObjToJsonStr(newlist); checkstyle(); logger.info("用户树数据:" + jsonstr); super.getRequest().getSession().setAttribute("stafftree", jsonstr); } return "stafftree"; } /** * 获取巡检组Action * * @return */ public String getpatrolgroup() { List<Map<String, Object>> list = getOrgPatrolgroupList(); String jsonstr = super.convertObjToJsonStr(list); logger.info("巡检组树数据:" + jsonstr); super.getRequest().getSession() .setAttribute("patrolgrouptree", jsonstr); return "patrolgrouptree"; } /** * 获取区域Action * * @return */ public String getregion() { List<Map<String, Object>> list = getRegionList(); String jsonstr = super.convertObjToJsonStr(list); logger.info("区域树数据:" + jsonstr); super.getRequest().getSession().setAttribute("regiontree", jsonstr); return "regiontree"; } /** * 获取组织选择页面Action * * @return */ public String getorg() { List<Map<String, Object>> list = getOrgList(); String jsonstr = super.convertObjToJsonStr(list); logger.info("组织树数据:" + jsonstr); super.getRequest().getSession().setAttribute("orgtree", jsonstr); return "orgtree"; } /** * 获取所在机构及下属机构 objtype='ORG' 只显示组织 orgtype 1、2,1为移动,2为代维,不传为所有 objtype='ORG' * orgtype * * @throws ServiceException */ private List<Map<String, Object>> getOrgDeptUserList() { String lv = this.getRequest().getParameter("lv");// 级别 UserInfo user = this.getUser(); String orgtype = this.getRequest().getParameter("orgtype"); String orgid = this.getRequest().getParameter("orgid"); String regionid = this.getRequest().getParameter("regionid"); if (StringUtils.isBlank(orgtype)) { regionid = user.getRegionId(); } if (StringUtils.isBlank(orgtype)) { if (user.isContractor()) { orgtype = user.getOrgType(); orgid = user.getOrgId(); } } if (!StringUtils.isNotBlank(lv)) { lv = "3"; } List<Map<String, Object>> orgdeptlist = baseInfoProvider.getUserList( orgid, regionid, "", orgtype, lv); return orgdeptlist; } /** * 获取巡检组List * * @return */ private List<Map<String, Object>> getOrgPatrolgroupList() { UserInfo user = this.getUser(); String orgid = this.getRequest().getParameter("orgid"); String regionid = this.getRequest().getParameter("regionid"); if (user.isContractor()) { orgid = user.getOrgId(); } if (StringUtils.isBlank(regionid)) { regionid = user.getRegionId(); } String lv = super.getRequest().getParameter("lv");// 级别 if (!StringUtils.isNotBlank(lv)) { lv = "3"; } List<Map<String, Object>> patrolgrouplist = baseInfoProvider .getPatrolmanList(orgid, regionid, "2", lv); return patrolgrouplist; } /** * 获取区域List * * @return */ private List<Map<String, Object>> getRegionList() { UserInfo user = this.getUser(); String lv = this.getRequest().getParameter("lv");// 级别 if (!StringUtils.isNotBlank(lv)) { lv = ""; } List<Map<String, Object>> regiongrouplist = baseInfoProvider .regionIteration(user.getRegionId(), lv); return regiongrouplist; } /** * 获取组织LIST * * @return */ private List<Map<String, Object>> getOrgList() { UserInfo user = this.getUser(); List<Map<String, Object>> orglist = null; String orgtype = this.getRequest().getParameter("orgtype");// 组织类型 String orgid = this.getRequest().getParameter("orgid"); String regionid = this.getRequest().getParameter("regionid"); if (StringUtils.isBlank(orgtype)) { if (user.isContractor()) { orgtype = user.getOrgType(); orgid = user.getOrgId(); } } else { if (user.isContractor()) { orgtype = user.getOrgType(); orgid = user.getOrgId(); } } if (StringUtils.isBlank(regionid)) { regionid = user.getRegionId(); } orglist = baseInfoProvider.getUserList(orgid, regionid, "ORG", orgtype, "1"); return orglist; } /** * 选择树模式 */ private void checkstyle() { String flag = this.getRequest().getParameter("flag");// 级别 Map<String, Object> flagMap = new HashMap<String, Object>(); if (StringUtils.isNotBlank(flag)) { if ("radio".equals(flag)) { flagMap.put("enable", true); flagMap.put("chkStyle", "radio"); flagMap.put("radioType", "all"); } } else { flagMap.put("enable", true); } this.getRequest().getSession() .setAttribute("checkstyle", convertObjToJsonStr(flagMap)); } /** * 转到资源选择界面 * * @return */ public String getresourceinfo() { // 是否允许多选 String multi = this.getRequest().getParameter("multi"); if (StringUtils.isNotBlank(multi)) { if ("true".equals(multi)) { multi = "true"; } else { multi = "false"; } } else { multi = "false"; } String businessType = super.getRequest().getParameter("businessType"); Map<String, Object> resourceTypeMap = getResourceTypeMap(businessType); super.getRequest().setAttribute("businessType", businessType); super.getRequest().setAttribute("resourceTypeMap", resourceTypeMap); this.getRequest().setAttribute("orgid", this.getRequest().getParameter("orgid")); this.getRequest().getSession().setAttribute("multi", multi); return "getresource"; } /** * 根据专业类型获取资源类型map * * @param businessType * String * @return Map<String, Object> */ private Map<String, Object> getResourceTypeMap(String businessType) { Map<String, Object> resourceTypeMap = new HashMap<String, Object>(); Map<String, String> map = SysConstant.getResourceTypeMap(); if (SysConstant.DICTIONARY_FORMITEM_BUSINESSTYPE_C31 .equals(businessType)) { resourceTypeMap.put(SysConstant.DB_TABLENAME_RS_BASESTATION, map.get(SysConstant.DB_TABLENAME_RS_BASESTATION)); } if (SysConstant.DICTIONARY_FORMITEM_BUSINESSTYPE_C32 .equals(businessType)) { resourceTypeMap.put(SysConstant.DB_TABLENAME_RS_REPEATER, map.get(SysConstant.DB_TABLENAME_RS_REPEATER)); resourceTypeMap.put(SysConstant.DB_TABLENAME_RS_OVERRIDEINFO, map.get(SysConstant.DB_TABLENAME_RS_OVERRIDEINFO)); } if (SysConstant.DICTIONARY_FORMITEM_BUSINESSTYPE_C33 .equals(businessType)) { resourceTypeMap.put(SysConstant.DB_TABLENAME_RS_OURDOOR_FACILITIES, map.get(SysConstant.DB_TABLENAME_RS_OURDOOR_FACILITIES)); } if (SysConstant.DICTIONARY_FORMITEM_BUSINESSTYPE_C34 .equals(businessType)) { resourceTypeMap.put(SysConstant.DB_TABLENAME_RS_GROUPCUSTOMER, map.get(SysConstant.DB_TABLENAME_RS_GROUPCUSTOMER)); resourceTypeMap.put(SysConstant.DB_TABLENAME_RS_CUSTOMER, map.get(SysConstant.DB_TABLENAME_RS_CUSTOMER)); } return resourceTypeMap; } /** * 获取资源信息 */ public void getresourceinfolist() { String businessType = super.getRequest().getParameter("businessType"); String orgid = super.getRequest().getParameter("orgid"); Map<String, Object> map = (Map<String, Object>) super.getRequest() .getSession().getAttribute("businessTypeMap"); @SuppressWarnings("unchecked") Page<Map<String, Object>> page = this.initPage(); this.rsparameter.setRegionid(this.getUser().getRegionId()); this.rsparameter.setOrgid(orgid); this.rsparameter.setBusinessType(businessType); this.rsparameter.setBusinessTypeMap(map); convertObjToJson(resourceService .getResourceInfo(this.rsparameter, page)); } @Override public String getModel() { return null; } @Override protected void prepareViewModel() throws Exception { } @Override protected void prepareSaveModel() throws Exception { } /** * @return the rsparameter */ public ResourceInfo getRsparameter() { return rsparameter; } /** * @param rsparameter * the rsparameter to set */ public void setRsparameter(ResourceInfo rsparameter) { this.rsparameter = rsparameter; } }