亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? migrationutil.java.svn-base

?? 一個timesheet程序,用來統計開發人員的度量衡web在線程序.用于軟件行業
?? SVN-BASE
字號:
package com.nsi.components.util;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.nsi.control.exceptions.NsiEventException;
import com.nsi.persistence.DataSrcUtil;
import com.nsi.persistence.IsqlDataSource;
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.Calendar; 
import java.util.Date; 


/**
 * 
 * @author xavier.huang
 *
 */
public final class MigrationUtil {
	
	private static Log log = LogFactory.getLog(MigrationUtil.class);	
	
	private static final String GET_MIGRATION_DATA_SQL="SELECT " +
															"p.proj_name project_name," +
															"p.proj_info_start_date project_start_date," +
															"p.proj_info_finish_date project_end_date," +
															"u1.user_name userid," +
															"t.btask_cost_category activity_code,"+			
															"u2.user_name project_manager," +
															"h.bh_date effort_date," +
															"(h.bh_hours + h.bh_ot_hours) effort"+ 							
												 " FROM msp_projects p," +
												 	    "pms_users u1," +
												        "pms_users u2," +
												        "pms_billing_tasks t," +
												        "pms_billing_hours h," +
												        "pms_resources r"+
												  " WHERE p.proj_id = t.proj_id " +
												  	" AND p.proj_id = h.proj_id"+
												  	" AND p.proj_id = r.proj_id"+
												  	" AND t.btask_id = h.btask_id"+
												  	" AND u1.user_id = h.user_id"+
												  	" AND u2.user_id = r.user_id"+
												  	" AND r.role_id = 9"+
												  	" AND h.bh_date > getdate() - 7"+
												  	" AND h.bh_date < getdate()"+
												  	" ORDER BY p.proj_name,u1.user_name,h.bh_date";
	
	//weeks
	private static final String Mon="monday";
	private static final String Tue="tuesday";
	private static final String Wed="wednesday";
	private static final String Thu="thursday";
	private static final String Fri="friday";
	private static final String Sat="saturday";
	private static final String Sun="sunday";
	private static final String Zero="0.00";
	
	//fields
	private static final String PorjectName="project_name";
	private static final String EffortDate="effort_date";
	private static final String UserID="userid";
	private static final String Effort="effort";
	private static final String ActivityCode="activity_code";
	private static final String BeginningDate="beginningDate";
	
	private MigrationUtil()
	{
		
	}
	
	

	private static class MigtrationUtilHolder
	{
		static final MigrationUtil migrationUtil = new MigrationUtil();
	}
	
