planmgr.java

来自「一个用java编写的功能强大的OA系统」· Java 代码 · 共 369 行

JAVA
369
字号
package com.redmoon.oa.person;import java.util.Calendar;import cn.js.fan.db.Conn;import cn.js.fan.util.*;import java.sql.*;import com.redmoon.oa.pvg.Privilege;import cn.js.fan.util.ErrMsgException;import javax.servlet.http.*;import org.apache.log4j.Logger;import cn.js.fan.web.Global;public class PlanMgr {    String[] months = {      "一 月", "二 月", "三 月", "四 月", "五 月", "六 月", "七 月", "八 月", "九 月", "十 月",      "十一月", "十二月"};  int daysInMonth[] = {      31, 28, 31, 30, 31, 30, 31, 31,      30, 31, 30, 31};  int displayMonth;  int displayYear;  int todayYear;  int todayMonth;  int todayDay;  Privilege privilege = null;  Logger logger = Logger.getLogger( PlanMgr.class.getName() );  public PlanMgr() {    privilege = new Privilege();    Calendar cal = Calendar.getInstance();    displayYear = cal.get(cal.YEAR);    displayMonth = cal.get(cal.MONTH);    todayYear = displayYear;    todayMonth = displayMonth;    todayDay = cal.get(cal.DAY_OF_MONTH);  }  public int getDays(int month, int year) {        if (1 == month)      return ( (0 == year % 4) && (0 != (year % 100))) ||          (0 == year % 400) ? 29 : 28;        else      return daysInMonth[month];  }  public String newCalendar(String user,int displayYear,int displayMonth) {    this.displayYear = displayYear;    this.displayMonth = displayMonth;    Calendar newCal = Calendar.getInstance();    newCal.set(displayYear, displayMonth, 1);    int day = -1;    int startDayOfWeek = newCal.get(newCal.DAY_OF_WEEK );    if ( (todayYear == newCal.get(newCal.YEAR)) &&        (todayMonth == newCal.get(newCal.MONTH))) {      day = todayDay;    }    int intDaysInMonth = getDays(newCal.get(newCal.MONTH), newCal.get(newCal.YEAR));    String daysGrid = makeDaysGrid(user,startDayOfWeek, day, intDaysInMonth, newCal);    return daysGrid;  }  public String changeCld_Script(String virtualpath) {    String str = "";    str = "<script language=javascript>\n";    str += "<!--\n";    str += "function changeCld(y,m)\n";    str += "{\n";    str += "document.location.href=\"" + virtualpath + "?displayMonth=\"+displayMonth.value+\"&displayYear=\"+displayYear.value\n";    str += "}\n";    str += "-->\n";    str += "</script>\n";    return str;  }  public boolean modify(HttpServletRequest request) throws ErrMsgException {      boolean re = true;      String title, content, mydate, time;      String errmsg = "";      int id = ParamUtil.getInt(request, "id");      title = ParamUtil.get(request, "title");      if (title.equals(""))          errmsg += "标题不能为空!\\n";      content = ParamUtil.get(request, "content");      if (content.equals(""))          errmsg += "内容不能为空!\\n";      mydate = ParamUtil.get(request, "mydate");      time = ParamUtil.get(request, "time");      java.util.Date d = null;      try {          d = DateUtil.parse(mydate + " " + time, "yyyy-MM-dd HH:mm:ss");      }      catch (Exception e) {          logger.error("modify:" + e.getMessage());      }      if (d==null)          errmsg += "日期格式错误!\\n";      if (!errmsg.equals("")) {          throw new ErrMsgException(errmsg);      }      String isRemind = ParamUtil.get(request, "isRemind");      if (isRemind.equals(""))          isRemind = "0";      int before = ParamUtil.getInt(request, "before");      boolean isRemindBySMS = ParamUtil.getBoolean(request, "isToMobile", false);      PlanDb pd = getPlanDb(id);      Privilege privilege = new Privilege();      if (!privilege.getUser(request).equals(pd.getUserName()))          throw new ErrMsgException("非法操作!");      pd.setTitle(title);      pd.setContent(content);      pd.setMyDate(d);      if (isRemind.equals("1")) {          pd.setRemind(true);          java.util.Date dt = DateUtil.addMinuteDate(d, -before);          pd.setRemindDate(dt);      }      else          pd.setRemind(false);      pd.setRemindBySMS(isRemindBySMS);      re = pd.save();      return re;  }  public boolean create(HttpServletRequest request) throws ErrMsgException {      boolean re = true;      String title, content, mydate, time;      String errmsg = "";      String isRemind;      title = ParamUtil.get(request, "title");      if (title.equals(""))          errmsg += "标题不能为空!\\n";      content = ParamUtil.get(request, "content");      if (content.equals(""))          errmsg += "内容不能为空!\\n";      mydate = ParamUtil.get(request, "mydate");      time = ParamUtil.get(request, "time");      isRemind = ParamUtil.get(request, "isRemind");      if (isRemind.equals(""))          isRemind = "0";      int before = ParamUtil.getInt(request, "before");      boolean isRemindBySMS = ParamUtil.getBoolean(request, "isToMobile", false);      java.util.Date d = null;      try {          d = DateUtil.parse(mydate + " " + time, "yyyy-MM-dd HH:mm:ss");      }      catch (Exception e) {          logger.error("create:" + e.getMessage());      }      if (d==null)          errmsg += "日期格式错误!\\n";      if (!errmsg.equals("")) {          throw new ErrMsgException(errmsg);      }      PlanDb pd = new PlanDb();      pd.setTitle(title);      pd.setContent(content);      pd.setMyDate(d);      pd.setUserName(privilege.getUser(request));      if (isRemind.equals("1")) {          pd.setRemind(true);          java.util.Date dt = DateUtil.addMinuteDate(d, -before);          pd.setRemindDate(dt);      }      pd.setRemindBySMS(isRemindBySMS);      re = pd.create();      return re;  }    public String[][] getPlanOfMonth(String user, int year, int month) {      String sql =              "select id,title,DAY(mydate) from user_plan where userName=?";      sql += " and YEAR(mydate)=" + year + " and MONTH(mydate)=" + (month + 1) +              " order by mydate asc";      ResultSet rs = null;      String[][] ary = new String[32][2];      for (int i = 0; i <= 31; i++) {          ary[i][0] = "-1";      }      Conn conn = new Conn(Global.defaultDB);      try {          PreparedStatement ps = conn.prepareStatement(sql);          ps.setString(1, user);          rs = conn.executePreQuery();          int k = 0;          if (rs != null) {              while (rs.next()) {                  int day = rs.getInt(3);                  ary[day][0] = rs.getString(1);                  ary[day][1] = rs.getString(2);              }          }      } catch (SQLException e) {          logger.error("getPlanOfMonth:" + e.getMessage());      } finally {          if (rs != null) {              try {                  rs.close();              } catch (SQLException e) {}              rs = null;          }          if (conn != null) {              conn.close();              conn = null;          }      }      return ary;  }  public String makeDaysGrid(String user,int startDay, int day, int intDaysInMonth, Calendar newCal) {    String daysGrid;    int month = newCal.get(newCal.MONTH);    int year = newCal.get(newCal.YEAR);    boolean isThisYear = (year == todayYear);    boolean isThisMonth = (day > -1);    int forwardyear = displayYear+1;    int backwordyear = displayYear-1;    int forwardmonth = displayMonth +1;    int backwordmonth = displayMonth -1;    String[][] planary = getPlanOfMonth(user,displayYear,displayMonth);    daysGrid = "<table align=center cellSpacing='0' borderColorDark='#ffffff' bgColor='#ebebeb' borderColorLight='#000000' border='1' width=80%>";    daysGrid += "<tr bgColor='#336699' height=30><td align=center colspan=7 nowrap>";    daysGrid += "<font style='FONT-SIZE: 9pt' color='#ffffff'>&nbsp;&nbsp;&nbsp;&nbsp;查看&nbsp;<select style='FONT-SIZE: 9pt' onchange='changeCld()' id='displayYear' name='displayYear'>";    for (int k=-50; k<50; k++)    {      daysGrid += "<option value="+(displayYear+k)+">"+(displayYear+k)+"</option>";    }    daysGrid += "</select>&nbsp;年";    daysGrid += "<script language=javascript>\n";    daysGrid += "<!--\n";    daysGrid += "displayYear.value=\""+displayYear+"\"\n";    daysGrid += "-->\n";    daysGrid += "</script>\n";    daysGrid += "<select style='FONT-SIZE: 9pt' onchange='changeCld()' name='displayMonth' id='displayMonth'>";    for (int k=1; k<=12; k++) {      daysGrid += "<option value="+(k-1)+">"+k+"</option>";    }    daysGrid += "</select>";    daysGrid += "<script language=javascript>\n";    daysGrid += "<!--\n";    daysGrid += "displayMonth.value=\""+displayMonth+"\"\n";    daysGrid += "-->\n";    daysGrid += "</script>\n";    daysGrid += "月</font>&nbsp;&nbsp;&nbsp;&nbsp;";    daysGrid += "<a style='color:white' href='?displayYear="+displayYear+"&displayMonth="+backwordmonth+"')>&laquo;</a>&nbsp;";    daysGrid += "<b>";    if (isThisMonth) {      daysGrid += "<font color=yellow>" + months[month] + "</font>";    }    else {      daysGrid += "<font color=white>" + months[month] + "</font>";    }    daysGrid += "</b>";    daysGrid += "&nbsp;<a style='color:white' href='?displayMonth="+forwardmonth+"&displayYear="+displayYear+"')>&raquo;</a>";    daysGrid += "&nbsp;&nbsp;&nbsp;";    daysGrid += "<a style='color:white' href='?displayMonth="+displayMonth+"&displayYear="+backwordyear+"')>&laquo;</a>&nbsp;";    daysGrid += "<b>";    if (isThisYear) {      daysGrid += "<font color=yellow>" +year + "&nbsp;年</font>";    }    else {      daysGrid += "<font color=white>" +year + "&nbsp;年</font>";    }    daysGrid += "</b>";    daysGrid += "&nbsp;<a style='color:white' href='?displayMonth="+displayMonth+"&displayYear="+forwardyear+"')>&raquo;</a></font></td></tr>";    daysGrid += "<tr bgColor=#bebebe><td align=center><font color=red>日</font></td><td align=center>一</td><td align=center>二</td>";    daysGrid += "<td align=center>三</td><td align=center>四</td><td align=center>五</td><td align=center><font color=red>六</font></td></tr>";    int dayOfMonthOfFirstSunday = 7-startDay+2;    int count = 0;    int dayOfMonth = 0;    for (int intWeek = 0; intWeek < 6; intWeek++) {      daysGrid += "<tr height=40>";      for (int intDay = 0; intDay < 7; intDay++) {        dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;        if (dayOfMonth <= 0) {          daysGrid += "<td>&nbsp;</td>";        }        else if (dayOfMonth <= intDaysInMonth) {          count++;          String color = "black";          String bgcolor = "yellow";          if (intDay==0 || intDay==6) {            color = "red";          }          if (day > 0 && day == dayOfMonth) {            color = "blue";          }          if (day >0 && day <=dayOfMonth) {            bgcolor = "#99CCFF";          }          daysGrid += "<td align=center ";          if (!planary[count][0].equals("-1"))               daysGrid += "bgcolor=" + bgcolor;          daysGrid += " ><b><a ";          if (planary[count][0].equals("-1"))              daysGrid += "href=\"#\"";          else {                                           daysGrid += "title=\"" + planary[count][1] +                      "\" href='plan_list.jsp?year=" + year + "&month=" + (month+1) + "&day=" + dayOfMonth + "'";          }          daysGrid += " style='font-size:15pt;FONT-FAMILY:Arial;color:" +                  color + "'>";          String dayString = dayOfMonth + "</a></b>";                              daysGrid += dayString + "</td>";        }      }      int dayspan = dayOfMonth - count;      if (dayOfMonth < intDaysInMonth)        daysGrid += "</tr>";      else {          if (dayspan < 7 && dayspan > 0) {            for (int k = 0; k < dayspan; k++) {              daysGrid += "<td>&nbsp;</td>";            }            daysGrid += "</tr>";         }        }    }    return daysGrid + "</table>";  }  public PlanDb getPlanDb(int id) {      PlanDb pd = new PlanDb();      return pd.getPlanDb(id);  }  public boolean del(HttpServletRequest request) throws ErrMsgException {      int id = ParamUtil.getInt(request, "id");      PlanDb pd = getPlanDb(id);      if (pd==null || !pd.isLoaded())          throw new ErrMsgException("该计划已不存在!");      Privilege privilege = new Privilege();      if (!privilege.getUser(request).equals(pd.getUserName()))          throw new ErrMsgException("非法操作!");      return pd.del();  }}

⌨️ 快捷键说明

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