package xz.ptrl.manageBean.ptrltask;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;
import oracle.adf.view.faces.component.core.input.CoreInputText;
import oracle.adf.view.faces.component.core.input.CoreSelectOneChoice;
import oracle.adf.view.faces.component.html.HtmlScript;
import xz.myadf.jsf.DBUtils;
import xz.ptrl.tools.ADFTools;
import xz.ptrl.tools.BusinessFactory;
import xz.ptrl.tools.PtrlPublicCode;
/**
* 巡检路线对应巡检项目
* coder:bowei.hu
* time:2011-11-15 17:19:58
*/
public class RouteItemTreeBean {
private HtmlScript orgIdScript = new HtmlScript();
private CoreSelectOneChoice routeId;
private boolean selectAssociateItem = true;
private CoreInputText routeItemValue;
private HtmlScript showOrgIdScript = new HtmlScript();
public RouteItemTreeBean() {
}
public void setOrgIdScript(HtmlScript orgIdScript) {
this.orgIdScript = orgIdScript;
}
public HtmlScript getOrgIdScript() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request =
(HttpServletRequest)context.getExternalContext().getRequest();
Object tempOrgId = request.getParameter("orgId");
Object routeIdPara = request.getParameter("routeIdPara");
Object tempOrgName = null;
if (null != tempOrgId && !("".equals(tempOrgId))) {
tempOrgName = BusinessFactory.getOrgNameById(tempOrgId.toString());
}
String scriptString = "var rootNodeId='" + tempOrgId + "';";
scriptString += "var rootNodeText='" + tempOrgName + "';";
scriptString += "var routeIdPara='" + routeIdPara + "';";
System.out.println(orgIdScript);
orgIdScript.setText(scriptString);
return orgIdScript;
}
public List getRouteList() {
Connection conn = null;
Statement stat = null;
ResultSet rs = null;
List list = new ArrayList();
try {
conn = new DBUtils().getConnection();
stat = conn.createStatement();
rs = stat.executeQuery("select id,name from ptrl_route");
Map map = null;
while (rs.next()) {
System.out.println(rs.getString(1) + ":" + rs.getString(2));
map = new HashMap();
map.put("id", rs.getString(1));
map.put("name", rs.getString(2));
list.add(map);
}
} catch (SQLException e) {
e.printStackTrace();
SelectItem si = new SelectItem("", "数据查询出现异常!");
list.add(si);
} finally {
ADFTools.closeStatement(stat);
ADFTools.closeResultSet(rs);
ADFTools.closeConnection(conn);
}
return list;
}
public void routeChangeLisener(ValueChangeEvent valueChangeEvent) {
// Add event code here...
String a = "b";
System.out.println(a);
}
public void setRouteId(CoreSelectOneChoice routeId) {
this.routeId = routeId;
}
public CoreSelectOneChoice getRouteId() {
return routeId;
}
public void setSelectAssociateItem(boolean selectAssociateItem) {
this.selectAssociateItem = selectAssociateItem;
}
public boolean isSelectAssociateItem() {
return false;
}
/**
* 在关联项目的JSP页面将组织编号和路线编号传入到routeItemTree页面
* 在保存得时候再传入到doRouteItemTree.jsp页面 然后再到该方法中来
* @param routeItemValue 选择的复选框树得所有值 规律为从上之下
* @param routeIdPara 路线编号
* @return
*/
public String saveRouteItemTree(String routeItemValue,
String routeIdPara) {
// Add event code here...
if (null == routeItemValue || "".equals(routeItemValue)) {
return "请选择巡检单元";
}
if (null == routeIdPara || "".equals(routeIdPara)) {
return "巡检路线不能为空";
}
int count = existAreaStr(routeItemValue);
if (count > 1) {
return "巡检地区不能同时选2个";
}
System.out.println("用户选择的所有得复选框项_routeItemValue:" + routeItemValue);
String routeItemValueF = fileterRouteItem(routeItemValue); //获得过滤后的字符串
System.out.println("根据程序过滤后的字符串" + routeItemValue);
String sqlStr = sqlRouteItemStr(routeItemValueF);
int routeId = Integer.parseInt(routeIdPara); //获取当前的路线编号
String back = BusinessFactory.addRouteItemTree(sqlStr, routeId);
if ("TRUE".equals(back)) {
back = "<font color='red'>操作成功!!!</font>";
} else {
back = "<font color='red'>操作失败!!!</font>";
}
// return routeItemValue + "<br>后台获取并过滤成功<br>" + routeItemValueF +
// "<br>" + sqlStr + "<br>" + back;
return back;
}
public void setRouteItemValue(CoreInputText routeItemValue) {
this.routeItemValue = routeItemValue;
}
public CoreInputText getRouteItemValue() {
return routeItemValue;
}
/**
* 传入过滤过后的值
* egg:P:1901,P:1902,U:2426,I:3452,I:3454,I:3456,I:3457,I:3458,I:3461,
* @param routeItemStr 返回拼接好的带where的SQL语句
* @return where id in (3482);
*/
public String sqlRouteItemStr(String routeItemStr) {
String[] itemArr = routeItemStr.split(",");
List placeList = new ArrayList(); //地区列表
List unitList = new ArrayList(); //单元列表
List itemList = new ArrayList(); //项目列表
for (int i = 0; i < itemArr.length; i++) {
String c = itemArr[i]; //获取每一个字符串 P:1025 依次将ID 取出来存在相对应得list中
String id = c.substring(c.indexOf(":") + 1, c.length());
//如果用户只选择了根节点的情况下
if (c.indexOf("A") != -1) {
return "where v.areaid=" + id;
}
if (c.indexOf("P") != -1) {
placeList.add(id);
}
if (c.indexOf("U") != -1) {
unitList.add(id);
}
if (c.indexOf("I") != -1) {
itemList.add(id);
}
}
/**
* 然后组合SQL查询语句
*/
StringBuffer sb = new StringBuffer(" where ");
if (placeList.size() > 0) {
sb.append(" v.placeid in (");
for (int i = 0; i < placeList.size(); i++) {
if (i == placeList.size() - 1) {
sb.append(placeList.get(i));
} else {
sb.append(placeList.get(i) + ",");
}
}
sb.append(" )");
}
if (unitList.size() > 0) {
if (placeList.size() > 0) {
sb.append(" or unitid in (");
} else {
sb.append(" unitid in (");
}
for (int i = 0; i < unitList.size(); i++) {
if (i == unitList.size() - 1) {
sb.append(unitList.get(i));
} else {
sb.append(unitList.get(i) + ",");
}
}
sb.append(" )");
}
if (itemList.size() > 0) {
if (placeList.size() > 0 || unitList.size() > 0) {
sb.append(" or id in (");
} else {
sb.appen
- 1
- 2
- 3
- 4
- 5
- 6
前往页