Ecology-Dev-chaofa/LWGD/interface/lwgd/dd.jsp

1441 lines
55 KiB
Plaintext
Raw Normal View History

2025-09-29 10:39:10 +08:00
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.math.BigDecimal" %>
<%@ page import="org.apache.commons.lang.StringUtils" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.ParseException" %>
<%@ page import="java.time.format.DateTimeFormatter" %>
<%@ page import="java.time.LocalDate" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="rst" class="weaver.conn.RecordSet" scope="page" />
<%
int sum = 0;
String fromDate = request.getParameter("fromdate");
String toDate = request.getParameter("todate");
String id = request.getParameter("userid");
//本月加班工时
String byjbgs = getOvertimeHour(fromDate,toDate,id);
//本月调休工时
String bytxgs = getCompensatoryleaveHour(fromDate,toDate,id);
//上月加班结余工时
String syjbjygs = getLastOverHour(fromDate,toDate,id);
//加班累计工时
String jbljgs = getOverTotalHour(fromDate,toDate,id);
sum++;
%>
<%!
/**
* 判断一个时间是否在一个时间段内
*
* @param nowTimee 指定时间
* @param beginTimee 开始时间
* @param endTimee 结束时间
*/
public static boolean belongCalendarNoEnd(String nowTimee, String beginTimee, String endTimee) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date nowTime = null;
Date beginTime = null;
Date endTime = null;
boolean b = false;
try {
nowTime = format.parse(nowTimee);
beginTime = format.parse(beginTimee);
endTime = format.parse(endTimee);
Calendar date = Calendar.getInstance();
date.setTime(nowTime);
Calendar begin = Calendar.getInstance();
begin.setTime(beginTime);
Calendar end = Calendar.getInstance();
end.setTime(endTime);
if(nowTimee.equals(endTimee)){
b = true;
}else if(date.after(begin) && date.before(end)){//在时间段内
b = true;
}
} catch (Exception ex) {
ex.printStackTrace();
}
return b;
}
/**
* 对时间的月份进行加减
* @param daytime 时间的格式yyyy-MM-dd HH:mm:ss
* @param month 天数 -1则代表减一天
* @return
*/
public static String addDateMonth(String daytime, int month){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = format.parse(daytime);
if (date == null){
return "";
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, month);// 加一月
date = cal.getTime();
cal = null;
return format.format(date);
} catch (Exception ex) {
ex.printStackTrace();
}
return "";
}
/**
* 判断当月有几天
* @param year int 2020
* @param month int 8
* @return
*/
public static int getMonthDays(int year, int month) {
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 29;
} else {
return 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
} else {
return 31;
}
}
/**
* @param a 任意数
* @return 是
*/
private static String isZero(String a) {
if (a==null || "".equals(a)) {
a = "0";
}
return a;
}
/**
* 大小比较
*
* @param a
* @param b
* @return -1 小于 0 等于 1 大于
*/
public static int floatCompare(String a, String b) {
a = isZero(a);
b = isZero(b);
BigDecimal bg1 = new BigDecimal(a);
BigDecimal bg2 = new BigDecimal(b);
return bg1.compareTo(bg2);
}
/**
* 方法描述 : 对两个字符串进行金额的相加
* @param a
* @param b
* @return
* String
*/
public static String floatAdd(String a, String b) {
a=a.equals("")?"0":a;
b=b.equals("")?"0":b;
BigDecimal bg1 = new BigDecimal(a);
BigDecimal bg2 = new BigDecimal(b);
BigDecimal bd = bg1.add(bg2);
return bd.toString();
}
/**
*
* 方法描述 : 对两个字符串进行金额的相减
* @param a
* @param b
* @return
* String
*/
public static String floatSubtract(String a, String b) {
a=a.equals("")?"0":a;
b=b.equals("")?"0":b;
BigDecimal bg1 = new BigDecimal(a);
BigDecimal bg2 = new BigDecimal(b);
BigDecimal bd = bg1.subtract(bg2);
return bd.toString();
}
/**
*
* 方法描述 : 对两个字符串进行金额的相乘
* @param a
* @param b
* @return
* String
*/
public static String floatMultiply(String a, String b) {
a=a.equals("")?"0":a;
b=b.equals("")?"0":b;
BigDecimal bg1 = new BigDecimal(a);
BigDecimal bg2 = new BigDecimal(b);
BigDecimal bd = bg1.multiply(bg2).setScale(4, BigDecimal.ROUND_HALF_UP);
return bd.toString();
}
/**
*
* 方法描述 : 对两个字符串进行金额的相除(默认保留两位小数)
* @param a
* @param b
* @return
* String
*/
public static String floatDivide(String a, String b) {
a=a.equals("")?"0":a;
b=b.equals("")?"0":b;
BigDecimal bg1 = new BigDecimal(a);
BigDecimal bg2 = new BigDecimal(b);
BigDecimal bd = bg1.divide(bg2, 2, BigDecimal.ROUND_HALF_UP);
return bd.toString();
}
private static String[] parseDate(String date){
if (StringUtils.isEmpty(date)) {
return new String[]{"1990", "1", "1"};
}
try {
String[] split = date.split("-");
List<String> list = new ArrayList<>(Arrays.asList(split));
// 只有年
if (list.size() == 1) {
// 添加月
list.add("1");
// 添加日
list.add("1");
}
// 只有年月
else if (list.size() == 2) {
list.add("1");
}
return list.toArray(new String[]{});
}catch (Exception e){
e.printStackTrace();
}
return null;
}
/**
* 判断 日期是否是 周日
* @param dateString
* @return
*/
public static boolean isSunday(String dateString) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
boolean flag = false;
try {
date = format.parse(dateString);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
if(dayOfWeek == Calendar.SUNDAY){
flag = true;
}
} catch (ParseException e) {
e.printStackTrace();
}
return flag;
}
/**
* 获取 下拉框 的名称
* @param fieldid
* @param value
* @return
*/
public static String getCusSelectName(String fieldid,String value) {
String result = "";
RecordSet rs = new RecordSet();
if(fieldid.startsWith("field")){
fieldid = fieldid.substring(5);
}
rs.executeQuery("select selectname from cus_selectitem where cancel=0 and fieldid = ? and selectvalue = ?", fieldid, value);
if (rs.next()) {
result = Util.null2String(rs.getString("selectname"));
}
return result;
}
/**
* 获取 基本信息里的 自定义字段的 值
* @param userid
* @return
*/
public static String getBaseCusFieldValue(String userid,String fieldid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select "+ fieldid +" from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid='-1' and id=?",userid);
if(rs.next()){
result = Util.null2String(rs.getString(fieldid));
}
return result;
}
/**
* 获取 个人信息里的 自定义字段的 值
* @param userid
* @return
*/
public static String getPersonCusFieldValue(String userid,String fieldid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select "+ fieldid +" from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid='1' and id=?",userid);
if(rs.next()){
result = Util.null2String(rs.getString(fieldid));
}
return result;
}
/**
* 获取 工作信息里的 自定义字段的 值
* @param userid
* @return
*/
public static String getWorkCusFieldValue(String userid,String fieldid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select "+ fieldid +" from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid='3' and id=?",userid);
if(rs.next()){
result = Util.null2String(rs.getString(fieldid));
}
return result;
}
/**
* 获取 自然月的 天数
* @param toDate
* @return
*/
public static String getCalendarDays(String toDate){
int currentyear = Integer.valueOf(toDate.substring(0, 4)); //年
int currentmonth = Integer.valueOf(toDate.substring(5, 7)); //月
int days = getMonthDays(currentyear,currentmonth);
return String.valueOf(days);
}
/**
* 获取 周日 天数
* @param fromDate
* @param toDate
* @return
*/
public static String getWeekendDay(String fromDate,String toDate){
String result = "0";
// 格式化日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String[] dateStartArr = parseDate(fromDate);
String[] dateEndtArr = parseDate(toDate);
LocalDate startDate = LocalDate.of(Integer.parseInt(dateStartArr[0]), Integer.parseInt(dateStartArr[1]), Integer.parseInt(dateStartArr[2]));
LocalDate endDate = LocalDate.of(Integer.parseInt(dateEndtArr[0]), Integer.parseInt(dateEndtArr[1]), Integer.parseInt(dateEndtArr[2]));
// 遍历日期范围
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
// 输出格式化后的日期字符串
String dateString = date.format(formatter);
// 是 周日
if (isSunday(dateString)) {
result = floatAdd(result,"1");
}
}
return result;
}
/**
* 获取 公众假日 天数
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getHolidayDays(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select * from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
String groupid = Util.null2String(rs.getString("groupid"));
String kqdate = Util.null2String(rs.getString("kqdate"));
if (isHolidayDay(groupid, kqdate)) {
result = floatAdd(result,"1");
}
}
return result;
}
/**
* 获取 标准月 工作日 天数
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getWorkDays(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(workdays)as days from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("days"));
}
return result;
}
/**
* 获取 标准月 实际出勤 天数
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getAttendDays(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(attendancedays)as days from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("days"));
}
return result;
}
/**
* 获取 标准月 实际出勤 时长 小时
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getAttendHours(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(attendancemins)as mins from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
String mins = Util.null2o(rs.getString("mins"));
result = floatDivide(mins,"60");
}
return result;
}
/**
* 判断 指定天数 是否是 公众假日 true 是 false 否
* @param groupid
* @param date
* @return
*/
public static boolean isHolidayDay(String groupid,String date){
boolean bool = false;
RecordSet rs = new RecordSet();
rs.executeQuery("select * from kq_HolidaySet where groupid=? and holidayDate=?",groupid,date);
while(rs.next()){
// 1-公众假日 2-调配工作日 3-调配休息日
int changeType = Util.getIntValue(rs.getString("changeType"));
if(changeType == 1){
bool = true;
}
}
return bool;
}
/**
* 获取 工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
* @param userid
* @return
*/
public static String getGszdId(String userid){
String result = "";
RecordSet rs = new RecordSet();
String gszd_fieldid = rs.getPropValue("lwgd_kqreport","gszd_fieldid");
result = getBaseCusFieldValue(userid,gszd_fieldid);
return result;
}
/**
* 获取 工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
* @param userid
* @return
*/
public static String getGszdName(String userid){
String result = "";
RecordSet rs = new RecordSet();
String gszd_fieldid = rs.getPropValue("lwgd_kqreport","gszd_fieldid");
String fieldvalue = getGszdId(userid);
if(fieldvalue != null && !"".equals(fieldvalue)){
result = getCusSelectName(gszd_fieldid,fieldvalue);
}
return result;
}
/**
* 查询 岗位的中文名称
* @param gwid
* @return
*/
public static String getGwname(String gwid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select gw from uf_gwgl where sfqy=0 and id=?",gwid);
if(rs.next()){
result = Util.null2String(rs.getString("gw"));
}
return result;
}
/**
* 月度排班标准天数
* 1、只针对标准工时制人员标准出勤天数=当月法定工作日;
* 2、其余员工赋值“/”
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getYdpbbzts(String fromDate, String toDate, String userid){
String result = "";
RecordSet rs = new RecordSet();
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
if("0".equals(usertype)){
rs.executeQuery("select sum(workdays) as workdays from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("workdays"));
}
}else{
result = "/";
}
return result;
}
/**
* 月度排班标准工时
* 1、标准工时制人员赋值“/”
* 2、综合工时制人员-生产、仓管、图档166
* 3、综合工时制人员-厂务:(标准月自然日-标准月周日天数-标准月公众假日)*8
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getYdpbbzgs(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
if("0".equals(usertype)){
result = "/";
}else if("1".equals(usertype)){
result = "166";
}else{
//标准月自然日
String calendarDays = getCalendarDays(toDate);
//标准月周日天数
String weekendDays = getWeekendDay(fromDate,toDate);
//标准月公众假日天数
String holidayDays = getHolidayDays(fromDate, toDate, userid);
String days = floatSubtract(floatSubtract(calendarDays,weekendDays),holidayDays);
if(floatCompare(days,"0") == -1){
days = "0";
}
result = floatMultiply(days,"8");
}
return result;
}
/**
* 获取标准出勤天数
* 标准工时制人员:标准出勤天数=当月法定工作日/在职期间当月法定工作日
* 其余员工赋值“/”
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getBzcqts(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
//入职日期
String rzrq = getRzrq(userid);
if("0".equals(usertype)){
//入职日期在开始日期和结束日期之间
if(belongCalendarNoEnd(rzrq,fromDate,toDate)){
fromDate = rzrq;
}
rs.executeQuery("select sum(attendancedays)as days from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("days"));
}
}else{
result = "/";
}
return result;
}
/**
* 获取 标准出勤工时
* 1、标准工时制人员赋值为“/”
* 2、综合工时制人员-生产、仓管、图档166/(在职出勤天数/当月法定工作日天数*166)
* 3、综合工时制人员-厂务:
* (标准月自然日-标准月周日天数-标准月法定天数)*8/(在职月自然日-在职月周日天数-在职月法定天数)*8
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getBzcqgs(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
//入职日期
String rzrq = getRzrq(userid);
if("0".equals(usertype)){
result = "/";
}else if("1".equals(usertype)){
if(belongCalendarNoEnd(rzrq,fromDate,toDate)){
fromDate = rzrq;
String attendancedays = "0";
rs.executeQuery("select sum(attendancedays)as days from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
attendancedays = Util.null2o(rs.getString("days"));
}
String workdays = getWorkDays(fromDate,toDate,userid);
result = floatMultiply(floatDivide(attendancedays,workdays),"166");
}else{
result = "166";
}
}else if("2".equals(usertype)){
if(belongCalendarNoEnd(rzrq,fromDate,toDate)){
fromDate = rzrq;
}
//标准月自然日
String calendarDays = getCalendarDays(toDate);
//标准月周日天数
String weekendDays = getWeekendDay(fromDate,toDate);
//标准月法定天数
String attendDays = getAttendDays(fromDate, toDate, userid);
result = floatMultiply(floatSubtract(floatSubtract(calendarDays,weekendDays),attendDays),"8");
}
return result;
}
/**
* 获取 夜班
* 取班次为:夜班-生产值班工程师、夜班-厂务值班工程师 两个班次;
* 1、排了这个班次且正常出勤计为1
* 2、排班这个班次出勤时长超过4H计为1
* 取1和2的合计值
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getNightSerial(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
// 格式化日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//夜班班次
String night_serialid = rs.getPropValue("lwgd_kqreport","night_serialid");
String[] dateStartArr = parseDate(fromDate);
String[] dateEndtArr = parseDate(toDate);
LocalDate startDate = LocalDate.of(Integer.parseInt(dateStartArr[0]), Integer.parseInt(dateStartArr[1]), Integer.parseInt(dateStartArr[2]));
LocalDate endDate = LocalDate.of(Integer.parseInt(dateEndtArr[0]), Integer.parseInt(dateEndtArr[1]), Integer.parseInt(dateEndtArr[2]));
// 遍历日期范围
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
// 输出格式化后的日期字符串
String dateString = date.format(formatter);
//班次id
String serialid = getSerialId(dateString,dateString,userid);
//实际出勤天数
String attendDay = getAttendDays(dateString, dateString, userid);
//实际出勤小时数
String attendHour = getAttendHours(dateString, dateString, userid);
//排了夜班班次
if((","+night_serialid+",").contains(","+serialid+",")){
if(floatCompare(attendDay,"1") >= 0){
result = floatAdd(result,"1");
}
if(floatCompare(attendHour,"4") >= 0){
result = floatAdd(result,"1");
}
}
}
return result;
}
/**
* 获取 应出勤天数/工时
* 如果【工时制度】=标准工时制,【标准出勤天数/工时】-【年假】-【病假】-【婚假】-【丧假】-【产假】-【陪产假】-【住院病假】-【其他】
* 否则,【标准出勤天数/工时】-(【年假】+【病假】+【婚假】+【丧假】+【产假】+【陪产假】+【住院病假】+【其他】)*8
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getWorkDayAndHour(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
//年假 假期类型id
String annualleavetype = rs.getPropValue("lwgd_kqreport","annualleavetype");
//病假 假期类型id
String sickleavetype = rs.getPropValue("lwgd_kqreport","sickleavetype");
//婚假 假期类型id
String marriageleavetype = rs.getPropValue("lwgd_kqreport","marriageleavetype");
//丧假 假期类型id
String bereavementleavetype = rs.getPropValue("lwgd_kqreport","bereavementleavetype");
//产假 假期类型id
String maternityleavetype = rs.getPropValue("lwgd_kqreport","maternityleavetype");
//陪产假 假期类型id
String paternityleavetype = rs.getPropValue("lwgd_kqreport","paternityleavetype");
//住院病假 假期类型id
String hospitalleavetype = rs.getPropValue("lwgd_kqreport","hospitalleavetype");
//其他 假期类型id
String otherleavetype = rs.getPropValue("lwgd_kqreport","otherleavetype");
//标准实际出勤天数
String attendDays = getAttendDays(fromDate, toDate, userid);
// 年假
String annualleaveday = getLeaveDaysByType(annualleavetype, fromDate, toDate, userid);
// 病假
String sickleaveday = getLeaveDaysByType(sickleavetype, fromDate, toDate, userid);
// 婚假
String marriageleaveday = getLeaveDaysByType(marriageleavetype, fromDate, toDate, userid);
// 丧假
String bereavementleaveday = getLeaveDaysByType(bereavementleavetype, fromDate, toDate, userid);
// 产假
String maternityleaveday = getLeaveDaysByType(maternityleavetype, fromDate, toDate, userid);
// 陪产假
String paternityleaveday = getLeaveDaysByType(paternityleavetype, fromDate, toDate, userid);
// 住院病假
String hospitalleaveday = getLeaveDaysByType(hospitalleavetype, fromDate, toDate, userid);
// 其他假
String otherleaveday = getLeaveDaysByType(otherleavetype, fromDate, toDate, userid);
//
String totalLeaveDays = floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(annualleaveday,sickleaveday),marriageleaveday),bereavementleaveday),maternityleaveday),paternityleaveday),hospitalleaveday),otherleaveday);
if("0".equals(usertype)){
result = floatSubtract(attendDays,totalLeaveDays);
}else{
result = floatMultiply(floatSubtract(attendDays,totalLeaveDays),"8");
}
return result;
}
/**
* 【员工月度加班汇总台账】中【ONCALL·时长+ONCALL·调整时长】
* @param toDate
* @param userid
* @return
*/
public static String getOncallHours(String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
String currentyearmonth = toDate.substring(0, 7); //年月
rs.executeQuery("select sum(oncallsc)+sum(oncalldzsc) as count from uf_ygydjbhz where xm = ? and yf = ?",userid,currentyearmonth);
while(rs.next()){
result = Util.null2o(rs.getString("count"));
}
return result;
}
/**
* 【员工月度加班汇总台账】中【周末-时长 + 周末-调整时长】
* @param toDate
* @param userid
* @return
*/
public static String getWeekendHours(String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
String currentyearmonth = toDate.substring(0, 7); //年月
rs.executeQuery("select sum(zmsc)+sum(zmdzsc) as count from uf_ygydjbhz where xm = ? and yf = ?",userid,currentyearmonth);
while(rs.next()){
result = Util.null2o(rs.getString("count"));
}
return result;
}
/**
* 获取 本月加班工时/ONCALL工时
* 如果考勤组=【工程师三班倒】、【设备研发部】取【员工月度加班汇总台账】中【ONCALL·时长+ONCALL·调整时长】
* 如果考勤组!=【工程师三班倒、设备研发部】,且实际出勤天数/工时>应出勤天数/工时,【实际出勤天数/工时-应出勤天数/工时】否则取0
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getOvertimeHourThisMonth(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
// 工程师三班倒 考勤组id
String gcssbd_groupid = rs.getPropValue("lwgd_kqreport","gcssbd_groupid");
// 工程师三班倒 考勤组id
String sbyfb_groupid = rs.getPropValue("lwgd_kqreport","sbyfb_groupid");
// 【员工月度加班汇总台账】中【ONCALL·时长+ONCALL·调整时长】
String oncallHours = getOncallHours(toDate,userid);
// 应出勤天数/工时
// String workdayandhour = getWorkDayAndHour(fromDate, toDate, userid);
String workdayandhour = "0";
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
//年假 假期类型id
String annualleavetype = rs.getPropValue("lwgd_kqreport","annualleavetype");
//病假 假期类型id
String sickleavetype = rs.getPropValue("lwgd_kqreport","sickleavetype");
//婚假 假期类型id
String marriageleavetype = rs.getPropValue("lwgd_kqreport","marriageleavetype");
//丧假 假期类型id
String bereavementleavetype = rs.getPropValue("lwgd_kqreport","bereavementleavetype");
//产假 假期类型id
String maternityleavetype = rs.getPropValue("lwgd_kqreport","maternityleavetype");
//陪产假 假期类型id
String paternityleavetype = rs.getPropValue("lwgd_kqreport","paternityleavetype");
//住院病假 假期类型id
String hospitalleavetype = rs.getPropValue("lwgd_kqreport","hospitalleavetype");
//其他 假期类型id
String otherleavetype = rs.getPropValue("lwgd_kqreport","otherleavetype");
//标准实际出勤天数
String attendDays = getAttendDays(fromDate, toDate, userid);
// 年假
String annualleaveday = getLeaveDaysByType(annualleavetype, fromDate, toDate, userid);
// 病假
String sickleaveday = getLeaveDaysByType(sickleavetype, fromDate, toDate, userid);
// 婚假
String marriageleaveday = getLeaveDaysByType(marriageleavetype, fromDate, toDate, userid);
// 丧假
String bereavementleaveday = getLeaveDaysByType(bereavementleavetype, fromDate, toDate, userid);
// 产假
String maternityleaveday = getLeaveDaysByType(maternityleavetype, fromDate, toDate, userid);
// 陪产假
String paternityleaveday = getLeaveDaysByType(paternityleavetype, fromDate, toDate, userid);
// 住院病假
String hospitalleaveday = getLeaveDaysByType(hospitalleavetype, fromDate, toDate, userid);
// 其他假
String otherleaveday = getLeaveDaysByType(otherleavetype, fromDate, toDate, userid);
//
String totalLeaveDays = floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(annualleaveday,sickleaveday),marriageleaveday),bereavementleaveday),maternityleaveday),paternityleaveday),hospitalleaveday),otherleaveday);
if("0".equals(usertype)){
workdayandhour = floatSubtract(attendDays,totalLeaveDays);
}else{
workdayandhour = floatMultiply(floatSubtract(attendDays,totalLeaveDays),"8");
}
// 实际出勤天数/工时
String actualdayandhour = getActualDayAndHour(fromDate, toDate, userid);
// String actualdayandhour = "0";
rs.executeQuery("select distinct groupid from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
String groupid = Util.null2String(rs.getString("groupid"));
if(gcssbd_groupid.equals(groupid) || sbyfb_groupid.equals(groupid)){
result = oncallHours;
}else{
if(floatCompare(actualdayandhour,workdayandhour) > 0){
result = floatSubtract(actualdayandhour,workdayandhour);
}else{
result = "0";
}
}
}
return result;
}
/**
* 获取 周末加班工时
* 如果考勤组=【工程师三班倒】、【设备研发部】,取【员工月度加班汇总台账】中【周末·时长+周末·调整时长】 否则取0
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getWeekendOverHour(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
// 工程师三班倒 考勤组id
String gcssbd_groupid = rs.getPropValue("lwgd_kqreport","gcssbd_groupid");
// 工程师三班倒 考勤组id
String sbyfb_groupid = rs.getPropValue("lwgd_kqreport","sbyfb_groupid");
// 【员工月度加班汇总台账】中【周末-时长 + 周末-调整时长】
String weekendHours = getWeekendHours(toDate,userid);
rs.executeQuery("select distinct groupid from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
String groupid = Util.null2String(rs.getString("groupid"));
if(gcssbd_groupid.equals(groupid) || sbyfb_groupid.equals(groupid)){
result = weekendHours;
}else{
result = "0";
}
}
return result;
}
/**
* 获取 本月加班工时
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getOvertimeHour(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(duration_min)as mins from KQ_FLOW_OVERTIME where paidleaveenable=1 and changetype in ('2','3') and resourceid=? and belongdate>=? and belongdate <=?",userid,fromDate,toDate);
while(rs.next()){
String mins = Util.null2o(rs.getString("mins"));
result = floatDivide(mins,"60");
}
return result;
}
/**
* 获取 本月调休工时 【调休(天)】*8
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getCompensatoryleaveHour(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
// 调休假 假期类型id
String compensatoryleavetype = rs.getPropValue("lwgd_kqreport","compensatoryleavetype");
// 调休假天数
String compensatoryleaveday = getLeaveDaysByType(compensatoryleavetype, fromDate, toDate, userid);
result = floatMultiply(compensatoryleaveday,"8");
return result;
}
/**
* 获取 上月加班结余工时 上月考勤表·【加班累计工时】
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getLastOverHour(String fromDate, String toDate, String userid){
String result = "0";
String lastFromDate = addDateMonth(fromDate,-1);
String lastToDate = addDateMonth(toDate,-1);
result = getOverTotalHour(lastFromDate, lastToDate, userid);
return result;
}
/**
* 获取 加班累计工时 上月加班结余工时+本月加班工时-本月调休工时
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getOverTotalHour(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
String lastFromDate = addDateMonth(fromDate,-1);
String lastToDate = addDateMonth(toDate,-1);
// 上月加班结余工时
String lastoveroverhour = getLastOverHour(fromDate,toDate,userid);
// 本月加班工时
String overtimehour = getOvertimeHour(fromDate, toDate, userid);
// 本月调休工时
String compensatoryleaveHour = getCompensatoryleaveHour(fromDate, toDate, userid);
result = floatSubtract(floatAdd(lastoveroverhour,overtimehour),compensatoryleaveHour);
return result;
}
/**
* 获取 全勤
* 1.(事+病+产+陪产+其他+年+婚+丧)假期天数≠0
* 2.补签流程表·是否全勤=否
* 3.当月入职、离职人员(可以根据月标准出勤天数/工时≠标准出勤天数/工时判断)
* 4.迟到、早退次数/严重迟到早退次数、旷工天数>0
* 5.漏签次数>0
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getPerfectAttendance(String fromDate, String toDate, String userid){
String result = "0";
// 获取 事+病+产+陪产+其他+年+婚+丧 假期天数 是否 大于0
boolean isSomeLeaveDays = checkSomeLeaveDays(fromDate, toDate, userid);
// 补卡流程明细 是否全勤为 否 是否有数据
boolean isCardReplaceIsAllAttend = checkCardReplaceIsAllAttend(fromDate, toDate, userid);
// 人员是否在 同一个月 入职、离职
boolean isRzAndLzIsSameMonth = checkIsRzAndLzIsSameMonth(fromDate, toDate, userid);
// 日期范围内 是否有 迟到、早退、严重迟到、严重早退、旷工、漏签
boolean isAttendanceException = checkAttendanceException(fromDate, toDate, userid);
if(isSomeLeaveDays || isCardReplaceIsAllAttend || isRzAndLzIsSameMonth || isAttendanceException){
result = "否";
}else{
result = "是";
}
return result;
}
/**
* 判断 日期范围内 是否有 迟到、早退、严重迟到、严重早退、旷工
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static boolean checkAttendanceException(String fromDate, String toDate, String userid){
boolean bool = false;
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(belate)as lates,sum(leaveeearly)as leaveeearlys,sum(gravebelate)as gravebelates,sum(graveleaveearly)as graveleaveearlys,sum(absenteeism)as absenteeisms,sum(forgotCheck)+sum(b.forgotBeginWorkCheck) as forgotChecks from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
String lates = Util.null2o(rs.getString("lates"));
String leaveeearlys = Util.null2o(rs.getString("leaveeearlys"));
String gravebelates = Util.null2o(rs.getString("gravebelates"));
String graveleaveearlys = Util.null2o(rs.getString("graveleaveearlys"));
String absenteeisms = Util.null2o(rs.getString("absenteeisms"));
String forgotChecks = Util.null2o(rs.getString("forgotChecks"));
if(floatCompare(lates,"0") > 0){
bool = true;
break;
}else if(floatCompare(leaveeearlys,"0") > 0){
bool = true;
break;
}else if(floatCompare(gravebelates,"0") > 0){
bool = true;
break;
}else if(floatCompare(graveleaveearlys,"0") > 0){
bool = true;
break;
}else if(floatCompare(absenteeisms,"0") > 0){
bool = true;
break;
}else if(floatCompare(forgotChecks,"0") > 0){
bool = true;
break;
}
}
return bool;
}
/**
* 判断 人员是否在 同一个月 入职、离职
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static boolean checkIsRzAndLzIsSameMonth(String fromDate, String toDate, String userid){
boolean bool = false;
RecordSet rs = new RecordSet();
// 入职日期
String rzrq = getRzrq(userid);
String rz_ny = rzrq.substring(0,7);
// 离职日期
String lzrq = getLzrq(userid);
if(lzrq != null && !"".equals(lzrq)){
String lz_ny = lzrq.substring(0,7);
if(rz_ny.equals(lz_ny)){
bool = true;
}
}
return bool;
}
/**
* 获取 事+病+产+陪产+其他+年+婚+丧 假期天数
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static boolean checkSomeLeaveDays(String fromDate, String toDate, String userid){
boolean result = false;
RecordSet rs = new RecordSet();
//年假 假期类型id
String annualleavetype = rs.getPropValue("lwgd_kqreport","annualleavetype");
//病假 假期类型id
String sickleavetype = rs.getPropValue("lwgd_kqreport","sickleavetype");
//婚假 假期类型id
String marriageleavetype = rs.getPropValue("lwgd_kqreport","marriageleavetype");
//丧假 假期类型id
String bereavementleavetype = rs.getPropValue("lwgd_kqreport","bereavementleavetype");
//产假 假期类型id
String maternityleavetype = rs.getPropValue("lwgd_kqreport","maternityleavetype");
//陪产假 假期类型id
String paternityleavetype = rs.getPropValue("lwgd_kqreport","paternityleavetype");
//事假 假期类型id
String leaveabsencetype = rs.getPropValue("lwgd_kqreport","leaveabsencetype");
//其他 假期类型id
String otherleavetype = rs.getPropValue("lwgd_kqreport","otherleavetype");
// 年假
String annualleaveday = getLeaveDaysByType(annualleavetype, fromDate, toDate, userid);
// 病假
String sickleaveday = getLeaveDaysByType(sickleavetype, fromDate, toDate, userid);
// 婚假
String marriageleaveday = getLeaveDaysByType(marriageleavetype, fromDate, toDate, userid);
// 丧假
String bereavementleaveday = getLeaveDaysByType(bereavementleavetype, fromDate, toDate, userid);
// 产假
String maternityleaveday = getLeaveDaysByType(maternityleavetype, fromDate, toDate, userid);
// 陪产假
String paternityleaveday = getLeaveDaysByType(paternityleavetype, fromDate, toDate, userid);
// 事假
String leaveabsenceday = getLeaveDaysByType(leaveabsencetype, fromDate, toDate, userid);
// 其他假
String otherleaveday = getLeaveDaysByType(otherleavetype, fromDate, toDate, userid);
String somenums = floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(floatAdd(annualleaveday,sickleaveday),marriageleaveday),bereavementleaveday),maternityleaveday),paternityleaveday),leaveabsenceday),otherleaveday);
if(floatCompare(somenums,"0") > 0){
result = true;
}
return result;
}
/**
* 判断 补卡流程明细 是否全勤为 否 是否有数据
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static boolean checkCardReplaceIsAllAttend(String fromDate, String toDate, String userid){
boolean bool = false;
RecordSet rs = new RecordSet();
String table = rs.getPropValue("","");
String tableDt1 = table+"_dt1";
rs.executeQuery("select b.id from "+ table +" a,"+ tableDt1 +" b,workflow_requestbase c where a.requestid=c.requestid and a.id=b.mainid and c.currentnodetype='3' and b.sfqq='1' and b.xm=? and b.detail_signdate>=? and b.detail_signdate<=?",userid,fromDate,toDate);
if(rs.next()){
bool = true;
}
return bool;
}
/**
* 获取 实际出勤天数/工时
* 如果【工时制度】=标准工时制,【应出勤天数/工时】-【出差天数】-【旷工】-【调休天数】-【事假】
* 否则,【应出勤天数/工时】-(【出差天数】+【旷工】+【调休天数】+【事假】)*8+【加班费·本月加班工时/ONCALL工时】
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getActualDayAndHour(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
//调休假
String compensatoryleavetype = rs.getPropValue("lwgd_kqreport","compensatoryleavetype");
//事假
String leaveabsencetype = rs.getPropValue("lwgd_kqreport","leaveabsencetype");
//工时制度 0为标准工时制、1为综合工时制-厂务、2为综合工时制-生产、仓管、图档
String usertype = getGszdId(userid);
//应出勤天数
String workdays = getWorkDays(fromDate,toDate,userid);
// 调休假天数
String compensatoryleaveday = getLeaveDaysByType(compensatoryleavetype, fromDate, toDate, userid);
// 事假
String leaveabsenceday = getLeaveDaysByType(leaveabsencetype, fromDate, toDate, userid);
// 矿工
String absenteeismsday = getAbsenteeisms(fromDate, toDate, userid);
// 出差
String eventionday = getEvectionDays(fromDate, toDate, userid);
// 【加班费·本月加班工时/ONCALL工时】
String overtimehoursthismonth = getOvertimeHourThisMonth(fromDate, toDate, userid);
//
String totalday = floatAdd(floatAdd(floatAdd(eventionday,absenteeismsday),compensatoryleaveday),leaveabsenceday);
if("0".equals(usertype)){
result = floatSubtract(workdays,totalday);
}else{
result = floatAdd(floatMultiply(floatSubtract(workdays,totalday),"8"),overtimehoursthismonth);
}
return result;
}
/**
* 获取 法定节假日加班工时 【不关联调休·节假日加班(小时)】
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getFdjjrjbsc(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(duration_min)as mins from KQ_FLOW_OVERTIME where paidleaveenable='0' and changetype='1' and resourceid=? and belongdate>=? and belongdate <=?",userid,fromDate,toDate);
while(rs.next()){
String mins = Util.null2o(rs.getString("mins"));
result = floatDivide(mins,"60");
}
return result;
}
/**
* 获取 旷工 次数
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getAbsenteeisms(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(absenteeism)as count from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("count"));
}
return result;
}
/**
* 获取 出差天数
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getEvectionDays(String fromDate, String toDate, String userid){
String result = "0";
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(duration) as count from kq_flow_split_evection where belongdate >= ? and belongdate <= ? and resourceid = ? ",fromDate,toDate,userid);
while(rs.next()){
result = Util.null2o(rs.getString("count"));
}
return result;
}
/**
* 获取 班次id
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getSerialId(String fromDate, String toDate,String userid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select distinct a.serialid from kq_format_total a,kq_ShiftManagement b " +
" where a.serialid=b.id and a.resourceid = ? and a.kqdate >= ? and a.kqdate <= ? and b.is_rest=0 ",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2String(rs.getString("serialid"));
}
return result;
}
/**
* 获取 指定假期的时长
* @param type
* @param fromdate
* @param todate
* @param userid
* @return
*/
public static String getLeaveDaysByType(String type,String fromdate,String todate,String userid){
String result = "0";
RecordSet rs = new RecordSet();
String halfdays = "0";
String halfbackdays = "0";
// 假期 时长
rs.executeQuery("select sum(duration) as count from kq_flow_split_leave where belongdate >= ? and belongdate <= ? and newleavetype in ("+ type +") and resourceid = ? ",fromdate,todate,userid);
while(rs.next()){
halfdays = Util.null2o(rs.getString("count"));
}
// 销假时长
rs.executeQuery("select sum(duration) as count from kq_flow_split_leaveback where belongdate >= ? and belongdate <= ? and newleavetype in ("+ type +") and resourceid = ? ",fromdate,todate,userid);
while(rs.next()){
halfbackdays = Util.null2o(rs.getString("count"));
}
result = floatSubtract(halfdays,halfbackdays);
return result;
}
/**
* 获取 岗位名称
* @param userid
* @return
*/
public static String getNewGw(String userid){
String result = "";
RecordSet rs = new RecordSet();
String gw_fieldid = rs.getPropValue("lwgd_kqreport","gw_fieldid");
String fieldvalue = getBaseCusFieldValue(userid,gw_fieldid);
if(fieldvalue != null && !"".equals(fieldvalue)){
result = getGwname(fieldvalue);
}
return result;
}
/**
* 获取 入职日期
* @param userid
* @return
*/
public static String getRzrq(String userid){
String result = "";
RecordSet rs = new RecordSet();
String rzsj_fieldid = rs.getPropValue("lwgd_kqreport","rzsj_fieldid");
result = getWorkCusFieldValue(userid,rzsj_fieldid);
return result;
}
/**
* 获取 调动日期
* @param userid
* @return
*/
public static String getTransferDate(String userid){
String result = "";
RecordSet rs = new RecordSet();
rs.executeQuery("select ksrq from uf_rzxxb where rzry=?",userid);
if(rs.next()){
result = Util.null2String(rs.getString("ksrq"));
}
return result;
}
/**
* 获取 离职日期
* @param userid
* @return
*/
public static String getLzrq(String userid){
String result = "";
RecordSet rs = new RecordSet();
String lzrq_fieldid = rs.getPropValue("lwgd_kqreport","lzrq_fieldid");
result = getWorkCusFieldValue(userid,lzrq_fieldid);
return result;
}
/**
* 获取 迟到/早退(30分钟以内)/次
* 迟到(次)+早退(次)
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static double getBeLateLeaveEearly30(String fromDate, String toDate, String userid){
double result = 0.00;
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(isnull(belate,0))+sum(isnull(leaveeearly,0)) as count from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.getDoubleValue(rs.getString("count"),0);
}
return result;
}
/**
* 获取 迟到/早退(30分钟以上)/次
* 严重迟到(次)+严重早退(次)
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static double getBeLateLeaveEearly30More(String fromDate, String toDate, String userid){
double result = 0.00;
RecordSet rs = new RecordSet();
rs.executeQuery("select sum(isnull(gravebelate,0))+sum(isnull(graveleaveearly,0)) as count from kq_format_total where resourceid=? and kqdate >= ? and kqdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.getDoubleValue(rs.getString("count"),0);
}
return result;
}
/**
* 获取 签卡(次数)-am
* 取【补卡流程表·签卡原因】=个人原因,签卡类型=上班卡
* 签卡类型 detail_signtype 0-上班卡 1-下班卡
* 签卡原因 bkyy 0-机器故障 1-入职补卡 2-工作日延长 3-个人原因
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getQkcsam(String fromDate,String toDate,String userid){
String result = "0";
RecordSet rs = new RecordSet();
String table = rs.getPropValue("lwgd_kqreport","bklc_tablename");
String tableDt = table+"_dt1";
rs.executeQuery("select count(b.id)as count from "+ table +" a,"+tableDt+" b,workflow_requestbase c where a.requestid=c.requestid and a.id=b.mainid and c.currentnodetype=3 " +
"and b.detail_signtype=0 and b.bkyy=3 and b.xm=? and b.detail_signdate >= ? and b.detail_signdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("count"));
}
return result;
}
/**
* 获取 签卡(次数)-pm
* 取【补卡流程表·签卡原因】=个人原因,签卡类型=上班卡
* 签卡类型 detail_signtype 0-上班卡 1-下班卡
* 签卡原因 bkyy 0-机器故障 1-入职补卡 2-工作日延长 3-个人原因
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getQkcspm(String fromDate,String toDate,String userid){
String result = "0";
RecordSet rs = new RecordSet();
String table = rs.getPropValue("lwgd_kqreport","bklc_tablename");
String tableDt = table+"_dt1";
rs.executeQuery("select count(b.id)as count from "+ table +" a,"+tableDt+" b,workflow_requestbase c where a.requestid=c.requestid and a.id=b.mainid and c.currentnodetype=3 " +
"and b.detail_signtype=1 and b.bkyy=3 and b.xm=? and b.detail_signdate >= ? and b.detail_signdate <= ?",userid,fromDate,toDate);
while(rs.next()){
result = Util.null2o(rs.getString("count"));
}
return result;
}
/**
* 获取 签卡(次数)
* 签卡(次数)-am+签卡(次数)-pm
* @param fromDate
* @param toDate
* @param userid
* @return
*/
public static String getQkcs(String fromDate,String toDate,String userid){
String result = "0";
String qkcsam = getQkcsam(fromDate,toDate,userid);
String qkcspm = getQkcspm(fromDate,toDate,userid);
result = floatAdd(qkcsam,qkcspm);
return result;
}
%>
<BODY>
<h1>Congratulation Mode 666666 !</h1>
<h1> sum <%=sum%> </h1>
<h1> 本月加班工时 <%=byjbgs%> </h1>
<h1> 本月调休工时 <%=bytxgs%> </h1>
<h1> 上月加班结余工时 <%=syjbjygs%> </h1>
<h1> 加班累计工时 <%=jbljgs%> </h1>
</BODY>