<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.Collection" %>
<%@ page import="net.sz600.basicdata.*" %>
<%@ page import="net.sz600.tool.SzConvert" %>
<%@ page import="net.sz600.database.SzPageInfo" %>
<%@ page import="net.sz600.system.SzProperties" %>
<%@ page import="net.sz600.system.SzLevelNumber" %>
<%@ page import="net.sz600.system.SzPageHelp" %>
<%@ page import="net.sz600.flow.*" %>
<%@ page import="net.sz600.system.*" %>
<%@ page import="net.sz600.formEngine2.*" %>
<%@ include file="/sessionInfo.jsp"%>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="<%=strSkin_SESSION%>/css2007.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="<%=strLevel_SESSION%>/share/js/operatorWin.js"></script>
<style type="text/css">
.div{
	position: absolute;
	z-index: 1;
	display:none;
	background-color: #cccccc;
	border: 0px;
	border-color: black;
	border-style: solid;
}
</style>
</head>
<%

    int iFormID = SzConvert.toInt(request.getParameter("FormID"));
    //取得表单的信息
    String moduleName = "";
    String formName = "";
	//根据表单取得moduleName, formName
	LcForm lcForm = new LcForm();
	LcFormInfo lcFormInfo = null;    
    if (iFormID == 0) {
    	moduleName = SzConvert.toSpaceStr(request.getParameter("moduleName"));
    	formName = SzConvert.toSpaceStr(request.getParameter("formName")); 
    	//
    	iFormID = lcForm.getKeyByCond(moduleName, formName); 
    } else {
    	lcFormInfo = (LcFormInfo)lcForm.getInfoByKey(iFormID);    
    	if (lcFormInfo != null) {
    		moduleName = lcFormInfo.getBDLJ();
    		formName = lcFormInfo.getBDBY1();  
    	}
    }
    //System.out.println("moduleName=" + moduleName);
    //System.out.println("formName=" + formName);
    if (moduleName.equals("") || formName.equals("")) {
    	out.println("还没有设置相关表单信息！");
    	return;
    }
    
	BdValueControl bdValueControl = new BdValueControl(moduleName, formName);
	String sTableAnnex = bdValueControl.getTableAnnex();
	String assistant = bdValueControl.getAssistant(); 
    String sKeyField = bdValueControl.getKeyField();
    boolean hasFlow = bdValueControl.getHasFlow();
	String printTemp = bdValueControl.getPrintTemp();
	String sWeboffice = bdValueControl.getWebOffice();
	int iFlowID = 0;    
%>	
<%@ include file="/share/title.jsp"%>
<%
    //获取提交的参数
    String sType = SzConvert.toZeroStr(request.getParameter("type"));
    String sPKEY = SzConvert.toZeroStr(request.getParameter("PKEY"));
    String sPage = SzConvert.toZeroStr(request.getParameter("page"));
    String sSearch = SzConvert.strWriteData(request.getParameter("txtSearch"));

		String datefield = SzConvert.strWriteData(request.getParameter("datefield"));   //日期字段， 
	  String sSearchName = SzConvert.strWriteData(request.getParameter("txtSearchName")); //查询的人员姓名
	  String sSearchDepart = SzConvert.strWriteData(request.getParameter("txtSearchDepart")); //查询的部门名称
	  //查询时间段
	  String sSearchBegin = SzConvert.strWriteData(request.getParameter("txtSearchBegin")); //开始日期
	  String sSearchEnd = SzConvert.strWriteData(request.getParameter("txtSearchEnd"));     //结束日期        
	  
	  BdFormHelp bdFormHelp = new BdFormHelp();
    /////////////////////////////////////////流程相关
    LcFlowControl lcFlowControl = new LcFlowControl();
    //根据信息ID，获取流程总体办理状态FlowState
    String sState = "";
    //sState = lcFlowControl.getFlowStateName(iFormID, iInfoID); 
    //判断是否能删除、修改
    boolean hasSend = false; //是否已经发送出去
    //hasSend = lcFlowControl.hasSend(iFormID, iInfoID);
    //获取待办的信息ID
    String str_InfoID = lcFlowControl.getTransactInfoID(iFormID, iDLID_SESSION);      

    String sTable_type = "";
    //读取数据

    String sCond = sKeyField + " IN (" + str_InfoID + ")";
    if (!sPKEY.equals("0")) {
        sCond += "";
    }
    String sSortField = SzConvert.toSpaceStr(request.getParameter("txtSortField")); 
    int iSortOrder    = Integer.parseInt(SzConvert.toZeroStr(request.getParameter("txtSortOrder"))); 
    if (sSortField.equals("")) { 
      sSortField = sKeyField;
      iSortOrder = SzProperties.I_SortOrder_DESC;
    } 
    int iCurrentPage = 1;
    try {
        iCurrentPage =  Integer.parseInt(sPage);
    }catch(Exception e) {
    }

    //2014-11扩展条件：日期区间；姓名；部门
    sCond = bdValueControl.appendCond(sCond, datefield, sSearchBegin,sSearchEnd, sSearchName, sSearchDepart);
    
    Collection coll = bdValueControl.getArrayList(sCond, sSortField, iSortOrder, iCurrentPage, sSearch); 
    Iterator iter = null;
    if (coll != null) {
    	iter = coll.iterator();
    } else {
    	out.println("读取不到数据");
    	return;
    }
    SzPageInfo pageInfo = bdValueControl.getPageInfo();
    int iPageCount = pageInfo.getPageCount();
    int iRecordCount = pageInfo.getRecordCount();
    iCurrentPage = pageInfo.getCurrentPage();
    int i = 0;
    SzData szData = null;  
        
    boolean bPress = false;
		if ((";" + assistant + ";").indexOf(";6;") >=0) {
			bPress = true;
		}    
		boolean bSkip = false;
		if ((";" + assistant + ";").indexOf(";7;") >=0) {
			bSkip = true;
		}     
		
	BdFormControl bdFormControl = new BdFormControl();
	SzAnnex szAnnex = new SzAnnex(sTableAnnex);
