⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aggetljdata.java.svn-base

📁 一个包含排班信息的模块 2.1. 最新排班 6 2.2. 所有排班 6 2.3. 日常排班统计 7 2.4. 排班管理 7 2.5. 班次配置 7 2.6. 部门人员配置 7
💻 SVN-BASE
字号:
package com.fzet.cois.dividework.agents;

import java.io.PrintWriter;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Vector;

import com.fzet.cois.common.scriptLib.Common;
import com.fzet.cois.common.scriptLib.ErrHandle;

import lotus.domino.AgentBase;
import lotus.domino.AgentContext;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.DocumentCollection;
import lotus.domino.NotesError;
import lotus.domino.NotesException;
import lotus.domino.Session;
import lotus.domino.View;
import lotus.domino.ViewEntry;
import lotus.domino.ViewEntryCollection;

import java.util.StringTokenizer;

/**
 * @author yeshq 取用户排班数据的运行逻辑: 1、 新文档? |-------------------------Y--------------------------| |N | 取所有的个人数据byUnid 判断sType | |---------- |循环取出所有的人员排班数据 |0(从本库取) |从配置中心取 | |
 *         |----------------------------------------------------- 返回XML
 * 
 * 
 * 返回值: 
 * Case 1: <Return>0</Return> 
 *             <Error>
 *                错误消息
 *             </Error>
 * 
 * Case 2: <Return>1</Return>
 *            <Content> 
 *             <rows> 
 *              数据体,包括所有返回的数据 
 *              <row>
 *               <cell>姓名</cell>
 *               <cell>组名</cell>
 *               <cell>周1数据</cell> 
 *               <cell>周2数据</cell> 
 *               <cell>周3数据</cell> 
 *               <cell>周4数据</cell> 
 *               <cell>周5数据</cell>
 *               <cell>周6数据</cell> 
 *               <cell>周7数据</cell> 
 *               <cell>周计数据</cell> 
 *               <cell>累计数据</cell> 
 *              </Document>
 *               …… * 
 *           </Data> 
 *          </Content>
 */
// modify by yeshq,2008-1-8凌晨,把xml格式改为dhtmlxGrid识别的格式
public class AgGetLjData extends AgentBase {

