当前位置:首页 > CN2资讯 > 正文内容

Java编写统计代理

13小时前CN2资讯
import java.util.ArrayList;
import java.util.List;

import lotus.domino.*;

public class ReceiveCount extends AgentBase
{

  public void NotesMain()
  {

    try
    {
      //定义发文单位和部门对象数组
      List utilAndDeptList = new ArrayList();
      //发文单位数组
      List utilList = new ArrayList();
        
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();
      //当前数据库
      Database currentDB = agentContext.getCurrentDatabase();
      //获得签收视图
      View view = currentDB.getView("viewReceiveCount");

      //定义发文单位名称和发文部门
      String utilName = "";
      String deptName = "";

      // 获得所有发文单位
      boolean isExist = false;
      Document doc = view.getFirstDocument();
      while (doc != null)
      {
        //获得文档中的单位名称
        utilName = doc.getItemValueString("DraftUnit");
        
        //若不在发文单位数组中,则表示未添加过,则添加到发文单位数组
        isExist = false;
        for (int i = 0; i < utilList.size(); i++)
        {
          if (utilName.equals(utilList.get(i)))
          {
            isExist = true;
            break;
          }
        }
        if (!isExist)
        {
          utilList.add(utilName);
        }

        doc = view.getNextDocument(doc);
      }

      // 获得所有发文单位和部门的类
      for (int i = 0; i < utilList.size(); i++)
      {
        //创建发文单位及部门名称的对象数组
        UnitAndDept ud = new UnitAndDept();
        //发文部门数组
        List deptList = new ArrayList();
        doc = view.getFirstDocument();
        while (doc != null)
        {
          //获得文档中的发文单位和发文部门
          utilName = doc.getItemValueString("DraftUnit");
          deptName = doc.getItemValueString("DraftDepartment");
            
          //若发文部门在数组中不存在,则添加
          if (utilName.equals(utilList.get(i)))
          {
            isExist = false;
            for (int j = 0; j < deptList.size(); j++)
            {
              if (deptName.equals(deptList.get(j)))
              {
                isExist = true;
                break;
              }
            }
            if (!isExist)
            {
              deptList.add(deptName);
            }
          }
          doc = view.getNextDocument(doc);
        }
        //设置保存发文单位和单位下部门的数组的对象属性
        ud.setUnitName((String) utilList.get(i));
        ud.setDeptNameList(deptList);
        //将发文单位和部门对象添加到数组中
        utilAndDeptList.add(ud);
      }

      //定义输出的HTML表格头
      String htmlString = "";
      htmlString = htmlString + "<table cellpadding=3 cellspacing=1 class='tbbg' width=100% align=center>";
      htmlString = htmlString + "<tr align='center' class='toptrbg'>";
      htmlString = htmlString + "<td>No.</td>";
      htmlString = htmlString + "<td>发文单位</td>";
      htmlString = htmlString + "<td>发文部门</td>";
      htmlString = htmlString + "<td>文件数</td>";
      htmlString = htmlString + "<td>待签收</td>";
      htmlString = htmlString + "<td>已签收</td>";
      htmlString = htmlString + "<td>拒签收</td>";
      htmlString = htmlString + "</tr>";
        
        
      //以下变量用于输出
      int no = 0;//序号
      String utilNameInList = "";//单位名称
      String deptNameInList = "";//部门名称
        
      //定义部门名数组,用于在对象中读取
      List deptNameList = null;
      //循环所有单位名称及单位名称下的部门名,符合条件的记录全部统计输出
      for (int i = 0; i < utilAndDeptList.size(); i++)
      {
        int totalCount = 0;//总文件数
        int waitedFileCount = 0;//待签收的文件数
        int receivedFileCount = 0;//已签收的文件数
        int refusedFileCount = 0;//拒收的文件数
        
        //在对象中获取单位名称和单位名称包括的部门名数组
        utilNameInList = ((UnitAndDept) utilAndDeptList.get(i)).getUnitName();
        deptNameList = ((UnitAndDept) utilAndDeptList.get(i)).getDeptNameList();

        //循环部门名数组,找出符合条件的进行统计
        for (int j = 0; j < deptNameList.size(); j++)
        {
          //获得数组中的一个部门名称
          deptNameInList = (String)deptNameList.get(j);
            
          //找出视图中单位名称和部门名称对应的记录
          doc = view.getFirstDocument();
          while (doc != null)
          {
            utilName = doc.getItemValueString("DraftUnit");
            deptName = doc.getItemValueString("DraftDepartment");
            //统计待签收、已签收、拒收的文档
            if (utilName.equals(utilNameInList) && deptName.equals(deptNameInList))
            {
              if(doc.getItemValueString("RemoteStauts").equals("<font color=blue>待签收</font>"))
              {
                waitedFileCount++;
              }
              else if(doc.getItemValueString("RemoteStauts").equals("已签收"))
              {
                receivedFileCount++;
              }
              else
              {
                refusedFileCount++;
              }
            }
              doc = view.getNextDocument(doc);
          }
          no++;//序号自增
          //计算总文件数
          totalCount    = waitedFileCount + receivedFileCount + refusedFileCount;
            
          //将统计后的结果输出
          htmlString = htmlString + "<tr bgcolor=f8f8f8 align='center'>";
          htmlString = htmlString + "<td>"+no+"</td>";
          htmlString = htmlString + "<td>" + utilNameInList + "</td>";
          htmlString = htmlString + "<td>"+deptNameInList+"</td>";
          htmlString = htmlString + "<td>"+totalCount+"</td>";
          htmlString = htmlString + "<td>"+waitedFileCount+"</td>";
          htmlString = htmlString + "<td>"+receivedFileCount+"</td>";
          htmlString = htmlString + "<td>"+refusedFileCount+"</td>";
          htmlString = htmlString + "</tr>";
        }
      }
      htmlString = htmlString + "</table>";
        
      //将输出结果显示在表单中
      Document currentDoc = agentContext.getDocumentContext();
      currentDoc.replaceItemValue("htmlstr", htmlString);

    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }
} 导入的类文件 import java.util.List;

public class UnitAndDept
{
  String unitName;
  List deptNameList;

  public String getUnitName()
  {
    return unitName;
  }

  public void setUnitName(String unitName)
  {
    this.unitName = unitName;
  }

  public List getDeptNameList()
  {
    return deptNameList;
  }

  public void setDeptNameList(List deptNameList)
  {
    this.deptNameList = deptNameList;
  }

}
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25092.html

    分享给朋友:

    “Java编写统计代理” 的相关文章

    海创VPS:高效香港虚拟专用服务器服务解析与用户体验分享

    在现代互联网中,拥有一台高效的虚拟专用服务器(VPS)变得越来越重要。作为一名用户,我总是在寻找可以满足我需求的优秀服务。海创VPS(Hytron)作为一家提供香港VPS服务的供应商,其在市场上独树一帜,以其高速度和可靠的网络连接备受青睐。 海创VPS专注于香港地区,接入了众多优质的上游带宽供应商线...

    国外CDN推荐:提升网站速度与安全的选择

    在这个数字化时代,CDN(内容分发网络)的重要性逐渐凸显。许多网站为了提高用户体验,确保内容能够快速、安全地到达用户的设备,纷纷开始引入CDN服务。那么,CDN到底是什么?它的功能和运作原理又是怎样的呢? 简单来说,CDN是一个分布式的网络,旨在提高网站的加载速度和可用性。它通过在全球范围内部署一系...

    SpartanHost VPS主机评测:高性能与安全性的理想选择

    在我开始探索VPS主机市场时,SpartanHost引起了我的注意。这个公司成立于2013年,自那时起便在行业中扎根,专注于提供高性能的VPS解决方案。他们使用的是基于KVM架构的主机产品,充分满足用户的需求。从他们的运营历史来看,尽管时间不算很久,但SpartanHost凭借其稳定的服务和灵活的选...

    轻云互联:助力企业数字化转型的云计算解决方案

    轻云互联是隶属于广州轻云网络科技有限公司的云计算服务提供商。自成立以来,轻云互联专注于云计算领域,提供一系列全方位的一体化解决方案。这些解决方案涵盖了云计算产品、租用托管服务、云服务器、裸金属服务器、云虚拟主机以及游戏云服务等。走进轻云互联,你会发现这里不仅是一个技术创新的平台,更是一个通过边缘计算...

    如何使用NameSilo优惠码享受域名注册折扣

    在寻找域名注册服务时,NameSilo可能是你一个不错的选择。它以其友好的价格和高质量的服务以及多样化的优惠活动而受到用户青睐。尤其当我第一次尝试注册域名时,NameSilo给我的第一印象便是其简单易用的注册流程和丰厚的折扣方式。 使用NameSilo的最大的优势之一,就是能够享受到各种折扣码。许多...

    Zgo VPS:高性能虚拟专用服务器的最佳选择

    在2021年,ZgoCloud(最初名为Zgovps)如雨后春笋般成立于美国特拉华州。作为一家新兴的技术公司,我们专注于提供高性能的虚拟专用服务器(VPS),这让我对公司的前景充满了期待。我们最初的使命是为各种用户提供可靠的网络解决方案,而现在我们已经成长为行业内的一股重要力量。 我们的全球数据中心...