<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.Collection" %>
<%@ page import="java.util.ArrayList" %>
<%@ 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.formEngine2.*" %>
<%@ page import="net.sz600.formEngine.*" %>
<%@ 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;
}
td{
	word-break : break-all; 
}
</style>
</head>
<%
	String moduleNameRelate = SzConvert.toSpaceStr(request.getParameter("moduleNameRelate"));
	String formNameRelate = SzConvert.toSpaceStr(request.getParameter("formNameRelate"));
	String sKEYRelate = SzConvert.toSpaceStr(request.getParameter("KEYRelate"));
  //取关联的设置 
	BdViewRelate bdViewRelate = new BdViewRelate();
	String sPath_str[][] = bdViewRelate.getViewRelatePath(request);
	String currentViewRelate[] = bdViewRelate.getCurrentViewRelate();
	String moduleName = currentViewRelate[5];
	String formName = currentViewRelate[6];

	String sRelateCond = bdViewRelate.getRelateCond(sKEYRelate);

	int iLen_Path = 0;
	if (sPath_str != null) {
	  iLen_Path = sPath_str.length;
	}	
%>

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<% if (iLen_Path >0) { %>
  <tr>
    <td height="35">  
      <table border=0 cellpadding=0 cellspacing=0 height="30">  
        <tr align="center"> 

             <td class="line_01"></td>
<%
  for (int i_title =0; i_title<iLen_Path; i_title++) {
	if (sPath_str[i_title][0].equals("")) {
		continue;
	}
	if (sPath_str[i_title][4].equals("2") && !isBarManager_SESSION) {
		continue;
	}
%>
	      <td valign="bottom" class="<%=sPath_str[i_title][1]%>1"></td>  
	      <td class="<%=sPath_str[i_title][1]%>2" OnMouseOver="javascript:TabMouseOver(this);" OnMouseOut="javascript:TabMouseOut(this);"> 
	        <a href="<%=sPath_str[i_title][0]%>"><%=sPath_str[i_title][2]%></a>
              </td>  
              <td valign="bottom" class="<%=sPath_str[i_title][1]%>3"></td>
<%
  }
%>
              <td class="line_02"></td>
              <td class="line_03"></td>
        </tr>  
      </table>  
    </td>  
  </tr>
<% } %>
</table>

<script language="javascript">
  var vTabClass = "";
  function TabMouseOver(v) {
        vTabClass = v.className;
	v.className = "tab_12";
  }
  function TabMouseOut(v) {	
	v.className = vTabClass;
  }