	/**
	 * @return an instance of MigrationUtil
	 */
	public static MigrationUtil getInstance()
	{
		return MigtrationUtilHolder.migrationUtil;
	}
	
	
	/**
	 * convert data for migration
	 * @param oriList
	 * @return
	 */
	public List<Map<String,String>> filterData(List<Map<String,String>> oriList)
	{		
		List<Map<String, String>> mergedList =new ArrayList<Map<String, String>>();
		Map<String, String> effortMap = new HashMap<String, String>();
		 
		boolean isLastRecord=false;
		
		for(int i=0;i<oriList.size()-1;i++)
		{
			Map<String, String> currentMap=oriList.get(i);			
			Map<String, String> nextMap=oriList.get(i+1);			 
			String project=currentMap.get(PorjectName);
			String userid=currentMap.get(UserID);
			String activityCode=currentMap.get(ActivityCode);
			String str_date=currentMap.get(EffortDate);		
			String weeks = getWeek(str_date);					
			String effort=currentMap.get(Effort);
			effortMap.put(weeks, effort);
			//Last record
			if(i==oriList.size()-2)
			{
				effortMap.put(getWeek(nextMap.get(EffortDate)),nextMap.get(Effort));
				isLastRecord=true;
			}			
			//merge records
			if(!(nextMap.get(PorjectName).equals(project)&&nextMap.get(UserID).equals(userid))&&nextMap.get(ActivityCode).equals(activityCode)||isLastRecord)
			{			
				//add weeks & beginning date fields
				currentMap.put(Sun, Zero);
				currentMap.put(Mon, Zero);
				currentMap.put(Tue, Zero);
				currentMap.put(Wed, Zero);
				currentMap.put(Thu, Zero);
				currentMap.put(Fri, Zero);
				currentMap.put(Sat, Zero);				
				currentMap.putAll(effortMap);
				//date
				java.sql.Date d = new java.sql.Date(System.currentTimeMillis()); 
				currentMap.put(BeginningDate, d.toString());				
				effortMap.clear();
				//remove invalid fields
				currentMap.remove(Effort);
				currentMap.remove(EffortDate);
				mergedList.add(currentMap);
			}		
		}		
		return mergedList;
	}
	
	
	/**
	 * convert data for migration
	 * @param oriList
	 * @return
	 */
	public List<Map<String,String>> mergeData(List<Map<String,String>> oriList)
	{		
		List<Map<String, String>> mergedList =new ArrayList<Map<String, String>>();
		Map<String, String> effortMap = new HashMap<String, String>();	 
		
		double saveEffort =0.00;
		
		for(int i=0;i<oriList.size()-1;i++)
		{
			Map<String, String> currentMap=oriList.get(i);			
			Map<String, String> nextMap=oriList.get(i+1);			
			String project=currentMap.get(PorjectName);
			String userid=currentMap.get(UserID);
			String activityCode=currentMap.get(ActivityCode);		
			String str_date=currentMap.get(EffortDate);		
			String weeks = getWeek(str_date);					
			double effort=Double.parseDouble( currentMap.get(Effort));
			currentMap.put(Sun, Zero);
			currentMap.put(Mon, Zero);
			currentMap.put(Tue, Zero);
			currentMap.put(Wed, Zero);
			currentMap.put(Thu, Zero);
			currentMap.put(Fri, Zero);
			currentMap.put(Sat, Zero);		
						
			if((nextMap.get(PorjectName).equals(project)&&nextMap.get(UserID).equals(userid))&&nextMap.get(ActivityCode).equals(activityCode))
			{
				if(str_date.equals(nextMap.get(EffortDate)))
				{
					saveEffort=saveEffort+effort;
				}
				else
				{
					effortMap.put(weeks, String.valueOf(saveEffort+effort));
					saveEffort=0.00;
				}				
			}
			else
			{					
				java.sql.Date d = new java.sql.Date(System.currentTimeMillis()); 
				currentMap.put(BeginningDate, d.toString());	
				effortMap.put(weeks, String.valueOf(effort+saveEffort));
				currentMap.putAll(effortMap);				
				saveEffort =0.00;
				effortMap.clear();
				//remove invalid fields
				currentMap.remove(Effort);
				currentMap.remove(EffortDate);
				mergedList.add(currentMap);				
			}			
			//Last record
			if(i==oriList.size()-2)			
			{
				nextMap.put(getWeek(nextMap.get(EffortDate)),nextMap.get(Effort));
				mergedList.add(nextMap);				
			}				
		}		
		return mergedList;
	}
	
	
	/**
	 * convert a date to week
	 * @param dstr
	 * @return
	 */
	public String getWeek(String dstr) 
	{		
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd",java.util.Locale.US); 
		String[] weekdays = new String[]{"", Mon,Tue,Wed,Thu,Fri,Sat,Sun};
		Calendar cd=Calendar.getInstance(); 
		try 
		{
			Date date = sf.parse(dstr);			
			cd.clear();
			cd.setTime(date);			
		}		
		catch (ParseException e)
		{			
			e.printStackTrace();
			log.error( "getWeek() caught ParseException: ", e );
		}		
		return weekdays[cd.get(Calendar.DAY_OF_WEEK)-1];
	}
	
	
	/**
	 * get data of migration
	 * @return
	 */
	public List<Map<String,String>> getMigDatalist()
	{		
		String sSql = GET_MIGRATION_DATA_SQL;		
		List<Map<String,String>> result = new ArrayList<Map<String,String>>();
		try
		{
			IsqlDataSource src = DataSrcUtil.getInstance().getDataSource();
			Connection conn = null;
			try
			{
				conn = src.getConnection("MSSQL");
				result = src.executeRetrieve(conn, sSql);
				src.closeConn(conn);
			}
			catch( SQLException se )
			{
				log.error( "getMigDatalist() caught SQLException: ", se );
			}
			catch( Exception ex )
			{
				log.error( "getMigDatalist() caught Exception: ", ex );
			}
			finally
			{
				src.closeConn(conn);
			}		
		}
		catch( NsiEventException nsiex )
		{
			log.error( "getMigDatalist() caught NsiEventException: ", nsiex );
		}
		return result;		
	} 
}	
	


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品视频yy9299一区| 丁香激情综合五月| 亚洲国产中文字幕在线视频综合| 久久婷婷国产综合精品青草| 久久综合色播五月| 日韩免费成人网| 日韩精品一区二区三区四区| 精品久久人人做人人爰| 精品国产一区二区在线观看| 久久久久久久性| 综合欧美亚洲日本| 亚洲精品成a人| 午夜免费欧美电影| 处破女av一区二区| 日本韩国一区二区三区视频| 欧美日韩夫妻久久| 久久久久亚洲综合| 亚洲国产精品久久久久秋霞影院| 亚洲va欧美va人人爽午夜| 国产一区二区视频在线| 成人一区二区视频| 在线不卡a资源高清| 亚洲国产电影在线观看| 亚洲男人天堂av网| 国产福利一区二区三区视频| 色激情天天射综合网| 久久影院午夜片一区| 亚洲h在线观看| 白白色亚洲国产精品| 日韩视频一区二区| 亚洲视频在线观看一区| 国产成人综合在线播放| 精品国产一区二区三区久久久蜜月 | 开心九九激情九九欧美日韩精美视频电影| 日韩精品91亚洲二区在线观看| 黄一区二区三区| 欧美性猛交一区二区三区精品 | 亚洲国产综合人成综合网站| 粉嫩av一区二区三区| 久久一日本道色综合| 麻豆精品一区二区| 777奇米成人网| 亚洲成人午夜影院| 欧美挠脚心视频网站| 亚洲成人在线免费| 欧美专区日韩专区| 亚洲国产中文字幕| 欧美日韩第一区日日骚| 天堂久久久久va久久久久| 在线免费观看日本欧美| 亚洲成av人片一区二区三区| 欧美日韩1区2区| 久久99国产乱子伦精品免费| 精品国产网站在线观看| 国内精品久久久久影院色| 国产午夜亚洲精品午夜鲁丝片| 国产成人aaa| 国产精品白丝在线| 欧美视频在线一区| 国模大尺度一区二区三区| 99久久精品费精品国产一区二区| 欧美一级高清片| 国产综合色视频| 亚洲日本在线观看| 欧美tk—视频vk| 不卡影院免费观看| 青青草原综合久久大伊人精品优势| 日韩欧美一区二区视频| a级高清视频欧美日韩| 美女被吸乳得到大胸91| 亚洲精品乱码久久久久| 精品人伦一区二区色婷婷| 色综合久久99| 高清国产一区二区| 国产呦精品一区二区三区网站| 精品久久久久久亚洲综合网| 色综合久久99| 国产91清纯白嫩初高中在线观看| 一区二区视频在线| 国产精品久久久久久久久久免费看 | 久久久久久久久久电影| 91精品福利在线一区二区三区| 99re这里只有精品6| 国产成人高清在线| 国产精品亚洲成人| 国产综合色在线| 国产一区二区三区| 精品午夜久久福利影院| 狂野欧美性猛交blacked| 青青草国产精品亚洲专区无| 亚洲国产一区二区a毛片| 亚洲国产一区二区三区青草影视| 亚洲天堂免费在线观看视频| 亚洲欧洲精品天堂一级| 日韩精品午夜视频| 男女性色大片免费观看一区二区 | 亚洲人成网站影音先锋播放| 欧美性生活大片视频| 国产一区二区三区日韩| 国产一区二区不卡在线| 毛片一区二区三区| 久久国产麻豆精品| 国产一区二区剧情av在线| 成人激情文学综合网| 成人的网站免费观看| 欧美日韩亚洲综合在线| 日韩一区二区三免费高清| 久久久精品人体av艺术| 亚洲天堂久久久久久久| 日本va欧美va精品| 波多野结衣精品在线| 欧美日韩一级二级| 久久综合精品国产一区二区三区| 精品乱码亚洲一区二区不卡| 亚洲国产精品成人久久综合一区| 亚洲人123区| 国产精品自拍一区| 欧美一级专区免费大片| 欧美国产一区在线| 蜜臀久久99精品久久久久久9| 不卡视频一二三四| 精品捆绑美女sm三区| 亚洲精品成人在线| av高清久久久| 国产欧美日韩在线视频| 美女精品自拍一二三四| 欧美三级日本三级少妇99| 国产精品免费aⅴ片在线观看| 日韩不卡在线观看日韩不卡视频| 日本道色综合久久| 亚洲欧美日韩在线不卡| a美女胸又www黄视频久久| 久久久久久久综合日本| 久久精品国产精品亚洲精品 | 精品88久久久久88久久久 | 99精品偷自拍| 国产精品卡一卡二| 91在线码无精品| 一区二区三区中文字幕在线观看| 成人国产在线观看| 久久久国产精品不卡| 国产精品传媒视频| 国产.精品.日韩.另类.中文.在线.播放| 日韩一区二区免费电影| 日韩福利电影在线观看| 欧美一区二区三区在线电影| 日韩精品国产欧美| 日韩午夜三级在线| 国模少妇一区二区三区| 国产精品人成在线观看免费| 91丨国产丨九色丨pron| 亚洲另类在线视频| 69堂亚洲精品首页| 国产高清在线精品| 亚洲欧美电影一区二区| 在线免费观看成人短视频| 久久国内精品视频| 一区二区中文视频| 99久久精品免费观看| 亚洲午夜精品久久久久久久久| 精品国精品国产| 欧美三级在线播放| 99精品久久久久久| 韩国女主播成人在线| 一区二区三区中文字幕在线观看| 久久综合精品国产一区二区三区| 91毛片在线观看| 国产成人av电影免费在线观看| 香蕉久久一区二区不卡无毒影院| 国产精品免费人成网站| 精品成人私密视频| 日韩视频在线观看一区二区| 欧美私模裸体表演在线观看| 波多野洁衣一区| 粉嫩蜜臀av国产精品网站| 激情丁香综合五月| 麻豆国产精品官网| 美女爽到高潮91| 奇米888四色在线精品| 五月婷婷久久综合| 亚洲五码中文字幕| 亚洲男人都懂的| 五月婷婷激情综合| 蜜臀av性久久久久蜜臀aⅴ| 日韩欧美二区三区| 激情久久五月天| 国产一区二区0| 国产黑丝在线一区二区三区| 国产伦精品一区二区三区免费迷| 国产精品香蕉一区二区三区| 高清在线观看日韩| 日韩欧美色综合| 亚洲欧美偷拍卡通变态| 一区二区三区在线高清| 午夜国产精品一区| 亚洲午夜久久久久久久久电影网| 亚洲精品成人a在线观看| 国产精品不卡在线| 国产欧美一区二区在线观看| 欧美精品一区二区三区蜜桃 |