<%/*~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 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~*/%>