diff --git a/src/com/engine/kq/cmd/report/GetKQReportCmd.java b/src/com/engine/kq/cmd/report/GetKQReportCmd.java index 32acb06..35bbd11 100644 --- a/src/com/engine/kq/cmd/report/GetKQReportCmd.java +++ b/src/com/engine/kq/cmd/report/GetKQReportCmd.java @@ -1130,6 +1130,14 @@ public class GetKQReportCmd extends AbstractCommonCommand> { return lsChildColumns; } + /** + * 获取入离职工时 + * @param resourceId + * @param startDate + * @param endDate + * @param groupDate + * @return + */ public int getAbsenceDays(String resourceId, String startDate, String endDate, String groupDate){ int days = 0; @@ -1151,7 +1159,7 @@ public class GetKQReportCmd extends AbstractCommonCommand> { KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo(); String groupid = Util.null2String(kqGroupMemberComInfo.getKQGroupId(resourceId, groupDate)); - String acqNumberSql = "select count(*) as number from KQ_HolidaySet where groupid = " + groupid +" changeType in (1,3) " + + String acqNumberSql = "select count(*) as number from KQ_HolidaySet where groupid = " + groupid +" and changeType in (1,3) " + "and holidayDate in ("+selDates+")"; bb.writeLog("acqNumberSql: " + acqNumberSql); RecordSet rs = new RecordSet(); @@ -1166,6 +1174,45 @@ public class GetKQReportCmd extends AbstractCommonCommand> { return days; } + /** + * 获取请假时长 + * @return + */ + public Map getLeaveInfos(String startDate, String endDate){ + + Map result = new HashMap<>(); + + RecordSet rs = new RecordSet(); + String acqLeaveSql = "select resourceid, sum(d_mins) as mins from kq_flow_split_leave " + + "where belongdate >='"+startDate+"' and belongdate <='"+endDate+"' " + + "group by resourceid " + + "order by resourceid "; + rs.executeQuery(acqLeaveSql); + while (rs.next()) { + String resourceid = Util.null2String(rs.getString("resourceid")); + String mins = Util.null2String(rs.getString("mins")); + result.put(resourceid, mins); + } + + String acqLeaveBackSql = "select resourceid, sum(d_mins) as mins from kq_flow_split_leaveback " + + "where belongdate >='"+startDate+"' and belongdate <='"+endDate+"' " + + "group by resourceid " + + "order by resourceid "; + rs.executeQuery(acqLeaveBackSql); + while (rs.next()) { + String resourceid = Util.null2String(rs.getString("resourceid")); + int mins = Math.max(Util.getIntValue(Util.null2String(rs.getString("mins"))), 0); + if (mins > 0) { + int temp = Math.max(Util.getIntValue(Util.null2String(result.get(resourceid))), 0); + int remins = Math.max(temp - mins, 0); + result.put(resourceid, remins); + } + } + + + return result; + } + @Override public BizLogContext getLogContext() { return null;