    public void NotesMain() {
	ErrHandle err = null; // 错误日志
	Session session = null; // 当前会话
	AgentContext ac = null; // 当前上下文环境
	Database dbMain = null;
	Database db = null; // 当前数据库
	View vwCalendar = null; // 日程安排查询视图
	ViewEntryCollection vecReturn = null; // 日程安排返回查询结果记录集实体
	ViewEntryCollection vecNstartReturn = null; // 日程安排返回查询结果记录集实体
	ViewEntry veReturn = null; // 查询结果集中一条实体
	ViewEntry veNstartReturn = null; // 查询结果集中一条实体
	ViewEntry veTemp = null;
	Document doc = null, docPerson = null , docNstartPaib;// 当前文档
	PrintWriter pw = null; // 输出流
	String sQuery = null; // 查询参数
	String sDeptName = null, sUNID = null; // 查询条件------当前用户名称
	String sGroup = null; // 用户所有在组
	float nZj;
	float nLj;
	StringBuffer sbResult = new StringBuffer(); // 输出结果字符串缓冲:查询结果
	Document docTemp = null; // 条目字符串变量

	DocumentCollection dc = null;

	try {
	    // 初始化过程
	    session = getSession();
	    ac = session.getAgentContext();
	    doc = ac.getDocumentContext();
	    db = ac.getCurrentDatabase();
	    pw = getAgentOutput();
	    dbMain = Common.getMainDb(session);
	    // 初始化错误日志类
	    err = new ErrHandle(session, 0, "", "agGetLjData.xml");

	    // 取得查询参数
	  //  sQuery = doc.getItemValueString("Query_String_Decoded");
	    // 取UNID
	//    sUNID = Common.parseParameter(sQuery, "UNID");
	      sUNID = doc.getUniversalID();
	    // 提取当部门户名称
	 //   sDeptName = Common.parseParameter(sQuery, "DeptName");
	      sDeptName = doc.getItemValueString("Dept");
	      if (sDeptName == null)
		  throw new NotesException(NotesError.NOTES_ERR_OBJECT_NOT_FOUND, "未找到参数DeptName");
	 //   String sStartday = Common.parseParameter(sQuery, "start_day");
	      String sStartday = doc.getItemValue("start_day").firstElement().toString();

		Document oriDoc = db.getDocumentByUNID(sUNID);
		if (oriDoc != null) { // 说明是已保存过的文档
		    View vwPersonPaib = db.getView("vwPaibIndx");
		    if (vwPersonPaib == null) {
			Common.returnXML(pw, "<root><Return>0</Return><Error>vwPaibIndx!</Error></root>");
			return;
		    }
		    vwPersonPaib = db.getView("vwPersonPaib");
		    if (vwPersonPaib == null) {
			Common.returnXML(pw, "<root><Return>0</Return><Error>未找到视图vwPersonPaib!</Error></root>");
			return;
		    }
		    
		    //		  计算下周开始日期
		    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		    sStartday = df.format(new java.util.Date(df.parse(sStartday).getTime()));
		    String sNstartday = df.format(new java.util.Date(df.parse(sStartday).getTime() + 7 * 24 * 60 * 60 * 1000));
		    
		    //		  查找下周排班数据
		    vecNstartReturn = vwPersonPaib.getAllEntriesByKey(sNstartday + sDeptName, true);
		    while (vecNstartReturn.getCount()!=0) {	    
		    	veNstartReturn = vecNstartReturn.getFirstEntry();
		    	while (veNstartReturn != null) {
		    		docNstartPaib = veNstartReturn.getDocument();
		    		// 查找本周排班数据
		    		vecReturn = vwPersonPaib.getAllEntriesByKey(sStartday + sDeptName, true);
		    		veReturn = vecReturn.getFirstEntry();
		    		while (veReturn != null) {
		    			docPerson = veReturn.getDocument();
		    			if(docPerson.getItemValueString("name").trim().equals(docNstartPaib.getItemValueString("name").trim())){
//		    				System.out.println(docPerson.getItemValueString("name")+docNstartPaib.getItemValueString("name"));
		    				nZj = Float.parseFloat(docPerson.getItemValueString("Zj"));
		    				nLj = Float.parseFloat(docPerson.getItemValueString("Lj"));
		    				docNstartPaib.replaceItemValue("Lj", String.valueOf(nZj+nLj));
		    				docNstartPaib.save();
		    				break;
		    			}		    		
		    		docPerson.recycle();
		    		veTemp = veReturn;
		    		veReturn = vecReturn.getNextEntry(veReturn);
			    	veTemp.recycle();
		    		}
		    	docNstartPaib.recycle();
		    	veTemp = veNstartReturn;
	    		veNstartReturn = vecNstartReturn.getNextEntry(veNstartReturn);
	    		veTemp.recycle();
		    	}
		    sStartday = sNstartday;
		    sNstartday = df.format(new java.util.Date(df.parse(sStartday).getTime() + 7 * 24 * 60 * 60 * 1000));
		    vecNstartReturn = vwPersonPaib.getAllEntriesByKey(sNstartday + sDeptName, true);
		    }
		}
	    // 防止F5刷新出错,所以加上窗口关闭,by yeshq, 2008/1/10
		pw.println("<script language=javascript>alert(\"排班已提交成功!\");window.close();</script>");

	} catch (NotesException e) {
	    StringBuffer sbReturn = new StringBuffer().append("<root><Return>0</Return><Error>").append(e.text).append(
		    "</Error></root>");
	    Common.returnXML(pw, sbReturn.toString());
	    err.record(true, e.id, e.text);
	    e.printStackTrace();
	} catch (Exception e) {
	    StringBuffer sbReturn = new StringBuffer().append("<root><Return>0</Return><Error>").append(e.toString())
		    .append("</Error></root>");
	    Common.returnXML(pw, sbReturn.toString());
	    err.record(true, 0, e.toString());
	    e.printStackTrace();
	} finally {
	    // 释放所有申请的资源
	    try {
		if (doc != null)
		    doc.recycle();
		if (veReturn != null)
		    veReturn.recycle();
		if (vecReturn != null)
		    vecReturn.recycle();
		if (vwCalendar != null)
		    vwCalendar.recycle();
		if (db != null)
		    db.recycle();
		if (ac != null)
		    ac.recycle();
		if (session != null)
		    session.recycle();
	    } catch (NotesException e) {
		System.out.println(e.text);
		e.printStackTrace();
	    }
	}
    }

    public String[] split(String source, String sign) {
	StringTokenizer commaToker = new StringTokenizer(source, sign);
	String[] result = new String[commaToker.countTokens()];
	for (int i = 0; commaToker.hasMoreTokens(); i++)
	    result[i] = commaToker.nextToken();
	return result;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -