157 lines
5.7 KiB
Plaintext
157 lines
5.7 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
|
<%@page import="weaver.general.Util"%>
|
|
<%@ page import="weaver.conn.RecordSet" %>
|
|
<%@ page import="java.text.SimpleDateFormat" %>
|
|
<jsp:useBean id="rs" 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;
|
|
|
|
String userid = Util.null2String(request.getParameter("userid"));
|
|
String date = Util.null2String(request.getParameter("date"));
|
|
String fromdate = Util.null2String(request.getParameter("fromdate"));
|
|
String fromtime = Util.null2String(request.getParameter("fromtime"));
|
|
String todate = Util.null2String(request.getParameter("todate"));
|
|
String totime = Util.null2String(request.getParameter("totime"));
|
|
String fromdatedb = Util.null2String(request.getParameter("fromdatedb"));
|
|
String fromtimedb = Util.null2String(request.getParameter("fromtimedb"));
|
|
String todatedb = Util.null2String(request.getParameter("todatedb"));
|
|
String totimedb = Util.null2String(request.getParameter("totimedb"));
|
|
String ori_belongdate = Util.null2String(request.getParameter("ori_belongdate"));
|
|
|
|
boolean bool = false;
|
|
boolean booll = false;
|
|
|
|
bool = checkIsBeforeOvertime(userid,date,3,fromdate,fromtime,todate,totime,fromdatedb,fromtimedb,todatedb,totimedb,ori_belongdate);
|
|
|
|
booll = checkIsAfterOvertime(userid,date,4,fromdate,fromtime,todate,totime,fromdatedb,fromtimedb,todatedb,totimedb,ori_belongdate);
|
|
|
|
%>
|
|
|
|
<%!
|
|
public boolean checkIsBeforeOvertime(String resourceId,String kqDate,int computingmode,
|
|
String fromdate,String fromtime,String todate,String totime,
|
|
String fromdatedb,String fromtimedb,String todatedb,String totimedb,String ori_belongdate){
|
|
boolean bool = false;
|
|
|
|
String workbegintime = getWorkBegintime(resourceId,ori_belongdate);
|
|
|
|
// 无需审批,根据打卡时间计算加班时长 . 取 fromdate、fromtime
|
|
if (computingmode == 3) {
|
|
//开始日期不等于并且大于归属日期。需要将归属日期更新为 开始日期
|
|
if (!ori_belongdate.equals(kqDate) && compareDate(ori_belongdate, kqDate)) {
|
|
if (workbegintime.equals(totime)) {
|
|
bool = true;
|
|
}
|
|
}
|
|
}
|
|
if(computingmode == 4){
|
|
//开始日期不等于并且大于归属日期。需要将归属日期更新为 开始日期
|
|
if(!todatedb.equals(kqDate) && compareDate(todatedb, kqDate)) {
|
|
if(workbegintime.equals(totimedb)){
|
|
bool = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return bool;
|
|
}
|
|
|
|
public boolean checkIsAfterOvertime(String resourceId,String belongdate,int computingmode,
|
|
String fromdate,String fromtime,String todate,String totime,
|
|
String fromdatedb,String fromtimedb,String todatedb,String totimedb,String ori_belongdate) {
|
|
boolean bool = false;
|
|
|
|
String workendtime = getWorkEndtime(resourceId,ori_belongdate);
|
|
|
|
if(computingmode == 3){
|
|
// 加班开始日期不等于归属日期 并且大于 归属日期, 加班开始时间 = 归属日期所在班次的开始时间
|
|
if(!fromdate.equals(belongdate) && compareDate(fromdate,belongdate)){
|
|
if(fromtime.equals(workendtime)){
|
|
bool = true;
|
|
}
|
|
}
|
|
}
|
|
if(computingmode == 4){
|
|
// 加班开始日期不等于归属日期 并且大于 归属日期, 加班开始时间 = 归属日期所在班次的开始时间
|
|
if(!fromdatedb.equals(ori_belongdate) && compareDate(fromdatedb,ori_belongdate)){
|
|
if(fromtimedb.equals(workendtime)){
|
|
bool = true;
|
|
}
|
|
}
|
|
}
|
|
return bool;
|
|
}
|
|
|
|
/**
|
|
* 获取 班次开始时间
|
|
* @param userid
|
|
* @param date
|
|
* @return
|
|
*/
|
|
public String getWorkBegintime(String userid,String date){
|
|
String result = "";
|
|
RecordSet rs = new RecordSet();
|
|
rs.executeQuery("select workbegintime from kq_format_detail where resourceid = ? and kqdate = ?",userid,date);
|
|
while(rs.next()){
|
|
result = Util.null2String(rs.getString("workbegintime"));
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 获取 班次结束时间
|
|
* @param userid
|
|
* @param date
|
|
* @return
|
|
*/
|
|
public String getWorkEndtime(String userid,String date){
|
|
String result = "";
|
|
RecordSet rs = new RecordSet();
|
|
rs.executeQuery("select workendtime from kq_format_detail where resourceid = ? and kqdate = ?",userid,date);
|
|
while(rs.next()){
|
|
result = Util.null2String(rs.getString("workendtime"));
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/**
|
|
* 比较时间的大小
|
|
* @param a
|
|
* @param b
|
|
* @return
|
|
*/
|
|
public static boolean compareDate(String a, String b){
|
|
boolean flag = false;
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
try {
|
|
long t1 = sdf.parse(a).getTime();
|
|
long t2 = sdf.parse(b).getTime();
|
|
if (t1 >= t2) {
|
|
flag = true;
|
|
} else {
|
|
flag = false;
|
|
}
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
%>
|
|
|
|
|
|
|
|
<HEAD>
|
|
</HEAD>
|
|
<BODY>
|
|
|
|
<h1>Congratulation Mode 666666 !</h1>
|
|
|
|
|
|
<h2> 班前加班的结果是什么? <%=bool%></h2>
|
|
|
|
<h2> 班后加班的结果是什么? <%=booll%></h2>
|
|
|
|
</BODY> |