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'> 查看 <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> 年"; 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> "; daysGrid += "<a style='color:white' href='?displayYear="+displayYear+"&displayMonth="+backwordmonth+"')>«</a> "; daysGrid += "<b>"; if (isThisMonth) { daysGrid += "<font color=yellow>" + months[month] + "</font>"; } else { daysGrid += "<font color=white>" + months[month] + "</font>"; } daysGrid += "</b>"; daysGrid += " <a style='color:white' href='?displayMonth="+forwardmonth+"&displayYear="+displayYear+"')>»</a>"; daysGrid += " "; daysGrid += "<a style='color:white' href='?displayMonth="+displayMonth+"&displayYear="+backwordyear+"')>«</a> "; daysGrid += "<b>"; if (isThisYear) { daysGrid += "<font color=yellow>" +year + " 年</font>"; } else { daysGrid += "<font color=white>" +year + " 年</font>"; } daysGrid += "</b>"; daysGrid += " <a style='color:white' href='?displayMonth="+displayMonth+"&displayYear="+forwardyear+"')>»</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> </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> </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 + -
显示快捷键?