%>
<!-----上面的工具栏------>

<table width="100%">
  <form name="formBar" method="post">
  <input type="hidden" name="page" value="<%=sPage%>">
  <input type="hidden" name="type" value="<%=sType%>">
  <input type="hidden" name="txtSearch" value="<%=sSearch%>">
  <input type="hidden" name="txtSortField" value="<%=sSortField%>"> 
  <input type="hidden" name="txtSortOrder" value="<%=iSortOrder%>"> 
  <input type="hidden" name="FormID" value="<%=iFormID%>">   
  
  <input type="hidden" name="datefield" value="<%=datefield%>">  
  <tr>
    <td><% out.println(bdFormControl.printFormDesc(Integer.parseInt(sMKID_SESSION),iFormID));%>&nbsp;
      <%
      	out.println(bdFormHelp.appendSearchInfo(bdValueControl, datefield, sSearchBegin, sSearchEnd, sSearchName, sSearchDepart, "index_transact.jsp"));
      %>    
    </td>
  </tr>
  </form>
</table>

<!-----信息列表----->
<table width="100%" border="1" bordercolorlight="#C0C0C0" bordercolordark="#FFFFFF" class="tableClass" cellpadding="1" cellspacing="0">
  <form name="formList" method="post">
  <input type="hidden" name="page" value="<%=iCurrentPage%>">
  <input type="hidden" name="txtSearch" value="<%=sSearch%>">
  <input type="hidden" name="type" value="<%=sType%>">
  <input type="hidden" name="txtSortField" value="<%=sSortField%>"> 
  <input type="hidden" name="txtSortOrder" value="<%=iSortOrder%>"> 
  <input type="hidden" name="FormID" value="<%=iFormID%>">   
  <input type="hidden" name="datefield" value="<%=datefield%>">
  <input type="hidden" name="txtSearchName" value="<%=sSearchName%>">  
  <input type="hidden" name="txtSearchDepart" value="<%=sSearchDepart%>">
  <input type="hidden" name="txtSearchBegin" value="<%=sSearchBegin%>">
  <input type="hidden" name="txtSearchEnd" value="<%=sSearchEnd%>">   
  <tr class="trClassTitle">
    <td width="5"><input type="checkbox" name="chkCheckAll" OnClick="javascript:CheckAll(formList, chkCheckAll, 'chkId');"></td>
    <%
    if (!sTableAnnex.equals("")) {
    	out.println("<td width='20' align='center'>" + SzPageHelp.annexImage(strSkin_SESSION, true) + "</td>");
    } 
    
    out.println("<td>&nbsp;</td>");            
    %>
	<%=bdValueControl.printTableTitle(sSortField, iSortOrder)%>  
	  <td>剩余时间</td>
	  <% if (bPress) { %>
	  <td>被催办</td>
	  <% } %>
    <td>总状态</td>       
    <td>操作</td>
  </tr>
