191 lines
8.3 KiB
Plaintext
191 lines
8.3 KiB
Plaintext
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List00;Describe=注释区;]~*/%>
|
||
<%
|
||
/*
|
||
Author: byhu 2004.12.6
|
||
Tester:
|
||
Content: 该页面主要处理业务申请相关的审查审批、最终审批意见复核、放贷申请复核
|
||
Input Param:
|
||
ApproveType:审批对象
|
||
PhaseType:阶段类型
|
||
FlowNo:流程模型编号
|
||
PhaseNo:阶段编号
|
||
FinishFlag:完成标志(Y:已完成;N:未完成)
|
||
Output param:
|
||
History Log:
|
||
2005.08.03 jbye 重新修改流程审查相关信息
|
||
2005.08.05 zywei 重检页面
|
||
2006.02.21 zywei 将审查审批列表上的按钮配置从数据表CODE_LIBRARY中字段ItemDescribe移到数据表FLOW_MODEL中字段Attribute1,Attribute2
|
||
*/
|
||
%>
|
||
<%/*~END~*/%>
|
||
|
||
|
||
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List02;Describe=定义变量,获取参数;]~*/%>
|
||
<%@page import="com.amarsoft.dict.als.manage.CodeManager"%>
|
||
<%@page import="com.amarsoft.dict.als.object.Item"%>
|
||
<%@page import="com.amarsoft.app.als.flow.util.FlowHelper"%>
|
||
<%
|
||
|
||
//定义变量:SQL语句、模版ItemNo、阶段类型组、对象对应阶段、阶段类型强制where子句1、阶段类型强制where子句2
|
||
String sSql = "",sTempletNo = "",sPhaseTypeSet = "",sViewID = "",sWhereClause1 = "",sWhereClause2 = "";
|
||
//定义变量:按钮集、按钮、申请流程对象
|
||
String sButtonSet = "",sButton = "",sObjectType = "";
|
||
//定义变量:查询结果集,五级分类是借据或合同
|
||
ASResultSet rs = null;
|
||
String sResultType = "";
|
||
|
||
//获得组件参数:流程对象类型、申请类型、流程编号、阶段编号、阶段类型、完成标志
|
||
String sApproveType = CurPage.getParameter("ApproveType");
|
||
String sFlowNo = CurPage.getParameter("FlowNo");
|
||
String sPhaseNo = CurPage.getParameter("PhaseNo");
|
||
String sPhaseType = CurPage.getParameter("PhaseType");
|
||
String sFinishFlag = CurPage.getParameter("FinishFlag");
|
||
String transactionFilter = CurPage.getParameter("TransactionFilter",10);
|
||
|
||
//将空值转化成空字符串
|
||
if(sApproveType == null) sApproveType = "";
|
||
if(sFlowNo == null) sFlowNo = "";
|
||
if(sPhaseNo == null) sPhaseNo = "";
|
||
if(sPhaseType == null) sPhaseType = "";
|
||
if(sFinishFlag == null) sFinishFlag = "";
|
||
if(transactionFilter == null) transactionFilter = "";
|
||
|
||
%>
|
||
<%/*~END~*/%>
|
||
|
||
|
||
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List03;Describe=定义数据对象;]~*/%>
|
||
<%
|
||
//从代码表CODE_LIBRARY中获得ApproveMain的树图以及该申请的阶段,流程对象类型,TaskList使用哪个ButtonSet
|
||
Item item=CodeManager.getItem("ApproveType",sApproveType);
|
||
sPhaseTypeSet=item.getItemDescribe();
|
||
sObjectType = item.getItemAttribute();
|
||
sButtonSet = item.getAttribute5();
|
||
|
||
//从代码表CODE_LIBRARY中查询出以什么视图查看对象详情,where条件1,where条件2,ApplyList数据对象ID
|
||
item=CodeManager.getItem(sPhaseTypeSet,sFinishFlag);
|
||
sViewID = item.getItemAttribute();
|
||
sWhereClause1 = item.getAttribute1();
|
||
sWhereClause2 = item.getAttribute2();
|
||
sTempletNo = item.getAttribute4();
|
||
|
||
//如果审批类型为ClassifyApprove(五级分类审批),则从PARA_CONFIGURE表中读取五级分类的对象类型,确定其是借据还是合同 add by cbsu 2009-10-28
|
||
if("ClassifyApprove".equals(sApproveType) || "ClassifyApproveX".equals(sApproveType)) {
|
||
sResultType = CurConfig.getConfigure("ClassifyObjectType");
|
||
}
|
||
|
||
//将sTempNo按@进行分割 add by cbsu 2009-10-13
|
||
if ("Classify".equals(sObjectType)) {
|
||
String[] sTempletNos = sTempletNo.split("@");
|
||
//根据五级分类对象是借据还是合同来使用不同的模板 add by cbsu 2009-10-13
|
||
if (sTempletNos.length > 1) {
|
||
if ("BusinessDueBill".equals(sResultType)) {
|
||
sTempletNo = sTempletNos[0];
|
||
}
|
||
if ("BusinessContract".equals(sResultType)) {
|
||
sTempletNo = sTempletNos[1];
|
||
}
|
||
}
|
||
}
|
||
|
||
//将空值转化成空字符串
|
||
if(sViewID == null) sViewID = "";
|
||
if(sWhereClause1 == null) sWhereClause1 = "";
|
||
if(sWhereClause2 == null) sWhereClause2 = "";
|
||
if(sTempletNo == null) sTempletNo = "";
|
||
|
||
if(sTempletNo.equals("")) throw new Exception("没有定义任务列表数据对象(CODE_LIBRARY.ApproveType:"+sApproveType+")!");
|
||
if(sViewID.equals("")) throw new Exception("没有定义审批阶段视图(CODE_LIBRARY,"+sPhaseTypeSet+","+sFinishFlag+")!");
|
||
|
||
//add by zywei 2006/02/21 根据完成标志来获取相应流程编号、相应阶段编号应显示的功能按钮
|
||
if(sFinishFlag.equals("N")) //当前工作
|
||
sButton=FlowHelper.getFlowButton("Attribute1",sFlowNo,sPhaseNo);
|
||
if(sFinishFlag.equals("Y")) //已完成工作
|
||
sButton=FlowHelper.getFlowButton("Attribute2",sFlowNo,sPhaseNo);
|
||
//将空值转化成空字符串
|
||
if(sButton == null) sButton = "";
|
||
|
||
//根据显示模版编号和显示模版过滤条件生成DataObject对象
|
||
ASObjectModel doTemp = new ASObjectModel(sTempletNo);
|
||
//将where条件1和where条件2中的变量用实际的值替换,生成有效的SQL语句
|
||
sWhereClause1 = StringFunction.replace(sWhereClause1,"#UserID",CurUser.getUserID());
|
||
sWhereClause1 = StringFunction.replace(sWhereClause1,"#PhaseNo",sPhaseNo);
|
||
sWhereClause1 = StringFunction.replace(sWhereClause1,"#FlowNo",sFlowNo);
|
||
sWhereClause1 = StringFunction.replace(sWhereClause1,"#ObjectType",sObjectType);
|
||
sWhereClause1 = StringFunction.replace(sWhereClause1,"#TransactionFilter"," ACCT_TRANSACTION.TransCode in('"+transactionFilter.replaceAll("@","','")+"')");
|
||
sWhereClause2 = StringFunction.replace(sWhereClause2,"#UserID",CurUser.getUserID());
|
||
sWhereClause2 = StringFunction.replace(sWhereClause2,"#PhaseNo",sPhaseNo);
|
||
sWhereClause2 = StringFunction.replace(sWhereClause2,"#FlowNo",sFlowNo);
|
||
sWhereClause2 = StringFunction.replace(sWhereClause2,"#ObjectType",sObjectType);
|
||
sWhereClause2 = StringFunction.replace(sWhereClause2,"#TransactionFilter"," ACCT_TRANSACTION.TransCode in('"+transactionFilter.replaceAll("@","','")+"')");
|
||
|
||
//在做五级分类审批时对SQL语句中的TableSerialNo参数进行替换 add by cbsu 2009-10-29
|
||
if ("Classify".equals(sObjectType)) {
|
||
String sTableSerialNo = "";
|
||
if ("BusinessDueBill".equals(sResultType)) {
|
||
sTableSerialNo = "BUSINESS_DUEBILL.SerialNo";
|
||
}
|
||
if ("BusinessContract".equals(sResultType)) {
|
||
sTableSerialNo = "BUSINESS_CONTRACT.SerialNo";
|
||
}
|
||
sWhereClause1 = StringFunction.replace(sWhereClause1,"#TableSerialNo",sTableSerialNo);
|
||
sWhereClause2 = StringFunction.replace(sWhereClause2,"#TableSerialNo",sTableSerialNo);
|
||
}
|
||
|
||
//增加空格防止sql语句拼接出错
|
||
doTemp.appendJboWhere(sWhereClause1+" "+sWhereClause2);
|
||
//设置ASObjectModel中的排序条件
|
||
doTemp.setJboOrder(" O.SerialNo desc ");
|
||
|
||
doTemp.setAlign("CurrencyName,OccurTypeName","2");
|
||
doTemp.setType("BusinessSum","Number");
|
||
doTemp.setCheckFormat("BusinessSum","2");
|
||
|
||
ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request);
|
||
dwTemp.Style="1"; //设置DW风格 1:Grid 2:Freeform
|
||
dwTemp.ReadOnly = "1"; //设置是否只读 1:只读 0:可写
|
||
dwTemp.setPageSize(20);
|
||
|
||
//生成HTMLDataWindow
|
||
dwTemp.genHTMLObjectWindow("");
|
||
|
||
%>
|
||
<%/*~END~*/%>
|
||
|
||
|
||
|
||
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List04;Describe=定义按钮;]~*/%>
|
||
<%
|
||
String sButtons[][] = new String[100][9];
|
||
int iCountRecord = 0;
|
||
List<BizObject> boList=FlowHelper.getFlowButtonList(sButtonSet);
|
||
for(BizObject bo:boList ){
|
||
iCountRecord++;
|
||
sButtons[iCountRecord][0] = (sButton.indexOf(bo.getAttribute("ItemNo").getString())>=0?"true":"false");
|
||
sButtons[iCountRecord][1] = bo.getAttribute("Attribute1").getString();
|
||
sButtons[iCountRecord][2] = (bo.getAttribute("Attribute2").getString()==null?bo.getAttribute("Attribute2").getString():"Button");
|
||
sButtons[iCountRecord][3] = bo.getAttribute("ItemName").getString();
|
||
sButtons[iCountRecord][4] = bo.getAttribute("ItemDescribe").getString();
|
||
if(sButtons[iCountRecord][4]==null) sButtons[iCountRecord][4] = sButtons[iCountRecord][3];
|
||
sButtons[iCountRecord][5] = bo.getAttribute("RelativeCode").getString();
|
||
if(sButtons[iCountRecord][5]!=null){
|
||
sButtons[iCountRecord][5] = StringFunction.replace(sButtons[iCountRecord][5],"#ApplyType",sObjectType);
|
||
sButtons[iCountRecord][5] = StringFunction.replace(sButtons[iCountRecord][5],"#PhaseType",sPhaseType);
|
||
sButtons[iCountRecord][5] = StringFunction.replace(sButtons[iCountRecord][5],"#ObjectType",sObjectType);
|
||
sButtons[iCountRecord][5] = StringFunction.replace(sButtons[iCountRecord][5],"#ViewID",sViewID);
|
||
}
|
||
sButtons[iCountRecord][6] = "";
|
||
if(sApproveType.equals("ApproveCreditApply")){
|
||
if("viewFlowGraph".equals(bo.getAttribute("ItemNo").getString())){ //匹配按钮
|
||
if("Demonstration".equals(sCurRunMode)){ //只有在演示模式下才显示查看流程图按钮
|
||
sButtons[iCountRecord][0] = "true";
|
||
}else{
|
||
sButtons[iCountRecord][0] = "false";
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
%>
|
||
<%/*~END~*/%>
|