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

821 lines
45 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 import="weaver.hrm.*" %>
<%@ page import="weaver.hrm.company.SubCompanyComInfo" %>
<%@ page import="weaver.hrm.company.DepartmentComInfo" %>
<%@ page import="weaver.hrm.resource.ResourceComInfo" %>
<%@ page import="weaver.hrm.job.JobTitlesComInfo" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page import="weaver.general.TimeUtil" %>
<%@ page import="weaver.systeminfo.SystemEnv" %>
<%@ page import="weaver.common.DateUtil" %>
<%@ page import="com.engine.kq.biz.*" %>
<%@ page import="com.google.common.collect.Lists" %>
<%@ page import="com.engine.kq.util.*" %>
<%@ 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 userid = request.getParameter("userid");
Map<String, Object> retmap = new HashMap<String, Object>();
Map<String, Object> titlemap = new HashMap<String, Object>();
User user = HrmUserVarify.getUser(request,response);
String sql = "";
//分部id
String subcomid = ""+user.getUserSubCompany1();
boolean isKqReportHalfOpen = "1".equals(new KQSettingsComInfo().getMain_val("kq_report_half"));
List<String> lsFieldDataKey = new ArrayList<>();
try {
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
DepartmentComInfo departmentComInfo = new DepartmentComInfo();
ResourceComInfo resourceComInfo = new ResourceComInfo();
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo();
KQLeaveRulesBiz kqLeaveRulesBiz = new KQLeaveRulesBiz();
KQSettingsComInfo kqSettingsComInfo = new KQSettingsComInfo();
String leavetype_is_on = Util.null2String(kqSettingsComInfo.getMain_val("leavetype_is_on"),"0");
String rightSql = new KQReportBiz().getReportRight("1", "" + user.getUID(), "a");
LinkedHashMap<String, Object> workbook = new LinkedHashMap<>();
List<Object> lsSheet = new ArrayList<>();
Map<String, Object> sheet = null;
List<Object> titleList = new ArrayList<>();
Map<String, Object> title = null;
List<List<Object>> dataList = new ArrayList<>();
List<Object> data = null;
List<Map<String, Object>> constraintList = null;
sheet = new HashMap<>();
sheet.put("sheetName", SystemEnv.getHtmlLabelName(390351, user.getLanguage()));
sheet.put("sheetTitle", SystemEnv.getHtmlLabelName(390351, user.getLanguage()));
boolean isEnd = false;
Calendar cal = DateUtil.getCalendar();
List<Map<String, Object>> leaveRules = kqLeaveRulesBiz.getAllLeaveRules();
Map<String, Object> mapChildColumnInfo = null;
List<Object> childColumns = null;
KQReportFieldComInfo kqReportFieldComInfo = new KQReportFieldComInfo();
while (kqReportFieldComInfo.next()) {
if (Util.null2String(kqReportFieldComInfo.getParentid()).length() > 0) continue;
if(kqReportFieldComInfo.getFieldname().equals("kqCalendar"))continue;
if(KQReportFieldComInfo.cascadekey2fieldname.keySet().contains(kqReportFieldComInfo.getFieldname()))continue;
if (!kqReportFieldComInfo.getReportType().equals("all") && !kqReportFieldComInfo.getReportType().equals("month"))
continue;
if("leave".equalsIgnoreCase(kqReportFieldComInfo.getFieldname())&&leaveRules.size()==0){
continue;
}
title = new HashMap<>();
String unitType = KQReportBiz.getUnitType(kqReportFieldComInfo, user);
if(unitType.length()>0){
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage())+ "(" + unitType + ")");
}else{
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
}
title.put("width", 30 * 256);
lsFieldDataKey.add(kqReportFieldComInfo.getFieldname());
//集团总部的人,深圳分公司
if("3".equals(subcomid)){
if("ydpbbzts".equals(kqReportFieldComInfo.getFieldname()) ||
"ydpbbzgs".equals(kqReportFieldComInfo.getFieldname()) ||
"qkcs".equals(kqReportFieldComInfo.getFieldname()) ||
"bzcqts".equals(kqReportFieldComInfo.getFieldname()) ||
"bzcqgs".equals(kqReportFieldComInfo.getFieldname()) ||
"nightSerial".equals(kqReportFieldComInfo.getFieldname()) ||
"workDayAndHour".equals(kqReportFieldComInfo.getFieldname()) ||
"actualDayAndHour".equals(kqReportFieldComInfo.getFieldname()) ||
"fdjjrjbsc".equals(kqReportFieldComInfo.getFieldname()) ||
"byjbgsoncall".equals(kqReportFieldComInfo.getFieldname()) ||
"zmjbgs".equals(kqReportFieldComInfo.getFieldname()) ||
"byjbgs".equals(kqReportFieldComInfo.getFieldname()) ||
"bytxgs".equals(kqReportFieldComInfo.getFieldname()) ||
"jbljgs".equals(kqReportFieldComInfo.getFieldname()) ||
"workdays".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"workmins".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"attendancedays".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"attendanceMins".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"leave".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_4".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_5".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_13".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_14".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_15".equals(kqReportFieldComInfo.getFieldname()) ||
"officialBusiness".equals(kqReportFieldComInfo.getFieldname()) ||
"businessLeave".equals(kqReportFieldComInfo.getFieldname()) ||
"overtime".equals(kqReportFieldComInfo.getFieldname()) ||
"forgotCheck".equals(kqReportFieldComInfo.getFieldname()) ||
"graveLeaveEarlyMins".equals(kqReportFieldComInfo.getFieldname()) ||
"graveLeaveEarly".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveEarlyMins".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveEearly".equals(kqReportFieldComInfo.getFieldname()) ||
"graveBeLateMins".equals(kqReportFieldComInfo.getFieldname()) ||
"graveBeLate".equals(kqReportFieldComInfo.getFieldname()) ||
"beLateMins".equals(kqReportFieldComInfo.getFieldname()) ||
"beLate".equals(kqReportFieldComInfo.getFieldname()) ||
"absenteeism".equals(kqReportFieldComInfo.getFieldname()) ||
"attendanceSerial".equals(kqReportFieldComInfo.getFieldname()) ||
"quanqin".equals(kqReportFieldComInfo.getFieldname())){
continue;
}
}else{
if("jbgs".equals(kqReportFieldComInfo.getFieldname()) ||
"jbts".equals(kqReportFieldComInfo.getFieldname()) ||
"sjcqts".equals(kqReportFieldComInfo.getFieldname()) ||
"sjcqgs".equals(kqReportFieldComInfo.getFieldname()) ||
"chuchai".equals(kqReportFieldComInfo.getFieldname()) ||
"zmjb".equals(kqReportFieldComInfo.getFieldname()) ||
"fdjb".equals(kqReportFieldComInfo.getFieldname()) ||
"yd5bjb".equals(kqReportFieldComInfo.getFieldname()) ||
"qingjia".equals(kqReportFieldComInfo.getFieldname()) ||
"tiaoxiu".equals(kqReportFieldComInfo.getFieldname()) ||
"workdays".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"workmins".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"attendancedays".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"attendanceMins".equalsIgnoreCase(kqReportFieldComInfo.getFieldname()) ||
"bzgs".equals(kqReportFieldComInfo.getFieldname()) ||
"bydygs".equals(kqReportFieldComInfo.getFieldname()) ||
"byktxgs".equals(kqReportFieldComInfo.getFieldname()) ||
"bysygs".equals(kqReportFieldComInfo.getFieldname()) ||
"qkcsam".equals(kqReportFieldComInfo.getFieldname()) ||
"qkcspm".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_4".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_5".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_13".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_14".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveType_15".equals(kqReportFieldComInfo.getFieldname()) ||
"overtime".equals(kqReportFieldComInfo.getFieldname()) ||
// "forgotCheck".equals(kqReportFieldComInfo.getFieldname()) ||
"graveLeaveEarlyMins".equals(kqReportFieldComInfo.getFieldname()) ||
"graveLeaveEarly".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveEarlyMins".equals(kqReportFieldComInfo.getFieldname()) ||
"leaveEearly".equals(kqReportFieldComInfo.getFieldname()) ||
"graveBeLateMins".equals(kqReportFieldComInfo.getFieldname()) ||
"graveBeLate".equals(kqReportFieldComInfo.getFieldname()) ||
"beLateMins".equals(kqReportFieldComInfo.getFieldname()) ||
"beLate".equals(kqReportFieldComInfo.getFieldname()) ||
"absenteeismMins".equals(kqReportFieldComInfo.getFieldname()) ||
"attendanceSerial".equals(kqReportFieldComInfo.getFieldname()) ||
"signmins".equals(kqReportFieldComInfo.getFieldname()) ||
"attendanceMins".equals(kqReportFieldComInfo.getFieldname()) ||
"shijia".equals(kqReportFieldComInfo.getFieldname()) ||
"nianjia".equals(kqReportFieldComInfo.getFieldname()) ||
"bingjia".equals(kqReportFieldComInfo.getFieldname()) ||
"hunjia".equals(kqReportFieldComInfo.getFieldname()) ||
"sangjia".equals(kqReportFieldComInfo.getFieldname()) ||
"chanjia".equals(kqReportFieldComInfo.getFieldname()) ||
"peichanjia".equals(kqReportFieldComInfo.getFieldname()) ||
"attendancedays".equals(kqReportFieldComInfo.getFieldname())){
continue;
}
}
titleList.add(title);
titlemap.put(kqReportFieldComInfo.getFieldname(),kqReportFieldComInfo.getFieldname());
}
String today = DateUtil.getCurrentDate();
sheet.put("titleList", titleList);
// 没有权限的人最大只支持查询本季
Map<String, String> getRealDate = new KQReportBiz().realDate(fromDate, toDate, user, "1");
fromDate = getRealDate.get("fromDate");
toDate = getRealDate.get("toDate");
if("-1".equals(fromDate) || "-1".equals(toDate)) {
retmap.put("status", "1");
}
List<List> paramLists = new ArrayList<>();
List<Object> paramList = null;
String forgotBeginWorkCheck_field = " sum(b.forgotBeginWorkCheck) ";
if(rs.getDBType().equalsIgnoreCase("oracle")) {
forgotBeginWorkCheck_field = " sum(nvl(b.forgotBeginWorkCheck,0)) ";
}else if((rs.getDBType()).equalsIgnoreCase("mysql")){
forgotBeginWorkCheck_field = " sum(ifnull(b.forgotBeginWorkCheck,0)) ";
}else {
forgotBeginWorkCheck_field = " sum(isnull(b.forgotBeginWorkCheck,0)) ";
}
Map<String,Object> definedFieldInfo = new KQFormatBiz().getDefinedField();
String definedFieldSum = Util.null2String(definedFieldInfo.get("definedFieldSum"));
String backFields = " a.id,a.lastname,a.workcode,a.dsporder,b.resourceid,a.subcompanyid1 as subcompanyid,a.departmentid,a.jobtitle," +
" sum(b.workdays) as workdays,sum(b.workMins) as workMins,sum(b.attendancedays) as attendancedays," +
" sum(b.attendanceMins) as attendanceMins,sum(b.beLate) as beLate,sum(b.beLateMins) as beLateMins, " +
" sum(b.graveBeLate) as graveBeLate, sum(b.graveBeLateMins) as graveBeLateMins,sum(b.leaveEearly) as leaveEearly," +
" sum(b.leaveEarlyMins) as leaveEarlyMins, sum(b.graveLeaveEarly) as graveLeaveEarly, " +
" sum(b.graveLeaveEarlyMins) as graveLeaveEarlyMins,sum(b.absenteeism) as absenteeism, " +
" sum(b.signdays) as signdays,sum(b.signmins) as signmins, "+
" sum(b.absenteeismMins) as absenteeismMins, sum(b.forgotCheck)+"+forgotBeginWorkCheck_field+" as forgotCheck "+(definedFieldSum.length()>0?","+definedFieldSum+"":"");
if(rs.getDBType().equals("oracle")){
backFields = "/*+ index(kq_format_total IDX_KQ_FORMAT_TOTAL_KQDATE) */ "+backFields;
}
String sqlFrom = " from hrmresource a, kq_format_total b where a.id= b.resourceid and b.kqdate >='" + fromDate + "' and b.kqdate <='" + toDate + "'";
String sqlWhere = rightSql;
String groupBy = " group by a.id,a.lastname,a.workcode,a.dsporder,b.resourceid,a.subcompanyid1,a.departmentid,a.jobtitle ";
String orderBy = " order by a.dsporder asc, a.lastname asc ";
String descOrderBy = " order by a.dsporder desc, a.lastname desc ";
sql = "select " + backFields + sqlFrom + sqlWhere + groupBy + orderBy;
//System.out.println("start" + DateUtil.getFullDate());
String show_card_source = Util.null2String(kqSettingsComInfo.getMain_val("show_card_source"),"0");//是否显示打卡数据,以及打卡数据来源
KQOvertimeRulesBiz kqOvertimeRulesBiz = new KQOvertimeRulesBiz();
int uintType = kqOvertimeRulesBiz.getMinimumUnit();//当前加班单位
double hoursToDay = kqOvertimeRulesBiz.getHoursToDay();//当前天跟小时计算关系
//System.out.println("end" + DateUtil.getFullDate());
// #1475814-概述:满足考勤报分部部门显示及导出时显示全路径
String fullPathMainKey = "show_full_path";
String isShowFullPath = Util.null2String(kqSettingsComInfo.getMain_val(fullPathMainKey),"0");
rs.executeQuery(sql, paramLists);
int calIndex = -1;
while (rs.next()) {
data = new ArrayList<>();
String id = rs.getString("id");
for (int fieldDataKeyIdx =0;fieldDataKeyIdx<lsFieldDataKey.size();fieldDataKeyIdx++) {
String fieldName = lsFieldDataKey.get(fieldDataKeyIdx);
String fieldid = KQReportFieldComInfo.field2Id.get(fieldName);
String fieldValue = "";
//集团总部的人,深圳分公司
if("3".equals(subcomid)){
if("ydpbbzts".equals(fieldName) ||
"ydpbbzgs".equals(fieldName) ||
"qkcs".equals(fieldName) ||
"bzcqts".equals(fieldName) ||
"bzcqgs".equals(fieldName) ||
"nightSerial".equals(fieldName) ||
"workDayAndHour".equals(fieldName) ||
"actualDayAndHour".equals(fieldName) ||
"fdjjrjbsc".equals(fieldName) ||
"byjbgsoncall".equals(fieldName) ||
"zmjbgs".equals(fieldName) ||
"byjbgs".equals(fieldName) ||
"bytxgs".equals(fieldName) ||
"jbljgs".equals(fieldName) ||
"workdays".equalsIgnoreCase(fieldName) ||
"workmins".equalsIgnoreCase(fieldName) ||
"attendancedays".equalsIgnoreCase(fieldName) ||
"attendanceMins".equalsIgnoreCase(fieldName) ||
"leave".equals(fieldName) ||
"leaveType_4".equals(fieldName) ||
"leaveType_5".equals(fieldName) ||
"leaveType_13".equals(fieldName) ||
"leaveType_14".equals(fieldName) ||
"leaveType_15".equals(fieldName) ||
"officialBusiness".equals(fieldName) ||
"businessLeave".equals(fieldName) ||
"overtime".equals(fieldName) ||
"forgotCheck".equals(fieldName) ||
"graveLeaveEarlyMins".equals(fieldName) ||
"graveLeaveEarly".equals(fieldName) ||
"leaveEarlyMins".equals(fieldName) ||
"leaveEearly".equals(fieldName) ||
"graveBeLateMins".equals(fieldName) ||
"graveBeLate".equals(fieldName) ||
"beLateMins".equals(fieldName) ||
"beLate".equals(fieldName) ||
"absenteeism".equals(fieldName) ||
"attendanceSerial".equals(fieldName) ||
"quanqin".equals(fieldName)){
continue;
}
//事假 假期类型id
String leaveabsencetype = rs.getPropValue("lwgd_kqreport","leaveabsencetype");
//年假 假期类型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");
//迟到/早退30分钟以内
if (fieldName.equals("beLateLeaveEearly30")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getBeLateLeaveEearly30(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//迟到/早退30分钟以上
else if (fieldName.equals("beLateLeaveEearly30More")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getBeLateLeaveEearly30More(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//签卡(次数)-am
else if (fieldName.equals("qkcsam")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getQkcsam(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//签卡(次数)-pm
else if (fieldName.equals("qkcspm")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getQkcspm(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//事假
else if (fieldName.equals("shijia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(leaveabsencetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//年假
else if (fieldName.equals("nianjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(annualleavetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//病假
else if (fieldName.equals("bingjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(sickleavetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//婚假
else if (fieldName.equals("hunjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(marriageleavetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//丧假
else if (fieldName.equals("sangjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(bereavementleavetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//产假
else if (fieldName.equals("chanjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(maternityleavetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//陪产假
else if (fieldName.equals("peichanjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getLeaveDaysByType(paternityleavetype, fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//加班工时
else if (fieldName.equals("jbgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getJbgs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//加班天数
else if (fieldName.equals("jbts")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getJbts(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//实际出勤天数
else if (fieldName.equals("sjcqts")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getSjcqts(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//实际出勤工时
else if (fieldName.equals("sjcqgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getSjcqgs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//周末加班
else if (fieldName.equals("zmjb")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getZmjb(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//法定加班
else if (fieldName.equals("fdjb")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getFdjb(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//1.5倍加班
else if (fieldName.equals("yd5bjb")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getYd5bjb(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//请假H
else if (fieldName.equals("qingjia")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getQingjiaH(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//调休H
else if (fieldName.equals("tiaoxiu")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getTiaoxiuH(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//标准工时
else if (fieldName.equals("bzgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getBzgs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//本月多余工时
else if (fieldName.equals("bydygs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getBydygs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//上月加班结余工时
else if (fieldName.equals("syjbjygs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getSyjbjygs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//本月可调休工时
else if (fieldName.equals("byktxgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getByktxgs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//本月剩余工时
else if (fieldName.equals("bysygs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(SzLwgdKqUtil.getBysygs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
}else {
if("jbgs".equals(fieldName) ||
"jbts".equals(fieldName) ||
"sjcqts".equals(fieldName) ||
"sjcqgs".equals(fieldName) ||
"chuchai".equals(fieldName) ||
"zmjb".equals(fieldName) ||
"fdjb".equals(fieldName) ||
"yd5bjb".equals(fieldName) ||
"qingjia".equals(fieldName) ||
"tiaoxiu".equals(fieldName) ||
"bzgs".equals(fieldName) ||
"bydygs".equals(fieldName) ||
"byktxgs".equals(fieldName) ||
"bysygs".equals(fieldName) ||
"workdays".equalsIgnoreCase(fieldName) ||
"workmins".equalsIgnoreCase(fieldName) ||
"leaveType_4".equals(fieldName) ||
"leaveType_5".equals(fieldName) ||
"leaveType_13".equals(fieldName) ||
"leaveType_14".equals(fieldName) ||
"leaveType_15".equals(fieldName) ||
"overtime".equals(fieldName) ||
// "forgotCheck".equals(fieldName) ||
"graveLeaveEarlyMins".equals(fieldName) ||
"graveLeaveEarly".equals(fieldName) ||
"leaveEarlyMins".equals(fieldName) ||
"leaveEearly".equals(fieldName) ||
"graveBeLateMins".equals(fieldName) ||
"graveBeLate".equals(fieldName) ||
"beLateMins".equals(fieldName) ||
"beLate".equals(fieldName) ||
"absenteeismMins".equals(fieldName) ||
"attendanceSerial".equals(fieldName) ||
"signmins".equals(fieldName) ||
"attendanceMins".equals(fieldName) ||
"shijia".equals(fieldName) ||
"nianjia".equals(fieldName) ||
"bingjia".equals(fieldName) ||
"hunjia".equals(fieldName) ||
"sangjia".equals(fieldName) ||
"chanjia".equals(fieldName) ||
"peichanjia".equals(fieldName) ||
"attendancedays".equals(fieldName)){
continue;
}
//月度排班标准天数
if (fieldName.equals("ydpbbzts")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(LwgdKqUtil.getYdpbbzts(fromDate, toDate, id));
data.add(fieldValue);
continue;
}
//月度排班标准工时
else if (fieldName.equals("ydpbbzgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(LwgdKqUtil.getYdpbbzgs(fromDate, toDate, id));
data.add(fieldValue);
continue;
}
//迟到/早退30分钟以内
else if (fieldName.equals("beLateLeaveEearly30")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getBeLateLeaveEearly30(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//迟到/早退30分钟以上
else if (fieldName.equals("beLateLeaveEearly30More")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getBeLateLeaveEearly30More(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
// //签卡(次数)-am
// else if (fieldName.equals("qkcsam")) {
// fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getQkcsam(fromDate, toDate, id)));
// data.add(fieldValue);
// continue;
// }
// //签卡(次数)-pm
// else if (fieldName.equals("qkcspm")) {
// fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getQkcspm(fromDate, toDate, id)));
// data.add(fieldValue);
// continue;
// }
//签卡(次数)
else if (fieldName.equals("qkcs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getQkcs(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//标准出勤天数
else if (fieldName.equals("bzcqts")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(LwgdKqUtil.getBzcqts(fromDate, toDate, id));
data.add(fieldValue);
continue;
}
//标准出勤工时
else if (fieldName.equals("bzcqgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(LwgdKqUtil.getBzcqgs(fromDate, toDate, id));
data.add(fieldValue);
continue;
}
//夜班
else if (fieldName.equals("nightSerial")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getNightSerial(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//应出勤天数/工时
else if (fieldName.equals("workDayAndHour")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getWorkDayAndHour(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//实际出勤天数/工时
else if (fieldName.equals("actualDayAndHour")) {
fieldValue = LwgdKqUtil.getActualDayAndHour(fromDate,toDate,id);
// fieldValue = KQDurationCalculatorUtil.getDurationRound("0");
data.add(fieldValue);
continue;
}
//法定节假日加班工时
else if (fieldName.equals("fdjjrjbsc")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getFdjjrjbsc(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//本月加班工时/ONCALL工时
else if (fieldName.equals("byjbgsoncall")) {
// fieldValue = LwgdKqUtil.getOvertimeHourThisMonth(fromDate,toDate,id);
fieldValue = KQDurationCalculatorUtil.getDurationRound("0");
data.add(fieldValue);
continue;
}
//周末加班工时
else if (fieldName.equals("zmjbgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getWeekendOverHour(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//本月加班工时
else if (fieldName.equals("byjbgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getOvertimeHour(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//本月调休工时
else if (fieldName.equals("bytxgs")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(LwgdKqUtil.getCompensatoryleaveHour(fromDate, toDate, id)));
data.add(fieldValue);
continue;
}
//上月加班结余工时
else if (fieldName.equals("syjbjygs")) {
// fieldValue = LwgdKqUtil.getLastOverHour(fromDate,toDate,id);
fieldValue = KQDurationCalculatorUtil.getDurationRound(KQDurationCalculatorUtil.getDurationRound("0"));
data.add(fieldValue);
continue;
}
//加班累计工时
else if (fieldName.equals("jbljgs")) {
// fieldValue = LwgdKqUtil.getOverTotalHour(fromDate,toDate,id);
fieldValue = KQDurationCalculatorUtil.getDurationRound(KQDurationCalculatorUtil.getDurationRound("0"));
data.add(fieldValue);
continue;
}
//全勤
else if (fieldName.equals("quanqin")) {
fieldValue = LwgdKqUtil.getPerfectAttendance(fromDate, toDate, id);
data.add(fieldValue);
continue;
}
}
if (fieldName.equals("subcompany")) {
String tmpSubcompanyId = Util.null2String(rs.getString("subcompanyid"));
if (tmpSubcompanyId.length() == 0) {
tmpSubcompanyId = Util.null2String(resourceComInfo.getSubCompanyID(id));
}
fieldValue = "1".equals(isShowFullPath) ?
SubCompanyComInfo.getSubcompanyRealPath(tmpSubcompanyId, "/", "0") :
subCompanyComInfo.getSubCompanyname(tmpSubcompanyId);
// fieldValue = subCompanyComInfo.getSubCompanyname(tmpSubcompanyId);
}
//工时制度
else if (fieldName.equals("gszd")) {
fieldValue = LwgdKqUtil.getGszdName(id);
data.add(fieldValue);
continue;
}
//岗位
else if (fieldName.equals("gw")) {
fieldValue = LwgdKqUtil.getNewGw(id);
data.add(fieldValue);
continue;
}
//入职日期
else if (fieldName.equals("rzrq")) {
fieldValue = LwgdKqUtil.getRzrq(id);
data.add(fieldValue);
continue;
}
//调动日期
else if (fieldName.equals("ddrq")) {
fieldValue = LwgdKqUtil.getTransferDate(id);
data.add(fieldValue);
continue;
}
//离职日期
else if (fieldName.equals("lzrq")) {
fieldValue = LwgdKqUtil.getLzrq(id);
data.add(fieldValue);
continue;
}
else if (fieldName.equals("department")) {
String tmpDepartmentId = Util.null2String(rs.getString("departmentid"));
if (tmpDepartmentId.length() == 0) {
tmpDepartmentId = Util.null2String(resourceComInfo.getDepartmentID(id));
}
fieldValue = "1".equals(isShowFullPath) ?
departmentComInfo.getDepartmentRealPath(tmpDepartmentId, "/", "0") :
departmentComInfo.getDepartmentname(tmpDepartmentId);
// fieldValue = departmentComInfo.getDepartmentname(tmpDepartmentId);
}
// else if (fieldName.equals("jobtitle")) {
// String tmpJobtitleId = Util.null2String(rs.getString("jobtitle"));
// if (tmpJobtitleId.length() == 0) {
// tmpJobtitleId = Util.null2String(resourceComInfo.getJobTitle(id));
// }
// fieldValue = jobTitlesComInfo.getJobTitlesname(tmpJobtitleId);
// } else if (fieldName.equals("attendanceSerial")) {
// List<String> serialIds = null;
// if (Util.null2String(jsonObj.get("attendanceSerial")).length() > 0) {
// serialIds = Util.splitString2List(Util.null2String(jsonObj.get("attendanceSerial")), ",");
// for(int i=0;serialIds!=null&&i<serialIds.size();i++){
// data.add(kqReportBiz.getSerialCount(id,fromDate,toDate,serialIds.get(i)));
// }
// }else{
// data.add("");
// }
// continue;
// }
else if(Util.null2String(kqReportFieldComInfo.getCascadekey(fieldid)).length()>0){
fieldValue = Util.formatMultiLang(Util.null2String(rs.getString(fieldName)),""+user.getLanguage());
data.add(fieldValue);
List<String> lsCascadekey = Util.splitString2List(kqReportFieldComInfo.getCascadekey(fieldid),",");
for(int i=0;i<lsCascadekey.size();i++){
if(Util.null2String(rs.getString(lsCascadekey.get(i))).length()>0){
fieldid = KQReportFieldComInfo.field2Id.get(lsCascadekey.get(i));
fieldValue = getFieldValueByUnitType(rs.getString(lsCascadekey.get(i)),kqReportFieldComInfo.getUnittype(fieldid));
}else{
fieldValue = "0";
}
data.add(fieldValue);
}
continue;
}else {
fieldValue = Util.formatMultiLang(Util.null2String(rs.getString(fieldName)),""+user.getLanguage());
fieldValue = getFieldValueByUnitType(fieldValue,kqReportFieldComInfo.getUnittype(fieldid));
}
fieldValue = Util.formatMultiLang(fieldValue,""+user.getLanguage());
data.add(fieldValue);
}
List<Object> amData = Lists.newArrayList();
List<Object> pmData = Lists.newArrayList();
if(isKqReportHalfOpen) {
amData.addAll(data);
pmData.addAll(data);
calIndex = data.size();
}
if(isKqReportHalfOpen) {
dataList.add(amData);
dataList.add(pmData);
} else {
dataList.add(data);
}
}
sheet.put("dataList", dataList);
if(isKqReportHalfOpen) {
sheet.put("calIndex", calIndex);
}
sheet.put("constraintList", constraintList);
sheet.put("createFile", "1");
lsSheet.add(sheet);
retmap.put("status", "1");
} catch (Exception e) {
retmap.put("status", "-1");
retmap.put("message", SystemEnv.getHtmlLabelName(382661, user.getLanguage()));
rs.writeLog(e);
}
sum++;
%>
<%!
private List<Object> getCascadeKeyColumnsInfo(String cascadeKey, User user){
List<Object> titleList = new ArrayList<>();
Map<String, Object> title = null;
if(Util.null2String(cascadeKey).length()==0){
return titleList;
}
List<String> lsCascadeKey = Util.splitString2List(cascadeKey,",");
KQReportFieldComInfo kqReportFieldComInfo = new KQReportFieldComInfo();
for(int i=0;i<lsCascadeKey.size();i++){
kqReportFieldComInfo.setTofirstRow();
while (kqReportFieldComInfo.next()) {
if(!kqReportFieldComInfo.getReportType().equals("month"))continue;
if (kqReportFieldComInfo.getFieldname().equals(lsCascadeKey.get(i))){
title = new HashMap<>();
title.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()) + "(" + KQReportBiz.getUnitType(kqReportFieldComInfo, user) + ")");
title.put("width", 30 * 256);
titleList.add(title);
}
}
}
return titleList;
}
private String getFieldValueByUnitType(String fieldValue,String unittype){
if (Util.null2String(unittype).length() > 0) {
if (fieldValue.length() == 0) {
fieldValue = "0";
} else {
if (unittype.equals("2")) {
fieldValue = KQDurationCalculatorUtil.getDurationRound(("" + (Util.getDoubleValue(fieldValue) / 60.0)));
}
}
}
return fieldValue;
}
%>
<BODY>
<h1>Congratulation Mode 666666 !</h1>
<h1> sum <%=sum%> </h1>
<h1> titlemap <%=titlemap%> </h1>
<h1> retmap <%=retmap%> </h1>
</BODY>