scheduler related changes

parent d84b248e
...@@ -2,6 +2,7 @@ package com.nisum.myteam.controller; ...@@ -2,6 +2,7 @@ package com.nisum.myteam.controller;
import com.nisum.myteam.exception.handler.MyTeamException; import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.exception.handler.ResponseDetails;
import com.nisum.myteam.model.dao.EffectiveLoginData; import com.nisum.myteam.model.dao.EffectiveLoginData;
import com.nisum.myteam.model.dao.Employee; import com.nisum.myteam.model.dao.Employee;
import com.nisum.myteam.service.IEffectiveLoginTimeService; import com.nisum.myteam.service.IEffectiveLoginTimeService;
...@@ -9,10 +10,11 @@ import com.nisum.myteam.service.IEmployeeService; ...@@ -9,10 +10,11 @@ import com.nisum.myteam.service.IEmployeeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -48,4 +50,27 @@ public class EffectiveLoginTimeController { ...@@ -48,4 +50,27 @@ public class EffectiveLoginTimeController {
return effectiveLoginTimeService.getEmployeesEffLoginData(employeeId,fromDate,toDate); return effectiveLoginTimeService.getEmployeesEffLoginData(employeeId,fromDate,toDate);
} }
@DeleteMapping("/deleteLoginData")
public ResponseEntity<?> deleteLoginData(@RequestParam("fromDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date fromDate,
@RequestParam("toDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date toDate, @RequestParam("employeeId") String employeeId, HttpServletRequest request) throws MyTeamException {
effectiveLoginTimeService.deleteEmployeeLoginData(employeeId,fromDate,toDate);
ResponseDetails responseDetails = new ResponseDetails(new Date(), 904, "delete Employees Login details Successfully",
"delete Employees Login details Successfully", null, request.getRequestURI(), "Login details", null);
return new ResponseEntity<ResponseDetails>(responseDetails, HttpStatus.OK);
}
@PostMapping("/syncLoginDataByDateRange")
public List<EffectiveLoginData> syncLoginDataByDateRange(@RequestParam("fromDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date fromDate,
@RequestParam("toDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date toDate) throws MyTeamException {
List<EffectiveLoginData> loginData = new ArrayList<>();
List<Employee> allEmployees = employeeService.getActiveEmployees();
//allEmployees.removeIf(s -> !"40270".equalsIgnoreCase(s.getEmployeeId()));
for (Employee employee : allEmployees) {
EffectiveLoginData effectiveLoginData =
effectiveLoginTimeService.calculateEffectiveLoginTimeForEmpAndSave(employee, fromDate, toDate);
loginData.add(effectiveLoginData);
}
return loginData;
}
} }
...@@ -32,6 +32,7 @@ public class EffectiveLoginData implements Serializable{ ...@@ -32,6 +32,7 @@ public class EffectiveLoginData implements Serializable{
private String loginTime; private String loginTime;
private String logoutTime; private String logoutTime;
private String durationAtWorkPlace; private String durationAtWorkPlace;
private Date createdDate;
private List<String> orphanLogin; private List<String> orphanLogin;
public EffectiveLoginData(){ public EffectiveLoginData(){
orphanLogin = new ArrayList<>(); orphanLogin = new ArrayList<>();
......
...@@ -11,4 +11,5 @@ public interface EffectiveLoginDataRepo extends MongoRepository<EffectiveLoginDa ...@@ -11,4 +11,5 @@ public interface EffectiveLoginDataRepo extends MongoRepository<EffectiveLoginDa
List<EffectiveLoginData> findByEmployeeId(String employeeId); List<EffectiveLoginData> findByEmployeeId(String employeeId);
List<EffectiveLoginData> findByDateBetween(Date from,Date to); List<EffectiveLoginData> findByDateBetween(Date from,Date to);
} }
package com.nisum.myteam.service; package com.nisum.myteam.service;
import com.nisum.myteam.exception.handler.MyTeamException; import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.model.EmployeeLoginData;
import com.nisum.myteam.model.dao.EffectiveLoginData; import com.nisum.myteam.model.dao.EffectiveLoginData;
import com.nisum.myteam.model.dao.Employee; import com.nisum.myteam.model.dao.Employee;
import java.text.ParseException; import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
public interface IEffectiveLoginTimeService { public interface IEffectiveLoginTimeService {
...@@ -15,4 +13,8 @@ public interface IEffectiveLoginTimeService { ...@@ -15,4 +13,8 @@ public interface IEffectiveLoginTimeService {
public EffectiveLoginData calculateEffectiveLoginTimeForEmpAndSave(Employee employee) throws MyTeamException; public EffectiveLoginData calculateEffectiveLoginTimeForEmpAndSave(Employee employee) throws MyTeamException;
public Map<String,Object> getEmployeesEffLoginData(long employeeId, Date fromDate, Date toDate) throws ParseException; public Map<String,Object> getEmployeesEffLoginData(long employeeId, Date fromDate, Date toDate) throws ParseException;
public void deleteEmployeeLoginData(String employeeId, Date fromDate, Date toDate) throws MyTeamException;
EffectiveLoginData calculateEffectiveLoginTimeForEmpAndSave(Employee employee, Date fromDate, Date toDate) throws MyTeamException;
} }
...@@ -5,9 +5,11 @@ package com.nisum.myteam.service; ...@@ -5,9 +5,11 @@ package com.nisum.myteam.service;
import com.nisum.myteam.model.EmailDomain; import com.nisum.myteam.model.EmailDomain;
import com.nisum.myteam.model.Mail; import com.nisum.myteam.model.Mail;
import com.nisum.myteam.model.vo.LoginDetailsVO;
import javax.mail.MessagingException; import javax.mail.MessagingException;
import java.io.IOException; import java.io.IOException;
import java.util.List;
/** /**
* @author nisum * @author nisum
...@@ -23,5 +25,6 @@ public interface IMailService { ...@@ -23,5 +25,6 @@ public interface IMailService {
public void sendWorkAnniversaryNotification(Mail mail)throws MessagingException, IOException; public void sendWorkAnniversaryNotification(Mail mail)throws MessagingException, IOException;
public void sendExemptHoursEmployeDetailsToLeads(Mail mail, List<LoginDetailsVO> hoursExemptEmployeeList) throws MessagingException, IOException;
} }
...@@ -5,6 +5,7 @@ package com.nisum.myteam.service.impl; ...@@ -5,6 +5,7 @@ package com.nisum.myteam.service.impl;
import com.nisum.myteam.model.EmailDomain; import com.nisum.myteam.model.EmailDomain;
import com.nisum.myteam.model.Mail; import com.nisum.myteam.model.Mail;
import com.nisum.myteam.model.vo.LoginDetailsVO;
import com.nisum.myteam.service.IMailService; import com.nisum.myteam.service.IMailService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -29,6 +30,9 @@ import java.io.IOException; ...@@ -29,6 +30,9 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Optional;
/** /**
* @author nisum * @author nisum
* *
...@@ -175,5 +179,40 @@ public class MailService implements IMailService { ...@@ -175,5 +179,40 @@ public class MailService implements IMailService {
emailSender.send(message); emailSender.send(message);
} }
@Override
public void sendExemptHoursEmployeDetailsToLeads(Mail mail, List<LoginDetailsVO> hoursExemptEmployeeList) throws MessagingException, IOException {
System.out.println(hoursExemptEmployeeList.size());
if(Optional.ofNullable(hoursExemptEmployeeList).isPresent() ) {
MimeMessage message = emailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
StringBuilder exemptEmployeeRowsData = new StringBuilder();
hoursExemptEmployeeList.stream().forEach(e -> {
exemptEmployeeRowsData.append("<tr><td style = \"padding: 10px;\">");
exemptEmployeeRowsData.append(e.getEmployeeId());
exemptEmployeeRowsData.append("</td><td style = \"padding: 10px;\">");
exemptEmployeeRowsData.append(e.getEmployeeName());
exemptEmployeeRowsData.append("</td><td style = \"padding: 10px;\">");
exemptEmployeeRowsData.append(e.getAvgHours());
exemptEmployeeRowsData.append("</td><td style = \"padding: 10px;\">");
exemptEmployeeRowsData.append(e.getOrphanLogin());
exemptEmployeeRowsData.append("</td>");
});
File file = ResourceUtils.getFile("classpath:" + environment.getProperty("email.exempt.hours.employeelist.template.file.path"));
//Read File Content
String content = new String(Files.readAllBytes(file.toPath()));
content = content.replaceAll("employeeList", exemptEmployeeRowsData.toString());
System.out.println(content);
helper.setTo(mail.getTo());
helper.setText(content, true);
helper.setSubject(mail.getSubject());
helper.setFrom(mail.getFrom());
helper.setCc(mail.getCc());
//helper.setBcc(mail.getBcc());
if (exemptEmployeeRowsData.toString() != null && !exemptEmployeeRowsData.toString().isEmpty()) {
emailSender.send(message);
}
}
}
} }
...@@ -7,7 +7,8 @@ public class MyTeamUtils { ...@@ -7,7 +7,8 @@ public class MyTeamUtils {
private MyTeamUtils() {
private MyTeamUtils() {
} }
...@@ -194,4 +195,14 @@ public class MyTeamUtils { ...@@ -194,4 +195,14 @@ public class MyTeamUtils {
public final static String TEXT_DESIGNATIONS="designations"; public final static String TEXT_DESIGNATIONS="designations";
public final static String TEXT_ENABLE="enable"; public final static String TEXT_ENABLE="enable";
public final static String TEXT_DISABLE="disable"; public final static String TEXT_DISABLE="disable";
public final static String EMPLOYEE_LOGIN_DETAILS_QUERY = "SELECT top 30 emp.FirstName, emp.EmployeeCode, pd.TransactionDateTime, re.IOEntryStatus, re.ReaderName\n" +
"FROM ProcessData AS pd , EmployeeMaster AS emp, Readers AS re \n" +
"WHERE emp.EmployeeMasterID = pd.EmployeeID AND re.ReaderID = pd.ReaderID AND emp.EmployeeCode = %s \n" +
//"AND pd.TransactionDateTime <= CONVERT(date,GETDATE()) AND pd.TransactionDateTime >= CONVERT(date,GETDATE()-1) " +
"ORDER BY pd.TransactionDateTime desc";
public final static String EMPLOYEE_LOGIN_DETAILS_QUERY_BY_DATES = "SELECT emp.FirstName, emp.EmployeeCode, pd.TransactionDateTime, re.IOEntryStatus, re.ReaderName\n" +
"FROM ProcessData AS pd , EmployeeMaster AS emp, Readers AS re \n" +
"WHERE emp.EmployeeMasterID = pd.EmployeeID AND re.ReaderID = pd.ReaderID AND emp.EmployeeCode = %s \n" +
"AND pd.TransactionDateTime BETWEEN CONVERT(datetime,'%2$s') AND CONVERT(datetime,'%3$s') " +
"ORDER BY pd.TransactionDateTime";
} }
...@@ -43,6 +43,7 @@ myTeam.data.mssqldb.password=admin@123 ...@@ -43,6 +43,7 @@ myTeam.data.mssqldb.password=admin@123
email.leave.notification.template.file.path=email/absentMailTemplate.html email.leave.notification.template.file.path=email/absentMailTemplate.html
email.leave.notification.from=mytime.nisum@gmail.com email.leave.notification.from=mytime.nisum@gmail.com
email.leave.notification.subject=Employee Leave Email Notification email.leave.notification.subject=Employee Leave Email Notification
email.exempt.hours.employeelist.template.file.path=email/employeesExemptHours.html
#0 * * * * ?===>for every minute #0 * * * * ?===>for every minute
...@@ -67,6 +68,9 @@ email.project.notification.cron=00 00 15 * * 1-5 ...@@ -67,6 +68,9 @@ email.project.notification.cron=00 00 15 * * 1-5
email.workAnniversary.notification.from=mytime.nisum@gmail.com email.workAnniversary.notification.from=mytime.nisum@gmail.com
myTeam.exemptHours.fromemail=myerrabothu@nisum.com
myTeam.exemptHours.toemail=myerrabothu@nisum.com
email.exemptHours.notification.cron=0 10 10 ? * MON
email.workAnniversary.notification.subject=Happy Work Anniversary email.workAnniversary.notification.subject=Happy Work Anniversary
email.workAnniversary.notification.cron=00 00 06 * * 1-7 email.workAnniversary.notification.cron=00 00 06 * * 1-7
......
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