</script>
<%    
		//根据表单取得moduleName, formName
		LcForm lcForm = new LcForm();
		LcFormInfo lcFormInfo = null;    
    //System.out.println("moduleName=" + moduleName);
    //System.out.println("formName=" + formName);
    if (moduleName.equals("") || formName.equals("")) {
    	out.println("还没有设置相关表单信息！");
    	return;
    }

    //找出关联的信息
    BdRelateForm bdRelateForm = new BdRelateForm();
    ArrayList listRelate = bdRelateForm.getRelateList(moduleName, formName);
    Iterator iterRelate = null;
    BdRelateFormInfo bdRelateFormInfo = null;

		BdValueControl bdValueControl = new BdValueControl(moduleName, formName);
    //int iIndexLogin = bdValueControl.getIndexLogin();
    //System.out.println(iIndexLogin);
    int iFormID = SzConvert.toInt(bdValueControl.getFormID());
  	String assistant = bdValueControl.getAssistant();  
  	String sKeyField = bdValueControl.getKeyField();
		boolean hasFlow = bdValueControl.getHasFlow();
		String allograph = bdValueControl.getAllograph(); //是否有代录人
		String printTemp = bdValueControl.getPrintTemp();
		String sWeboffice = bdValueControl.getWebOffice();
		int iFlowID = 0;

		String strSelectName = bdValueControl.getSelectName(); //是否有关联选择
		//是否有关联选择:支持逗号或分号
		BdListSelect bdListSelect = new BdListSelect();
		String strSelectCond = bdListSelect.genSelectCond(strSelectName, request, "selectName");

    /////////////////////////////////////////流程相关
    LcFlowControl lcFlowControl = new LcFlowControl();
    //根据信息ID，获取流程总体办理状态FlowState
    String sState = "";
    //sState = lcFlowControl.getFlowStateName(iFormID, iInfoID); 
    //判断是否能删除、修改
    boolean hasSend = false; //是否已经发送出去
    //hasSend = lcFlowControl.hasSend(iFormID, iInfoID);
    //获取提交的参数
    String flowType = SzConvert.toSpaceStr(request.getParameter("flowType"));
		if (flowType.equals("")) {
			flowType = "-2";
		}	    
    //获取提交的参数
    String sType = SzConvert.toZeroStr(request.getParameter("type"));
    String sPKEY = SzConvert.toZeroStr(request.getParameter("PKEY"));
    String sPage = SzConvert.toZeroStr(request.getParameter("page"));
    String sSearch = SzConvert.toHTMLString(SzConvert.strWriteDataHTML(request.getParameter("txtSearch"))) ;
    String sSearch2 = SzConvert.strWriteData(request.getParameter("txtSearch"));    
    String sSearchName = SzConvert.strWriteData(request.getParameter("txtSearchName"));

    String sTable_type = "";
    //读取数据
    String sSearchCond = SzConvert.strWriteDataHTML(request.getParameter("searchCond"));


    String sCond = bdValueControl.getCond(iFormID, iDLID_SESSION, iBMID_SESSION
    		, isBarManager_SESSION, sSearchCond, isDataCanSee_SESSION
    		, szCOMPANY_SESSION, "", "", flowType, strSelectCond);
		if (!sRelateCond.equals("")) {
			sCond += " AND " + sRelateCond;
		}

    String sSortField = SzConvert.toSpaceStr(request.getParameter("txtSortField")); 
    int iSortOrder    = Integer.parseInt(SzConvert.toZeroStr(request.getParameter("txtSortOrder"))); 
    if (sSortField.equals("")) { 
      sSortField = bdValueControl.getKeyField();
      iSortOrder = SzProperties.I_SortOrder_DESC;
    } 

    int iCurrentPage = 1;
    
    try {
        iCurrentPage =  Integer.parseInt(sPage);
    }catch(Exception e) {
    }
       
    Collection coll = bdValueControl.getArrayList(sCond, sSortField, iSortOrder, iCurrentPage, 6, sSearch2); 
    BdFormControl bdFormControl = new BdFormControl(); 
    Iterator iter = null;
    if (coll != null) {
    	iter = coll.iterator();
    } else {
    	out.println(bdFormControl.getFormCheckInfo(iFormID));
    	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;
		}        

    
    //2010-2-21
    BdPopedom bdPopedom = new BdPopedom();        
    String strDenyField = bdPopedom.getDenyField(iFormID, 0, iDLID_SESSION);
        
%>
<!-----上面的工具栏------>

<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="searchCond" value="<%=sSearchCond%>">
  <input type="hidden" name="sCond" value="<%=sCond%>">
  <input type="hidden" name="FormID" value="<%=iFormID%>">
  <input type="hidden" name="moduleNameRelate" value="<%=moduleNameRelate%>">
  <input type="hidden" name="formNameRelate" value="<%=formNameRelate%>">
  <input type="hidden" name="moduleName" value="<%=moduleName%>">
  <input type="hidden" name="formName" value="<%=formName%>">  
  <input type="hidden" name="KEYRelate" value="<%=sKEYRelate%>">  
  <tr>
    <td>
      <%=bdListSelect.selectButton(strSelectName,request, "selectName", "txtClass1") %>   
      <%
      if (hasFlow) {
      	String s_id[] = {"-2","-1","0","1","2"};
      	String s_name[] = {"全部","草稿","办理中","否决","办结"};
      	out.println(SzPageHelp.radioSubmit("flowType", s_id, s_name, flowType));
      }
      %>                    
    </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="moduleNameRelate" value="<%=moduleNameRelate%>">
  <input type="hidden" name="formNameRelate" value="<%=formNameRelate%>">
  <input type="hidden" name="moduleName" value="<%=moduleName%>">
  <input type="hidden" name="formName" value="<%=formName%>">    
  <input type="hidden" name="KEYRelate" value="<%=sKEYRelate%>">   
  <tr class="trClassTitle">
    <td width="5"><input type="checkbox" name="chkCheckAll" OnClick="javascript:CheckAll(formList, chkCheckAll, 'chkId');"></td>
    <% if (allograph.equals("1")) { %>
    <td>所属人员</td>
    <% } %>    
	<%=bdValueControl.printTableTitle(sSortField, iSortOrder,strLevel_SESSION)%>    
	<% 
		if (hasFlow) { 
			if (flowType.equals("0")) {
				out.println("<td>当前办理人员</td>");
				out.println("<td>剩余时间</td>");
				if (bPress) {
					out.println("<td>被催办</td>");
				}
			} else if (flowType.equals("2")) {
				out.println("<td>办结时间</td>");
				out.println("<td>是否超时</td>");				
			}
			out.println("<td>总状态</td>"); 
		}	
	%>     	
    <td>操作</td>
  </tr>
  
