Unverified Commit 44a90ed6 authored by mshaik-nisum-com's avatar mshaik-nisum-com Committed by GitHub

Merge pull request #187 from nisum-inc/FEATURE/CodeRefactorForLoginReportBasedOnDateTime

MT-175:Code Refactor for Login Report based on Date Time
parents 9cb1a524 7979a3d0
...@@ -23,6 +23,7 @@ import com.nisum.mytime.model.AttendenceData; ...@@ -23,6 +23,7 @@ import com.nisum.mytime.model.AttendenceData;
import com.nisum.mytime.model.EmpLoginData; import com.nisum.mytime.model.EmpLoginData;
import com.nisum.mytime.model.ProjectTeamMate; import com.nisum.mytime.model.ProjectTeamMate;
import com.nisum.mytime.repository.ProjectTeamMatesRepo; import com.nisum.mytime.repository.ProjectTeamMatesRepo;
import com.nisum.mytime.utils.CommomUtil;
import com.nisum.mytime.utils.MyTimeLogger; import com.nisum.mytime.utils.MyTimeLogger;
import com.nisum.mytime.utils.MyTimeUtils; import com.nisum.mytime.utils.MyTimeUtils;
import com.nisum.mytime.utils.PdfReportGenerator; import com.nisum.mytime.utils.PdfReportGenerator;
...@@ -53,34 +54,12 @@ public class AttendanceServiceImpl implements AttendanceService { ...@@ -53,34 +54,12 @@ public class AttendanceServiceImpl implements AttendanceService {
@Override @Override
public List<EmpLoginData> employeeLoginReportBasedOnDateTime(long id, String fromDate, String toDate,String fromTime,String toTime) throws MyTimeException, ParseException { public List<EmpLoginData> employeeLoginReportBasedOnDateTime(long id, String fromDate, String toDate,String fromTime,String toTime) throws MyTimeException, ParseException {
String timeFrom= CommomUtil.convertTimeFormat(fromTime);
//Getting Sign AM/PM of Time String timeTo= CommomUtil.convertTimeFormat(toTime);
String timeSignFrom=fromTime.substring(6,8); String nextDayDate = CommomUtil.getNextDay(fromDate,fromTime,toTime);
String timeSignTo=toTime.substring(6,8); return employeeDataBaseService.fetchEmployeeLoginsBasedOnDatesTime(id, fromDate, nextDayDate, toDate, timeFrom, timeTo);
// Converting the Time from 12 Hours to 24 Hours Format
SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a");
// Given Format
Date from = parseFormat.parse(fromTime);
Date to = parseFormat.parse(toTime);
//Required Format
String timeFrom=displayFormat.format(from);
String timeTo=displayFormat.format(to);
//Getting Hours from Time
String nextDate=fromDate;
int hoursFrom=Integer.parseInt(timeFrom.substring(0,2));
int hoursTo=Integer.parseInt(timeTo.substring(0,2));
if(hoursTo<=hoursFrom && timeSignFrom.equals(timeSignTo) || hoursTo<=hoursFrom) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-d");
LocalDate newtoDate = (LocalDate.parse(fromDate,formatter)).plusDays(1);
nextDate=newtoDate.toString();
}
return employeeDataBaseService.fetchEmployeeLoginsBasedOnDatesTime(id, fromDate,nextDate, toDate,timeFrom,timeTo);
} }
@Override @Override
public String generatePdfReport(long id, String fromDate, String toDate, String fromTime, String toTime) public String generatePdfReport(long id, String fromDate, String toDate, String fromTime, String toTime)
throws MyTimeException { throws MyTimeException {
......
package com.nisum.mytime.service;
import java.util.List;
import com.nisum.mytime.exception.handler.MyTimeException;
import com.nisum.mytime.model.EmpLoginData;
public interface IEmployeeDataService {
List<EmpLoginData> fetchEmployeeLoginsBasedOnDates(long employeeId, String fromDate, String toDate) throws MyTimeException;
List<EmpLoginData> fetchEmployeeLoginsBasedOnDatesTime(long employeeId, String fromDate, String nextDate,String toDate,String fromTime,String toTime) throws MyTimeException;
}
package com.nisum.mytime.utils; package com.nisum.mytime.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
public class CommomUtil { public class CommomUtil {
...@@ -27,4 +32,30 @@ public class CommomUtil { ...@@ -27,4 +32,30 @@ public class CommomUtil {
public static String appendZero(int val) { public static String appendZero(int val) {
return val<10?("0"+val):(val+""); return val<10?("0"+val):(val+"");
} }
public static String convertTimeFormat(String time) throws ParseException {
SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mm a");
Date from = parseFormat.parse(time);
return displayFormat.format(from);
}
public static String getNextDay(String fromDate,String fromTime,String toTime) throws ParseException {
String timeSignFrom=fromTime.substring(6,8);
String timeSignTo=toTime.substring(6,8);
String timeFrom= convertTimeFormat(fromTime);
String timeTo= convertTimeFormat(toTime);
//Getting Hours from Time
String nextDate=fromDate;
int hoursFrom=Integer.parseInt(timeFrom.substring(0,2));
int hoursTo=Integer.parseInt(timeTo.substring(0,2));
if(hoursTo<=hoursFrom && timeSignFrom.equals(timeSignTo)
|| hoursTo<=hoursFrom /*this condition is applicable if fromTime is PM & toTime is AM*/) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-d");
LocalDate nextDay = (LocalDate.parse(fromDate,formatter)).plusDays(1);
nextDate=nextDay.toString();
}
return nextDate;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment