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

📄 saledept_tp.java

📁 一个用于监控WEB服务器和数据库服务器的客户端程序。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
*
*/
package com.jobcn.task.old;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.*;
import com.jobcn.database.DataBase;
import com.jobcn.task.AbstractCreateHtml;

/**
* @remark:
* @author: Stephen
* @date: 2005-3-21
* @version:
* @upd_remark:
* @upd_user:
* @upd_date:
*/
final public class SALEDept_TP extends AbstractCreateHtml {
   //constructer1
   public SALEDept_TP() {
       super(new StringBuffer(1024));
   }

   //constructer2
   public SALEDept_TP(StringBuffer sb) {
       super(sb);
   }

   public void printHeader() {
       sb.append("<html>\n");
       sb.append("<head>\n");
       sb.append("	<title>本月可比业绩排行榜</title>\n");
       sb.append("	<link href=\"/BOSS_CSS/css.css\" rel=\"stylesheet\" type=\"text/css\">\n");
       sb.append("	<meta http-equiv=\"content-Type\" content=\"text/html; charset=GBK\">\n");
       sb.append("</head>\n");
   }

   public void printBody() {
       java.text.DecimalFormat nf = new java.text.DecimalFormat("###,###"); //整数
       // format
       java.text.DecimalFormat Pernf = new java.text.DecimalFormat("###0.0000"); //四位小数

       String strDate = (new java.text.SimpleDateFormat("yyyy-MM-dd")).format(new java.util.Date());
       String strYear = strDate.substring(0, 4);
       String strMonth = strDate.substring(5, 7);
       //String strDay = strDate.substring(8, 10);

       //String strYearMonth = strDate.substring(0, 7);
       String strIMonth = String.valueOf(Integer.parseInt(strMonth));
       //String strIDay = String.valueOf(Integer.parseInt(strDay));

       DataBase db = new DataBase();
       Connection DBConn = null;
       Statement stmt = null;
       ResultSet RS = null;
       String SQL = "", selectStr = "", orderByStr = "";

       String DepartId = "", DepartIdOld = "", DepartName = "", DepartNameOld = "", ManagerPerName = "";
       //String PersonId = ""; 
       String PersonName = "", StateID = "";
       int T = 0, TractMoney = 0, TPG=0, sequenceNum = 0, flag = 0, range = 0, TotTractMoney=0, count=0, TotCount=0;
       float TP = 0.0f, TotTP=0.0f;

       String shortcut = "";
       String deptChartData="";

       try {
           DBConn = db.connect();
           stmt = db.createStatement(DBConn);

           //T数及相应的时间能力系数
           //生成时间能力系数
           selectStr = "{?=call USP_GetTP_FromT(?,?)}";
           CallableStatement Comm = null;
           Comm = DBConn.prepareCall(selectStr);
           Comm.registerOutParameter(1, java.sql.Types.INTEGER);
           Comm.setString(2, "A");
           Comm.registerOutParameter(3, java.sql.Types.VARCHAR);
           Comm.execute();
           String T_TP = Comm.getString(3);
           Comm.close();
           //end
           String T_TPArray[] = T_TP.split(",");
           int T_TPArrayNum = T_TPArray.length;

           sb.append("<body topmargin='0' leftmargin='0' oncontextmenu='return false;' ondragstart='return false;'  onsource='return false;'  onselectstart='return false;'>\n");
           
           sb.append("<br>\n");
           sb.append("<font color='red'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;备注:本页面只显示在职人员数据</font><br>\n");
           sb.append("<table border=\"0\" >\n");
           sb.append("<tr>\n");
           sb.append("<td width=\"50\" valign=\"top\"><a name='#top0'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></td>\n");
           
           sb.append("<td>\n");
           sb.append("<table border=1  width=100%  cellpadding=3 cellspacing=0  bordercolor=#668591  style='border-collapse: collapse;border-style:none'>\n");
           sb.append("<tr align='center' bgcolor='#FAE8CC'>\n");
           sb.append("<td>T数</td>\n");
           for(int i = 0; i < T_TPArrayNum; i = i + 2) {
               if(T_TPArray[i].equals("25"))
                   sb.append("<td >24+</td>\n");
               else
                   sb.append("<td >" + T_TPArray[i] + "</td>\n");
           }

           sb.append("</tr>");
           sb.append("<tr align='center' bgcolor='#FAE8CC'>\n");
           sb.append("<td nowrap >时间能力系数</td>\n");
           for(int i = 1; i < T_TPArrayNum; i = i + 2) {
               sb.append("<td bgcolor='#ffffff'>" + T_TPArray[i] + "</td>\n");
           }
           sb.append("</tr>\n");
           sb.append("</table>\n"); 
           sb.append("</td>\n");
           
           sb.append("</tr>\n");
           sb.append("</table>\n");
           //end
           
           //部门平均可比签单业绩           
           sb.append("<br>\n");
           sb.append("<table border=\"0\">\n");
           sb.append("<tr>\n");
           sb.append("<td width=\"50\" valign=\"top\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n");
           
           sb.append("<td  valign=\"top\">\n");
           sb.append("<table border=1 cellpadding=3 cellspacing=0  bordercolor=#668591  style='border-collapse: collapse;border-style:none'>\n");
           sb.append("  <tr bgcolor=\"#FAE8CC\" align=center>\n");
           sb.append("   <td colspan='7'  nowrap><font color=red>部门平均可比签单业绩<font color='blue'><b>(只显示在职人员数据)</b></font></font></td>\n");
           sb.append("  </tr>\n");

           sb.append("  <tr bgcolor=\"#FAE8CC\" align=center>\n");
           sb.append("   <td align=\"center\" nowrap>名次</td>\n");
           sb.append("   <td align=\"center\" nowrap>部门</td>\n");
           sb.append("   <td align=\"center\" nowrap>部门经理</td>\n");
           sb.append("   <td align=\"center\" nowrap>人数</td>\n");
           //sb.append("   <td align=\"center\" nowrap>T数</td>\n");
           sb.append("   <td align=\"center\" nowrap>部门时间能力系数总和<br>①</td>\n");
           sb.append("   <td align=\"center\" nowrap>当月部门签单总额(元)<br>②</td>\n");
           sb.append("   <td align=\"center\" nowrap>部门平均可比签单业绩<br>②/①</td>\n");
           sb.append("  </tr>\n");

           selectStr = "select b.deptid,b.departname,b.name,a.depttractmoney,depttp,isnull(deptPersonNum,0) deptPersonNum,depttpg from "
				 + "( " 
				 + " select departid,departname,sum(tractmoney) as depttractmoney,sum(tp) as depttp,count(*) as deptPersonNum,sum(tractmoney)/sum(tp) as DeptTPG " 
				 + " from PerTractMoneyTPGSequence "
				 + " group by departid,departname "
				 + ") a, "
				 + "( "
				 + " select SaleMoneyDest_Dept_EveryMonth.deptid,SaleMoneyDest_Dept_EveryMonth.departname,hrperson_main.name from  SaleMoneyDest_Dept_EveryMonth,HRPerson_Main "
				 + " where SaleMoneyDest_Dept_EveryMonth.managerperid=hrperson_Main.id "
				 + "  and SaleMoneyDest_Dept_EveryMonth.yearnum='" + strYear + "' "
				 + "  and SaleMoneyDest_Dept_EveryMonth.monthnum='" + strIMonth + "' "
				 + ") b "
				 + "where b.deptid *=a.departid ";
           orderByStr = "order by depttpg desc";          
           SQL = selectStr + orderByStr;
           //System.out.println(SQL);

           sequenceNum = 0;
           count = 0;
           RS = db.getRS(stmt, SQL);
           while(RS.next()) {
               //T = RS.getInt("T");
               DepartId = RS.getString("deptid").trim();
               DepartName = RS.getString("departname").trim();
               ManagerPerName = RS.getString("name").trim();
               TractMoney = RS.getInt("depttractmoney");
               TP = RS.getFloat("depttp");
               count=RS.getInt("deptPersonNum");
               TPG = RS.getInt("depttpg");
               //sequenceNum=RS.getInt("Sequence");
               TotTractMoney = TotTractMoney + TractMoney;
               TotCount = TotCount + count;
               TotTP = TotTP + TP;              
               sequenceNum = sequenceNum + 1;
               
               sb.append("<tr bgcolor=\"#ffffff\"   onmouseover=\"this.bgColor='#c8ca74';\" onmouseout=\"this.bgColor='#ffffff';\">\n");
               sb.append("   <td align='center' nowrap>" + sequenceNum  + "</td>\n");
               sb.append("   <td nowrap>" + DepartName + "</td>\n");
               sb.append("   <td nowrap>" + ManagerPerName + "</td>\n");
               sb.append("   <td nowrap>" + count + "</td>\n");
               //sb.append("   <td nowrap>" + T + "</td>\n");
               sb.append("   <td align=\"right\" nowrap>"  +  Pernf.format(TP) + "</td>\n");
               sb.append("   <td align=\"right\" nowrap>" + nf.format(TractMoney)  + "</td>\n");
               sb.append("   <td align=\"right\" nowrap>" + nf.format(TPG)  + " </td>\n"); //Pernf.format((Float)TPG)
               sb.append("</tr>\n");
           }
           sb.append("  <tr bgcolor=\"#FAE8CC\">\n");
           sb.append("   <td colspan=\"3\" align=\"center\" nowrap>合&nbsp;&nbsp;&nbsp;&nbsp;计</td>\n");
           sb.append("   <td nowrap>"+nf.format(TotCount)+"</td>\n");
           sb.append("   <td align=\"right\" nowrap>"+Pernf.format(TotTP)+"</td>\n");
           sb.append("   <td align=\"right\" nowrap>"+nf.format(TotTractMoney)+"</td>\n");
           sb.append("   <td align=\"right\" nowrap>"+nf.format(((float)TotTractMoney)/TotTP)+"</td>\n");
           sb.append("  </tr>\n");
           sb.append("</table>\n");
           sb.append("</td>\n");
           
           //图表
           //System.out.println(deptChartData);
           orderByStr = "order by b.deptid";
           SQL = selectStr + orderByStr;
           RS = db.getRS(stmt, SQL);
           while(RS.next()) {
               DepartName = RS.getString("departname").trim();
               TPG = RS.getInt("depttpg");
               deptChartData = deptChartData + DepartName.replaceAll("销售", "") + "," + TPG + ",";

           }
           deptChartData = deptChartData.substring(0, deptChartData.length() - 1);
           sb.append("<td>\n");
           sb.append("<table border=0 width='1000' align='center'>\n");
           sb.append("<tr valign=\"top\"><tr><td >\n");
           sb.append("<img src=\"/BOSS_util/chart_java.jsp?TopTitle=部门平均可比签单业绩分布图&BottomTitle=销售部门&CoordColor=FF6600&chartData=" + deptChartData + "\">\n");
           sb.append("</td></tr>\n");
           sb.append("</table>\n");
           sb.append("</td>\n");
           
           sb.append("</tr>\n");
           sb.append("</table >\n");
//////////////////////////////////////////////////

           
           //各部可比签单业绩排行榜          
           sb.append("<br>\n");
           sb.append("<table border=\"0\">\n");
           sb.append("<tr>\n");
           sb.append("<td width=\"50\" valign=\"top\"><a name=\"top\"></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n");

           sb.append("<td>\n");
           sb.append("<font size=3>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;【" + strYear + "年" + strMonth + "月】各部<font color=\"red\">可比签单业绩</font>排行榜</font>\n");
           sb.append("<br>\n");
           sb.append("<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\"  align=\"left\">\n");
           sb.append("<tr>\n");
           /*
            * select ptms.PersonID, ptms.PersonName, ptms.T, ptms.DepartID,
            * ptms.DepartName, ptms.TractMoney, ptms.TP, ptms.TPG,
            * ptms.Sequence, ptms.Flag, ptms.Range, ptms.StateID,
            * tmp.ManagerPerName from PerTractMoneyTPGSequence ptms left join(
            * select sde.DeptID as DepartID, hpm.Name ManagerPerName from
            * SaleMoneyDest_Dept_EveryMonth sde left join HrPerson_Main hpm on
            * sde.ManagerPerID=hpm.ID where sde.YearNum='2005' and
            * sde.MonthNum='3' ) tmp on ptms.DepartID=tmp.DepartID
            */
           selectStr = "select ptms.PersonID, ptms.PersonName, ptms.T, ptms.DepartID, ptms.DepartName, ptms.TractMoney, "
                        + "ptms.TP, ptms.TPG, ptms.Sequence, ptms.Flag, ptms.Range, ptms.StateID, tmp.ManagerPerName "
                        + "from PerTractMoneyTPGSequence ptms "
                        + "left join( "
                        + "    select sde.DeptID as DepartID, hpm.Name ManagerPerName "
                        + "    		from SaleMoneyDest_Dept_EveryMonth sde "
                        + "        left join HrPerson_Main hpm  on sde.ManagerPerID=hpm.ID "
                        + "        where sde.YearNum='"
                        + strYear
                        + "' and sde.MonthNum='"
                        + strIMonth
                        + "' "
                        + ") tmp on ptms.DepartID=tmp.DepartID ";
           orderByStr = "order by ptms.DepartID, ptms.Sequence";
           SQL = selectStr + orderByStr;
           //System.out.println(SQL);
          
           sequenceNum = 0;
           RS = db.getRS(stmt, SQL);
           while(RS.next()) {
               //PersonId = RS.getString("PersonID").trim();
               PersonName = RS.getString("PersonName").trim();
               T = RS.getInt("T");
               DepartId = RS.getString("DepartID").trim();
               DepartName = RS.getString("DepartName").trim();
               TractMoney = RS.getInt("TractMoney");
               TP = RS.getFloat("TP");
               TPG = RS.getInt("TPG");
               StateID = RS.getString("StateID").trim();
               ManagerPerName = RS.getString("ManagerPerName");
               sequenceNum = sequenceNum +1;

               if(!DepartName.equals(DepartNameOld)) {
                   //每一个部门开始时打印上个部门的表尾并RESET计数和统计变量(除第一个部门之外)

⌨️ 快捷键说明

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