apzl_leasing/WebContent/Common/WorkFlow/ViewClassifyFlowOpinions.jsp
2018-06-03 22:26:41 +08:00

272 lines
15 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page contentType="text/html; charset=GBK"%>
<%@ include file="/IncludeBeginMD.jsp"%>
<%/*~BEGIN~可编辑区~[Editable=true;CodeAreaID=List00;Describe=注释区;]~*/%>
<%
/*
Content: 五级分类查看意见页面
Input Param:
ObjectType 五级分类对象类型("Classify")
ObjectNo五级分类申请流水号
FlowNo流程名
PhaseNo当前阶段号
*/
%>
<%/*~END~*/%>
<%
//获取页面参数:五级分类对象类型("Classify"),五级分类申请流水号,流程名,阶段名
String sObjectType = CurPage.getParameter("ObjectType");
String sObjectNo= CurPage.getParameter("ObjectNo");
String sCurFlowNo = CurPage.getParameter("FlowNo");
String sCurPhaseNo = CurPage.getParameter("PhaseNo");
//将空值转化为空字符串
if(sObjectType==null)sObjectType="";
if(sObjectNo==null)sObjectNo="";
if(sCurFlowNo==null)sCurFlowNo="";
if(sCurPhaseNo==null)sCurPhaseNo="";
String sSql,sOpinionRightType="",sOpinionRightPhases="",sOpinionRightRoles="",sTempPrivilegePhases="",sPhaseAction="";
//哪些阶段能看
boolean bRolePrivilege = false;
boolean bPhasePrivilege = false;
//判断当前意见所处阶段是否在对应的特权阶段
boolean bPhaseMatch = false;
//流程名称
String sFlowNo = "", sPhaseNo = "";
//仅查看自己签署的意见所对应的阶段
String sSelfOpinionPhase = "";
//人工认定理由
String sSelfOpinion = "";
//阶段名称
String sPhaseName = "";
//处理人
String sUserName = "", sOrgName = "";
//收到时间
String sBeginTime = "", sEndTime = "";
//客户名称
String sCustomerName = "";
//模型分类结果
String sModeResult = "";
//人工认定结果
String sSelfOpinionReason = "";
int iTermYear = 0, iTermMonth = 0, iTermDay = 0;
//用于判断记录是否有审批意见
int iCountRecord=0;
//用于标记行数
int iRow=0,jRow=0;
BizObjectManager fmManager = JBOFactory.getBizObjectManager("jbo.sys.FLOW_MODEL");
BizObjectManager foManager = JBOFactory.getBizObjectManager("jbo.sys.FLOW_OPINION");
BizObjectManager ftManager = JBOFactory.getBizObjectManager("jbo.sys.FLOW_TASK");
//获取仅查看自己签署的意见所对应的阶段
BizObject fmBo = fmManager.createQuery(" select Attribute6 from O where FlowNo =:FlowNo and PhaseNo =:PhaseNo ")
.setParameter("FlowNo",sCurFlowNo).setParameter("PhaseNo",sCurPhaseNo).getSingleResult(false);
if(fmBo!=null) sSelfOpinionPhase = fmBo.getAttribute("Attribute6").getString();
//获取仅查看自己签署的意见信息
if(!StringX.isEmpty(sSelfOpinionPhase)){
sSql = " select FO.CustomerName, getItemName('ClassifyResult',FO.PhaseOpinion) as v.PhaseOpinion, getItemName('ClassifyResult',FO.PhaseOpinion1) as v.PhaseOpinion1, FO.PhaseOpinion2, " + //
" O.PhaseName, O.UserName,O.OrgName,O.BeginTime,O.EndTime " +
" from O,jbo.sys.FLOW_OPINION FO where O.Serialno=FO.SerialNo "+
" and (FO.PhaseOpinion is not null) and FO.InputUser =:InputUser "+
" and O.ObjectNo=:ObjectNo and O.ObjectType=:ObjectType"+
" and O.FlowNo =:FlowNo and O.PhaseNo=:PhaseNo ";
BizObject opinion = ftManager.createQuery(sSql).setParameter("InputUser",CurUser.getUserID())
.setParameter("ObjectNo",sObjectNo).setParameter("ObjectType",sObjectType).setParameter("FlowNo",sCurFlowNo)
.setParameter("PhaseNo",sCurPhaseNo).getSingleResult(false);
if(opinion!=null){
sCustomerName = opinion.getAttribute("CustomerName").getString();
sSelfOpinion = opinion.getAttribute("PhaseOpinion2").getString();
sModeResult = opinion.getAttribute("PhaseOpinion1").getString();
sSelfOpinionReason = opinion.getAttribute("PhaseOpinion").getString();
sPhaseName = opinion.getAttribute("PhaseName").getString();
sUserName = opinion.getAttribute("UserName").getString();
sOrgName = opinion.getAttribute("OrgName").getString();
sBeginTime = opinion.getAttribute("BeginTime").getString();
sEndTime = opinion.getAttribute("EndTime").getString();
iCountRecord = iCountRecord + 1;
}
}
//各级人员意见保存在 FLOW_OPINION 中 ,如果需要显示一些其他意见需要修改签署意见界面进行配套
//FLOW_MODEL添加的读于意见查看权限的判断通过 Attribute2
sSql = " select FO.CustomerName, O.FlowNo,O.PhaseNo,O.PhaseName,O.UserName,O.OrgName,O.PhaseAction, "+
" O.BeginTime,O.EndTime,O.PhaseChoice, getItemName('ClassifyResult',FO.PhaseOpinion) as v.PhaseOpinion, getItemName('ClassifyResult',FO.PhaseOpinion1) as v.PhaseOpinion1,FO.PhaseOpinion2, "+
" FM.Attribute3 as v.OpinionRightType,FM.Attribute4 as v.OpinionRightPhases,FM.Attribute5 as v.OpinionRightRoles "+
" from O,jbo.sys.FLOW_OPINION FO,jbo.sys.FLOW_MODEL FM where O.Serialno=FO.SerialNo "+
" and O.FlowNo=FM.FlowNo and O.PhaseNo=FM.PhaseNo and (FO.PhaseOpinion is not null) "+
" and O.ObjectNo=:ObjectNo and O.ObjectType=:ObjectType";
if(StringX.isEmpty(sSelfOpinionPhase)){
sSql += " ORDER BY O.SerialNo";
}else{
sSql += " and O.PhaseNo <> :PhaseNo ORDER BY O.SerialNo";
}
List<BizObject> opinionList = ftManager.createQuery(sSql).setParameter("ObjectNo",sObjectNo).setParameter("ObjectType",sObjectType)
.setParameter("PhaseNo",sSelfOpinionPhase).getResultList(false);
%>
<body leftmargin="0" topmargin="0" class="pagebackground" style="overflow-y: auto; height: 100%;" >
<form name="opinion">
<table width="100%" height="100%" cellpadding="3" cellspacing="0" border="0" style="overflow:auto;overflow-x:visible;overflow-y:visible;padding-left: 15px;">
<tr>
<!--暂时隐藏
<td><%=new Button("转出至电子表格", "转出至电子表格", "spreadsheetTransfer(formatContent());", "", "").getHtmlText()%>
</td> -->
</tr>
<%
for (BizObject opinionBo : opinionList){
sOpinionRightType = opinionBo.getAttribute("OpinionRightType").getString(); //查看意见方式 all_except(排除一些阶段) none_except(选择一些阶段)
sOpinionRightPhases = opinionBo.getAttribute("OpinionRightPhases").getString();//不同查看意见方式对应的阶段
sOpinionRightRoles = opinionBo.getAttribute("OpinionRightRoles").getString(); //意见查看特权角色
sPhaseAction = opinionBo.getAttribute("PhaseAction").getString();
//将空值转化为空字符串
if(sOpinionRightType == null) sOpinionRightType = "";
if(sOpinionRightPhases == null) sOpinionRightPhases = "";
if(sOpinionRightRoles == null) sOpinionRightRoles = "";
if(sPhaseAction == null) sPhaseAction = "";
//1、判断该用户是否拥有特权角色
if(sOpinionRightRoles.equals("")) bRolePrivilege = false;
else{
ArrayList<String> roles = CurUser.getRoleTable();
for(int i=0;i<roles.size();i++){
if(sOpinionRightRoles.indexOf(roles.get(i))>=0){
bRolePrivilege = true;
break;
}
}
}
//2、判断当前意见所处阶段是否在模型对应的特权阶段
if(sOpinionRightPhases.equals("")) bPhaseMatch = false;
else{
int iCountPhases = StringFunction.getSeparateSum(sOpinionRightPhases,",");
String sTempFlowPhase,sTempFlow,sTempPhase;
for(int i=0;i<iCountPhases;i++){
sTempFlowPhase = StringFunction.getSeparate(sOpinionRightPhases,",",i+1);
if(sTempFlowPhase.indexOf(".")<0) sTempFlowPhase = sCurFlowNo + "." + sTempFlowPhase;
if(sTempFlowPhase.equals(sCurFlowNo+"."+sCurPhaseNo)){
bPhaseMatch = true;
break;
}
}
}
//3、根据查看意见方式的不同判断是否可以显示
if(sOpinionRightType.equals("") || sOpinionRightType.equals("none_except")){
bPhasePrivilege = bPhaseMatch;
}else{
bPhasePrivilege = !bPhaseMatch;
}
//bPhasePrivilege = true; bRolePrivilege = true;
//4、最终判断是否显示意见如果不需要显示则继续判断下一条意见
//该用户是否具有特权角色、该阶段意见是否属于该意见可查看阶段、该阶段是否属于
if(!bPhasePrivilege && !bRolePrivilege && sPhaseAction.indexOf("补充资料")<0) continue;
iCountRecord++;
%>
<tr>
<td valign="top">
<table width=90% cellpadding="4" cellspacing="0" border="1" bordercolorlight="#666666" bordercolordark="#FFFFFF" >
<tr id=<%=iRow++%>>
<td width=50%><b>阶段名称:</b><%=DataConvert.toString(opinionBo.getAttribute("PhaseName").getString())%><input type=hidden value='阶段名称:<%=DataConvert.toString(opinionBo.getAttribute("PhaseName").getString())%>' name=<%="R"+String.valueOf(iRow)+"L"%> ></td>
<td width=50%><b>处理人:</b><%=DataConvert.toString(opinionBo.getAttribute("UserName").getString())%><input type=hidden value='处理人:<%=DataConvert.toString(opinionBo.getAttribute("UserName").getString())%>' name=<%="R"+String.valueOf(iRow)+"R"%>></td>
</tr>
<tr id=<%=iRow++%>>
<td width=50%><b>处理人所属机构:</b><%=DataConvert.toString(opinionBo.getAttribute("OrgName").getString())%><input type=hidden value='处理人所属机构:<%=DataConvert.toString(opinionBo.getAttribute("OrgName").getString())%>' name=<%="R"+String.valueOf(iRow)+"L"%>></td>
<td width=50%><b>客户名称:</b><%=DataConvert.toString(opinionBo.getAttribute("CustomerName").getString())%><input type=hidden value='客户名称:<%=DataConvert.toString(opinionBo.getAttribute("CustomerName").getString())%>' name=<%="R"+String.valueOf(iRow)+"R"%>></td>
</tr>
<tr id=<%=iRow++%>>
<td width=50%><b>模型分类结果:</b><%=DataConvert.toString(opinionBo.getAttribute("PhaseOpinion1").getString())%><input type=hidden value='模型分类结果:<%=DataConvert.toString(opinionBo.getAttribute("PhaseOpinion1").getString())%>' name=<%="R"+String.valueOf(iRow)+"L"%>></td>
<td width=50%><b>人工认定结果:</b><%=DataConvert.toString(opinionBo.getAttribute("PhaseOpinion").getString())%><input type=hidden value='人工认定结果:<%=DataConvert.toString(opinionBo.getAttribute("PhaseOpinion").getString())%>' name=<%="R"+String.valueOf(iRow)+"R"%>></td>
</tr>
<tr id=<%=iRow++%>>
<td width=50%><b>收到时间:</b><%=DataConvert.toString(opinionBo.getAttribute("BeginTime").getString())%><input type=hidden value='收到时间:<%=DataConvert.toString(opinionBo.getAttribute("BeginTime").getString())%>' name=<%="R"+String.valueOf(iRow)+"L"%>></td>
<td width=50%><b>完成时间:</b><%=DataConvert.toString(opinionBo.getAttribute("EndTime").getString())%><input type=hidden value='完成时间:<%=DataConvert.toString(opinionBo.getAttribute("EndTime").getString())%>' name=<%="R"+String.valueOf(iRow)+"R"%>></td>
</tr>
<tr id=<%=iRow++%>>
<td colspan=2 align=center>
<textarea type=textfield bgcolor="#FDFDF3" readonly style="width:100%;height:170px;resize: none;">
<%="\r\n【认定理由】"+ StringFunction.replace(DataConvert.toString(opinionBo.getAttribute("PhaseOpinion2").getString()).trim(),"\\r\\n","\r\n")
%>
</textarea>
<input type=hidden value='<%="\r\n【认定理由】"+StringFunction.replace(DataConvert.toString(opinionBo.getAttribute("PhaseOpinion2").getString()).trim(),"\\r\\n","\r\n")%>' name=<%="R"+String.valueOf(iRow)+"L"%>>
<input type=hidden value='amarsoft' name=<%="R"+String.valueOf(iRow)+"R"%>> <!--用于判断是否插入一行一列-->
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>&nbsp;
</td>
</tr>
<%
}
%>
<tr>
<!--暂时隐藏
<td>
<%=new Button("转出至电子表格", "转出至电子表格", "spreadsheetTransfer(formatContent());", "", "").getHtmlText()%>
</td>-->
</tr>
</table>
</form>
</body>
<%
//如果没有意见或者没有找到对应的对象,则自动关闭
if (iCountRecord==0||sObjectNo.equals("")){
%>
<body style={color:red}>目前此业务还没有您可以查看的审批意见!</body>
<%
}
%>
<script type="text/javascript">
function formatContent(){
var sContentNew = "",i=0;
var iRowCount = 1;
if("<%=sSelfOpinionPhase%>" != "") iRowCount =<%=jRow%>;
else iRowCount =<%=iRow%>;
var iColCount = 2;
var sHeader = "【流水号】"+"<%=sObjectNo%>";
sContentNew += "<STYLE>";
sContentNew += ".table { border: solid; border-width: 0px 0px 1px 1px; border-color: #000000 black #000000 #000000}";
sContentNew += ".td { font-size: 9pt;border-color: #000000; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 0px; border-left-width: 0px}.inputnumber {border-style:none;border-width:thin;border-color:#e9e9e9;text-align:right;}.pt16songud{font-family: '黑体','宋体';font-size: 16pt;font-weight:bold;text-decoration: none}.myfont{font-family: '黑体','宋体';font-size: 9pt;font-weight:bold;text-decoration: none}"
sContentNew += "</STYLE>";
sContentNew += "<table align=center border=1 cellspacing=0 cellpadding=0 bgcolor=#E4E4E4 bordercolor=#999999 bordercolordark=#FFFFFF >";
sContentNew += "<tr>";
sContentNew += " <td colspan="+iColCount+" align=middle style='color:black;padding-left:2px;background:silver;font-size:18.0pt;font-weight:700;font-family:黑体;' height=53>业务审查审批意见</td>";
sContentNew += "</tr>";
sContentNew += "<tr>";
sContentNew += " <td colspan="+iColCount+" align=left style='background-color:#CCC8EB;color:black;padding-left:2px;'>"+sHeader+"</td>";
sContentNew += "</tr>";
for(i=1;i<=iRowCount;i++){
if(document.forms["opinion"].elements["R"+i+"R"].value == "amarsoft"){ //意见框只插入一行一列
sContentNew += "<tr height=50 style='mso-height-source:userset;height:38.1pt'>";
sContentNew += " <td colspan="+iColCount+" align=left style='background-color:#CCC8EB;color:black;padding-left:2px;mso-font-charset:0;vertical-align:top;text-align:left;'>"+document.forms["opinion"].elements["R"+i+"L"].value+"</td>";
sContentNew += "</tr>";
}else{
sContentNew += "<tr>";
sContentNew += " <td align=left>"+document.forms["opinion"].elements["R"+i+"L"].value+"</td>";
sContentNew += " <td align=left>"+document.forms["opinion"].elements["R"+i+"R"].value+"</td>";
sContentNew += "</tr>";
}
}
sContentNew += "</table>";
//防止因导出数据量太小导出EXCEL时变成乱码
sContentNew += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
sContentNew += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
sContentNew += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
sContentNew += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
return(sContentNew);
}
</script>
<%@ include file="/IncludeEnd.jsp"%>