Ecology-Dev-chaofa/昆山鸿仕达/interface/hsd/dod.jsp

137 lines
5.5 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@page import="weaver.general.Util"%>
<%@ page import="java.util.*" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="com.cloudstore.dev.api.bean.MessageBean" %>
<%@ page import="com.cloudstore.dev.api.util.Util_Message" %>
<%@ page import="com.cloudstore.dev.api.bean.MessageType" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rs1" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rst" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="bb" class="weaver.general.BaseBean" />
<%
int sum = 0;
bb.writeLog("========== start to remind todo workflow info ==========");
int resourceId = Util.getIntValue(request.getParameter("userid"));
String fromdate = Util.null2String(request.getParameter("fromdate"));
String todate = Util.null2String(request.getParameter("todate"));
String sql = "";
String text = "";
MessageType messageType = MessageType.newInstance(518); // 消息来源(见文档第四点补充 必填)
Set<String> userIdList = new HashSet<>(); // 接收人id 必填
try {
sql = " select resourceid, kqdate, workMins, belatemins, graveBeLateMins, leaveearlymins, graveLeaveEarlyMins, absenteeismmins, forgotcheckMins, forgotBeginWorkCheckMins, "+
" leaveMins,leaveInfo,evectionMins,outMins " +
" from kq_format_detail " +
" where resourceid = ? and kqdate>=? and kqdate<=? "+
" order by resourceid, kqdate, serialnumber ";
rs.executeQuery(sql,resourceId, fromdate,todate);
while (rs.next()) {
String userid = Util.null2String(rs.getString("resourceid"));
int workMins = rs.getInt("workMins");
int beLateMins = rs.getInt("beLateMins");
int leaveEarlyMins = rs.getInt("leaveEarlyMins");
int graveBeLateMins = rs.getInt("graveBeLateMins");
int absenteeismMins = rs.getInt("absenteeismMins");
int graveLeaveEarlyMins = rs.getInt("graveLeaveEarlyMins");
int forgotCheckMins = rs.getInt("forgotCheckMins");
int forgotBeginWorkCheckMins = rs.getInt("forgotBeginWorkCheckMins");
if (workMins <= 0) {
if (text.length() > 0) text += " ";
text += "rest";
} else {
if (absenteeismMins > 0) {//旷工
if (text.length() > 0) text += " ";
text += "absentee";
} else {
if (beLateMins > 0) {//迟到
if (text.length() > 0) text += " ";
text += "beLate";
}
if (graveBeLateMins > 0) {//严重迟到
if (text.length() > 0) text += " ";
text += "graveBeLate";
}
if (leaveEarlyMins > 0) {//早退
if (text.length() > 0) text += " ";
text += "leaveEarly";
}
if (graveLeaveEarlyMins > 0) {//严重早退
if (text.length() > 0) text += " ";
text += "graveLeaveEarly";
}
if (forgotCheckMins > 0) {//漏签
if (text.length() > 0) text += " ";
text += "forgotCheck";
}
if (forgotBeginWorkCheckMins > 0) {//漏签
if (text.length() > 0) text += " ";
text += "forgotBeginWorkCheck";
}
}
}
//有异常
if(!"".equals(text)){
userIdList.add(userid);
}
String context = "昨日考勤数据有异常,请及时关注并处理!";
String linkUrl = ""; // PC端链接
String linkMobileUrl = ""; // 移动端链接
MessageBean messageBean = Util_Message.createMessage(messageType, userIdList, "", context, linkUrl);
messageBean.setDetailTitle("");
Util_Message.store(messageBean);
}
}catch(Exception e){
e.printStackTrace();
bb.writeLog("========== remind todo workflow info error ========== "+ e);
}
%>
<%!
/**
* 根据日期字符串获取上下某个月的月初和月末
*
* @param dateStr 日期字符串
* @param num 上下某月
* @return 月初月末集合
*/
public static List getMonthStartAndEndByDateStr(String dateStr, int num) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<String> res = new ArrayList<String>();
try {
Date date = sdf.parse(dateStr);
Calendar c1 = Calendar.getInstance();
c1.setTime(date);
c1.add(Calendar.MONTH, num);
c1.set(Calendar.DAY_OF_MONTH, 1);
String start = sdf.format(c1.getTime());
res.add(start);
Calendar c2 = Calendar.getInstance();
Date dateTemp = sdf.parse(start);
c2.setTime(dateTemp);
c2.add(Calendar.MONTH, 1);
c2.set(Calendar.DAY_OF_MONTH, 0);
String end = sdf.format(c2.getTime());
res.add(end);
return res;
} catch (Exception e) {
return res;
}
}
%>
<HEAD>
</HEAD>
<BODY>
<h1>Congratulation Mode 666666 !</h1>
<h2>结果是什么? <%=text%></h2>
</BODY>