📄 xmlservice.java
字号:
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(" ");
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)?" ":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(" ");
}
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 + -