<%
    String value_str[] = null;
    int iKeyValue = 0;
    int iListFieldLen = bdValueControl.getListFieldLen() + 4;
    if (bPress) {
    	iListFieldLen ++;
    }
    if (!sTableAnnex.equals("")) {
    	iListFieldLen++;
    }
    //增加待办已读
    iListFieldLen++;     
    String s_transact[] = null;
    LcAssistant lcAssistant = new LcAssistant();
    String sPressCount = "";
    boolean hasRead = false;
    while (iter != null && iter.hasNext()) {    	
    	value_str = (String[])iter.next();
    	iKeyValue = Integer.parseInt(value_str[0]);
    	if (value_str == null) {
    		continue;
    	}
      i++;
      hasSend = lcFlowControl.hasSend(iFormID, iKeyValue);
      iFlowID = lcFlowControl.getFlowID(iFormID, iKeyValue);
      s_transact = lcFlowControl.getCurrentTransactingInfo(iFormID, iKeyValue, "<br>", true);
			sPressCount = Integer.toString(lcAssistant.getPressCount(iFormID, iKeyValue, SzConvert.toInt(s_transact[3])))
        + "次/总"
        + Integer.toString(lcAssistant.getPressCount(iFormID, iKeyValue, 0))
        + "次";
%>
  <tr  onMouseOver="javascript:this.className='trMouseOver'" 
       onMouseOut="javascript:this.className='trMouseOut'"
       onDblClick="javascript:showOperatorWin('div','<%=i %>',85)"       
       >
    <td width="5" title="<%=i%>">
    <% if (!hasSend) { %>
      <input type="checkbox" name="chkId" id="chkId" value="<%=iKeyValue%>">    
    <% } else { %>
      <!--   <input type="checkbox" disabled>   -->
      <input type="checkbox" name="chkId" id="chkId" value="<%=iKeyValue%>">    
    <% } %>
    </td>
    <%
    if (!sTableAnnex.equals("")) {
    	out.println("<td width='20' align='center'>" + SzPageHelp.annexImage(strSkin_SESSION, szAnnex.hasAnnex(iKeyValue)) + "</td>");
    }
    hasRead = lcFlowControl.hasReadTransact(iFlowID, iFormID, iKeyValue, iDLID_SESSION);
    out.println("<td width='30' align='center'>" + SzPageHelp.newImage("", hasRead) + "</td>");
    
    %>
    <%=bdValueControl.printTableValue(value_str, "", "", 0, sType, iKeyValue,"transact", BdFormHelp.s_FROM_TRANSACT)%> 
    <td><%=s_transact[1] %></td>
    <% if (bPress) { %>
    <td><%=sPressCount %></td>
    <% } %>
    <td><%=lcFlowControl.getFlowStateName(iFormID, iKeyValue) %>&nbsp;</td>
    <td>
      <a onclick="showOperatorWin('div','<%=i %>',85)" href="#">操作</a>    
      <div id="div<%=i %>" class="div" style="left: 10px;top: 200px;width: 70px;">
      	<div style="padding-top:5px;padding-bottom:5px;position:relative; background-color:#cccccc;border: 0px;">
 				<div  class="Operation">    
    
      <a href="javascript:<%=bdFormHelp.getDetailFunc(assistant) %>(formPage,'update.jsp?OPERATOR=detail&type=<%=sType%>&KEY=<%=iKeyValue%>&from=1');">详情</a><br>
      <a href="javascript:FormSubmit(formPage,'update.jsp?OPERATOR=transact&type=<%=sType%>&KEY=<%=iKeyValue%>&from=1');">办理</a><br>
      <% if (!printTemp.equals("")  && BdFormHelp.canPrint(assistant, hasFlow, 0) ) { %>
      <a href="#" OnClick="javascript:PrintWinWord('<%=iKeyValue%>')">打印浏览</a><br>
      <% } %>
      <% if (hasFlow) { %>
      <a href="#" OnClick="javascript:FlowDetailWin('<%=iFlowID%>','<%=iKeyValue%>');">查看流程</a>
      <% } %>
      <% if (!sWeboffice.equals("")) { %>
      <a href="#" OnClick="javascript:OfficeDetailWin('<%=iKeyValue%>');">查看正文</a>
      <% } %>
      
      <a href="#" OnClick="javascript:hideOperatorWin('div');">取消菜单</a>
   			</div>
   			</div>
   		</div>             
    </td>
  </tr>
<%
    }
    out.println(SzPageHelp.outIndexTableTr(i, SzProperties.I_PageSize, iListFieldLen));
%>

  </form>
</table>

