Commit 07d177ef authored by b v s satyanarayana's avatar b v s satyanarayana

MT-53_4 :SNS :: ImportEmployeeDataValidations

parent e38dc67d
......@@ -286,7 +286,7 @@ public class UserController {
public ResponseEntity<String> exportDataFromFile(@RequestParam(value = "file") MultipartFile file, @RequestParam(value="empId") String loginEmpId)
throws MyTimeException {
log.info("Uploaded file: {} with size: {}", file.getOriginalFilename(), file.getSize());
String result = userService.exportDataFromExcelFile(file,loginEmpId);
String result = userService.importDataFromExcelFile(file,loginEmpId);
return new ResponseEntity<>(result, HttpStatus.OK);
}
......
......@@ -3,7 +3,6 @@ package com.nisum.mytime.service;
import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;
......@@ -86,5 +85,5 @@ public interface UserService {
public boolean verifyRole(String empId, String roleName);
String exportDataFromExcelFile(MultipartFile file, String empId) throws MyTimeException;
String importDataFromExcelFile(MultipartFile file, String empId) throws MyTimeException;
}
......@@ -553,7 +553,7 @@ public class UserServiceImpl implements UserService {
}
@Override
public String exportDataFromExcelFile(MultipartFile file, String logInEmpId) throws MyTimeException {
public String importDataFromExcelFile(MultipartFile file, String logInEmpId) throws MyTimeException {
String result = "";
try {
PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings().preferNullOverDefault(true).datePattern("dd-MMM-yyyy").build();
......@@ -590,17 +590,20 @@ public class UserServiceImpl implements UserService {
if(employee.getRole().trim().isEmpty()) {
employee.setRole(MyTimeUtils.EMPLOYEE);
}
if (employee.getEmploymentType().trim().isEmpty()) {
employee.setEmploymentType(MyTimeUtils.FULL_TIME);
}
if (employee.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.ACTIVE) || employee.getEmpStatus().trim().isEmpty()) {
employee.setEmpStatus(MyTimeUtils.ACTIVE);
} else {
String empStatus = employee.getEmpStatus().trim();
if( empStatus.isEmpty() ) {
if(null == employee.getEndDate()) {
employee.setEmpStatus(MyTimeUtils.ACTIVE);
}else {
employee.setEmpStatus(MyTimeUtils.IN_ACTIVE_SPACE);
}
}else if ( (empStatus.equalsIgnoreCase(MyTimeUtils.IN_ACTIVE) || empStatus.equalsIgnoreCase(MyTimeUtils.IN_ACTIVE_SPACE)
|| empStatus.equalsIgnoreCase(MyTimeUtils.IN_HYPEN_ACTIVE_SPACE)) && null != employee.getEndDate() ) {
employee.setEmpStatus(MyTimeUtils.IN_ACTIVE_SPACE);
}
if (!employee.getGender().trim().isEmpty()) {
if(employee.getGender().equalsIgnoreCase(MyTimeUtils.MALE)) {
employee.setGender(MyTimeUtils.MALE);
......@@ -631,35 +634,12 @@ public class UserServiceImpl implements UserService {
for(EmployeeRoles emp : employees) {
rowNumber += 1;
mandatoryFlag = importExcelMandatoryColumnsValidation(emp);
if(mandatoryFlag) {
if (!DataValidations.isAgeGreaterThanTwenty(emp.getDateOfBirth(), emp.getDateOfJoining())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
continue;
}
if( MyTimeUtils.YES.equalsIgnoreCase(emp.getHasPassort()) || MyTimeUtils.STRING_Y.equalsIgnoreCase(emp.getHasPassort())){
mandatoryFlag = DataValidations.isFutureDate(emp.getPassportExpiryDate());
if (!mandatoryFlag) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
continue;
}
} else {
mandatoryFlag = false;
}
if(mandatoryFlag && (MyTimeUtils.YES.equals(emp.getHasB1()) || MyTimeUtils.STRING_Y.equals(emp.getHasB1()))
&& !DataValidations.isFutureDate(emp.getB1ExpiryDate())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
continue;
}
if(!MyTimeUtils.EMPTY_STRING.equals(emp.getEmpStatus().trim()) ) {
String empStatus = emp.getEmpStatus().trim();
if((empStatus.equalsIgnoreCase(MyTimeUtils.IN_ACTIVE) || MyTimeUtils.IN_ACTIVE_SPACE.equalsIgnoreCase(empStatus)
|| MyTimeUtils.IN_HYPEN_ACTIVE_SPACE.equalsIgnoreCase(empStatus)) && !DataValidations.isValidDate(emp.getEndDate())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
}
}
if (mandatoryFlag) {
importExcelAdditionalColumnVAlidation(emp, inValidEmpRecList,invalidEmpRecs, rowNumber);
} else {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
}
}
}
if(invalidEmpRecs.size() > MyTimeUtils.INT_ZERO) {
employees.removeAll(invalidEmpRecs);
......@@ -759,9 +739,47 @@ public class UserServiceImpl implements UserService {
mandatoryFlag = false;
}else if(! DataValidations.isYesOrNo(emp.getHasB1())) {
mandatoryFlag = false;
}else if(!DataValidations.isValidEmail(emp.getEmailId())) {
mandatoryFlag = false;
}
return mandatoryFlag;
}
private void importExcelAdditionalColumnVAlidation(EmployeeRoles emp,List<String> inValidEmpRecList, List<EmployeeRoles> invalidEmpRecs, int rowNumber) {
if (!DataValidations.isAgeGreaterThanTwenty(emp.getDateOfBirth(), emp.getDateOfJoining())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
return;
}
if (MyTimeUtils.YES.equalsIgnoreCase(emp.getHasPassort().trim())|| MyTimeUtils.STRING_Y.equalsIgnoreCase(emp.getHasPassort().trim())) {
if (!DataValidations.isFutureDate(emp.getPassportExpiryDate())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
return;
}
}
if ( emp.getHasPassort().trim().isEmpty() || MyTimeUtils.NO.equalsIgnoreCase(emp.getHasPassort().trim())|| MyTimeUtils.STRING_N.equalsIgnoreCase(emp.getHasPassort().trim())) {
if(null != emp.getPassportExpiryDate() || null != emp.getHasB1().trim() || null != emp.getB1ExpiryDate()) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
return;
}
}
if ((MyTimeUtils.YES.equals(emp.getHasB1()) || MyTimeUtils.STRING_Y.equals(emp.getHasB1()))&& !DataValidations.isFutureDate(emp.getB1ExpiryDate())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
return;
}
if (!emp.getEmpStatus().trim().isEmpty()) {
if( null != emp.getEndDate() && (
emp.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.IN_ACTIVE) ||
emp.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.IN_ACTIVE_SPACE) ||
emp.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.IN_HYPEN_ACTIVE_SPACE) )) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
return;
}
if (emp.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.ACTIVE) && null != emp.getEndDate()) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
return;
}
}
return mandatoryFlag;
}
private String duplicateEmpIAndEmptyEmpIdsCheckInImportedExcel(List<EmployeeRoles> employees) {
......
......@@ -50,17 +50,15 @@ public class DataValidations {
return flag;
}
public static boolean validateEmail(String email) {
public static boolean isValidEmail(String email) {
boolean flag = false;
email = email.trim();
if( !MyTimeUtils.EMPTY_STRING.equals(email)) {
if(email.trim().endsWith("@nisum.com")) {
String regx = "^[\\p{L}]+$";
email = email.substring(0, email.indexOf("@")-1);
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
flag = matcher.find();
}
if( !MyTimeUtils.EMPTY_STRING.equals(email) && email.endsWith("@nisum.com")) {
String regx = "^[\\p{L}]+$";
email = email.replace("@nisum.com", "");
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
flag = matcher.find();
}
return flag;
}
......@@ -122,7 +120,7 @@ public class DataValidations {
public static boolean isFutureDate(Date date) {
boolean flag = false;
if(null != date) {
flag = new Date().after(date) ;
flag = date.after(new Date()) ;
}
return flag;
}
......
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