⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlservice.java

📁 电信的网厅的整站代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

				fields[3] = "PURVIEWNAME";
			}

			fields[4] = null;
			fields[5] = "/view/sysmgr/PurviewMgr.jsp";
			fields[6] = "images/p_module.gif";
			fields[7] = "images/p_option.gif";
			fields[8] = "images/p_custom.gif";

			treeDoc doc = new treeDoc();
			rootType root = new rootType();
			root.addopen_action(new SchemaBoolean(true));
			root.adddbl_click(new SchemaBoolean(true));
			root.addtext("ROOT");

			doc.setEncoding("GBK");
			doc.setRootElementName("", "root");
			doc.setSchemaLocation("tree.xsd");

			rootType menu = (rootType) getXmlFromTableByPurv(root, dt, fields, Long
					.toString(parentId), true);

			ret = doc.saveToString(menu);
			// doc.save(ret, menu);
		} catch (Exception ex) {
			FileLogger.getLogger().warn(ex.getMessage(), ex);
			ret = "";
		}

		return ret;
	}

	/**
	 * 获取权限列表信息(所有权限信息)。
	 * 
	 * @return 指定员工的所有有权限的权限信息树(XML字符串);
	 */
	public static String getModuleList(ServletRequest request, ServletResponse response, Map param) {
		String ret = "";
		try {
			long parentId = (param.get("PID") == null) ? 0 : Long.parseLong((String) param
					.get("PID"));

			Purview purv = new Purview();
			DataTable dt = null;
			if (parentId < 0)
				parentId = 0;

			dt = purv.SubList(parentId);

			if (parentId == 0) {
				DataRow dr = dt.newRow();
				dr.setValue("PURVIEWID", new Long(0));
				dr.setValue("UPPURVIEWID", new Long(0));
				dr.setValue("PURVIEWCODE", "");
				dr.setValue("NAME", "模块根节点");
				dr.setValue("STATE", StateEnum.ENABLED);

				dt.getRows().insertAt(dr, 0);
			}

			String[] fields = new String[9];
			fields[0] = "PURVIEWID";
			fields[1] = "UPPURVIEWID";
			fields[2] = "PURVIEWCODE";
			fields[3] = "NAME";
			fields[4] = null;
			fields[5] = "/view/sysmgr/ModuleMgr.jsp";
			fields[6] = "images/p_module.gif";
			fields[7] = "images/p_option.gif";
			fields[8] = "images/p_custom.gif";

			treeDoc doc = new treeDoc();
			rootType root = new rootType();
			root.addopen_action(new SchemaBoolean(true));
			root.adddbl_click(new SchemaBoolean(true));
			root.addtext("ROOT");

			doc.setEncoding("GBK");
			doc.setRootElementName("", "root");
			doc.setSchemaLocation("tree.xsd");

			rootType menu = (rootType) getXmlFromTableByPurv(root, dt, fields, Long
					.toString(parentId), true);

			ret = doc.saveToString(menu);
			// doc.save(ret, menu);
		} catch (Exception ex) {
			FileLogger.getLogger().warn(ex.getMessage(), ex);
			ret = "";
		}

		return ret;
	}

	public static Node getXmlFromTableByPurv(Node menu, DataTable dt, String[] fields,
			String sValue, boolean addparam) {
		Node ret = null;
		try {
			ArrayList list = new ArrayList();
			int index = 0;
			int count = dt.getRows().getCount();
			boolean isPurvModule = true;
			if (dt.getColumn("PURVIEWMODE") == null)
				isPurvModule = false;
			for (int i = 0; i < count; i++) {
				DataRow dr = dt.getRow(index);
				if (isPurvModule && dr.getString("PURVIEWMODE").equals("O")) {
					dt.getRows().remove(dr);
				} else if (dr.getString(fields[1]).equals(sValue)) {
					list.add(dr);
					dt.getRows().remove(dr);
				} else {
					index++;
				}
			}

			boolean hasStateColumn = true;
			if (dt.getColumn("STATE") == null)
				hasStateColumn = false;
			for (int i = 0; i < list.size(); i++) {
				DataRow dr = (DataRow) list.get(i);
				menuType submenu = new menuType();
				try {
					submenu.addid(dr.getString(fields[0]));

					// 设置不同状态的颜色
					String stateColor = "black";
					if (hasStateColumn && !dr.getString("state").equals("E")) {
						stateColor = "red";
					}

					submenu.addtext_color(stateColor);
					// 设置图标
					submenu.addclose_folder(fields[8]);
					submenu.addopen_folder(fields[6]);
					submenu.addleaf_image(fields[7]);

					submenu.addtext(dr.getString(fields[3]));

					String href = "javascript:menuclick('";
					href += fields[5];
					href += "', " + dr.getString(fields[0]);
					href += ", '" + dr.getString(fields[2]);
					href += "', '" + dr.getString(fields[3]);
					href += "', " + Boolean.toString(addparam) + ")";
					submenu.addhref(href);
				} catch (Exception e) {
					FileLogger.getLogger().warn("newMenu:" + e.getMessage(), e);
				}

				Node tmp = getXmlFromTableByPurv(submenu, dt, fields, dr.getString(fields[0]),
						addparam);
				if (tmp != null) {
					if (menu.getClass() == rootType.class)
						((rootType) menu).addmenu((menuType) tmp);
					else
						((menuType) menu).addmenu((menuType) tmp);
				}
			}

			ret = menu;
		} catch (Exception ex) {
			FileLogger.getLogger().warn(ex.getMessage(), ex);
			ret = null;
		}

		return ret;
	}

	/**
	 * 根据权限编号获取权限操作。
	 * 
	 * @return 权限编号对应的权限操作,或者返回空串。
	 */
	public static String getPurviewOperate(ServletRequest request, ServletResponse response,
			Map param) {
		String ret = null;
		try {
			String purvCode = (String) param.get("PURVIEWCODE");
			if (purvCode != null) {
				ClassLoader cl = Thread.currentThread().getContextClassLoader();
				InputStream is = cl.getResourceAsStream("PurvCode.properties");

				Properties dbProps = new Properties();
				dbProps.load(is);

				ret = dbProps.getProperty(purvCode);
			}
		} catch (IOException ex) {
			FileLogger.getLogger().error("没有取得服务器的路径:" + ex.getMessage(), ex);
		}

		return ret;
	}

	/**
	 * 获取组织城市关联信息列表信息
	 * 
	 * @param request
	 * @param response
	 * @param param
	 * @return
	 */
	public static String getOrganiseCity(ServletRequest request, ServletResponse response, Map param) {
		StringBuffer ret = new StringBuffer();
		try {
			int pageSize = Integer.parseInt((String) param.get("pageSize"));
			int currentPage = Integer.parseInt((String) param.get("currentPage"));

			FileLogger log = new FileLogger();
			if (pageSize == -1 || currentPage == -1) {
				log.info("页面参数为空。");
			} else {
				log.info("currentPage:" + String.valueOf(currentPage));
				log.info("pageSize:" + String.valueOf(pageSize));
			}

			DataTable dt = Tf_OrganiseCityRela.getOrgCityList(currentPage, pageSize);
			ret.append("<table>");
			if (dt != null) {
				for (int i = 0; i < dt.getRows().getCount(); i++) {
					DataRow dr = dt.getRow(i);

					ret.append("<tr key='");
					ret.append(dr.getLong("ORGANISECITYRELAID"));
					ret.append("'>");

					// 城市
					ret.append("<TD class='body_td' align='left'>");
					ret.append(dr.getString("CITYNAME"));
					ret.append("</TD>");

					// 区域
					ret.append("<TD class='body_td' align='left'>");
					if (dr.getString("AREANAME").length() == 0)
						ret.append("&nbsp;");
					else
						ret.append(dr.getString("AREANAME"));
					ret.append("</TD>");

					// 组织
					ret.append("<TD class='body_td' align='left'>");
					ret.append(dr.getString("ORGANISENAME"));
					ret.append("</TD>");

					// 组织全称
					ret.append("<TD class='body_td' align='left'>");
					String orgName = dr.getString("ORGFULLNAME").substring(3);
					String aNames[] = orgName.split("-->");
					if ( aNames.length > 4) {
						orgName = aNames[0] + "-->";
						orgName += aNames[1] + "-->";
						orgName += aNames[2] + "-->";
						orgName += aNames[aNames.length - 1];
					}
					ret.append("<label title='");
					ret.append(dr.getString("ORGFULLNAME").substring(3));
					ret.append("'>");
					ret.append(orgName);
					ret.append("</label");
					ret.append("</TD>");

					ret.append("</tr>");
				}
			}
			ret.append("</table>");
		} catch (Exception ex) {
			FileLogger.getLogger().info(ex.getMessage(), ex);

			throw new RuntimeException(ex);
		}
		return ret.toString();
	}

	/**
	 * 获取组织城市关联信息列表信息
	 * 
	 * @param request
	 * @param response
	 * @param param
	 * @return
	 */
	public static int getOrganiseCityCount(ServletRequest request, ServletResponse response,
			Map param) {
		int ret = 0;
		try {
			ret = Tf_OrganiseCityRela.getOrganiseCityCount();
		} catch (Exception ex) {
			FileLogger.getLogger().info(ex.getMessage(), ex);

			throw new RuntimeException(ex);
		}
		return ret;
	}

	public static String getOrgPurvList(ServletRequest request, ServletResponse response,
			Map param) {
		StringBuffer result = new StringBuffer();
		try {
			String parentId = (String) param.get("PURVIEWID");
			DacClient db = new DacClient();

			int pageSize = Integer.parseInt((String) param.get("pageSize"));
            int currentPage = Integer.parseInt((String) param.get("currentPage"));
			int startRecord = currentPage * pageSize;

			DataTable oPurvList = CustomQuery.getOrgPurvList(db, Long.parseLong(parentId), startRecord, pageSize);

			WebAuth auth = WebAuth.getInstance((HttpServletRequest)request);

			result.append("<table>");
			if ( oPurvList != null && oPurvList.getRows().getCount() > 0 ) {
				String pOrgCode = null;
				if ( auth.getCurrPostID() > 0 ) {
					pOrgCode = Sys_Organise.getInstance(db, auth.getCurrPostID()).getIndexCode();
					pOrgCode = pOrgCode.substring(0, pOrgCode.length() - 3);
				}
				
				for ( int i=0; i< oPurvList.getRows().getCount(); i++ ) {
					DataRow dr = oPurvList.getRow(i); 
					
					SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
					String stateName = "在用";
					String stateColor = "black";
					if ( dr.getLong("PURVIEWID") != dr.getLong("ROOTID") ) {
						// 该节点为继承,使用继承颜色。
						stateColor = "DimGray";
					}
					if ( dr.getString("orgstate").equalsIgnoreCase(StateEnum.ENABLED) ) {
						if ( dr.getString("POSTATE").equalsIgnoreCase(StateEnum.ENABLED) ) {
							long start = (dr.getDate("starttime")==null)?Long.MIN_VALUE:dr.getDate("starttime").getTime();
							long end = (dr.getDate("endtime")==null)?Long.MAX_VALUE:dr.getDate("endtime").getTime();
							if ( start > System.currentTimeMillis() ) {
								stateName = "未启用";
								stateColor = "orange";
							}
							else if ( end < System.currentTimeMillis() ) {
								stateName = "已过期";
								stateColor = "MediumPurple";
							}
						}
						else {
							stateName = "已禁用";
							stateColor = "red";
						}
					}
					else {
						stateName = "<span title='组织已经被禁用。'>无效</span>";
						stateColor = "red";
					}
					
					String hasPurv = "Y";
					if ( pOrgCode != null ) {
						String orgCode = dr.getString("ORGCODE");
						if (! orgCode.startsWith(pOrgCode) ) {
							hasPurv="N";
							if ( stateColor.equals("black") ) {
								stateColor = "#505050";
							}
						}
					}

					String name = dr.getString("ORGFULLNAME").substring(3);
					String[] names = name.split("-->");
					if ( names.length > 3 ) {
						name = names[0];
						name += "-->……-->";
						name += names[names.length-1];
					} 
					
					result.append("<tr class='InnerMain' style='color: ").append(stateColor);
					result.append("' key='");
					result.append( dr.getLong("PURVANDORGID"));
					result.append("' hasPurv=");
					result.append(hasPurv);
					result.append(">");
					
					result.append("<td style='display:none' title='是否继承'>");
					result.append((dr.getLong("PURVIEWID")==dr.getLong("ROOTID"))?"N":"Y");
					result.append("</td>");
					
					result.append("<td class='body_td' align='left' valign='top' title='");
					result.append(dr.getString("ORGFULLNAME").substring(3));
					result.append("'>");
					result.append(name);
					result.append("</td>");

					result.append("<td class='body_td' align='left' valign='top' >");
					result.append(dr.getString("PURVTYPE").equalsIgnoreCase(StateEnum.ENABLED)?"允许":"拒绝");
					result.append("</td>");

					result.append("<td class='body_td' align='left' valign='top' >");
					result.append(stateName);
					result.append("</td>");

					result.append("<td class='body_td' align='left' valign='top' >");
					result.append((dr.getDate("STATEMODIFYTIME")==null)?"&nbsp;":sdf1.format(dr.getDate("STATEMODIFYTIME")));
					result.append("</td>");
					
					result.append("<td class='body_td' align='left' valign='top' >");

					Sys_Authority[] auths = Sys_OPAndAuth.getAuthorityByPurvAndOrgID(db, dr.getLong("PURVANDORGID"));
			        if ( auths == null || auths.length > 0 ) {
		    	        for ( int kk=0; kk<auths.length;kk++) {
		    	            if ( kk + 1 == auths.length ) {
		    	            	result.append("<div style='padding: 3px;'>");
		    	            }
		    	            else {
		    	            	result.append("<div style='border-bottom: 1px solid #00f0f0; padding: 3px;'>");
		    	            }
		    	            result.append(auths[kk].getAuthName());
		    	            result.append("</div>");
		    	        }
			        }
			        else {
			        	result.append("&nbsp;");
			        }
			        
			        result.append("</td></tr>");
				}
			} else {
					result.append("<tr class='innerMain'><td class='body_td'>当前模块没有与任何组织或岗位关联。</td></tr>");
			}
			result.append("</table>");
		} catch (Exception e) {
			FileLogger.getLogger().info(e.getMessage(),e);
		}

		return result.toString();
	}

	public static int getOrgPurvCount(ServletRequest request, ServletResponse response,
			Map param) {
		int ret = 0;
		try {
			String purvId = (String) param.get("PURVIEWID");
			
			ret = CustomQuery.getOrgPurvCount(new DacClient(), Long.parseLong(purvId));
		} catch (Exception ex) {
			FileLogger.getLogger().info(ex.getMessage(), ex);
		}

		return ret;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -