Commit cf5e57af authored by b v s satyanarayana's avatar b v s satyanarayana

MT-53_3 :SNS :: ImportEmployeeDataValidations

parent 44a90ed6
...@@ -283,10 +283,10 @@ public class UserController { ...@@ -283,10 +283,10 @@ public class UserController {
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @RequestMapping(value = "/fileUpload", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Map<String, Object>> exportDataFromFile(@RequestParam(value = "file") MultipartFile file, @RequestParam(value="empId") String loginEmpId) public ResponseEntity<String> exportDataFromFile(@RequestParam(value = "file") MultipartFile file, @RequestParam(value="empId") String loginEmpId)
throws MyTimeException { throws MyTimeException {
log.info("Uploaded file: {} with size: {}", file.getOriginalFilename(), file.getSize()); log.info("Uploaded file: {} with size: {}", file.getOriginalFilename(), file.getSize());
Map<String, Object> result = userService.exportDataFromExcelFile(file,loginEmpId); String result = userService.exportDataFromExcelFile(file,loginEmpId);
return new ResponseEntity<>(result, HttpStatus.OK); return new ResponseEntity<>(result, HttpStatus.OK);
} }
......
...@@ -86,5 +86,5 @@ public interface UserService { ...@@ -86,5 +86,5 @@ public interface UserService {
public boolean verifyRole(String empId, String roleName); public boolean verifyRole(String empId, String roleName);
Map<String,Object> exportDataFromExcelFile(MultipartFile file, String empId) throws MyTimeException; String exportDataFromExcelFile(MultipartFile file, String empId) throws MyTimeException;
} }
package com.nisum.mytime.service; package com.nisum.mytime.service;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collector;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -554,154 +553,243 @@ public class UserServiceImpl implements UserService { ...@@ -554,154 +553,243 @@ public class UserServiceImpl implements UserService {
} }
@Override @Override
public Map<String,Object> exportDataFromExcelFile(MultipartFile file, String empId) public String exportDataFromExcelFile(MultipartFile file, String logInEmpId) throws MyTimeException {
throws MyTimeException { String result = "";
Map<String,Object> resultMap = new HashMap<String, Object>();
try { try {
PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings() PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings().preferNullOverDefault(true).datePattern("dd-MMM-yyyy").build();
.preferNullOverDefault(true).datePattern("dd-MMM-yyyy") List<EmployeeRoles> employees = Poiji.fromExcel(file.getInputStream(), PoijiExcelType.XLS, EmployeeRoles.class, options);
.build(); if (!employees.isEmpty()) {
result = allColumnsExistCheckInExcel(employees.get(MyTimeUtils.INT_ZERO));
List<EmployeeRoles> employees = Poiji.fromExcel( if(!result.isEmpty()) {
file.getInputStream(), PoijiExcelType.XLS, log.info("Imported Excel file {} missing column {}", file.getOriginalFilename(), result);
EmployeeRoles.class, options); return result;
}
Map<String,Object> validationResult = validateExcelRecords(employees); result = duplicateEmpIAndEmptyEmpIdsCheckInImportedExcel(employees);
result += validateExcelRecords(employees);
if (!employees.isEmpty()) { log.info("Partial Import :: Imported {} employee records from file: {}", employees.size(), file.getOriginalFilename());
for (EmployeeRoles employee : employees) { for (EmployeeRoles employee : employees) {
findAndModifyEmployeeRole(employee,empId); addEmployee(employee,logInEmpId);
} }
} else {
result = "Uploaded file: {"+ file.getOriginalFilename() +"}, is Empty";
log.info( "Uploaded file: {}, is Empty", file.getOriginalFilename());
} }
if (null != validationResult && ! (validationResult.entrySet().size() > MyTimeUtils.INT_ZERO) ) { if (result.isEmpty()) {
resultMap.put("Success", "Success"); result = "Successfully Employees added";
log.info("Exported {} employee records from file: {}", employees.size(), file.getOriginalFilename()); log.info("Full Import :: Imported {} employee records from file: {}", employees.size(), file.getOriginalFilename());
} else {
resultMap.put("Validation Error", validationResult);
log.info( "Uploaded file: {}, does not contain valid employee records", file.getOriginalFilename());
} }
} catch (Exception e) { } catch (Exception e) {
log.error("Exception occured while exporting the data from excel file due to: {}",e); log.error("Exception occured while exporting the data from excel file due to: {}",e);
throw new MyTimeException(""); throw new MyTimeException("Exception occured while exporting the data from excel file due to :"+e.getMessage());
} }
return resultMap; return result;
} }
private void findAndModifyEmployeeRole(EmployeeRoles employee,String empId) { private void addEmployee(EmployeeRoles employee,String empId) {
try { try {
if(null == employee.getRole() || employee.getRole().isEmpty()) { if(employee.getRole().trim().isEmpty()) {
employee.setRole(MyTimeUtils.EMPLOYEE); employee.setRole(MyTimeUtils.EMPLOYEE);
} }
if (employee.getEmploymentType() == null || employee.getEmploymentType().isEmpty()) { if (employee.getEmploymentType().trim().isEmpty()) {
employee.setEmploymentType(MyTimeUtils.FULL_TIME); employee.setEmploymentType(MyTimeUtils.FULL_TIME);
} }
if (employee.getEmpStatus() != null if (employee.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.ACTIVE) || employee.getEmpStatus().trim().isEmpty()) {
&& (employee.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.IN_ACTIVE)
|| employee.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.IN_ACTIVE_SPACE) || employee.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.IN_HYPEN_ACTIVE_SPACE) )) {
employee.setEmpStatus(MyTimeUtils.IN_ACTIVE_SPACE);
} else {
employee.setEmpStatus(MyTimeUtils.ACTIVE); employee.setEmpStatus(MyTimeUtils.ACTIVE);
} else {
employee.setEmpStatus(MyTimeUtils.IN_ACTIVE_SPACE);
} }
if ( null != employee.getGender() && !employee.getGender().isEmpty()) { if (!employee.getGender().trim().isEmpty()) {
if(employee.getGender().equalsIgnoreCase(MyTimeUtils.MALE)) { if(employee.getGender().equalsIgnoreCase(MyTimeUtils.MALE)) {
employee.setGender(MyTimeUtils.MALE); employee.setGender(MyTimeUtils.MALE);
}else if(employee.getGender().equalsIgnoreCase(MyTimeUtils.FEMALE)){ }else if(employee.getGender().equalsIgnoreCase(MyTimeUtils.FEMALE)){
employee.setGender(MyTimeUtils.FEMALE); employee.setGender(MyTimeUtils.FEMALE);
} }
} }
assigingEmployeeRole(employee,empId); assigingEmployeeRole(employee,empId);
} catch (MyTimeException e) { } catch (MyTimeException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
private Map<String,Object> validateExcelRecords(List<EmployeeRoles> employees) { private String validateExcelRecords(List<EmployeeRoles> employees) {
boolean flag = false; List<String> inValidEmpRecList = new ArrayList<String>();
List<String> invalidEmpRecsList = new ArrayList<String>(); String result = "";
Map<String,Object> finalMap = new HashMap<String, Object>(); boolean mandatoryFlag = true;
int rowNumber = 1;
List<EmployeeRoles> invalidEmpRecs = new ArrayList<EmployeeRoles>();
if(null != employees && employees.size() > MyTimeUtils.INT_ZERO) { Set<String> empIdsSet = employees.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet());
int rowNumber = MyTimeUtils.INT_TWO;
List<EmployeeRoles> invalidEmpRecs = new ArrayList<EmployeeRoles>(); List<EmployeeRoles> existingEmployess = employeeRolesRepo.findByEmployeeIdIn(empIdsSet);
if(existingEmployess.size() > MyTimeUtils.INT_ZERO) {
Set<String> empIdsSet = employees.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet()); result = "Below employee records already existed : \n" + existingEmployess.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet()).toString();
empIdsSet.remove(MyTimeUtils.EMPTY_STRING); employees.removeAll(existingEmployess);
}
List<EmployeeRoles> existingEmployess = employeeRolesRepo.findByEmployeeIdIn(empIdsSet); for(EmployeeRoles emp : employees) {
if(existingEmployess.size() > MyTimeUtils.INT_ZERO) { rowNumber += 1;
finalMap.put("Below emp records ids existed ", existingEmployess.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet())); mandatoryFlag = importExcelMandatoryColumnsValidation(emp);
employees.removeAll(existingEmployess); if(mandatoryFlag) {
} if (!DataValidations.isAgeGreaterThanTwenty(emp.getDateOfBirth(), emp.getDateOfJoining())) {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
for(EmployeeRoles empRole : employees) { continue;
if(! DataValidations.validateNumber(empRole.getEmployeeId())) { }
flag = false; if( MyTimeUtils.YES.equalsIgnoreCase(emp.getHasPassort()) || MyTimeUtils.STRING_Y.equalsIgnoreCase(emp.getHasPassort())){
}else if(! DataValidations.validateName(empRole.getEmployeeName())) { mandatoryFlag = DataValidations.isFutureDate(emp.getPassportExpiryDate());
flag = false; if (!mandatoryFlag) {
}else if(! DataValidations.isValidGender(empRole.getGender())) { addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
flag = false; continue;
}else if(! DataValidations.isValidDate(empRole.getDateOfJoining())) { }
flag = false; } else {
}else if(! DataValidations.isValidFunctionalGroup(empRole.getFunctionalGroup(),masterDataRepo)) { mandatoryFlag = false;
flag = false; }
}else if(! DataValidations.isValidDesignation(empRole.getDesignation(),masterDataRepo)) { if(mandatoryFlag && (MyTimeUtils.YES.equals(emp.getHasB1()) || MyTimeUtils.STRING_Y.equals(emp.getHasB1()))
flag = false; && !DataValidations.isFutureDate(emp.getB1ExpiryDate())) {
}else if(! DataValidations.isValidWorkLocation(empRole.getEmpLocation(), locationRepo)) { addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
flag = false; continue;
}else if(! DataValidations.isValidEmploymentType(empRole.getEmploymentType(),masterDataRepo)) {
flag = false;
}else if(! DataValidations.isValidRole(empRole.getRole(),masterDataRepo)) {
flag = false;
}else if(! DataValidations.isYesOrNo(empRole.getHasPassort())) {
flag = false;
}else if(! DataValidations.isYesOrNo(empRole.getHasB1())) {
flag = false;
}else {
flag = true;
} }
if(!MyTimeUtils.EMPTY_STRING.equals(emp.getEmpStatus().trim()) ) {
if( flag) { String empStatus = emp.getEmpStatus().trim();
if(DataValidations.isAgeGreaterThanTwenty(empRole.getDateOfBirth(), empRole.getDateOfJoining())){ if((empStatus.equalsIgnoreCase(MyTimeUtils.IN_ACTIVE) || MyTimeUtils.IN_ACTIVE_SPACE.equalsIgnoreCase(empStatus)
if(MyTimeUtils.YES.equals(empRole.getHasPassort())){ || MyTimeUtils.IN_HYPEN_ACTIVE_SPACE.equalsIgnoreCase(empStatus)) && !DataValidations.isValidDate(emp.getEndDate())) {
flag = DataValidations.isFutureDate(empRole.getPassportExpiryDate()); addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
}
if(MyTimeUtils.YES.equals(empRole.getHasB1())) { }
flag = DataValidations.isFutureDate(empRole.getB1ExpiryDate()); } else {
} addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
} }
}
if(null != empRole.getEmpStatus() && ! MyTimeUtils.EMPTY_STRING.equals(empRole.getEmpStatus().trim()) ) { if(invalidEmpRecs.size() > MyTimeUtils.INT_ZERO) {
String empStatus = empRole.getEmpStatus().trim(); employees.removeAll(invalidEmpRecs);
if(empStatus.equalsIgnoreCase(MyTimeUtils.IN_ACTIVE) || MyTimeUtils.IN_ACTIVE_SPACE.equalsIgnoreCase(empStatus) || MyTimeUtils.IN_HYPEN_ACTIVE_SPACE.equalsIgnoreCase(empStatus)) { result +="Please check the following row number records : \n"+ inValidEmpRecList.toString();
flag = DataValidations.isValidDate(empRole.getEndDate()); }
} return result;
} }
private void addInValidRecord(List<String> inValidEmpRecList, List<EmployeeRoles> invalidEmpRecs, EmployeeRoles emp, int rowNumber) {
inValidEmpRecList.add(Integer.toString(rowNumber));
invalidEmpRecs.add(emp);
}
private String allColumnsExistCheckInExcel(EmployeeRoles emp) {
String resultString = "In excel sheet following coloumns are missing::";
StringBuffer result = new StringBuffer(resultString);
Method[] empMethodList = emp.getClass().getMethods();
for (Method empMethod : empMethodList) {
String mName = empMethod.getName();
if(mName.startsWith("get") && isMethodInvocationRequired(mName)) {
try {
Object returnData = empMethod.invoke(emp);
if (returnData == null) {
mName = mName.substring(3, mName.length());
result.append(mName).append(MyTimeUtils.CAMA);
} }
if(!flag) { } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
invalidEmpRecsList.add(Integer.toString(rowNumber)); e.printStackTrace();
invalidEmpRecs.add(empRole); }
}
}else {
invalidEmpRecsList.add(Integer.toString(rowNumber));
invalidEmpRecs.add(empRole);
}
rowNumber += 1;
} }
}
resultString = result.substring(resultString.length()-1, result.length()-1);
if(invalidEmpRecs.size() > MyTimeUtils.INT_ZERO) { if (resultString.length() > 0) {
employees.removeAll(invalidEmpRecs); resultString = result.substring(0, result.length()-1);
}
return resultString;
}
private boolean isMethodInvocationRequired(String mName) {
boolean isRequired = true;
if (mName.contains("getCreatedBy")) {
isRequired = false;
}
if(mName.contains("getModifiedBy")) {
isRequired = false;
}
if (mName.contains("getCreatedOn")) {
isRequired = false;
}
if(mName.contains("getLastModifiedOn")) {
isRequired = false;
}
if(mName.contains("getEndDate")) {
isRequired = false;
}
if (mName.contains("getId")) {
isRequired = false;
}
if (mName.contains("getClass")) {
isRequired = false;
}
if (mName.contains("getPassportExpiryDate")) {
isRequired = false;
}
if (mName.contains("getB1ExpiryDate")) {
isRequired = false;
}
if (mName.contains("getDateOfBirth")) {
isRequired = false;
}
return isRequired;
}
private boolean importExcelMandatoryColumnsValidation(EmployeeRoles emp) {
boolean mandatoryFlag = true;
if(! DataValidations.validateNumber(emp.getEmployeeId())) {
mandatoryFlag = false;
}else if(! DataValidations.validateName(emp.getEmployeeName())) {
mandatoryFlag = false;
}else if(! DataValidations.isValidGender(emp.getGender())) {
mandatoryFlag = false;
}else if(! DataValidations.isValidDate(emp.getDateOfJoining())) {
mandatoryFlag = false;
}else if(! DataValidations.isValidFunctionalGroup(emp.getFunctionalGroup(),masterDataRepo)) {
mandatoryFlag = false;
}else if(! DataValidations.isValidDesignation(emp.getDesignation(),masterDataRepo)) {
mandatoryFlag = false;
}else if(! DataValidations.isValidWorkLocation(emp.getEmpLocation(), locationRepo)) {
mandatoryFlag = false;
}else if(! DataValidations.isValidEmploymentType(emp.getEmploymentType(),masterDataRepo)) {
mandatoryFlag = false;
}else if(! DataValidations.isValidRole(emp.getRole(),masterDataRepo)) {
mandatoryFlag = false;
}else if(! DataValidations.isYesOrNo(emp.getHasPassort())) {
mandatoryFlag = false;
}else if(! DataValidations.isYesOrNo(emp.getHasB1())) {
mandatoryFlag = false;
}
return mandatoryFlag;
}
private String duplicateEmpIAndEmptyEmpIdsCheckInImportedExcel(List<EmployeeRoles> employees) {
int rowNum = MyTimeUtils.INT_TWO;
StringBuffer emptyEmpIds = new StringBuffer();
StringBuffer duplicteEmpIds = new StringBuffer();
List<String> empIdsList = new ArrayList<String>();
String result = "";
for (EmployeeRoles emp : employees) {
String empId = emp.getEmployeeId().trim();
if(empId.isEmpty()) {
employees.remove(emp);
emptyEmpIds.append(rowNum).append(MyTimeUtils.CAMA);
}else if( empIdsList.contains(empId)) {
employees.remove(emp);
duplicteEmpIds.append(empId).append(MyTimeUtils.CAMA);
}else {
empIdsList.add(empId);// For, Duplicate check.
} }
++rowNum;
}
if (emptyEmpIds.length() > 0 ) {
result = "Below employee records have empty employee id :" + emptyEmpIds.toString();
} }
if(invalidEmpRecsList.size() > MyTimeUtils.INT_ZERO) { if (duplicteEmpIds.length() > 0) {
finalMap.put("Please check the following row number records", invalidEmpRecsList); result += ":: \n Below employee records have duplicate employee Ids " + duplicteEmpIds.toString();
} }
return finalMap; return result;
} }
} }
...@@ -16,8 +16,9 @@ import com.nisum.mytime.repository.MasterDataRepo; ...@@ -16,8 +16,9 @@ import com.nisum.mytime.repository.MasterDataRepo;
public class DataValidations { public class DataValidations {
public static boolean validateNumber(String number) { public static boolean validateNumber(String number) {
boolean flag = false; boolean flag = false;
if(null != number && !MyTimeUtils.EMPTY_STRING.equals(number.trim())) { number = number.trim();
flag = number.matches("^\\d+$") && isNumberInRange(number.trim()); if(!MyTimeUtils.EMPTY_STRING.equals(number)) {
flag = number.matches("^\\d+$") && isNumberInRange(number);
} }
return flag; return flag;
} }
...@@ -29,10 +30,11 @@ public class DataValidations { ...@@ -29,10 +30,11 @@ public class DataValidations {
public static boolean validateName(String name) { public static boolean validateName(String name) {
boolean flag = false; boolean flag = false;
if(null != name && !MyTimeUtils.EMPTY_STRING.equals(name.trim())) { name = name.trim();
String regx = "^[\\p{L} .'-]+$"; if(!MyTimeUtils.EMPTY_STRING.equals(name)) {
String regx = "^[\\p{L}]+$";
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE); Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(name.trim()); Matcher matcher = pattern.matcher(name);
flag = matcher.find(); flag = matcher.find();
} }
return flag; return flag;
...@@ -41,20 +43,22 @@ public class DataValidations { ...@@ -41,20 +43,22 @@ public class DataValidations {
public static boolean isValidGender(String gender) { public static boolean isValidGender(String gender) {
boolean flag = false; boolean flag = false;
if( null != gender && !MyTimeUtils.EMPTY_STRING.equals(gender.trim())) { gender = gender.trim();
flag = gender.trim().equalsIgnoreCase(MyTimeUtils.MALE) || gender.equalsIgnoreCase(MyTimeUtils.FEMALE); if( !MyTimeUtils.EMPTY_STRING.equals(gender)) {
flag = gender.equalsIgnoreCase(MyTimeUtils.MALE) || gender.equalsIgnoreCase(MyTimeUtils.FEMALE) || gender.equalsIgnoreCase(MyTimeUtils.M) || gender.equalsIgnoreCase(MyTimeUtils.F);
} }
return flag; return flag;
} }
public static boolean validateEmail(String email) { public static boolean validateEmail(String email) {
boolean flag = false; boolean flag = false;
if(null != email && !MyTimeUtils.EMPTY_STRING.equals(email)) { email = email.trim();
if( !MyTimeUtils.EMPTY_STRING.equals(email)) {
if(email.trim().endsWith("@nisum.com")) { if(email.trim().endsWith("@nisum.com")) {
String regx = "^[\\p{L} .'-]+$"; String regx = "^[\\p{L}]+$";
email = email.substring(0, email.indexOf("@")-1); email = email.substring(0, email.indexOf("@")-1);
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE); Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email.trim()); Matcher matcher = pattern.matcher(email);
flag = matcher.find(); flag = matcher.find();
} }
} }
...@@ -63,8 +67,8 @@ public class DataValidations { ...@@ -63,8 +67,8 @@ public class DataValidations {
public static boolean isYesOrNo(String value) { public static boolean isYesOrNo(String value) {
boolean flag = false; boolean flag = false;
if(null != value && !MyTimeUtils.EMPTY_STRING.equals(value.trim())) { value = value.trim();
value = value.trim(); if(!MyTimeUtils.EMPTY_STRING.equals(value)) {
flag = value.equalsIgnoreCase(MyTimeUtils.YES) || value.equalsIgnoreCase(MyTimeUtils.STRING_Y) || value.equalsIgnoreCase(MyTimeUtils.NO) || value.equalsIgnoreCase(MyTimeUtils.STRING_N); flag = value.equalsIgnoreCase(MyTimeUtils.YES) || value.equalsIgnoreCase(MyTimeUtils.STRING_Y) || value.equalsIgnoreCase(MyTimeUtils.NO) || value.equalsIgnoreCase(MyTimeUtils.STRING_N);
} }
return flag; return flag;
...@@ -72,8 +76,9 @@ public class DataValidations { ...@@ -72,8 +76,9 @@ public class DataValidations {
public static boolean isValidFunctionalGroup(String functionalGroup,MasterDataRepo masterDataRepo) { public static boolean isValidFunctionalGroup(String functionalGroup,MasterDataRepo masterDataRepo) {
boolean flag = false; boolean flag = false;
if(null != functionalGroup && !MyTimeUtils.EMPTY_STRING.equals(functionalGroup.trim())) { functionalGroup = functionalGroup.trim();
List<MasterData> fsData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_FG, functionalGroup.trim(), true); if(!MyTimeUtils.EMPTY_STRING.equals(functionalGroup)) {
List<MasterData> fsData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_FG, functionalGroup, true);
flag = fsData.size() > MyTimeUtils.INT_ZERO; flag = fsData.size() > MyTimeUtils.INT_ZERO;
} }
return flag; return flag;
...@@ -81,8 +86,9 @@ public class DataValidations { ...@@ -81,8 +86,9 @@ public class DataValidations {
public static boolean isValidDesignation(String designation, MasterDataRepo masterDataRepo) { public static boolean isValidDesignation(String designation, MasterDataRepo masterDataRepo) {
boolean flag = false; boolean flag = false;
if(null != designation && !MyTimeUtils.EMPTY_STRING.equals(designation.trim())) { designation = designation.trim();
List<MasterData> designationData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_DESIGNATION, designation.trim(), true); if( !MyTimeUtils.EMPTY_STRING.equals(designation)) {
List<MasterData> designationData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_DESIGNATION, designation, true);
flag = designationData.size() > MyTimeUtils.INT_ZERO; flag = designationData.size() > MyTimeUtils.INT_ZERO;
} }
return flag; return flag;
...@@ -91,10 +97,11 @@ public class DataValidations { ...@@ -91,10 +97,11 @@ public class DataValidations {
public static boolean isValidEmploymentType(String employmentType, MasterDataRepo masterDataRepo) { public static boolean isValidEmploymentType(String employmentType, MasterDataRepo masterDataRepo) {
boolean flag = false; boolean flag = false;
if(null != employmentType && MyTimeUtils.EMPTY_STRING.equals(employmentType)){ employmentType = employmentType.trim();
if(MyTimeUtils.EMPTY_STRING.equals(employmentType)){
flag = true; flag = true;
}else if(null != employmentType && !MyTimeUtils.EMPTY_STRING.equals(employmentType.trim())) { }else if( !MyTimeUtils.EMPTY_STRING.equals(employmentType)) {
List<MasterData> empTypeData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATAD_EMLOYMENT_TYPE, employmentType.trim(), true); List<MasterData> empTypeData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATAD_EMLOYMENT_TYPE, employmentType, true);
flag = empTypeData.size() > MyTimeUtils.INT_ZERO ; flag = empTypeData.size() > MyTimeUtils.INT_ZERO ;
} }
return flag; return flag;
...@@ -102,10 +109,11 @@ public class DataValidations { ...@@ -102,10 +109,11 @@ public class DataValidations {
public static boolean isValidRole(String role,MasterDataRepo masterDataRepo) { public static boolean isValidRole(String role,MasterDataRepo masterDataRepo) {
boolean flag = false; boolean flag = false;
if(null != role && MyTimeUtils.EMPTY_STRING.equals(role)){ role = role.trim();
if( MyTimeUtils.EMPTY_STRING.equals(role)){
flag = true; flag = true;
}else if(null != role && !MyTimeUtils.EMPTY_STRING.equals(role.trim().trim())) { }else if(!MyTimeUtils.EMPTY_STRING.equals(role)) {
List<MasterData> roleData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_ROLES, role.trim(), true); List<MasterData> roleData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_ROLES, role, true);
flag = roleData.size() > MyTimeUtils.INT_ZERO; flag = roleData.size() > MyTimeUtils.INT_ZERO;
} }
return flag; return flag;
...@@ -125,12 +133,14 @@ public class DataValidations { ...@@ -125,12 +133,14 @@ public class DataValidations {
public static boolean isAgeGreaterThanTwenty(Date dob, Date doj) { public static boolean isAgeGreaterThanTwenty(Date dob, Date doj) {
boolean flag = false; boolean flag = false;
if( null != dob && null != doj) { if (dob == null) {
Calendar dojCal = Calendar.getInstance(); flag = true;
dojCal.setTime(doj); } else if(null != doj) {
Calendar dobCal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
dobCal.setTime(dob); cal.setTime(doj);
flag = dojCal.get(Calendar.YEAR) - dobCal.get(Calendar.YEAR) > MyTimeUtils.INT_TWENTY; int dojYear = cal.get(Calendar.YEAR);
cal.setTime(dob);
flag = dojYear - cal.get(Calendar.YEAR) > MyTimeUtils.INT_TWENTY;
} }
return flag; return flag;
} }
...@@ -138,16 +148,18 @@ public class DataValidations { ...@@ -138,16 +148,18 @@ public class DataValidations {
public static boolean isValidWorkLocation(String workLocation, LocationRepo locationRepo) { public static boolean isValidWorkLocation(String workLocation, LocationRepo locationRepo) {
boolean flag = false; boolean flag = false;
if(null != workLocation && !MyTimeUtils.EMPTY_STRING.equals(workLocation.trim())) { workLocation = workLocation.trim();
flag= locationRepo.findByLocationAndActiveStatus(workLocation.trim(), true). size() > MyTimeUtils.INT_ZERO ; if(!MyTimeUtils.EMPTY_STRING.equals(workLocation)) {
flag= locationRepo.findByLocationAndActiveStatus(workLocation, true). size() > MyTimeUtils.INT_ZERO ;
} }
return flag; return flag;
} }
public static boolean isActive(String active) { public static boolean isActive(String active) {
boolean flag = false; boolean flag = false;
if(null != active && MyTimeUtils.EMPTY_STRING.equals(active.trim())) { active = active.trim();
flag = MyTimeUtils.ACTIVE.equalsIgnoreCase(active.trim()); if(null != active && MyTimeUtils.EMPTY_STRING.equals(active)) {
flag = MyTimeUtils.ACTIVE.equalsIgnoreCase(active);
} }
return flag; return flag;
} }
......
...@@ -131,6 +131,8 @@ public class MyTimeUtils { ...@@ -131,6 +131,8 @@ public class MyTimeUtils {
public final static String MALE = "Male"; public final static String MALE = "Male";
public final static String FEMALE ="Female"; public final static String FEMALE ="Female";
public final static String M ="M";
public final static String F="F";
public final static String YES = "Yes"; public final static String YES = "Yes";
public final static String NO = "No"; public final static String NO = "No";
...@@ -144,4 +146,6 @@ public class MyTimeUtils { ...@@ -144,4 +146,6 @@ public class MyTimeUtils {
public final static String MASTERDATA_ROLES = "roles"; public final static String MASTERDATA_ROLES = "roles";
public final static String FULL_TIME ="Full Time"; public final static String FULL_TIME ="Full Time";
public final static String CAMA = ",";
} }
...@@ -24,7 +24,6 @@ myApp ...@@ -24,7 +24,6 @@ myApp
$scope.file = ''; $scope.file = '';
$('#upload-file-info').html(""); $('#upload-file-info').html("");
} }
$scope.uploadFiles = function() { $scope.uploadFiles = function() {
var file = $scope.file; var file = $scope.file;
var empId = myFactory.getEmpId(); var empId = myFactory.getEmpId();
...@@ -38,37 +37,16 @@ myApp ...@@ -38,37 +37,16 @@ myApp
showProgressDialog('Please wait while data is imported from file...!!!'); showProgressDialog('Please wait while data is imported from file...!!!');
var formData = new FormData(); var formData = new FormData();
formData.append('file', file); formData.append('file', file);
$http.post(appConfig.appUri+ "user/fileUpload?empId="+empId,
$http formData,{
.post( transformRequest : angular.identity,
appConfig.appUri headers : {'Content-Type' : undefined },
+ "user/fileUpload?empId="+empId, transformResponse : [ function(data) {
formData, return data;
{ } ]})
transformRequest : angular.identity, .then(function mySuccess(response) {
headers : {
'Content-Type' : undefined
},
transformResponse : [ function(
data) {
return data;
} ]
})
.then(
function mySuccess(response) {
$mdDialog.hide(); $mdDialog.hide();
console.log(response.data); showAlert(response.data);
var parsedResponse = JSON.parse(response.data);
var resp = Object.keys(parsedResponse)
if(Object.keys(parsedResponse)[0] == "Validation Error"){
var empIdError = parsedResponse[resp[0]]["Below emp records are not valid"];
var excelRowError = parsedResponse[resp[0]]["Below emp records already avilable in db"];
showAlert(Object.keys(parsedResponse[resp[0]])[0] + " " + empIdError.join() + "\n" + Object.keys(parsedResponse[resp[0]])[1] + " " + excelRowError.join());
}
else{
showAlert('Successfully Uploaded');
}
$scope.refreshPage(); $scope.refreshPage();
}, function myError(response) { }, function myError(response) {
$mdDialog.hide(); $mdDialog.hide();
...@@ -77,9 +55,7 @@ myApp ...@@ -77,9 +55,7 @@ myApp
$scope.refreshPage(); $scope.refreshPage();
}); });
} }
} }
function showAlert(message) { function showAlert(message) {
$mdDialog.show($mdDialog.alert().parent( $mdDialog.show($mdDialog.alert().parent(
angular.element(document angular.element(document
......
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