diff --git a/interface/dfjc/kqRestTimeTest.jsp b/interface/dfjc/kqRestTimeTest.jsp new file mode 100644 index 0000000..02c69b9 --- /dev/null +++ b/interface/dfjc/kqRestTimeTest.jsp @@ -0,0 +1,37 @@ +<%@ page import="com.engine.kq.entity.WorkTimeEntity" %> +<%@ page import="com.weaver.general.Util" %> +<%@ page import="com.engine.kq.biz.KQWorkTime" %> +<%@ page import="org.apache.commons.lang3.StringUtils" %> +<%@ page import="com.engine.kq.biz.KQShiftManagementComInfo" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + + +<% + + String id = Util.null2String(request.getParameter("id")); + String gzrq = Util.null2String(request.getParameter("gzrq")); + KQWorkTime kqWorkTime = new KQWorkTime(); + + WorkTimeEntity workTimeEntity = kqWorkTime.getWorkTime(id, gzrq); + String serialId = workTimeEntity.getSerialId(); + if (StringUtils.isBlank(serialId) || "-1".equals(serialId)) { + kqWorkTime.setIsFormat(true); + workTimeEntity = kqWorkTime.getWorkTime(id, gzrq); + serialId = workTimeEntity.getSerialId(); + } + + KQShiftManagementComInfo kqShiftManagementComInfo = new KQShiftManagementComInfo(); + String isRestTimeOpen = kqShiftManagementComInfo.getIsresttimeopen(serialId); + + + //1表示开启 + out.println(isRestTimeOpen); + + + + + +%> + + diff --git a/src/com/engine/kqsolution/service/impl/SignDataSummaryServiceImpl.java b/src/com/engine/kqsolution/service/impl/SignDataSummaryServiceImpl.java index efd6654..edc3908 100644 --- a/src/com/engine/kqsolution/service/impl/SignDataSummaryServiceImpl.java +++ b/src/com/engine/kqsolution/service/impl/SignDataSummaryServiceImpl.java @@ -3,6 +3,9 @@ package com.engine.kqsolution.service.impl; import cn.hutool.core.thread.ThreadUtil; import com.engine.core.impl.Service; +import com.engine.kq.biz.KQShiftManagementComInfo; +import com.engine.kq.biz.KQWorkTime; +import com.engine.kq.entity.WorkTimeEntity; import com.engine.kqsolution.entity.CustomSignDataParam; import com.engine.kqsolution.entity.SignDataPO; import com.engine.kqsolution.entity.SignDataParams; @@ -81,16 +84,22 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma signOutTime = signOutTime.substring(0,5); } Integer signMins = Util.getIntValue(Util.null2String(rs.getString("signMins")),0); + int resourceid = Util.getIntValue(rs.getString("resourceid")); + String kqdate = Util.null2String(rs.getString("kqdate")); double hours = (double) signMins / 60; double workHours; if (hours <= 4.0) { workHours = hours; } else { - workHours = Math.floor(hours - 1.0); + workHours = Math.floor(hours); + String kqRestTime = checkKqRestTime(String.valueOf(resourceid), kqdate); + if ("1".equals(kqRestTime)) { + workHours = Math.floor(hours - 1.0); + } } SignDataPO build = SignDataPO.builder() - .resourceId(Util.getIntValue(rs.getString("resourceid"))) - .attendanceDate(Util.null2String(rs.getString("kqdate"))) + .resourceId(resourceid) + .attendanceDate(kqdate) .signInDate(Util.null2String(rs.getString("signindate"))) .signInTime(signInTime) .signOutDate(Util.null2String(rs.getString("signoutdate"))) @@ -145,7 +154,11 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma if (hours <= 4.0) { workHours = hours; } else { - workHours = Math.floor(hours - 1.0); + workHours = Math.floor(hours); + String kqRestTime = checkKqRestTime(resourceId, signDataPo.getAttendanceDate()); + if ("1".equals(kqRestTime)) { + workHours = Math.floor(hours - 1.0); + } } signDataPo.setCompany(Integer.parseInt(rcom.getSubCompanyID(resourceId))); signDataPo.setDepartment(Integer.parseInt(rcom.getDepartmentID(resourceId))); @@ -284,6 +297,21 @@ public class SignDataSummaryServiceImpl extends Service implements SignDataSumma return splittedLists; } + private String checkKqRestTime(String id,String gzrq) { + KQWorkTime kqWorkTime = new KQWorkTime(); + WorkTimeEntity workTimeEntity = kqWorkTime.getWorkTime(id, gzrq); + String serialId = workTimeEntity.getSerialId(); + if (StringUtils.isBlank(serialId) || "-1".equals(serialId)) { + kqWorkTime.setIsFormat(true); + workTimeEntity = kqWorkTime.getWorkTime(id, gzrq); + serialId = workTimeEntity.getSerialId(); + } + + KQShiftManagementComInfo kqShiftManagementComInfo = new KQShiftManagementComInfo(); + return kqShiftManagementComInfo.getIsresttimeopen(serialId); + + } + public String getFormatLocalDate(LocalDate localDate,DateTimeFormatter type) { if (localDate == null) { return StringUtils.EMPTY;