<!-----下面的工具栏------>
<table width="100%">
  <form name="formPage" method="post">
  <input type="hidden" name="type" value="<%=sType%>">
  <input type="hidden" name="txtSortField" value="<%=sSortField%>"> 
  <input type="hidden" name="txtSortOrder" value="<%=iSortOrder%>"> 
  <input type="hidden" name="FormID" value="<%=iFormID%>"> 
  <input type="hidden" name="datefield" value="<%=datefield%>">
  <input type="hidden" name="txtSearchName" value="<%=sSearchName%>">  
  <input type="hidden" name="txtSearchDepart" value="<%=sSearchDepart%>">
  <input type="hidden" name="txtSearchBegin" value="<%=sSearchBegin%>">
  <input type="hidden" name="txtSearchEnd" value="<%=sSearchEnd%>">    
  <tr>
    <td align="right">
      <%@ include file="/share/page/page_include.jsp"%>
    </td>
  </tr>
  </form>
</table>

<!-----这里包含要提交的内容--->
<form name="formHidden" method="post">
  <input type="hidden" name="type" value="<%=sType%>">
  <input type="hidden" name="page" value="<%=iCurrentPage%>">
  <input type="hidden" name="txtSearch" value="<%=sSearch%>">
  <input type="hidden" name="txtSortField" value="<%=sSortField%>"> 
  <input type="hidden" name="txtSortOrder" value="<%=iSortOrder%>"> 
  <input type="hidden" name="FormID" value="<%=iFormID%>">  
  <input type="hidden" name="datefield" value="<%=datefield%>">
  <input type="hidden" name="txtSearchName" value="<%=sSearchName%>">  
  <input type="hidden" name="txtSearchDepart" value="<%=sSearchDepart%>">
  <input type="hidden" name="txtSearchBegin" value="<%=sSearchBegin%>">
  <input type="hidden" name="txtSearchEnd" value="<%=sSearchEnd%>">      
</form>
<script language="javascript" src="../../share/js/commonTool.js"></script>
<script language="javascript">
  //弹出窗口，选择人员。这里特定是流程里某个步骤的选择人员。
  function OpenPigonholeWin(vFormID, vInfoID) {
    hideOperatorWin("div");
    var type = "all";
    var url = "../../flow/pigonhole/type_select.jsp?moduleId=23&FormID=" + vFormID + "&InfoID=" + vInfoID;
    //window.showModalDialog(url,window,"status=no;dialogWidth=750px;dialogHeight=450px");
    window.open(url,"","left=100,top=100,scrollbars=yes,resizable=yes,status=yes,width=750,height=450");   
  } 
  function OpenPressWin(vFormID, vInfoID) {
    hideOperatorWin("div");
    var type = "all";
    var url = "../../flow/press/win.jsp?FormID=" + vFormID + "&InfoID=" + vInfoID;
    //window.showModalDialog(url,window,"status=no;dialogWidth=650px;dialogHeight=300px");
    window.open(url,"","left=100,top=100,scrollbars=yes,resizable=yes,status=yes,width=650,height=300");
  }  
  function PrintWinWord(vKey) {
    hideOperatorWin("div");
    var vUrl = "printTemp.jsp?FormID=<%=iFormID%>&KEY=" + vKey + "&type=0&printTemp=<%=printTemp%>";
  	window.open(vUrl,"","left=20,top=20,width=600,height=600");
  	//window.showModalDialog(vUrl,window,"status=no;dialogWidth=720px;dialogHeight=550px");
  	//window.showModalDialog(vUrl,window,"status=no;dialogWidth=720px;");
  }
  
  function FlowDetailWin(vFlowID, vKey) {
  	hideOperatorWin("div");
    var vUrl = "../../flow/flow/draft.jsp?type=" + vFlowID + "&FormID=<%=iFormID%>&InfoID=" + vKey + "&OPERATOR=detail"; 
  	//window.open(vUrl,"","left=20,top=20,width=600,height=600");
  	//window.showModalDialog(vUrl,window,"status=no;dialogWidth=720px;dialogHeight=550px");
  	window.open(vUrl,"","left=20,top=20,width=720,height=550");  	
  }  
  function OfficeDetailWin(vKey) {
    hideOperatorWin("div");
    var vUrl = "documentEdit.jsp?WebOffice=<%=sWeboffice%>&FormID=<%=iFormID%>&KEY=" + vKey; 
  	//window.open(vUrl,"","left=20,top=20,width=600,height=600");
  	//window.showModalDialog(vUrl,window,"status=no;dialogWidth=850px;dialogHeight=800px");
  	window.open(vUrl,"","left=20,top=20,width=850,height=800");  	
  }    
</script>
<%
    ////如果要使用日历控件，必须输出这个calendarFrame
    out.println(SzPageHelp.calendar2Frame2());
%>
