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

821 lines
45 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ 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>