%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/IncludeBegin.jsp"%>
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=Main00;Describe=注释区;]~*/%>
<%
/*
Content: 审查审批工作台_Main
Input Param:
ApproveType:审批类型
*/
%>
<%/*~END~*/%>
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=Main01;Describe=定义页面属性;]~*/%>
<%
String PG_TITLE = "审批主页面"; // 浏览器窗口标题
PG_TITLE
String PG_CONTENT_TITLE = " 审批主页面 "; //默认的内容区标题
String PG_CONTNET_TEXT = "请点击左侧列表";//默认的内容区文字
String PG_LEFT_WIDTH = "200";//默认的treeview宽度
%>
<%/*~END~*/%>
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=Main02;Describe=定义变量,获取参数;]~*/%>
<%
//定义变量:查询结果集
ASResultSet rs = null;
//定义变量:SQL语句、当前工作、已完成工作
String sSql = "",sFolderUnfinished = "",sFolderfinished = "";
//定义变量:阶段编号、阶段名称、工作数、工作数显示标签、文件夹标记
String sPhaseNo = "",sPhaseName = "",sWorkCount = "",sPageShow = "",sFolderSign= "" ;
//定义变量:流程编号、阶段类型、组件编号、组件名称
String sFlowNo = "",sPhaseType = "",sCompID = "",sCompName = "";
//定义变量:审批类型名称、流程对象类型
String sItemName = "",sObjectType = "";
//定义变量:树型菜单页数
int iLeaf = 1,i = 0;
//获得组件参数:审批类型
String sApproveType = CurPage.getParameter("ApproveType");
//将空值转换成空字符串
if(sApproveType == null) sApproveType = "";
%>
<%/*~END~*/%>
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=Main03;Describe=定义树图;]~*/%>
<%
//根据申请类型从代码表CODE_LIBRARY中获得审批类型名称、审批模型编号、流程对象类型、组件编号、组件名称
sSql = " select ItemName,Attribute2,ItemAttribute,Attribute7,Attribute8 from CODE_LIBRARY where CodeNo = 'ApproveType' and ItemNo = :ItemNo ";
rs = Sqlca.getASResultSet(new SqlObject(sSql).setParameter("ItemNo",sApproveType));
if(rs.next()){
sItemName = rs.getString("ItemName");
sFlowNo = rs.getString("Attribute2");
sObjectType = rs.getString("ItemAttribute");
sCompID = rs.getString("Attribute7");
sCompName = rs.getString("Attribute8");
//将空值转换成空字符串
if(sItemName == null) sItemName = "";
if(sFlowNo == null) sFlowNo = "";
if(sObjectType == null) sObjectType = "";
if(sCompID == null) sCompID = "";
if(sCompName == null) sCompName = "";
//设置窗口标题
PG_TITLE = sItemName;
PG_CONTENT_TITLE = " "+PG_TITLE+" ";
}else{
throw new Exception("没有找到相应的审批类型定义(CODE_LIBRARY.ApproveType:"+sApproveType+")!");
}
rs.getStatement().close();
//把FlowNo拆开,为了加上单引号
String sTempFlowNo = "(";
StringTokenizer st = new StringTokenizer(sFlowNo,",");
while(st.hasMoreTokens()){
sTempFlowNo += "'"+ st.nextToken()+"',";
}
if(!sTempFlowNo.equals("")){
sTempFlowNo = sTempFlowNo.substring(0,sTempFlowNo.length()-1)+")";
}
OHTMLTreeView tviTemp = new OHTMLTreeView(CurPage,PG_TITLE,"right");
//设置当前用户对于该类对象的当前工作菜单项
sFolderUnfinished = tviTemp.insertFolder("root","当前工作","",i++);
//从流程任务表FLOW_TASK中查询出当前用户的待审查审批工作信息
sSql = " select FlowNo,PhaseType,PhaseNo,PhaseName,Count(SerialNo) as WorkCount "+
" from FLOW_TASK "+
" where ObjectType = '"+sObjectType+"' ";
if(!sObjectType.equalsIgnoreCase("TestApply"))
sSql += " and FlowNo in "+sTempFlowNo+" ";
sSql += " and UserID ='"+CurUser.getUserID()+"' "+
" and (EndTime is null or EndTime =' ' or EndTime ='') and PhaseNo <> '0010'"+
" Group by FlowNo,PhaseType,PhaseNo,PhaseName "+
" Order by FlowNo,PhaseNo ";
rs = Sqlca.getASResultSet(sSql);
int t=0;//定义变量用于判断是否是第一条数据
String sDisplay="";//用于存放sPageShow拿到的第一条数据(当相同阶段存在两个或多个流程时)
while (rs.next()){
sFlowNo = DataConvert.toString(rs.getString("FlowNo"));
sPhaseType = DataConvert.toString(rs.getString("PhaseType"));
sPhaseNo = DataConvert.toString(rs.getString("PhaseNo"));
sPhaseName = DataConvert.toString(rs.getString("PhaseName"));
sWorkCount = DataConvert.toString(rs.getString("WorkCount"));
//将空值转换成空字符串
if(sPhaseType == null) sPhaseType = "";
if(sPhaseNo == null) sPhaseNo = "";
if(sPhaseName == null) sPhaseName = "";
if(sWorkCount == null) sWorkCount = "";
if(sWorkCount.equals(""))
sPageShow = sPhaseName+" 0 件";
else
sPageShow = sPhaseName+" "+sWorkCount+" 件";
//获得sPageShow第一条数据
if(t==0){
sDisplay = sPageShow;
t++;
}
tviTemp.insertPage(sFolderUnfinished,sPageShow,"javascript:parent.openPhase(\""+ sApproveType +"\",\""+ sPhaseType +"\",\""+sFlowNo+"\",\""+sPhaseNo+"\",\"N\")",iLeaf++);
}
rs.getStatement().close();
//4、设置当前用户对于该类对象的已完成工作菜单项
sFolderfinished = tviTemp.insertFolder("root","已完成工作","",i++);
sSql = " select FlowNo,PhaseType,PhaseNo,PhaseName,Count(SerialNo) as WorkCount "+
" from FLOW_TASK "+
" where ObjectType = '"+sObjectType+"' ";
if(!sObjectType.equalsIgnoreCase("TestApply"))
sSql += " and FlowNo in "+sTempFlowNo+" ";
sSql += " and UserID = '"+CurUser.getUserID()+"' "+
" and EndTime is not null "+
" and (EndTime <> ' ' or EndTime <> '') and PhaseNo <> '0010'"+
" Group by FlowNo,PhaseType,PhaseNo,PhaseName "+
" Order by FlowNo,PhaseNo ";
rs = Sqlca.getASResultSet(sSql);
while (rs.next()){
sFlowNo = DataConvert.toString(rs.getString("FlowNo"));
sPhaseType = DataConvert.toString(rs.getString("PhaseType"));
sPhaseNo = DataConvert.toString(rs.getString("PhaseNo"));
sPhaseName = DataConvert.toString(rs.getString("PhaseName"));
sWorkCount = DataConvert.toString(rs.getString("WorkCount"));
//将空值转换成空字符串
if(sPhaseType == null) sPhaseType = "";
if(sPhaseNo == null) sPhaseNo = "";
if(sPhaseName == null) sPhaseName = "";
if(sWorkCount == null) sWorkCount = "";
if(sWorkCount.equals(""))
sPageShow = sPhaseName+" 0 件";
else
sPageShow = sPhaseName+" "+sWorkCount+" 件";
tviTemp.insertPage(sFolderfinished,sPageShow,"javascript:parent.openPhase(\""+ sApproveType +"\",\""+ sPhaseType +"\",\""+sFlowNo+"\",\""+sPhaseNo+"\",\"Y\")",iLeaf++);
}
rs.getStatement().close();
%>
<%/*~END~*/%>
<%/*~BEGIN~不可编辑区[Editable=false;CodeAreaID=Main04;Describe=主体页面;]~*/%>
<%@include file="/Resources/CodeParts/Main04.jsp"%>
<%/*~END~*/%>
<%/*~BEGIN~可编辑区[Editable=true;CodeAreaID=Main05;Describe=树图事件;]~*/%>
<%/*~END~*/%>
<%/*~BEGIN~可编辑区[Editable=true;CodeAreaID=Main06;Describe=在页面装载时执行,初始化;]~*/%>
<%/*~END~*/%>
<%@ include file="/IncludeEnd.jsp"%>