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 {
@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 {
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);
}
......
......@@ -86,5 +86,5 @@ public interface UserService {
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;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -554,154 +553,243 @@ public class UserServiceImpl implements UserService {
}
@Override
public Map<String,Object> exportDataFromExcelFile(MultipartFile file, String empId)
throws MyTimeException {
Map<String,Object> resultMap = new HashMap<String, Object>();
public String exportDataFromExcelFile(MultipartFile file, String logInEmpId) throws MyTimeException {
String result = "";
try {
PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings()
.preferNullOverDefault(true).datePattern("dd-MMM-yyyy")
.build();
List<EmployeeRoles> employees = Poiji.fromExcel(
file.getInputStream(), PoijiExcelType.XLS,
EmployeeRoles.class, options);
Map<String,Object> validationResult = validateExcelRecords(employees);
if (!employees.isEmpty()) {
PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings().preferNullOverDefault(true).datePattern("dd-MMM-yyyy").build();
List<EmployeeRoles> employees = Poiji.fromExcel(file.getInputStream(), PoijiExcelType.XLS, EmployeeRoles.class, options);
if (!employees.isEmpty()) {
result = allColumnsExistCheckInExcel(employees.get(MyTimeUtils.INT_ZERO));
if(!result.isEmpty()) {
log.info("Imported Excel file {} missing column {}", file.getOriginalFilename(), result);
return result;
}
result = duplicateEmpIAndEmptyEmpIdsCheckInImportedExcel(employees);
result += validateExcelRecords(employees);
log.info("Partial Import :: Imported {} employee records from file: {}", employees.size(), file.getOriginalFilename());
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) ) {
resultMap.put("Success", "Success");
log.info("Exported {} 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());
if (result.isEmpty()) {
result = "Successfully Employees added";
log.info("Full Import :: Imported {} employee records from file: {}", employees.size(), file.getOriginalFilename());
}
} catch (Exception 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 {
if(null == employee.getRole() || employee.getRole().isEmpty()) {
if(employee.getRole().trim().isEmpty()) {
employee.setRole(MyTimeUtils.EMPLOYEE);
}
if (employee.getEmploymentType() == null || employee.getEmploymentType().isEmpty()) {
if (employee.getEmploymentType().trim().isEmpty()) {
employee.setEmploymentType(MyTimeUtils.FULL_TIME);
}
if (employee.getEmpStatus() != null
&& (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 {
if (employee.getEmpStatus().trim().equalsIgnoreCase(MyTimeUtils.ACTIVE) || employee.getEmpStatus().trim().isEmpty()) {
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)) {
employee.setGender(MyTimeUtils.MALE);
}else if(employee.getGender().equalsIgnoreCase(MyTimeUtils.FEMALE)){
employee.setGender(MyTimeUtils.FEMALE);
}
}
assigingEmployeeRole(employee,empId);
} catch (MyTimeException e) {
e.printStackTrace();
}
}
private Map<String,Object> validateExcelRecords(List<EmployeeRoles> employees) {
boolean flag = false;
List<String> invalidEmpRecsList = new ArrayList<String>();
Map<String,Object> finalMap = new HashMap<String, Object>();
private String validateExcelRecords(List<EmployeeRoles> employees) {
List<String> inValidEmpRecList = new ArrayList<String>();
String result = "";
boolean mandatoryFlag = true;
int rowNumber = 1;
List<EmployeeRoles> invalidEmpRecs = new ArrayList<EmployeeRoles>();
if(null != employees && employees.size() > MyTimeUtils.INT_ZERO) {
int rowNumber = MyTimeUtils.INT_TWO;
Set<String> empIdsSet = employees.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet());
List<EmployeeRoles> invalidEmpRecs = new ArrayList<EmployeeRoles>();
Set<String> empIdsSet = employees.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet());
empIdsSet.remove(MyTimeUtils.EMPTY_STRING);
List<EmployeeRoles> existingEmployess = employeeRolesRepo.findByEmployeeIdIn(empIdsSet);
if(existingEmployess.size() > MyTimeUtils.INT_ZERO) {
finalMap.put("Below emp records ids existed ", existingEmployess.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet()));
employees.removeAll(existingEmployess);
}
for(EmployeeRoles empRole : employees) {
if(! DataValidations.validateNumber(empRole.getEmployeeId())) {
flag = false;
}else if(! DataValidations.validateName(empRole.getEmployeeName())) {
flag = false;
}else if(! DataValidations.isValidGender(empRole.getGender())) {
flag = false;
}else if(! DataValidations.isValidDate(empRole.getDateOfJoining())) {
flag = false;
}else if(! DataValidations.isValidFunctionalGroup(empRole.getFunctionalGroup(),masterDataRepo)) {
flag = false;
}else if(! DataValidations.isValidDesignation(empRole.getDesignation(),masterDataRepo)) {
flag = false;
}else if(! DataValidations.isValidWorkLocation(empRole.getEmpLocation(), locationRepo)) {
flag = false;
}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;
List<EmployeeRoles> existingEmployess = employeeRolesRepo.findByEmployeeIdIn(empIdsSet);
if(existingEmployess.size() > MyTimeUtils.INT_ZERO) {
result = "Below employee records already existed : \n" + existingEmployess.stream().map(EmployeeRoles :: getEmployeeId).collect(Collectors.toSet()).toString();
employees.removeAll(existingEmployess);
}
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( flag) {
if(DataValidations.isAgeGreaterThanTwenty(empRole.getDateOfBirth(), empRole.getDateOfJoining())){
if(MyTimeUtils.YES.equals(empRole.getHasPassort())){
flag = DataValidations.isFutureDate(empRole.getPassportExpiryDate());
if(MyTimeUtils.YES.equals(empRole.getHasB1())) {
flag = DataValidations.isFutureDate(empRole.getB1ExpiryDate());
}
}
if(null != empRole.getEmpStatus() && ! MyTimeUtils.EMPTY_STRING.equals(empRole.getEmpStatus().trim()) ) {
String empStatus = empRole.getEmpStatus().trim();
if(empStatus.equalsIgnoreCase(MyTimeUtils.IN_ACTIVE) || MyTimeUtils.IN_ACTIVE_SPACE.equalsIgnoreCase(empStatus) || MyTimeUtils.IN_HYPEN_ACTIVE_SPACE.equalsIgnoreCase(empStatus)) {
flag = DataValidations.isValidDate(empRole.getEndDate());
}
}
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);
}
}
} else {
addInValidRecord(inValidEmpRecList, invalidEmpRecs, emp, rowNumber);
}
}
if(invalidEmpRecs.size() > MyTimeUtils.INT_ZERO) {
employees.removeAll(invalidEmpRecs);
result +="Please check the following row number records : \n"+ inValidEmpRecList.toString();
}
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) {
invalidEmpRecsList.add(Integer.toString(rowNumber));
invalidEmpRecs.add(empRole);
}
}else {
invalidEmpRecsList.add(Integer.toString(rowNumber));
invalidEmpRecs.add(empRole);
}
rowNumber += 1;
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
}
if(invalidEmpRecs.size() > MyTimeUtils.INT_ZERO) {
employees.removeAll(invalidEmpRecs);
}
resultString = result.substring(resultString.length()-1, result.length()-1);
if (resultString.length() > 0) {
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) {
finalMap.put("Please check the following row number records", invalidEmpRecsList);
if (duplicteEmpIds.length() > 0) {
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;
public class DataValidations {
public static boolean validateNumber(String number) {
boolean flag = false;
if(null != number && !MyTimeUtils.EMPTY_STRING.equals(number.trim())) {
flag = number.matches("^\\d+$") && isNumberInRange(number.trim());
number = number.trim();
if(!MyTimeUtils.EMPTY_STRING.equals(number)) {
flag = number.matches("^\\d+$") && isNumberInRange(number);
}
return flag;
}
......@@ -29,10 +30,11 @@ public class DataValidations {
public static boolean validateName(String name) {
boolean flag = false;
if(null != name && !MyTimeUtils.EMPTY_STRING.equals(name.trim())) {
String regx = "^[\\p{L} .'-]+$";
name = name.trim();
if(!MyTimeUtils.EMPTY_STRING.equals(name)) {
String regx = "^[\\p{L}]+$";
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(name.trim());
Matcher matcher = pattern.matcher(name);
flag = matcher.find();
}
return flag;
......@@ -41,20 +43,22 @@ public class DataValidations {
public static boolean isValidGender(String gender) {
boolean flag = false;
if( null != gender && !MyTimeUtils.EMPTY_STRING.equals(gender.trim())) {
flag = gender.trim().equalsIgnoreCase(MyTimeUtils.MALE) || gender.equalsIgnoreCase(MyTimeUtils.FEMALE);
gender = gender.trim();
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;
}
public static boolean validateEmail(String email) {
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")) {
String regx = "^[\\p{L} .'-]+$";
String regx = "^[\\p{L}]+$";
email = email.substring(0, email.indexOf("@")-1);
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email.trim());
Matcher matcher = pattern.matcher(email);
flag = matcher.find();
}
}
......@@ -63,8 +67,8 @@ public class DataValidations {
public static boolean isYesOrNo(String value) {
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);
}
return flag;
......@@ -72,8 +76,9 @@ public class DataValidations {
public static boolean isValidFunctionalGroup(String functionalGroup,MasterDataRepo masterDataRepo) {
boolean flag = false;
if(null != functionalGroup && !MyTimeUtils.EMPTY_STRING.equals(functionalGroup.trim())) {
List<MasterData> fsData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_FG, functionalGroup.trim(), true);
functionalGroup = functionalGroup.trim();
if(!MyTimeUtils.EMPTY_STRING.equals(functionalGroup)) {
List<MasterData> fsData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_FG, functionalGroup, true);
flag = fsData.size() > MyTimeUtils.INT_ZERO;
}
return flag;
......@@ -81,8 +86,9 @@ public class DataValidations {
public static boolean isValidDesignation(String designation, MasterDataRepo masterDataRepo) {
boolean flag = false;
if(null != designation && !MyTimeUtils.EMPTY_STRING.equals(designation.trim())) {
List<MasterData> designationData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_DESIGNATION, designation.trim(), true);
designation = designation.trim();
if( !MyTimeUtils.EMPTY_STRING.equals(designation)) {
List<MasterData> designationData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_DESIGNATION, designation, true);
flag = designationData.size() > MyTimeUtils.INT_ZERO;
}
return flag;
......@@ -91,10 +97,11 @@ public class DataValidations {
public static boolean isValidEmploymentType(String employmentType, MasterDataRepo masterDataRepo) {
boolean flag = false;
if(null != employmentType && MyTimeUtils.EMPTY_STRING.equals(employmentType)){
employmentType = employmentType.trim();
if(MyTimeUtils.EMPTY_STRING.equals(employmentType)){
flag = true;
}else if(null != employmentType && !MyTimeUtils.EMPTY_STRING.equals(employmentType.trim())) {
List<MasterData> empTypeData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATAD_EMLOYMENT_TYPE, employmentType.trim(), true);
}else if( !MyTimeUtils.EMPTY_STRING.equals(employmentType)) {
List<MasterData> empTypeData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATAD_EMLOYMENT_TYPE, employmentType, true);
flag = empTypeData.size() > MyTimeUtils.INT_ZERO ;
}
return flag;
......@@ -102,10 +109,11 @@ public class DataValidations {
public static boolean isValidRole(String role,MasterDataRepo masterDataRepo) {
boolean flag = false;
if(null != role && MyTimeUtils.EMPTY_STRING.equals(role)){
role = role.trim();
if( MyTimeUtils.EMPTY_STRING.equals(role)){
flag = true;
}else if(null != role && !MyTimeUtils.EMPTY_STRING.equals(role.trim().trim())) {
List<MasterData> roleData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_ROLES, role.trim(), true);
}else if(!MyTimeUtils.EMPTY_STRING.equals(role)) {
List<MasterData> roleData = masterDataRepo.findByMasterDataTypeAndMasterDataNameAndActiveStatus(MyTimeUtils.MASTERDATA_ROLES, role, true);
flag = roleData.size() > MyTimeUtils.INT_ZERO;
}
return flag;
......@@ -125,12 +133,14 @@ public class DataValidations {
public static boolean isAgeGreaterThanTwenty(Date dob, Date doj) {
boolean flag = false;
if( null != dob && null != doj) {
Calendar dojCal = Calendar.getInstance();
dojCal.setTime(doj);
Calendar dobCal = Calendar.getInstance();
dobCal.setTime(dob);
flag = dojCal.get(Calendar.YEAR) - dobCal.get(Calendar.YEAR) > MyTimeUtils.INT_TWENTY;
if (dob == null) {
flag = true;
} else if(null != doj) {
Calendar cal = Calendar.getInstance();
cal.setTime(doj);
int dojYear = cal.get(Calendar.YEAR);
cal.setTime(dob);
flag = dojYear - cal.get(Calendar.YEAR) > MyTimeUtils.INT_TWENTY;
}
return flag;
}
......@@ -138,16 +148,18 @@ public class DataValidations {
public static boolean isValidWorkLocation(String workLocation, LocationRepo locationRepo) {
boolean flag = false;
if(null != workLocation && !MyTimeUtils.EMPTY_STRING.equals(workLocation.trim())) {
flag= locationRepo.findByLocationAndActiveStatus(workLocation.trim(), true). size() > MyTimeUtils.INT_ZERO ;
workLocation = workLocation.trim();
if(!MyTimeUtils.EMPTY_STRING.equals(workLocation)) {
flag= locationRepo.findByLocationAndActiveStatus(workLocation, true). size() > MyTimeUtils.INT_ZERO ;
}
return flag;
}
public static boolean isActive(String active) {
boolean flag = false;
if(null != active && MyTimeUtils.EMPTY_STRING.equals(active.trim())) {
flag = MyTimeUtils.ACTIVE.equalsIgnoreCase(active.trim());
active = active.trim();
if(null != active && MyTimeUtils.EMPTY_STRING.equals(active)) {
flag = MyTimeUtils.ACTIVE.equalsIgnoreCase(active);
}
return flag;
}
......
......@@ -131,6 +131,8 @@ public class MyTimeUtils {
public final static String MALE = "Male";
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 NO = "No";
......@@ -144,4 +146,6 @@ public class MyTimeUtils {
public final static String MASTERDATA_ROLES = "roles";
public final static String FULL_TIME ="Full Time";
public final static String CAMA = ",";
}
......@@ -24,7 +24,6 @@ myApp
$scope.file = '';
$('#upload-file-info').html("");
}
$scope.uploadFiles = function() {
var file = $scope.file;
var empId = myFactory.getEmpId();
......@@ -38,37 +37,16 @@ myApp
showProgressDialog('Please wait while data is imported from file...!!!');
var formData = new FormData();
formData.append('file', file);
$http
.post(
appConfig.appUri
+ "user/fileUpload?empId="+empId,
formData,
{
transformRequest : angular.identity,
headers : {
'Content-Type' : undefined
},
transformResponse : [ function(
data) {
return data;
} ]
})
.then(
function mySuccess(response) {
$http.post(appConfig.appUri+ "user/fileUpload?empId="+empId,
formData,{
transformRequest : angular.identity,
headers : {'Content-Type' : undefined },
transformResponse : [ function(data) {
return data;
} ]})
.then(function mySuccess(response) {
$mdDialog.hide();
console.log(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');
}
showAlert(response.data);
$scope.refreshPage();
}, function myError(response) {
$mdDialog.hide();
......@@ -77,9 +55,7 @@ myApp
$scope.refreshPage();
});
}
}
function showAlert(message) {
$mdDialog.show($mdDialog.alert().parent(
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