<%
    String value_str[] = null;
    int iKeyValue = 0;
    int iIndexKey = bdValueControl.getIndexKey();

    if (iIndexKey == -1) {
    	iIndexKey = 0;
    }
    int iListFieldLen = 0;
	
		if (hasFlow) {
    	iListFieldLen = 3 + bdValueControl.getListFieldLen() ;
    	if (flowType.equals("0")) {
    		iListFieldLen = iListFieldLen + 2;
				if (bPress) {
					iListFieldLen ++;
				}				
    	} else if (flowType.equals("2")) {
    		iListFieldLen += 2;
    	}
    } else {
    	iListFieldLen = 2 + bdValueControl.getListFieldLen() ;
    }
    if (allograph.equals("1")) {
    	iListFieldLen ++;
    }
    boolean sameLogin = false;
    boolean sameDepart = false;
    //2011-06-08 部门负责人可修改部门内人员的数据
    boolean departManager = false;	//判断本人是否该数据的部门负责人。
    String managerDepartID = SzUserHelp.getInstance().getManageDepartID(iDLID_SESSION);
		//=======================================
    
    //归档状态
    LcPigonhole pigonhole = new LcPigonhole();
    boolean hasPigonhole = false;
    int iState = 0;   
    
    String sRelateInfo = "";
    String loginName2 = "";
    
    boolean canUpdate = false;
    
    String strDenyField2 = "";
    boolean readonly = false;
    String s_transact[] = null;
    String sPressCount = "";
 
    LcAssistant lcAssistant = new LcAssistant();
    LcStep lcStep = new LcStep();
  
    while (iter != null && iter.hasNext()) {
    	value_str = (String[])iter.next();
    	iKeyValue = SzConvert.toInt(value_str[iIndexKey]);
    	if (value_str == null) {
    		continue;
    	}
    	strDenyField2 = bdPopedom.getDenyField(iFormID, iKeyValue, iDLID_SESSION);
        hasSend = lcFlowControl.hasSend(iFormID, iKeyValue); 
        iState = lcFlowControl.getFlowState(iFormID, iKeyValue);        
        iFlowID = lcFlowControl.getFlowID(iFormID, iKeyValue);
        i++;
        
        sameLogin = bdValueControl.sameLogin(iDLID_SESSION, value_str);        
        sameDepart = bdValueControl.sameDepart(iBMID_SESSION, value_str); 
  	
        loginName2 = bdValueControl.getLoginName2(value_str);
        //2011-06-08 部门负责人可修改部门内人员的数据
        //canUpdate = bdFormControl.canUpdate(moduleName, formName, isBarManager_SESSION, hasSend, sType, iKeyValue, sameLogin, sameDepart);
        departManager = bdValueControl.departManager(managerDepartID, value_str);
        canUpdate = bdFormControl.canUpdate(moduleName, formName, isBarManager_SESSION, hasSend, sType, iKeyValue, sameLogin, sameDepart, departManager);
        //=================================================	
        if ( !sRelateInfo.equals("") && canUpdate) {
        	canUpdate = bdRelateForm.canUpdate(iFormID, iKeyValue); 
        }
        canUpdate = false;
        readonly = true;

%>
  <tr  onMouseOver="javascript:this.className='trMouseOver'" 
       onMouseOut="javascript:this.className='trMouseOut'"
       onDblClick="javascript:showOperatorWin('div','<%=i %>',85)"       
       >
    <td width="5" title="<%=i%>">
      <% if (readonly) {%> 
      <input type="checkbox" disabled>
      <% } else { %>
      <input type="checkbox" name="chkId" id="chkId" value="<%=iKeyValue%>">	  
      <% } %>    
    </td>
    <% if (allograph.equals("1")) { %>
    <td><%=loginName2%>&nbsp;</td>
    <% } %>
    <%=bdValueControl.printTableValue(value_str, strDenyField, strDenyField2, 0, sType, iKeyValue)%>
	<% 
	   if (hasFlow) { 
			if (flowType.equals("0")) {
				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))
				            + "次";
				out.println("<td>" + s_transact[0] + "</td>");
				out.println("<td>" + s_transact[1] + "</td>");
				if (bPress) {
				out.println("<td>" + sPressCount + "</td>");
				}
			} else if (flowType.equals("2")) {
				s_transact = lcFlowControl.getFinishInfo(iFormID, iKeyValue);
				out.println("<td>" + s_transact[0] + "</td>");
				out.println("<td>" + s_transact[1] + "</td>");				
			}
			out.println("<td>" + lcFlowControl.getFlowStateName(iFormID, iKeyValue) + "&nbsp;</td>"); 
	   } 
	%>   
    <td>   
    	<a href="javascript:FormSubmit(formPage,'update.jsp?OPERATOR=detail&type=<%=sType%>&KEY=<%=iKeyValue%>');">详情</a> 
    </td>
  </tr>
<%
    }
    out.println(SzPageHelp.outIndexTableTr(i, 6, iListFieldLen));
%>
    
  </form>  
</table>  

<!-----下面的工具栏------>
<table width="100%">
  <form name="formPage" method="post">
  <input type="hidden" name="flowType" value="<%=flowType%>">
  <input type="hidden" name="type" value="<%=sType%>">
  <input type="hidden" name="txtSearchName" value="<%=sSearchName%>">
  <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="moduleNameRelate" value="<%=moduleNameRelate%>">
  <input type="hidden" name="formNameRelate" value="<%=formNameRelate%>">
  <input type="hidden" name="moduleName" value="<%=moduleName%>">
  <input type="hidden" name="formName" value="<%=formName%>">    
  <input type="hidden" name="KEYRelate" value="<%=sKEYRelate%>">   
  <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="moduleNameRelate" value="<%=moduleNameRelate%>">
  <input type="hidden" name="formNameRelate" value="<%=formNameRelate%>">
  <input type="hidden" name="moduleName" value="<%=moduleName%>">
  <input type="hidden" name="formName" value="<%=formName%>">    
  <input type="hidden" name="KEYRelate" value="<%=sKEYRelate%>">      
</form>
<script language="javascript" src="../../../share/js/commonTool.js"></script>
