Commit 1dfa330c authored by Rajeshekar's avatar Rajeshekar

MT-50: Fixed the flow in saving record from excel.

parent d19eb1de
...@@ -3,15 +3,9 @@ ...@@ -3,15 +3,9 @@
*/ */
package com.nisum.mytime.service; package com.nisum.mytime.service;
import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.FindAndModifyOptions;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -36,118 +30,137 @@ import lombok.extern.slf4j.Slf4j; ...@@ -36,118 +30,137 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class VisaServiceImpl implements VisaService { public class VisaServiceImpl implements VisaService {
@Autowired @Autowired
private VisaRepo visaRepo; private VisaRepo visaRepo;
@Autowired @Autowired
private TravelRepo travelRepo; private TravelRepo travelRepo;
@Autowired @Autowired
private EmployeeVisaRepo employeeVisaRepo; private EmployeeVisaRepo employeeVisaRepo;
@Autowired @Autowired
private MongoTemplate mongoTemplate; private UserService userService;
@Override @Override
public List<Visa> getAllVisas() { public List<Visa> getAllVisas() {
return visaRepo.findAll(); return visaRepo.findAll();
} }
@Override @Override
public List<EmployeeVisa> getAllEmployeeVisas() { public List<EmployeeVisa> getAllEmployeeVisas() {
return employeeVisaRepo.findAll(); return employeeVisaRepo.findAll();
} }
@Override @Override
public EmployeeVisa addEmployeeVisas(EmployeeVisa e) { public EmployeeVisa addEmployeeVisas(EmployeeVisa e) {
return employeeVisaRepo.save(e); return employeeVisaRepo.save(e);
} }
@Override @Override
public EmployeeVisa updateEmployeeVisas(EmployeeVisa e) { public EmployeeVisa updateEmployeeVisas(EmployeeVisa e) {
return employeeVisaRepo.save(e); return employeeVisaRepo.save(e);
} }
@Override @Override
public void deleteEmployeeVisas(EmployeeVisa e) { public void deleteEmployeeVisas(EmployeeVisa e) {
employeeVisaRepo.delete(e); employeeVisaRepo.delete(e);
} }
@Override @Override
public List<TravelRequest> getAllTravels() { public List<TravelRequest> getAllTravels() {
return travelRepo.findAll(); return travelRepo.findAll();
} }
@Override @Override
public TravelRequest addTravelRequest(TravelRequest e) { public TravelRequest addTravelRequest(TravelRequest e) {
return travelRepo.save(e); return travelRepo.save(e);
} }
@Override @Override
public TravelRequest updateTravelRequest(TravelRequest e) { public TravelRequest updateTravelRequest(TravelRequest e) {
return travelRepo.save(e); return travelRepo.save(e);
} }
@Override @Override
public void deleteEmployeeVisas(TravelRequest e) { public void deleteEmployeeVisas(TravelRequest e) {
travelRepo.delete(e); travelRepo.delete(e);
} }
@Override @Override
public String exportDataFromExcelFile(MultipartFile file) throws MyTimeException { public String exportDataFromExcelFile(MultipartFile file)
String result = "Failure"; throws MyTimeException {
int counter = 0; String result = "Failure";
try { int counter = 0;
List<EmployeeRoles> employees = Poiji.fromExcel(file.getInputStream(), PoijiExcelType.XLS, try {
EmployeeRoles.class); List<EmployeeRoles> employees = Poiji.fromExcel(
if (!employees.isEmpty()) { file.getInputStream(), PoijiExcelType.XLS,
for(EmployeeRoles employee: employees){ EmployeeRoles.class);
if(null != employee.getEmployeeId()) if (!employees.isEmpty()) {
findAndModifyEmployeeRole(employee); for (EmployeeRoles employee : employees) {
else if (null != employee.getEmployeeId())
counter++; findAndModifyEmployeeRole(employee);
} else
if(counter == 0){ counter++;
result = "Success"; }
log.info("Exported {} employee records from file: {}", employees.size(), file.getOriginalFilename()); if (counter == 0) {
}else{ result = "Success";
log.info("Uploaded file: {}, does not contain valid employee records", file.getOriginalFilename()); log.info("Exported {} employee records from file: {}",
} employees.size(), file.getOriginalFilename());
} } else {
} catch (Exception e) { log.info(
log.error("Exception occured while exporting the data from excel file due to: {}", e); "Uploaded file: {}, does not contain valid employee records",
throw new MyTimeException(""); file.getOriginalFilename());
} }
return result; }
} } catch (Exception e) {
log.error(
private void findAndModifyEmployeeRole(EmployeeRoles employee) { "Exception occured while exporting the data from excel file due to: {}",
Query query = new Query(Criteria.where("employeeId").is(employee.getEmployeeId())) e);
.addCriteria(Criteria.where("emailId").is(employee.getEmailId())); throw new MyTimeException("");
Update update = new Update(); }
update.set("employeeId", employee.getEmployeeId()); return result;
update.set("employeeName", employee.getEmployeeName()); }
update.set("emailId", employee.getEmailId());
update.set("role", employee.getRole()); private void findAndModifyEmployeeRole(EmployeeRoles employee) {
update.set("functionalGroup", employee.getFunctionalGroup()); /*
update.set("empStatus", employee.getEmpStatus()); * Query query = new
update.set("employmentType", employee.getEmploymentType()); * Query(Criteria.where("employeeId").is(employee.getEmployeeId()))
update.set("empLocation", employee.getEmpLocation()); * .addCriteria(Criteria.where("emailId").is(employee.getEmailId()));
update.set("domain", employee.getDomain()); * Update update = new Update(); update.set("employeeId",
update.set("designation", employee.getDesignation()); * employee.getEmployeeId()); update.set("employeeName",
update.set("dateOfBirth", employee.getDateOfBirth()); * employee.getEmployeeName()); update.set("emailId",
update.set("dateOfJoining", employee.getDateOfJoining()); * employee.getEmailId()); update.set("role", employee.getRole());
update.set("shift", employee.getShift()); * update.set("functionalGroup", employee.getFunctionalGroup());
update.set("baseTechnology", employee.getBaseTechnology()); * update.set("empStatus", employee.getEmpStatus());
update.set("technologyKnown", employee.getTechnologyKnown()); * update.set("employmentType", employee.getEmploymentType());
update.set("mobileNumber", employee.getMobileNumber()); * update.set("empLocation", employee.getEmpLocation());
update.set("alternateMobileNumber", employee.getAlternateMobileNumber()); * update.set("domain", employee.getDomain()); update.set("designation",
update.set("personalEmailId", employee.getPersonalEmailId()); * employee.getDesignation()); update.set("dateOfBirth",
update.set("createdOn", new Date()); * employee.getDateOfBirth()); update.set("dateOfJoining",
update.set("lastModifiedOn", new Date()); * employee.getDateOfJoining()); update.set("shift",
FindAndModifyOptions options = new FindAndModifyOptions(); * employee.getShift()); update.set("baseTechnology",
options.returnNew(true); * employee.getBaseTechnology()); update.set("technologyKnown",
options.upsert(true); * employee.getTechnologyKnown()); update.set("mobileNumber",
mongoTemplate.findAndModify(query, update, options, EmployeeRoles.class); * employee.getMobileNumber()); update.set("alternateMobileNumber",
log.info("Inserted Employee record with Id: {}", employee.getEmployeeId()); * employee.getAlternateMobileNumber()); update.set("personalEmailId",
} * employee.getPersonalEmailId()); update.set("createdOn", new Date());
* update.set("lastModifiedOn", new Date()); FindAndModifyOptions
* options = new FindAndModifyOptions(); options.returnNew(true);
* options.upsert(true); mongoTemplate.findAndModify(query, update,
* options, EmployeeRoles.class);
* log.info("Inserted Employee record with Id: {}",
* employee.getEmployeeId());
*/
EmployeeRoles emp = userService
.getEmployeesRoleData(employee.getEmployeeId());
if (emp == null) {
try {
userService.assigingEmployeeRole(employee);
} catch (MyTimeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} }
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