📄 reportutil.java.svn-base
字号:
package com.nsi.reports;
import java.io.File;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.filechooser.FileSystemView;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.nsi.constants.AppConstants;
import com.nsi.util.FileLocator;
import com.nsi.util.ValHelper;
import com.nsi.util.tsdate.TsDateUtil;
public final class ReportUtil
{
private static Log log = LogFactory.getLog(ReportUtil.class);
private Map<String, String>rptidmap;
private Map<String, String>rpttemplatemap;
private Map<String, String>pbillablemap;
/**
* private constructor of ReportUtil, prevent instantiation
*/
private ReportUtil()
{
initialRptMap();
}
private static class ReportUtilHolder
{
static final ReportUtil rptUtil = new ReportUtil();
}
/**
* @return an instance of ReportUtil
*/
public static ReportUtil getInstance()
{
return ReportUtilHolder.rptUtil;
}
public Report prepareTsRpt( String resouceid, String fromdate, String todate, String reporttype, String projectid )
{
String rptid = getRptid( reporttype );
String rptname = getTemplatename( reporttype );
return prepareRpt( rptid, resouceid, fromdate, todate, rptname, reporttype, projectid );
}
public Report prepareRpt( String rptid, String resouceid, String fromdate, String todate, String rptname, String reporttype, String projectid )
{
Report rpt = new Report();
try
{
String rpttemplatefile = AppConstants.RPT_TEMPLATE_PATH + File.separator + rptname;
String rpttemplatefilefulpath = FileLocator.getInstance().searchforFile(rpttemplatefile);
String rpttemplateparentpath = FileLocator.getInstance().retrieveParentpath(rpttemplatefilefulpath);
rpttemplateparentpath = rpttemplateparentpath + File.separator;
log.debug( "prepareRpt() -- rpttemplatepath["+ rpttemplateparentpath+ "]" );
Map<String, Object> paramap = rpt.getParamtermap();
Calendar fromcal = TsDateUtil.getInstance().stringToDate(fromdate);
Date fromdt = fromcal.getTime();
java.sql.Timestamp fromsqltm = new java.sql.Timestamp( fromdt.getTime());
Calendar tocal = TsDateUtil.getInstance().stringToDate(todate);
Date todt = tocal.getTime();
java.sql.Timestamp tosqltm = new java.sql.Timestamp( todt.getTime());
paramap.put( "PResID", new Integer(resouceid));
paramap.put( "PSdate", fromsqltm);
paramap.put( "PEdate", tosqltm);
paramap.put( "SUBREPORT_DIR", rpttemplateparentpath );
paramap.put( "PPath", rpttemplateparentpath + File.separator + "rms_logo.gif");
if( rptid.startsWith("dir_"))
{
String pbillable = getPbillable( reporttype );
paramap.put("PBillable", pbillable);
paramap.put("PProID", new BigDecimal(projectid));
}
String template = rpttemplateparentpath + File.separator + rptname;
FileSystemView fs = FileSystemView.getFileSystemView();
String rpttmppath = fs.getDefaultDirectory().getPath();
log.debug( "prepareRpt() -- rpttmppath["+ rpttmppath+ "]" );
String reportfilename = rpttmppath + File.separator + rptid + ".pdf";
rpt.setTemplate(template);
rpt.setReportid(rptid);
rpt.setReportfilename(reportfilename);
}
catch( Exception ex )
{
log.error( "prepareRpt() -- caught exception : ", ex );
}
return rpt;
}
public String getRptid( String reporttype )
{
return ValHelper.getInstance().getValue(rptidmap, reporttype);
}
public String getTemplatename( String reporttype )
{
return ValHelper.getInstance().getValue(rpttemplatemap, reporttype);
}
public String getPbillable( String reporttype )
{
return ValHelper.getInstance().getValue(pbillablemap, reporttype);
}
private void initialRptMap()
{
rptidmap = new HashMap<String, String>();
rptidmap.put( "11", "timesheet_sum_draft_rpt");
rptidmap.put( "12", "timesheet_sum_rpt");
rptidmap.put( "21", "timesheet_dtl_draft_rpt");
rptidmap.put( "22", "timesheet_rpt");
rptidmap.put( "41", "dept_member_sum_rpt");
rptidmap.put( "42", "dept_member_project_sum_rpt");
rptidmap.put( "43", "dept_member_dtl_rpt");
rptidmap.put( "31", "proj_member_sum_rpt");
rptidmap.put( "32", "proj_activity_sum_rpt");
rptidmap.put( "33", "proj_activity_dtl_rpt");
rptidmap.put( "34", "proj_member_dtl_rpt");
rptidmap.put( "51", "dir_member_sum_all_rpt");
rptidmap.put( "52", "dir_activity_sum_all_rpt");
rptidmap.put( "53", "dir_member_sum_billable_rpt");
rptidmap.put( "54", "dir_activity_sum_billable_rpt");
rptidmap.put( "55", "dir_member_sum_non_billable_rpt");
rptidmap.put( "56", "dir_activity_sum_non_billable_rpt");
rptidmap.put( "61", "dir_ytd_sum_billable_rpt");
rptidmap.put( "62", "dir_ytd_sum_non_billable_rpt");
rptidmap.put( "63", "dir_ytd_sum_non_billable_rpt");
rpttemplatemap= new HashMap<String, String>();
rpttemplatemap.put( "11", "TS_IndividuaSummary_D_02.jasper");
rpttemplatemap.put( "12", "TS_IndividuaSummary_F_02.jasper");
rpttemplatemap.put( "21", "TS_IndividualDetail_D_02.jasper");
rpttemplatemap.put( "22", "TS_IndividualDetail_F_02.jasper");
rpttemplatemap.put( "41", "TS_DeptSummaryMember_07.jasper");
rpttemplatemap.put( "42", "TS_DeptSummaryMemberProject_08.jasper");
rpttemplatemap.put( "43", "TS_DeptDetailMember_09.jasper");
rpttemplatemap.put( "31", "TS_ProjSummaryMember_031.jasper");
rpttemplatemap.put( "32", "TS_ProjSummaryActivities_032.jasper");
rpttemplatemap.put( "33", "TS_ProjDetailActivities_05.jasper");
rpttemplatemap.put( "34", "TS_ProjDetailMember_06.jasper");
rpttemplatemap.put( "51", "TS_ProjSummaryMember_03.jasper");
rpttemplatemap.put( "52", "TS_ProjSummaryActivities_04.jasper");
rpttemplatemap.put( "53", "TS_ProjSummaryMember_03.jasper");
rpttemplatemap.put( "54", "TS_ProjSummaryActivities_04.jasper");
rpttemplatemap.put( "55", "TS_ProjSummaryMember_03.jasper");
rpttemplatemap.put( "56", "TS_ProjSummaryActivities_04.jasper");
rpttemplatemap.put( "61", "TS_ProjSummaryHours_10.jasper");
rpttemplatemap.put( "62", "TS_ProjSummaryHours_10.jasper");
rpttemplatemap.put( "63", "TS_ProjSummaryHours_10.jasper");
pbillablemap = new HashMap<String, String>();
pbillablemap.put("51", "All");
pbillablemap.put("52", "All");
pbillablemap.put("61", "All");
pbillablemap.put("53", "T");
pbillablemap.put("54", "T");
pbillablemap.put("62", "T");
pbillablemap.put("55", "F");
pbillablemap.put("56", "F");
pbillablemap.put("63", "F");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -