From a5fe18cba4a924df459125989817c2dda2af869c Mon Sep 17 00:00:00 2001 From: zhangming <965499528@qq.com> Date: Wed, 12 Jun 2024 14:01:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A4=90=E8=A1=A5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hostar/thread/HandleCBDataThread.java | 196 ++++++----- src/com/engine/kq/biz/KQFormatData.java | 308 +++++++++++------- .../hostar/action/OutSignSyncAction.java | 12 +- 3 files changed, 315 insertions(+), 201 deletions(-) diff --git a/src/com/engine/hostar/thread/HandleCBDataThread.java b/src/com/engine/hostar/thread/HandleCBDataThread.java index e0338af..0ab9dd2 100644 --- a/src/com/engine/hostar/thread/HandleCBDataThread.java +++ b/src/com/engine/hostar/thread/HandleCBDataThread.java @@ -157,10 +157,7 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ nightShiftList.add(shift); } } - rs.executeQuery("select zeropoint from kq_format_total where resourceid = ? and kqdate = ?", userId, kqDate); - if (rs.next()) { - value = rs.getString("zeropoint"); - } + //获取当天班次 KQWorkTime kqWorkTime = new KQWorkTime(); Map serialInfo = kqWorkTime.getSerialInfo(userId, kqDate, false); @@ -169,6 +166,11 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ if (serialid > 0) { if ((!CollectionUtils.isEmpty(nightShiftList)) && nightShiftList.contains(String.valueOf(serialid))) { value = "0"; + } else { + rs.executeQuery("select zeropoint from kq_format_total where resourceid = ? and kqdate = ?", userId, kqDate); + if (rs.next()) { + value = rs.getString("zeropoint"); + } } } } @@ -196,16 +198,17 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ if (nightShiftList != null & nightShiftList.size() > 0) { HostarUtil houtil = new HostarUtil(); - //先获取到出勤时长 + //先获取到实际打卡时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + userId + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + userId + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00 ) { - attendanceMinsMap.put(resourceid+"|"+kqdate, attendancemins); + if (signmins >= 0.00 ) { + attendanceMinsMap.put(resourceid+"|"+kqdate, signmins); } } KQWorkTime kqWorkTime = new KQWorkTime(); @@ -221,8 +224,8 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } } - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(userId + "|" + kqDate))); - value = (( attendanceMins / 60) >= 8.00 ) ? "1" : "0"; + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(userId + "|" + kqDate))); + value = (( signmins / 60) >= 8.00 ) ? "1" : "0"; } } catch (Exception e) { bb.writeLog("get NightShiftSubsidy error:" + e.getMessage()); @@ -242,7 +245,7 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } //获取加班时长 - Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); +// Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); String otherstatsub = Util.null2String(bb.getPropValue("project_hostar", "otherstatsubcompany")); if (StringUtils.isNotBlank(otherstatsub)) { @@ -259,21 +262,22 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ resIds.add(id); } } - bb.writeLog("resIds: " + resIds); +// bb.writeLog("resIds: " + resIds); if (resIds != null && resIds.size() > 0 && StringUtils.isNotBlank(kqDate)) { HostarUtil houtil = new HostarUtil(); - //先获取到出勤时长 + //先获取到实际打卡时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00) { - attendanceMinsMap.put(resourceid + "|" + kqdate, attendancemins); + if (signmins >= 0.00) { + attendanceMinsMap.put(resourceid + "|" + kqdate, signmins); } } List removeRes = new ArrayList<>(); @@ -375,38 +379,48 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } Integer signNumber = 0; if (signIdList !=null && signIdList.size() > 0) { - String acqShowAddress = "select showaddress,addr from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; + String acqShowAddress = "select showaddress,addr,signfrom from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; // bb.writeLog("acqShowAddress: " + acqShowAddress); rs.executeQuery(acqShowAddress); while (rs.next()) { String showaddress = Util.null2String(rs.getString("showaddress")); + String signfrom = Util.null2String(rs.getString("signfrom")); + if (StringUtils.isEmpty(signfrom) || !StringUtils.equals(signfrom, "e9mobile")) { + signNumber = signNumber + 1; + } String addr = Util.null2String(rs.getString("addr")); if ("鸿仕达".equals(showaddress) || "hostar".equalsIgnoreCase(showaddress) || "鸿仕达".equals(addr) || "hostar".equalsIgnoreCase(addr)) { signNumber = signNumber + 1; } + if (StringUtils.isNotEmpty(showaddress) && (showaddress.contains("鸿仕达") || showaddress.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } + if (StringUtils.isNotEmpty(addr) && (addr.contains("鸿仕达") || addr.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } } } if (signNumber == 0) { - double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); - workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; - double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); - restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; - double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); - holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; - - double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); - workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; - double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); - restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; - double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); - holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; - - double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + - workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; +// double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); +// workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; +// double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); +// restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; +// double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); +// holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; +// +// double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); +// workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; +// double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); +// restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; +// double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); +// holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; +// +// double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + +// workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; // bb.writeLog("-=-temp:" + temp); - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); // bb.writeLog("-=-attendanceMins:" + attendanceMins); - double v = Math.round (((attendanceMins < 0.00) ? 0.00 : attendanceMins) + temp) / 60.00; + double v = Math.round ((signmins < 0.00) ? 0.00 : signmins) / 60.00; value = "0"; if (v >= 4.00 && v < 9.00) { value = "1"; @@ -501,7 +515,7 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } //获取加班时长 - Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); +// Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); //获取夜班班次 List nightShiftList = new ArrayList<>(); @@ -529,20 +543,21 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ resIds.add(id); } } - bb.writeLog("resIds: " + resIds); +// bb.writeLog("resIds: " + resIds); if (resIds != null && resIds.size() > 0) { HostarUtil houtil = new HostarUtil(); //先获取到出勤时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00) { - attendanceMinsMap.put(resourceid + "|" + kqdate, attendancemins); + if (signmins >= 0.00) { + attendanceMinsMap.put(resourceid + "|" + kqdate, signmins); } } KQWorkTime kqWorkTime = new KQWorkTime(); @@ -557,26 +572,26 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } } } - double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); - workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; - double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); - restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; - double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); - holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; - - double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); - workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; - double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); - restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; - double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); - holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; - - double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + - workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; +// double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); +// workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; +// double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); +// restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; +// double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); +// holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; +// +// double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); +// workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; +// double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); +// restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; +// double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); +// holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; +// +// double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + +// workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; // bb.writeLog("-=-temp:" + temp); - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); // bb.writeLog("-=-attendanceMins:" + attendanceMins); - value = String.valueOf(Math.floor(((attendanceMins < 0.00 ? 0.00 : attendanceMins) + temp) / 300)); + value = String.valueOf(Math.floor((signmins < 0.00 ? 0.00 : signmins) / 300)); } } } @@ -600,7 +615,7 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } //获取加班时长 - Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); +// Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); //首先去除指定不享有的分部 List subComoanyList = new ArrayList<>(); @@ -647,23 +662,24 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ resIds.add(id); } } - bb.writeLog("resIds: " + resIds); +// bb.writeLog("resIds: " + resIds); if (resIds != null && resIds.size() > 0 && StringUtils.isNotBlank(kqDate)) { HostarUtil houtil = new HostarUtil(); KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo(); - //先获取到出勤时长 + // 先获取到实际打卡时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String.join(",",resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + String.join(",",resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00 ) { - attendanceMinsMap.put(resourceid+"|"+kqdate, attendancemins); + if (signmins >= 0.00 ) { + attendanceMinsMap.put(resourceid+"|"+kqdate, signmins); } } @@ -770,40 +786,50 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ } } } - bb.writeLog("signIdList: " + signIdList); +// bb.writeLog("signIdList: " + signIdList); Integer signNumber = 0; if (signIdList !=null && signIdList.size() > 0) { - String acqShowAddress = "select showaddress,addr from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; + String acqShowAddress = "select showaddress,addr,signfrom from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; bb.writeLog("acqShowAddress: " + acqShowAddress); rs.executeQuery(acqShowAddress); while (rs.next()) { String showaddress = Util.null2String(rs.getString("showaddress")); + String signfrom = Util.null2String(rs.getString("signfrom")); + if (StringUtils.isEmpty(signfrom) || !StringUtils.equals(signfrom, "e9mobile")) { + signNumber = signNumber + 1; + } String addr = Util.null2String(rs.getString("addr")); if ("鸿仕达".equals(showaddress) || "hostar".equalsIgnoreCase(showaddress) || "鸿仕达".equals(addr) || "hostar".equalsIgnoreCase(addr)) { signNumber = signNumber + 1; } + if (StringUtils.isNotEmpty(showaddress) && (showaddress.contains("鸿仕达") || showaddress.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } + if (StringUtils.isNotEmpty(addr) && (addr.contains("鸿仕达") || addr.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } } } if (signNumber == 0 ) { - double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); - workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; - double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); - restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; - double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); - holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; - - double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); - workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; - double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); - restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; - double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); - holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; - - double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + - workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); - value = String.valueOf(Math.floor( ((attendanceMins < 0.00 ? 0.00 : attendanceMins) + temp) / 300)); +// double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); +// workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; +// double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); +// restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; +// double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); +// holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; +// +// double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); +// workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; +// double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); +// restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; +// double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); +// holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; +// +// double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + +// workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); + value = String.valueOf(Math.floor( (signmins < 0.00 ? 0.00 : signmins) / 300)); } } } @@ -849,7 +875,7 @@ public class HandleCBDataThread extends BaseBean implements Runnable{ String latitude = Util.null2String(rs.getString("latitude")); evectionMap.put( belongdate + "|" + resourceid, longitude + "|" + latitude ); } - bb.writeLog("evectionMap: " + evectionMap); +// bb.writeLog("evectionMap: " + evectionMap); //获取外勤打卡数据 KQWorkTime kqWorkTime = new KQWorkTime(); diff --git a/src/com/engine/kq/biz/KQFormatData.java b/src/com/engine/kq/biz/KQFormatData.java index 4babc1b..09eeb62 100644 --- a/src/com/engine/kq/biz/KQFormatData.java +++ b/src/com/engine/kq/biz/KQFormatData.java @@ -209,7 +209,7 @@ public class KQFormatData extends BaseBean { lsParam.addAll(format(userId, kqDate, workTime, workFlowInfo,uuid)); } - bb.writeLog("lsParam: " + lsParam); +// bb.writeLog("lsParam: " + lsParam); if (lsParam.size() > 0) { sql = " insert into kq_format_detail( " + " resourceid,kqdate,groupid,serialid,serialnumber,workbegindate,workbegintime,workenddate,workendtime,workmins," + @@ -511,7 +511,7 @@ public class KQFormatData extends BaseBean { //取卡 List lsCheckInfo = new KQFormatSignData().getSignInfo(userId,signTimeScope,workTimeScope,kqDate,preDate,nextDate,kqTimesArrayComInfo,hostIps,uuid,shiftCount,shiftI); - bb.writeLog("kqformatdata lscheckinfo: " + lsCheckInfo); +// bb.writeLog("kqformatdata lscheckinfo: " + lsCheckInfo); kqLog.info("lsCheckInfo" + JSONObject.toJSONString(lsCheckInfo)+"::userId" + userId + "kqDate==" + kqDate+":hostIps:"+hostIps+":uuid::"+uuid); if(this.writeLog) { logInfo.put(""+weaver.systeminfo.SystemEnv.getHtmlLabelName(10005297,weaver.general.ThreadVarLanguage.getLang())+"",signBeginDateTime); @@ -524,7 +524,7 @@ public class KQFormatData extends BaseBean { for (int j = 0; lsCheckInfo != null && j < lsCheckInfo.size(); j++) { Map checkInfo = (Map) lsCheckInfo.get(j); - bb.writeLog("kqformatdata checkInfo: " + checkInfo); +// bb.writeLog("kqformatdata checkInfo: " + checkInfo); String signStatus = Util.null2String(checkInfo.get("signStatus")); String signId = Util.null2String(checkInfo.get("signId")); @@ -722,10 +722,10 @@ public class KQFormatData extends BaseBean { if (workFlowInfo.get(dateKey) != null) { workFlow = (List) workFlowInfo.get(dateKey); } - bb.writeLog("kqformatdata workFlow: " + workFlow); +// bb.writeLog("kqformatdata workFlow: " + workFlow); for (int j = 0; workFlow != null && j < workFlow.size(); j++) { Map data = (Map) workFlow.get(j); - bb.writeLog("kqformatdata workFlow data: " + workFlow); +// bb.writeLog("kqformatdata workFlow data: " + workFlow); String flowType = Util.null2String(data.get("flowtype")); String newLeaveType = Util.null2String(data.get("newleavetype")); String signtype = Util.null2String(data.get("signtype")); @@ -1011,66 +1011,127 @@ public class KQFormatData extends BaseBean { groupMap.put(grouptype, kqgroup); } } - bb.writeLog("groupMap: " + groupMap); +// bb.writeLog("groupMap: " + groupMap); bb.writeLog("groupid: " + groupid); + boolean offGood = false; + boolean inGood = false; for (int j = 0; lsCheckInfo != null && j < lsCheckInfo.size(); j++) { Map checkInfo = (Map) lsCheckInfo.get(j); - if ("2".equals(checkInfo.get("signType"))) {//签退 + if ("2".equals(checkInfo.get("signType")) && !offGood) {//签退 String signDate = Util.null2String(checkInfo.get("signDate")); String signTime = Util.null2String(checkInfo.get("signTime")); - bb.writeLog("signDate: " + signDate); - bb.writeLog("signTime: " + signTime); +// bb.writeLog("signDate: " + signDate); +// bb.writeLog("signTime: " + signTime); if (groupMap != null && groupMap.size() > 0) { for (String grouptype : groupMap.keySet()) { - bb.writeLog("grouptype: " + grouptype); - if ("0".equals(grouptype)) {//责任制--23点 +// bb.writeLog("grouptype: " + grouptype); +// if ("0".equals(grouptype)) {//责任制--23点 +// String kqgroups = Util.null2String(groupMap.get(grouptype)); +// bb.writeLog("kqgroups: " + kqgroups); +// List groupList = Arrays.asList(kqgroups.split(",")); +// bb.writeLog("groupList: " + groupList); +// if(groupList.contains(groupid)) { +// //23:00 +// if (signTime.length() == 5) { +// signTime = signTime + ":00"; +// } +// String subsidyTime = kqDate + " 23:00:00"; +// bb.writeLog("subsidyTime: " + subsidyTime); +// String outTime = signDate + " " + signTime; +// bb.writeLog("outTime: " + outTime); +// if (outTime.compareTo(subsidyTime) > 0 ) { +// zeroPointSub = 1; +// } +// } +// } + if ("0".equals(grouptype)) {//责任制--00点 String kqgroups = Util.null2String(groupMap.get(grouptype)); - bb.writeLog("kqgroups: " + kqgroups); +// bb.writeLog("kqgroups: " + kqgroups); List groupList = Arrays.asList(kqgroups.split(",")); - bb.writeLog("groupList: " + groupList); +// bb.writeLog("groupList: " + groupList); if(groupList.contains(groupid)) { - //23:00 + //00:00 if (signTime.length() == 5) { signTime = signTime + ":00"; } - String subsidyTime = kqDate + " 23:00:00"; + LocalDate date = LocalDate.parse(kqDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + LocalDate localDate = date.plusDays(1); + String kqDateNew = localDate.toString(); + String subsidyTime = kqDateNew + " 00:00:00"; bb.writeLog("subsidyTime: " + subsidyTime); String outTime = signDate + " " + signTime; bb.writeLog("outTime: " + outTime); if (outTime.compareTo(subsidyTime) > 0 ) { + offGood = true; zeroPointSub = 1; } } } - if ("1".equals(grouptype)) {//排班制--00点 + } + } + } + + if ("1".equals(checkInfo.get("signType")) && !inGood) {//签到 + String signDate = Util.null2String(checkInfo.get("signDate")); + String signTime = Util.null2String(checkInfo.get("signTime")); + bb.writeLog("signDate: " + signDate); + bb.writeLog("signTime: " + signTime); + + if (groupMap != null && groupMap.size() > 0) { + for (String grouptype : groupMap.keySet()) { + bb.writeLog("grouptype: " + grouptype); + if ("0".equals(grouptype)) {//责任制--23点 String kqgroups = Util.null2String(groupMap.get(grouptype)); bb.writeLog("kqgroups: " + kqgroups); List groupList = Arrays.asList(kqgroups.split(",")); bb.writeLog("groupList: " + groupList); if(groupList.contains(groupid)) { - //00:00 + //23:00 if (signTime.length() == 5) { signTime = signTime + ":00"; } - LocalDate date = LocalDate.parse(kqDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); - LocalDate localDate = date.plusDays(1); - String kqDateNew = localDate.toString(); - String subsidyTime = kqDateNew + " 00:00:00"; + String subsidyTime = kqDate + " 23:00:00"; bb.writeLog("subsidyTime: " + subsidyTime); - String outTime = signDate + " " + signTime; - bb.writeLog("outTime: " + outTime); - if (outTime.compareTo(subsidyTime) > 0 ) { - zeroPointSub = 1; + String inTime = signDate + " " + signTime; + bb.writeLog("inTime: " + inTime); + if (subsidyTime.compareTo(inTime) > 0 ) { + inGood = true; } } } +// if ("1".equals(grouptype)) {//排班制--00点 +// String kqgroups = Util.null2String(groupMap.get(grouptype)); +// bb.writeLog("kqgroups: " + kqgroups); +// List groupList = Arrays.asList(kqgroups.split(",")); +// bb.writeLog("groupList: " + groupList); +// if(groupList.contains(groupid)) { +// //00:00 +// if (signTime.length() == 5) { +// signTime = signTime + ":00"; +// } +// LocalDate date = LocalDate.parse(kqDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); +// LocalDate localDate = date.plusDays(1); +// String kqDateNew = localDate.toString(); +// String subsidyTime = kqDateNew + " 00:00:00"; +// bb.writeLog("subsidyTime: " + subsidyTime); +// String outTime = signDate + " " + signTime; +// bb.writeLog("outTime: " + outTime); +// if (outTime.compareTo(subsidyTime) > 0 ) { +// zeroPointSub = 1; +// } +// } +// } } } } } + + if (offGood && inGood) { + zeroPointSub = 1; + } bb.writeLog("zeroPointSub: " + zeroPointSub); /*考勤二开--零点补助end*/ @@ -1111,7 +1172,7 @@ public class KQFormatData extends BaseBean { params.add(zeroPointSub); /*考勤二开--零点补助end*/ - bb.writeLog("params: " + params); + bb.writeLog("params end. "); Map definedFieldInfo = new KQFormatBiz().getDefinedField(); String[] definedFields = Util.splitString(Util.null2String(definedFieldInfo.get("definedField")),","); @@ -1342,14 +1403,15 @@ public class KQFormatData extends BaseBean { HostarUtil houtil = new HostarUtil(); //先获取到出勤时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + userId + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + userId + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00 ) { - attendanceMinsMap.put(resourceid+"|"+kqdate, attendancemins); + if (signmins >= 0.00 ) { + attendanceMinsMap.put(resourceid+"|"+kqdate, signmins); } } KQWorkTime kqWorkTime = new KQWorkTime(); @@ -1365,8 +1427,8 @@ public class KQFormatData extends BaseBean { } } - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(userId + "|" + kqDate))); - value = (( attendanceMins / 60) >= 8.00 ) ? "1" : "0"; + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(userId + "|" + kqDate))); + value = (( signmins / 60) >= 8.00 ) ? "1" : "0"; } } catch (Exception e) { bb.writeLog("get NightShiftSubsidy error:" + e.getMessage()); @@ -1385,7 +1447,7 @@ public class KQFormatData extends BaseBean { } //获取加班时长 - Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); +// Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); String otherstatsub = Util.null2String(bb.getPropValue("project_hostar", "otherstatsubcompany")); if (StringUtils.isNotBlank(otherstatsub)) { @@ -1402,21 +1464,22 @@ public class KQFormatData extends BaseBean { resIds.add(id); } } - bb.writeLog("resIds: " + resIds); +// bb.writeLog("resIds: " + resIds); if (resIds != null && resIds.size() > 0 && StringUtils.isNotBlank(kqDate)) { HostarUtil houtil = new HostarUtil(); - //先获取到出勤时长 + //先获取到实际打卡时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00) { - attendanceMinsMap.put(resourceid + "|" + kqdate, attendancemins); + if (signmins >= 0.00) { + attendanceMinsMap.put(resourceid + "|" + kqdate, signmins); } } List removeRes = new ArrayList<>(); @@ -1518,38 +1581,48 @@ public class KQFormatData extends BaseBean { } Integer signNumber = 0; if (signIdList !=null && signIdList.size() > 0) { - String acqShowAddress = "select showaddress,addr from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; + String acqShowAddress = "select showaddress,addr,signfrom from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; // bb.writeLog("acqShowAddress: " + acqShowAddress); rs.executeQuery(acqShowAddress); while (rs.next()) { String showaddress = Util.null2String(rs.getString("showaddress")); + String signfrom = Util.null2String(rs.getString("signfrom")); + if (StringUtils.isEmpty(signfrom) || !StringUtils.equals(signfrom, "e9mobile")) { + signNumber = signNumber + 1; + } String addr = Util.null2String(rs.getString("addr")); if ("鸿仕达".equals(showaddress) || "hostar".equalsIgnoreCase(showaddress) || "鸿仕达".equals(addr) || "hostar".equalsIgnoreCase(addr)) { signNumber = signNumber + 1; } + if (StringUtils.isNotEmpty(showaddress) && (showaddress.contains("鸿仕达") || showaddress.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } + if (StringUtils.isNotEmpty(addr) && (addr.contains("鸿仕达") || addr.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } } } if (signNumber == 0) { - double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); - workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; - double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); - restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; - double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); - holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; - - double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); - workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; - double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); - restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; - double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); - holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; - - double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + - workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; +// double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); +// workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; +// double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); +// restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; +// double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); +// holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; +// +// double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); +// workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; +// double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); +// restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; +// double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); +// holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; +// +// double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + +// workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; // bb.writeLog("-=-temp:" + temp); - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); // bb.writeLog("-=-attendanceMins:" + attendanceMins); - double v = Math.round (((attendanceMins < 0.00) ? 0.00 : attendanceMins) + temp) / 60.00; + double v = Math.round ((signmins < 0.00) ? 0.00 : signmins) / 60.00; value = "0"; if (v >= 4.00 && v < 9.00) { value = "1"; @@ -1642,7 +1715,7 @@ public class KQFormatData extends BaseBean { } //获取加班时长 - Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); +// Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); //获取夜班班次 List nightShiftList = new ArrayList<>(); @@ -1670,20 +1743,21 @@ public class KQFormatData extends BaseBean { resIds.add(id); } } - bb.writeLog("resIds: " + resIds); +// bb.writeLog("resIds: " + resIds); if (resIds != null && resIds.size() > 0) { HostarUtil houtil = new HostarUtil(); //先获取到出勤时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + String.join(",", resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00) { - attendanceMinsMap.put(resourceid + "|" + kqdate, attendancemins); + if (signmins >= 0.00) { + attendanceMinsMap.put(resourceid + "|" + kqdate, signmins); } } KQWorkTime kqWorkTime = new KQWorkTime(); @@ -1698,26 +1772,26 @@ public class KQFormatData extends BaseBean { } } } - double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); - workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; - double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); - restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; - double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); - holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; - - double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); - workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; - double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); - restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; - double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); - holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; - - double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + - workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; +// double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); +// workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; +// double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); +// restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; +// double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); +// holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; +// +// double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); +// workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; +// double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); +// restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; +// double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); +// holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; +// +// double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + +// workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; // bb.writeLog("-=-temp:" + temp); - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); // bb.writeLog("-=-attendanceMins:" + attendanceMins); - value = String.valueOf(Math.floor(((attendanceMins < 0.00 ? 0.00 : attendanceMins) + temp) / 300)); + value = String.valueOf(Math.floor((signmins < 0.00 ? 0.00 : signmins) / 300)); } } } @@ -1740,7 +1814,7 @@ public class KQFormatData extends BaseBean { } //获取加班时长 - Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); +// Map dailyFlowOverTimeData = getDailyFlowOverTimeDataAllowance(userId, kqDate); //首先去除指定不享有的分部 List subComoanyList = new ArrayList<>(); @@ -1787,23 +1861,24 @@ public class KQFormatData extends BaseBean { resIds.add(id); } } - bb.writeLog("resIds: " + resIds); +// bb.writeLog("resIds: " + resIds); if (resIds != null && resIds.size() > 0 && StringUtils.isNotBlank(kqDate)) { HostarUtil houtil = new HostarUtil(); KQGroupMemberComInfo kqGroupMemberComInfo = new KQGroupMemberComInfo(); - //先获取到出勤时长 + //先获取到实际打卡时长 Map attendanceMinsMap = new HashMap<>(); - String acqAttenSql = " select resourceid, attendancemins, kqdate from kq_format_total where resourceid in (" + String.join(",",resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; + String acqAttenSql = " select resourceid, attendancemins, kqdate,signmins from kq_format_total where resourceid in (" + String.join(",",resIds) + ") and kqdate >='" + kqDate + "' and kqdate <='" + kqDate + "'"; rs.executeQuery(acqAttenSql); while (rs.next()) { String resourceid = Util.null2String(rs.getString("resourceid")); Double attendancemins = Util.getDoubleValue(Util.null2String(rs.getString("attendancemins"))); + Double signmins = Util.getDoubleValue(Util.null2String(rs.getString("signmins"))); String kqdate = Util.null2String(rs.getString("kqdate")); - if (attendancemins >= 0.00 ) { - attendanceMinsMap.put(resourceid+"|"+kqdate, attendancemins); + if (signmins >= 0.00 ) { + attendanceMinsMap.put(resourceid+"|"+kqdate, signmins); } } @@ -1910,40 +1985,50 @@ public class KQFormatData extends BaseBean { } } } - bb.writeLog("signIdList: " + signIdList); +// bb.writeLog("signIdList: " + signIdList); Integer signNumber = 0; if (signIdList !=null && signIdList.size() > 0) { - String acqShowAddress = "select showaddress,addr from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; - bb.writeLog("acqShowAddress: " + acqShowAddress); + String acqShowAddress = "select showaddress,addr,signfrom from hrmschedulesign where id in (" + String.join(",", signIdList) + ") "; +// bb.writeLog("acqShowAddress: " + acqShowAddress); rs.executeQuery(acqShowAddress); while (rs.next()) { String showaddress = Util.null2String(rs.getString("showaddress")); + String signfrom = Util.null2String(rs.getString("signfrom")); + if (StringUtils.isEmpty(signfrom) || !StringUtils.equals(signfrom, "e9mobile")) { + signNumber = signNumber + 1; + } String addr = Util.null2String(rs.getString("addr")); if ("鸿仕达".equals(showaddress) || "hostar".equalsIgnoreCase(showaddress) || "鸿仕达".equals(addr) || "hostar".equalsIgnoreCase(addr)) { signNumber = signNumber + 1; } + if (StringUtils.isNotEmpty(showaddress) && (showaddress.contains("鸿仕达") || showaddress.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } + if (StringUtils.isNotEmpty(addr) && (addr.contains("鸿仕达") || addr.toLowerCase().contains("hostar"))) { + signNumber = signNumber + 1; + } } } if (signNumber == 0 ) { - double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); - workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; - double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); - restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; - double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); - holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; - - double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); - workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; - double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); - restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; - double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); - holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; - - double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + - workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; - Double attendanceMins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); - value = String.valueOf(Math.floor( ((attendanceMins < 0.00 ? 0.00 : attendanceMins) + temp) / 300)); +// double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_4leave"))); +// workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave; +// double restDayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_4leave"))); +// restDayOvertime_4leave = restDayOvertime_4leave < 0 ? 0 : restDayOvertime_4leave; +// double holidayOvertime_4leave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_4leave"))); +// holidayOvertime_4leave = holidayOvertime_4leave < 0 ? 0 : holidayOvertime_4leave; +// +// double workingDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|workingDayOvertime_nonleave"))); +// workingDayOvertime_nonleave = workingDayOvertime_nonleave < 0 ? 0 : workingDayOvertime_nonleave; +// double restDayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|restDayOvertime_nonleave"))); +// restDayOvertime_nonleave = restDayOvertime_nonleave < 0 ? 0 : restDayOvertime_nonleave; +// double holidayOvertime_nonleave = Util.getDoubleValue(Util.null2String(dailyFlowOverTimeData.get(res + "|" + kqDate + "|holidayOvertime_nonleave"))); +// holidayOvertime_nonleave = holidayOvertime_nonleave < 0 ? 0 : holidayOvertime_nonleave; +// +// double temp = workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave + +// workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave; + Double signmins = Util.getDoubleValue(Util.null2String(attendanceMinsMap.get(res + "|" + kqDate))); + value = String.valueOf(Math.floor( (signmins < 0.00 ? 0.00 : signmins) / 300)); } } } @@ -1988,7 +2073,7 @@ public class KQFormatData extends BaseBean { String latitude = Util.null2String(rs.getString("latitude")); evectionMap.put( belongdate + "|" + resourceid, longitude + "|" + latitude ); } - bb.writeLog("evectionMap: " + evectionMap); +// bb.writeLog("evectionMap: " + evectionMap); //获取外勤打卡数据 KQWorkTime kqWorkTime = new KQWorkTime(); @@ -2172,10 +2257,6 @@ public class KQFormatData extends BaseBean { nightShiftList.add(shift); } } - rs.executeQuery("select zeropoint from kq_format_total where resourceid = ? and kqdate = ?", userId, kqDate); - if (rs.next()) { - value = rs.getString("zeropoint"); - } //获取当天班次 KQWorkTime kqWorkTime = new KQWorkTime(); Map serialInfo = kqWorkTime.getSerialInfo(userId, kqDate, false); @@ -2184,6 +2265,11 @@ public class KQFormatData extends BaseBean { if (serialid > 0) { if ((!CollectionUtils.isEmpty(nightShiftList)) && nightShiftList.contains(String.valueOf(serialid))) { value = "0"; + } else { + rs.executeQuery("select zeropoint from kq_format_total where resourceid = ? and kqdate = ?", userId, kqDate); + if (rs.next()) { + value = rs.getString("zeropoint"); + } } } } diff --git a/src/weaver/interfaces/hostar/action/OutSignSyncAction.java b/src/weaver/interfaces/hostar/action/OutSignSyncAction.java index c095c9e..e47650f 100644 --- a/src/weaver/interfaces/hostar/action/OutSignSyncAction.java +++ b/src/weaver/interfaces/hostar/action/OutSignSyncAction.java @@ -22,7 +22,7 @@ public class OutSignSyncAction implements Action { @Override public String execute(RequestInfo requestInfo) { - bb.writeLog("OutSignSyncAction-start"); + bb.writeLog("OutSignSyncAction-start:" + requestInfo.getRequestid()); String startDate = ""; String endDate = ""; String resourceid = ""; @@ -53,20 +53,22 @@ public class OutSignSyncAction implements Action { if (StringUtils.isNotBlank(sjjsrq)) { endDate = sjjsrq; } - bb.writeLog("start to handle data."); + bb.writeLog("start to handle data:" + startDate + "、" + endDate + "、" + resourceid); if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate) && StringUtils.isNotBlank(resourceid)) { // 内部同行人也要考虑 if (StringUtils.isNotBlank(nbtxr)) { resourceid = resourceid + "," + nbtxr; } + bb.writeLog("OutSignSyncAction resourceid:" + resourceid); RecordSet rs = new RecordSet(); List infos = new ArrayList<>(); String acqOutSignSql = "select a.id, c.signinfo " + "from mobile_sign a " + "left join uf_outsigntype c " + "on c.outsignid = a.id " + - "where operate_date >= '" + startDate + "' and operate_date <= '" + endDate + "' and operater in (?) "; - rs.executeQuery(acqOutSignSql, resourceid); + "where operate_date >= '" + startDate + "' and operate_date <= '" + endDate + "' and operater in (" + resourceid + ") "; + bb.writeLog("OutSignSyncAction acqOutSignSql:" + acqOutSignSql); + rs.execute(acqOutSignSql); while (rs.next()) { String signinfo = Util.null2String(rs.getString("signinfo")); infos.add(signinfo); @@ -93,7 +95,7 @@ public class OutSignSyncAction implements Action { String punchSql = "insert into HrmScheduleSign(userId,userType,signType,signDate,signTime,clientAddress,isInCom,timeZone,belongdate,signfrom,longitude,latitude,addr,deviceInfo,isdev) " + " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; - boolean isok = rs.executeUpdate(punchSql, resourceid, userType, signType, signDate, signTime, clientAddress, isInCom, + boolean isok = rs.executeUpdate(punchSql, userId, userType, signType, signDate, signTime, clientAddress, isInCom, timeZone, belongdate, signfrom, longitude, latitude, address, deviceInfo, "1"); bb.writeLog("isok: " + isok); //同步更新考勤数据到考勤报表