Esempio n. 1
0
  /**
   * 取授課學生 - 一科目多教師
   *
   * @param Oid
   * @param date
   * @param week
   * @param id
   * @return
   */
  public List Dilg_student_date_mulTeacher(String Oid, String date, String week, String id) {

    List<Map> list =
        dataFinder.sqlGet(
            "SELECT j.total_score, s.status, st.student_no, st.student_name,(SELECT COUNT(*)FROM Dilg di, Dilg_rules dr WHERE di.abs=dr.id AND "
                + "dr.exam='1'AND di.student_no=st.student_no AND di.Dtime_oid=d.Oid) as dilg_period, s.score1, s.score2, s.score FROM "
                + "Dtime d, stmd st LEFT OUTER JOIN Just j ON st.student_no=j.student_no, Seld s WHERE st.student_no=s.student_no AND "
                + "s.Dtime_oid=d.Oid AND d.Oid="
                + Oid
                + " AND s.Dtime_teacher=(SELECT Oid FROM Dtime_teacher WHERE "
                + "Dtime_oid="
                + Oid
                + " AND teach_id='"
                + id
                + "')ORDER BY st.student_no");

    Object dc[] = Dtime_class(Oid, week);
    List dg;
    Map m;
    for (int i = 0; i < list.size(); i++) {
      dg = new ArrayList();
      for (int j = 0; j < dc.length; j++) {
        m = new HashMap();
        m.put("cls", dc[j]);
        try {
          m.put(
              "abs",
              dataFinder.sqlGetStr(
                  "SELECT abs FROM Dilg WHERE student_no='"
                      + list.get(i).get("student_no")
                      + "' AND cls='"
                      + dc[j]
                      + "' AND date='"
                      + date
                      + "'"));
        } catch (Exception e) {
          m.put("abs", "");
        }
        dg.add(m);
      }
      list.get(i).put("dilgs", dg);
    }
    return list;
  }
Esempio n. 2
0
 /**
  * 現在學年
  *
  * @return
  */
 public String school_year() {
   return dataFinder.sqlGetStr("SELECT Value FROM Parameter WHERE Name='School_year'");
 }
Esempio n. 3
0
 /**
  * 取點名結束
  *
  * @return
  */
 public String RollCall_end() {
   return dataFinder.sqlGetStr(
       "SELECT cdate FROM SYS_CALENDAR WHERE s_group='RollCall' AND s_name='end'");
 }
Esempio n. 4
0
 /**
  * 取學期結束
  *
  * @return
  */
 public String school_term_end() {
   return dataFinder.sqlGetStr(
       "SELECT cdate FROM SYS_CALENDAR WHERE s_group='SchoolTerm' AND s_name='end'");
 }
Esempio n. 5
0
  /**
   * 出席率圖表
   *
   * @param techid
   * @param begin
   * @param end
   * @param term
   * @return
   */
  public Map Dilg_pro_techid(String techid, Date begin, String term) {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy/MM/dd");
    Calendar c = Calendar.getInstance();
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c.setTime(begin);
    c1.setTime(begin);

    List<Map> list =
        dataFinder.sqlGet(
            "SELECT ((SELeCT COUNT(*)FROM stmd, Seld WHERE stmd.student_no=Seld.student_no AND Seld.Dtime_oid=d.Oid)*d.thour) as cnt, d.Oid, cl.ClassName, cs.chi_name FROM Dtime d, "
                + "Csno cs, Class cl WHERE d.cscode=cs.cscode AND d.depart_class=cl.ClassNo AND d.techid='"
                + techid
                + "' AND d.Sterm='"
                + term
                + "'");

    float cnt;
    float wdilg;

    StringBuilder sb = new StringBuilder("['週次',");
    for (int i = 0; i < list.size(); i++) {
      sb.append(
          "'"
              + ((Map) list.get(i)).get("ClassName")
              + "-"
              + ((Map) list.get(i)).get("chi_name")
              + "',");
    }
    sb.delete(sb.length() - 1, sb.length());
    sb.append("],");
    Map map = new HashMap();
    map.put("dtimes", sb);
    String sba[] = new String[19];

    for (int i = 1; i < 19; i++) {
      c1.add(Calendar.DAY_OF_YEAR, 7);
      c2.setTime(c1.getTime());
      c2.add(Calendar.DAY_OF_YEAR, -1);
      sb = new StringBuilder("['第" + i + "週',");
      for (int k = 0; k < list.size(); k++) {
        try {
          cnt = Float.parseFloat(list.get(k).get("cnt").toString());
          wdilg =
              Float.parseFloat(
                  dataFinder.sqlGetStr(
                      "SELECT COUNT(*)FROM Dilg WHERE date>='"
                          + sf.format(c.getTime())
                          + "'AND date<='"
                          + sf.format(c2.getTime())
                          + "' AND Dtime_oid="
                          + list.get(k).get("Oid")));
          sb.append(100 - ((wdilg / cnt) * 100) + ",");
        } catch (Exception e) {
          sb.append(100 + ",");
        }
      }

      sb.delete(sb.length() - 1, sb.length());
      sb.append("]");
      // System.out.println(sb);
      if (i < 18) {
        sb.append(",");
      }
      sba[i] = sb.toString();
      map.put("dilgs", sba);

      c.add(Calendar.DAY_OF_YEAR, 7);
    }
    return map;
  }