<%@page import="com.amarsoft.are.jbo.BizObject"%> <%@page import="com.amarsoft.app.als.flow.util.FlowHelper"%> <%@page import="com.amarsoft.dict.als.manage.CodeManager"%> <%@page import="com.amarsoft.dict.als.object.Item"%> <%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List00;Describe=注释区;]~*/%> <% /* Author: byhu 2004.12.6 Tester: Content: 该页面主要处理业务相关的申请列表,如授信额度申请列表,额度项下业务申请列表, 单笔授信业务申请列表,最终审批意见登记列表、出帐申请列表 Input Param: ApplyType:申请类型 —CreditLineApply/授信额度申请 —DependentApply/额度项下申请 —IndependentApply/单笔授信业务申请 —ApproveApply/待提交复核最终审批意见 —PutOutApply/待提交审核出帐 PhaseType:阶段类型 —1010/待提交阶段(初始阶段) Output param: History Log: zywei 2005/07/27 重检页面 */ %> <%/*~END~*/%> <%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List02;Describe=定义变量,获取参数;]~*/%> <% //定义变量 String sSql = ""; //存放SQL语句 ASResultSet rs = null; //存放查询结果集 String sTempletNo = ""; //显示模版ItemNo String sPhaseTypeSet = ""; //存放阶段类型组 String sButton = ""; String sObjectType = ""; //存放对象类型 String sViewID = ""; //存放查看方式 String sWhereClause1 = ""; //存放阶段类型强制where子句1 String sWhereClause2 = ""; //存放阶段类型强制where子句2 String sInitFlowNo = ""; String sInitPhaseNo = ""; String sButtonSet = ""; //获得组件参数:申请类型,阶段类型 String sApplyType = CurPage.getParameter("ApplyType"); String sPhaseType = CurPage.getParameter("PhaseType"); String transactionFilter = CurPage.getParameter("TransactionFilter",10); //将空值转化成空字符串 if(sApplyType == null) sApplyType = ""; if(sPhaseType == null) sPhaseType = ""; if(transactionFilter == null) transactionFilter = ""; %> <%/*~END~*/%> <%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List03;Describe=定义数据对象;]~*/%> <% //如果申请类型为ClassifyApply(五级分类申请),则从PARA_CONFIGURE表中读取五级分类的对象类型,确定其是借据还是合同 add by cbsu 2009-10-28 String sResultType = CurConfig.getConfigure("ClassifyObjectType"); //根据组件参数(申请类型)从代码表CODE_LIBRARY中获得ApplyMain的树图以及该申请的阶段,流程对象类型,ApplyList使用哪个ButtonSet Item item=CodeManager.getItem("ApplyType",sApplyType); if(item!=null){ sPhaseTypeSet=item.getItemDescribe(); sObjectType = item.getItemAttribute(); sButtonSet = item.getAttribute5(); sInitFlowNo = item.getAttribute2(); if(sInitFlowNo == null) sInitFlowNo = ""; if(sPhaseTypeSet == null) sPhaseTypeSet = ""; if(sObjectType == null) sObjectType = ""; if(sButtonSet == null) sButtonSet = ""; }else{ throw new Exception("没有找到相应的申请类型定义(CODE_LIBRARY.ApplyType:"+sApplyType+")!"); } //根据组件ID和组件参数(阶段类型)从代码表CODE_LIBRARY中查询出显示的按钮,以什么视图查看对象详情,where条件1,where条件2,ApplyList数据对象ID item=CodeManager.getItem(sPhaseTypeSet,sPhaseType); if(item!=null){ sButton=item.getItemDescribe(); sViewID = item.getItemAttribute(); sWhereClause1 = item.getAttribute1(); sWhereClause2 = item.getAttribute2(); sTempletNo = item.getAttribute4(); if("Classify".equals(sObjectType)) { String[] sTempletNos = sTempletNo.split("@"); //根据五级分类对象是借据还是合同来使用不同的模板 add by cbsu 2009-10-12 if (sTempletNos.length > 1) { if ("BusinessDueBill".equals(sResultType)) { sTempletNo = sTempletNos[0]; } if ("BusinessContract".equals(sResultType)) { sTempletNo = sTempletNos[1]; } } } if(sButton == null) sButton = ""; if(sViewID == null) sViewID = ""; if(sWhereClause1 == null) sWhereClause1 = ""; if(sWhereClause2 == null) sWhereClause2 = ""; if(sTempletNo == null) sTempletNo = ""; }else{ throw new Exception("没有找到相应的申请阶段定义(CODE_LIBRARY,"+sPhaseTypeSet+","+sPhaseType+")!"); } if(sTempletNo.equals("")) throw new Exception("没有定义sTempletNo, 检查CODE_LIBRARY,"+sPhaseTypeSet+","+sPhaseType+"??"); if(sViewID.equals("")) throw new Exception("没有定义ViewID 检查CODE_LIBRARY,"+sPhaseTypeSet+","+sPhaseType+"??"); //根据默认流程ID从流程表FLOW_CATALOG中获得初始阶段 BizObject boInitPhase = FlowHelper.getFlowInitPhase(sInitFlowNo); if(boInitPhase!=null){ sInitPhaseNo = boInitPhase.getAttribute("InitPhase").getString(); if(sInitPhaseNo == null) sInitPhaseNo = ""; } //根据显示模版编号和显示模版过滤条件生成DataObject对象 ASObjectModel doTemp = new ASObjectModel(sTempletNo); //设置更新表名和主键 //doTemp.UpdateTable = "FLOW_OBJECT"; //doTemp.setKey("ObjectType,ObjectNo",true); //为后面的删除 doTemp.setHTMLStyle("","ondblclick=\"javascript:applyPlatform()\" ");//添加双击查看详情功能 //将where条件1和where条件2中的变量用实际的值替换,生成有效的SQL语句 sWhereClause1 = StringFunction.replace(sWhereClause1,"#UserID",CurUser.getUserID()); sWhereClause1 = StringFunction.replace(sWhereClause1,"#ApplyType",sApplyType); sWhereClause1 = StringFunction.replace(sWhereClause1,"#ObjectType",sObjectType); sWhereClause1 = StringFunction.replace(sWhereClause1,"#PhaseType",sPhaseType); sWhereClause1 = StringFunction.replace(sWhereClause1,"#TransactionFilter"," ACCT_TRANSACTION.TransCode in('"+transactionFilter.replaceAll("@","','")+"')"); sWhereClause2 = StringFunction.replace(sWhereClause2,"#UserID",CurUser.getUserID()); sWhereClause2 = StringFunction.replace(sWhereClause2,"#ApplyType",sApplyType); sWhereClause2 = StringFunction.replace(sWhereClause2,"#ObjectType",sObjectType); sWhereClause2 = StringFunction.replace(sWhereClause2,"#PhaseType",sPhaseType); sWhereClause2 = StringFunction.replace(sWhereClause2,"#TransactionFilter"," ACCT_TRANSACTION.TransCode in('"+transactionFilter.replaceAll("@","','")+"')"); //在做五级分类申请时对SQL语句进行拼接 add by cbsu 2009-10-29 if ("Classify".equals(sObjectType)) { String sTableSerialNo = ""; if ("BusinessDueBill".equals(sResultType)) { sTableSerialNo = "BD.SerialNo"; } if ("BusinessContract".equals(sResultType)) { sTableSerialNo = "BC.SerialNo"; } sWhereClause1 = StringFunction.replace(sWhereClause1,"#TableSerialNo",sTableSerialNo); sWhereClause2 = StringFunction.replace(sWhereClause2,"#TableSerialNo",sTableSerialNo); }else if("CreditApply".equals(sObjectType)){//授信申请 //授信额度申请、额度项下业务申请、单笔授信业务申请合并至同一个页面显示 //add by wmzhu 2014-05-09 if("IndCreditApply".equals(sApplyType)){//个人客户授信申请 sWhereClause1 += " and O.ApplyType in ('IndDepenApply','IndLimitApply','IndSingleApply')"; }else if("EntCreditApply".equals(sApplyType)){//对公客户授信申请 sWhereClause1 += " and O.ApplyType in ('EntDepenApply','EntLimitApply','EntSingleApply')"; }else{ sWhereClause1 += " and O.ApplyType in ('"+sApplyType+"')"; } } //增加空格防止sql语句拼接出错 doTemp.appendJboWhere(" "+sWhereClause1); doTemp.appendJboWhere(" "+sWhereClause2); //设置ASObjectModel中的排序条件 doTemp.setJboOrder (" O.ObjectNo desc "); 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(""); //dwTemp.genHTMLObjectWindow("'"+sApplyType+"','"+sPhaseType+"','"+CurUser.getUserID()+"'"); %> <%/*~END~*/%> <%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List04;Describe=定义按钮;]~*/%> <% //依次为: //0.是否显示 //1.注册目标组件号(为空则自动取当前组件) //2.类型(Button/ButtonWithNoAction/HyperLinkText/TreeviewItem/PlainText/Blank) //3.按钮文字 //4.说明文字 //5.事件 //6.shortcutKey 快捷键 7.href 资源路径 8.parm 资源路径参数 9.iconCls 图标 CSS名称 String sButtons[][] = new String[100][9]; int iCountRecord = 0; //用于控制单行按钮显示的最大个数 String iButtonsLineMax = "8"; //根据按钮集从代码表CODE_LIBRARY中查询到按钮英文名称,属性1,属性2(Button)、按钮中文名称、按钮功能描述、按钮调用javascript函数名称 List list = FlowHelper.getFlowButtonList(sButtonSet); for(BizObject bo : list){ iCountRecord++; sButtons[iCountRecord][0] = (sButton.indexOf(bo.getAttribute("ItemNo").getString())>=0?"true":"false"); //sButtons[iCountRecord][0] = "true"; 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",sApplyType); 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] = ""; //add sy syang 2009/10/22 放贷复核通过的申请,在演示模式下,“转入贷后”按钮可见 if(sApplyType.equals("PutOutApply")){ if("transToAfterLoan".equals(bo.getAttribute("ItemNo").getString())){ //匹配按钮 if(sButton.indexOf(bo.getAttribute("ItemNo").getString())>=0){ //是否允许显示 if("Demonstration".equals(sCurRunMode)||"Development".equals(sCurRunMode)){ //允许显示后,判断是否为演示模式 sButtons[iCountRecord][0] = "true"; }else{ sButtons[iCountRecord][0] = "false"; } } } } if(sApplyType.equals("IndependentApply") || sApplyType.equals("CreditLineApply") || sApplyType.equals("DependentApply")){ if("greenWay".equals(bo.getAttribute("ItemNo").getString())||"viewFlowGraph".equals(bo.getAttribute("ItemNo").getString())){ //匹配按钮 if(sButton.indexOf(bo.getAttribute("ItemNo").getString())>=0){ //是否允许显示 if("Demonstration".equals(sCurRunMode)){ //只有在演示模式下才显示绿色通道和查看流程图按钮 sButtons[iCountRecord][0] = "true"; }else{ sButtons[iCountRecord][0] = "false"; } } } } if("UGBodyApply".equals(sApplyType)){ if("greenWay".equals(bo.getAttribute("ItemNo").getString())||"viewFlowGraph".equals(bo.getAttribute("ItemNo").getString()) //|| "applyPlatform".equals(rs.getString("ItemNo"))||"approvePlatform".equals(rs.getString("ItemNo")) ){ //匹配按钮 if(sButton.indexOf(bo.getAttribute("ItemNo").getString())>=0){ //是否允许显示 sButtons[iCountRecord][0] = "false"; } } } } CurPage.setAttribute("ButtonsLineMax",iButtonsLineMax); %> <%/*~END~*/%>