考勤日报及汇总表增加字段

main
zhangming 9 months ago
parent 44768418b2
commit cc6ea39d4f

@ -11,6 +11,7 @@ import com.engine.kq.util.ExcelUtil;
import com.engine.kq.util.KQDurationCalculatorUtil;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
@ -194,12 +195,29 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand<Map<String, Objec
forgotBeginWorkCheck_field = " isnull(b.forgotBeginWorkCheck,0) ";
}
String backFields = " a.id,a.lastname,a.subcompanyid1 as subcompanyid,a.departmentid, a.workcode,b.jobtitle,a.dsporder," +
String backFields = " a2.zwyjbm, a2.zwejbm, a2.zwsjbm, a2.zwsijbm," +
"case when b.belatemins > 0 and b.belatemins <= 10 and b.leaveearlymins > 0 and b.leaveearlymins <= 10 then 2 when b.belatemins > 0 and b.belatemins <= 10 and (b.leaveearlymins <= 0 or b.leaveearlymins > 10) then 1 when b.leaveearlymins > 0 and b.leaveearlymins <= 10 and (b.belatemins <= 0 or b.belatemins > 10) then 1 else 0 end as cdztten,\n" +
"case when b.belatemins > 10 and b.belatemins <= 30 and b.leaveearlymins > 10 and b.leaveearlymins <= 30 then 2 when b.belatemins > 10 and b.belatemins <= 30 and (b.leaveearlymins <= 10 or b.leaveearlymins > 30) then 1 when b.leaveearlymins > 10 and b.leaveearlymins <= 30 and (b.belatemins <= 10 or b.belatemins > 30) then 1 else 0 end as cdzttentothirty,\n" +
"case when b.belatemins > 30 and b.belatemins <= 60 and b.leaveearlymins > 30 and b.leaveearlymins <= 60 then 2 when b.belatemins > 30 and b.belatemins <= 60 and (b.leaveearlymins <= 30 or b.leaveearlymins > 60) then 1 when b.leaveearlymins > 30 and b.leaveearlymins <= 60 and (b.belatemins <= 30 or b.belatemins > 60) then 1 else 0 end as cdztthirtytosixty,\n" +
"case when b.belatemins > 60 and b.leaveearlymins > 60 then 2 when b.belatemins > 60 and b.leaveearlymins <= 60 then 1 when b.leaveearlymins > 60 and b.belatemins <= 60 then 1 else 0 end as cdztsixty," +
" a.id,a.lastname,a.subcompanyid1 as subcompanyid,a.departmentid, a.workcode,b.jobtitle,a.dsporder," +
" b.kqdate, b.workdays,b.workMins,b.serialid, b.attendancedays,b.attendanceMins,b.beLate," +
" b.beLateMins,b.graveBeLate,b.graveBeLateMins,b.leaveEearly,b.leaveEarlyMins,b.graveLeaveEarly," +
" b.graveLeaveEarlyMins,b.absenteeism,b.signdays,b.signmins, "+
" b.absenteeismMins ,(b.forgotCheck+"+forgotBeginWorkCheck_field+") forgotCheck ";
String sqlFrom = " from hrmresource a, kq_format_total b where a.id= b.resourceid and b.kqdate >='"+fromDate+"' and b.kqdate <='"+toDate+"'";
String sqlFrom = " from hrmresource a join kq_format_total b on a.id= b.resourceid " +
"left join (select a1.id,h1.departmentmark as zwyjbm\n" +
",h2.departmentmark as zwejbm\n" +
",h3.departmentmark as zwsjbm\n" +
",h4.departmentmark as zwsijbm\n" +
" from cus_fielddata a1 \n" +
"left join hrmdepartment h1 on a1.field40 = h1.id\n" +
"left join hrmdepartment h2 on a1.field41 = h2.id\n" +
"left join hrmdepartment h3 on a1.field42 = h3.id\n" +
"left join hrmdepartment h4 on a1.field43 = h4.id\n" +
"where a1.scope = 'HrmCustomFieldByInfoType'\n" +
" and a1.scopeid = -1) a2 on a2.id = a.id " +
" where b.kqdate >='"+fromDate+"' and b.kqdate <='"+toDate+"'";
String sqlWhere = rightSql;
if(subCompanyId.length()>0){
sqlWhere +=" and a.subcompanyid1 in("+subCompanyId+") ";
@ -236,6 +254,7 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand<Map<String, Objec
String descOrderBy = " order by a.dsporder desc, a.lastname desc ";
sql = "select "+backFields + sqlFrom + sqlWhere+orderBy;
new BaseBean().writeLog("ExportDailyExcelCmd sql:" + sql);
// #1475814-概述:满足考勤报分部部门显示及导出时显示全路径
String fullPathMainKey = "show_full_path";
String isShowFullPath = Util.null2String(kqSettingsComInfo.getMain_val(fullPathMainKey),"0");

@ -11,6 +11,7 @@ import com.engine.kq.util.KQDurationCalculatorUtil;
import com.engine.kq.util.UtilKQ;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
@ -216,7 +217,9 @@ public class ExportExcelCmd extends AbstractCommonCommand<Map<String, Object>> {
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," +
String backFields = " a2.zwyjbm, a2.zwejbm, a2.zwsjbm, a2.zwsijbm, count(k1.id) as cdztten, count(k2.id) as cdzttentothirty, " +
" count(k3.id) as cdztthirtytosixty, count(k4.id) as cdztsixty," +
" 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," +
@ -227,9 +230,25 @@ public class ExportExcelCmd extends AbstractCommonCommand<Map<String, Object>> {
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 sqlFrom = " from hrmresource a join kq_format_total b on a.id = b.resourceid " +
"left join (select a1.id,h1.departmentmark as zwyjbm\n" +
",h2.departmentmark as zwejbm\n" +
",h3.departmentmark as zwsjbm\n" +
",h4.departmentmark as zwsijbm\n" +
" from cus_fielddata a1 \n" +
"left join hrmdepartment h1 on a1.field40 = h1.id\n" +
"left join hrmdepartment h2 on a1.field41 = h2.id\n" +
"left join hrmdepartment h3 on a1.field42 = h3.id\n" +
"left join hrmdepartment h4 on a1.field43 = h4.id\n" +
"where a1.scope = 'HrmCustomFieldByInfoType'\n" +
" and a1.scopeid = -1) a2 on a2.id = a.id " +
" left join kq_format_total k1 on a.id = k1.resourceid and k1.kqdate = b.kqdate and ((k1.belatemins is not null and k1.belatemins > 0 and k1.belatemins <= 10) or (k1.leaveearlymins is not null and k1.leaveearlymins > 0 and k1.leaveearlymins <= 10))" +
" left join kq_format_total k2 on a.id = k2.resourceid and k2.kqdate = b.kqdate and ((k2.belatemins is not null and k2.belatemins > 10 and k2.belatemins <= 30) or (k2.leaveearlymins is not null and k2.leaveearlymins > 10 and k2.leaveearlymins <= 30))" +
" left join kq_format_total k3 on a.id = k3.resourceid and k3.kqdate = b.kqdate and ((k3.belatemins is not null and k3.belatemins > 30 and k3.belatemins <= 60) or (k3.leaveearlymins is not null and k3.leaveearlymins > 30 and k3.leaveearlymins <= 60))" +
" left join kq_format_total k4 on a.id = k4.resourceid and k4.kqdate = b.kqdate and ((k4.belatemins is not null and k4.belatemins > 60) or (k4.leaveearlymins is not null and k4.leaveearlymins > 60))" +
"where 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 groupBy = " group by a.id,a.lastname,a.workcode,a.dsporder,b.resourceid,a.subcompanyid1,a.departmentid,a.jobtitle,a2.zwyjbm, a2.zwejbm, a2.zwsjbm, a2.zwsijbm ";
if (subCompanyId.length() > 0) {
sqlWhere += " and a.subcompanyid1 in(" + subCompanyId + ") ";
}
@ -282,7 +301,7 @@ public class ExportExcelCmd extends AbstractCommonCommand<Map<String, Object>> {
String fullPathMainKey = "show_full_path";
String isShowFullPath = Util.null2String(kqSettingsComInfo.getMain_val(fullPathMainKey),"0");
new BaseBean().writeLog("ExportExcelCmd sql:" + sql);
rs.execute(sql);
int calIndex = -1;
while (rs.next()) {

@ -12,6 +12,7 @@ import com.engine.kq.log.KQLog;
import com.engine.kq.util.KQDurationCalculatorUtil;
import com.engine.kq.util.PageUidFactory;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
@ -141,12 +142,29 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
forgotBeginWorkCheck_field = " isnull(b.forgotBeginWorkCheck,0) ";
}
String backFields = " a.id,a.lastname,a.subcompanyid1 as subcompanyid,a.departmentid, a.workcode,b.jobtitle,a.dsporder," +
String backFields = " a2.zwyjbm, a2.zwejbm, a2.zwsjbm, a2.zwsijbm," +
"case when b.belatemins > 0 and b.belatemins <= 10 and b.leaveearlymins > 0 and b.leaveearlymins <= 10 then 2 when b.belatemins > 0 and b.belatemins <= 10 and (b.leaveearlymins <= 0 or b.leaveearlymins > 10) then 1 when b.leaveearlymins > 0 and b.leaveearlymins <= 10 and (b.belatemins <= 0 or b.belatemins > 10) then 1 else 0 end as cdztten,\n" +
"case when b.belatemins > 10 and b.belatemins <= 30 and b.leaveearlymins > 10 and b.leaveearlymins <= 30 then 2 when b.belatemins > 10 and b.belatemins <= 30 and (b.leaveearlymins <= 10 or b.leaveearlymins > 30) then 1 when b.leaveearlymins > 10 and b.leaveearlymins <= 30 and (b.belatemins <= 10 or b.belatemins > 30) then 1 else 0 end as cdzttentothirty,\n" +
"case when b.belatemins > 30 and b.belatemins <= 60 and b.leaveearlymins > 30 and b.leaveearlymins <= 60 then 2 when b.belatemins > 30 and b.belatemins <= 60 and (b.leaveearlymins <= 30 or b.leaveearlymins > 60) then 1 when b.leaveearlymins > 30 and b.leaveearlymins <= 60 and (b.belatemins <= 30 or b.belatemins > 60) then 1 else 0 end as cdztthirtytosixty,\n" +
"case when b.belatemins > 60 and b.leaveearlymins > 60 then 2 when b.belatemins > 60 and b.leaveearlymins <= 60 then 1 when b.leaveearlymins > 60 and b.belatemins <= 60 then 1 else 0 end as cdztsixty," +
" a.id,a.lastname,a.subcompanyid1 as subcompanyid,a.departmentid, a.workcode,b.jobtitle,a.dsporder," +
" b.kqdate, b.workdays,b.workMins,b.serialid, b.attendancedays,b.attendanceMins," +
" b.beLate,b.beLateMins,b.graveBeLate,b.graveBeLateMins,b.leaveEearly,b.leaveEarlyMins," +
" b.signdays,b.signmins, "+
" b.graveLeaveEarly,b.graveLeaveEarlyMins,b.absenteeism ,b.absenteeismMins ,(b.forgotCheck+"+forgotBeginWorkCheck_field+") forgotCheck ";
String sqlFrom = " from hrmresource a, kq_format_total b where a.id= b.resourceid and b.kqdate >='"+fromDate+"' and b.kqdate <='"+toDate+"'";
String sqlFrom = " from hrmresource a join kq_format_total b on a.id= b.resourceid " +
"left join (select a1.id,h1.departmentmark as zwyjbm\n" +
",h2.departmentmark as zwejbm\n" +
",h3.departmentmark as zwsjbm\n" +
",h4.departmentmark as zwsijbm\n" +
" from cus_fielddata a1 \n" +
"left join hrmdepartment h1 on a1.field40 = h1.id\n" +
"left join hrmdepartment h2 on a1.field41 = h2.id\n" +
"left join hrmdepartment h3 on a1.field42 = h3.id\n" +
"left join hrmdepartment h4 on a1.field43 = h4.id\n" +
"where a1.scope = 'HrmCustomFieldByInfoType'\n" +
" and a1.scopeid = -1) a2 on a2.id = a.id " +
" where b.kqdate >='"+fromDate+"' and b.kqdate <='"+toDate+"'";
String sqlWhere = rightSql;
if(subCompanyId.length()>0){
sqlWhere +=" and a.subcompanyid1 in("+subCompanyId+") ";
@ -238,6 +256,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
String isShowFullPath = Util.null2String(kqSettingsComInfo.getMain_val(fullPathMainKey),"0");
new BaseBean().writeLog("GetKQDailyReportCmd sql:" + sql);
rs.execute(sql);
while (rs.next()) {
String id = rs.getString("id");

@ -12,6 +12,7 @@ import com.engine.kq.util.PageUidFactory;
import com.google.common.collect.Maps;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.TimeUtil;
import weaver.general.Util;
import weaver.hrm.User;
@ -182,7 +183,9 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
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," +
String backFields = " a2.zwyjbm, a2.zwejbm, a2.zwsjbm, a2.zwsijbm, count(k1.resourceid) as cdztten, count(k2.resourceid) as cdzttentothirty, " +
" count(k3.resourceid) as cdztthirtytosixty, count(k4.resourceid) as cdztsixty," +
" 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," +
@ -194,9 +197,25 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
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 sqlFrom = " from hrmresource a join kq_format_total b on a.id = b.resourceid " +
"left join (select a1.id,h1.departmentmark as zwyjbm\n" +
",h2.departmentmark as zwejbm\n" +
",h3.departmentmark as zwsjbm\n" +
",h4.departmentmark as zwsijbm\n" +
" from cus_fielddata a1 \n" +
"left join hrmdepartment h1 on a1.field40 = h1.id\n" +
"left join hrmdepartment h2 on a1.field41 = h2.id\n" +
"left join hrmdepartment h3 on a1.field42 = h3.id\n" +
"left join hrmdepartment h4 on a1.field43 = h4.id\n" +
"where a1.scope = 'HrmCustomFieldByInfoType'\n" +
" and a1.scopeid = -1) a2 on a2.id = a.id " +
" left join kq_format_total k1 on a.id = k1.resourceid and k1.kqdate = b.kqdate and ((k1.belatemins is not null and k1.belatemins > 0 and k1.belatemins <= 10) or (k1.leaveearlymins is not null and k1.leaveearlymins > 0 and k1.leaveearlymins <= 10))" +
" left join kq_format_total k2 on a.id = k2.resourceid and k2.kqdate = b.kqdate and ((k2.belatemins is not null and k2.belatemins > 10 and k2.belatemins <= 30) or (k2.leaveearlymins is not null and k2.leaveearlymins > 10 and k2.leaveearlymins <= 30))" +
" left join kq_format_total k3 on a.id = k3.resourceid and k3.kqdate = b.kqdate and ((k3.belatemins is not null and k3.belatemins > 30 and k3.belatemins <= 60) or (k3.leaveearlymins is not null and k3.leaveearlymins > 30 and k3.leaveearlymins <= 60))" +
" left join kq_format_total k4 on a.id = k4.resourceid and k4.kqdate = b.kqdate and ((k4.belatemins is not null and k4.belatemins > 60) or (k4.leaveearlymins is not null and k4.leaveearlymins > 60))" +
"where 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 groupBy = " group by a.id,a.lastname,a.workcode,a.dsporder,b.resourceid,a.subcompanyid1,a.departmentid,a.jobtitle,a2.zwyjbm, a2.zwejbm, a2.zwsjbm, a2.zwsijbm ";
if(subCompanyId.length()>0){
sqlWhere +=" and a.subcompanyid1 in("+subCompanyId+") ";
}
@ -329,7 +348,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
params.put("hoursToDay",hoursToDay);
Map<String,Object> flowData = kqReportBiz.getFlowData(params,user);
new BaseBean().writeLog("GetKQReportCmd sql:" + sql);
rs.execute(sql);
while (rs.next()) {
data = new HashMap<>();

Loading…
Cancel
Save