Commit afdeb36f authored by Rajashekar jadala's avatar Rajashekar jadala Committed by rbonthala-nisum-com

MT-80: Sent employee assigned role to UI (#50)

parent c8e144f5
...@@ -24,6 +24,7 @@ public class RoleInfo implements Serializable { ...@@ -24,6 +24,7 @@ public class RoleInfo implements Serializable {
@Id @Id
private ObjectId id; private ObjectId id;
private int priority;
private String roleId; private String roleId;
private String roleName; private String roleName;
private String roleDescription; private String roleDescription;
......
...@@ -5,5 +5,8 @@ import org.springframework.data.mongodb.repository.MongoRepository; ...@@ -5,5 +5,8 @@ import org.springframework.data.mongodb.repository.MongoRepository;
import com.nisum.mytime.model.RoleInfo; import com.nisum.mytime.model.RoleInfo;
public interface RoleInfoRepo extends MongoRepository<RoleInfo, String> { public interface RoleInfoRepo extends MongoRepository<RoleInfo, String> {
RoleInfo findByRoleName(String roleName); RoleInfo findByRoleName(String roleName);
RoleInfo findByRoleId(String roleId);
} }
\ No newline at end of file
package com.nisum.mytime.repository; package com.nisum.mytime.repository;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.MongoRepository;
import com.nisum.mytime.model.RoleMappingInfo; import com.nisum.mytime.model.RoleMappingInfo;
...@@ -7,4 +9,6 @@ import com.nisum.mytime.model.RoleMappingInfo; ...@@ -7,4 +9,6 @@ import com.nisum.mytime.model.RoleMappingInfo;
public interface RoleMappingInfoRepo extends MongoRepository<RoleMappingInfo, String> { public interface RoleMappingInfoRepo extends MongoRepository<RoleMappingInfo, String> {
RoleMappingInfo findByEmployeeIdAndRoleId(String employeeId, String roleId); RoleMappingInfo findByEmployeeIdAndRoleId(String employeeId, String roleId);
List<RoleMappingInfo> findByEmployeeId(String employeeId);
} }
\ No newline at end of file
...@@ -29,16 +29,19 @@ public class EmployeeDataService { ...@@ -29,16 +29,19 @@ public class EmployeeDataService {
public List<EmpLoginData> fetchEmployeeLoginsBasedOnDates(long employeeId, String fromDate, String toDate) public List<EmpLoginData> fetchEmployeeLoginsBasedOnDates(long employeeId, String fromDate, String toDate)
throws MyTimeException { throws MyTimeException {
long start_ms = System.currentTimeMillis(); long start_ms = System.currentTimeMillis();
String querys=MyTimeUtils.ABESENT_STATUS_QUERY+"'"+fromDate+"'"+ MyTimeUtils.ABESENT_STATUS_QUERY1 +"'"+toDate+"'"+MyTimeUtils.ABESENT_STATUS_QUERY2+employeeId+MyTimeUtils.ABESENT_STATUS_QUERY3; String querys = null;
System.out.println("fetch employee details"+querys); if (employeeId == 0)
querys = MyTimeUtils.ABESENT_STATUS_QUERY + "'" + fromDate + "'" + MyTimeUtils.ABESENT_STATUS_QUERY1 + "'"
+ toDate + "'" + MyTimeUtils.ABESENT_STATUS_QUERY3;
else
querys = MyTimeUtils.ABESENT_STATUS_QUERY + "'" + fromDate + "'" + MyTimeUtils.ABESENT_STATUS_QUERY1 + "'"
+ toDate + "'" + MyTimeUtils.ABESENT_STATUS_QUERY2 + employeeId + MyTimeUtils.ABESENT_STATUS_QUERY3;
int countHours = 0; int countHours = 0;
List<EmpLoginData> listOfEmpLoginData = new ArrayList<>(); List<EmpLoginData> listOfEmpLoginData = new ArrayList<>();
try(Connection connection = dbConnection.getDBConnection(); try (Connection connection = dbConnection.getDBConnection();
Statement statement = connection.createStatement(); Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(querys.toString())) ResultSet resultSet = statement.executeQuery(querys.toString())) {
{
if (employeeId > 0) {
while (resultSet.next()) { while (resultSet.next()) {
EmpLoginData empLoginData = new EmpLoginData(); EmpLoginData empLoginData = new EmpLoginData();
empLoginData.setEmployeeId(resultSet.getString("EmployeeCode")); empLoginData.setEmployeeId(resultSet.getString("EmployeeCode"));
...@@ -48,14 +51,14 @@ public class EmployeeDataService { ...@@ -48,14 +51,14 @@ public class EmployeeDataService {
empLoginData.setLastLogout(resultSet.getTime("LastLogin").toString()); empLoginData.setLastLogout(resultSet.getTime("LastLogin").toString());
Time from = resultSet.getTime("FirstLogin"); Time from = resultSet.getTime("FirstLogin");
Time to = resultSet.getTime("LastLogin"); Time to = resultSet.getTime("LastLogin");
long milliseconds=to.getTime() - from.getTime(); long milliseconds = to.getTime() - from.getTime();
int seconds = (int) milliseconds / 1000; int seconds = (int) milliseconds / 1000;
int hours = seconds / 3600; int hours = seconds / 3600;
int minutes = (seconds % 3600) / 60; int minutes = (seconds % 3600) / 60;
seconds = (seconds % 3600) % 60; seconds = (seconds % 3600) % 60;
empLoginData.setTotalLoginTime(hours+":"+minutes+":"+seconds); empLoginData.setTotalLoginTime(hours + ":" + minutes + ":" + seconds);
empLoginData.setTotalLoginTime(hours+":"+minutes+":"+seconds); empLoginData.setTotalLoginTime(hours + ":" + minutes + ":" + seconds);
Date d = MyTimeUtils.tdf.parse(empLoginData.getTotalLoginTime()); Date d = MyTimeUtils.tdf.parse(empLoginData.getTotalLoginTime());
countHours += d.getTime(); countHours += d.getTime();
listOfEmpLoginData.add(empLoginData); listOfEmpLoginData.add(empLoginData);
...@@ -65,16 +68,9 @@ public class EmployeeDataService { ...@@ -65,16 +68,9 @@ public class EmployeeDataService {
.setTotalAvgTime(MyTimeUtils.tdf.format(countHours / listOfEmpLoginData.size())); .setTotalAvgTime(MyTimeUtils.tdf.format(countHours / listOfEmpLoginData.size()));
} }
MyTimeLogger.getInstance().info(" Time Taken fecth Employee data based on Dates ::: " MyTimeLogger.getInstance().info(
+ (System.currentTimeMillis() - start_ms)); " Time Taken fecth Employee data based on Dates ::: " + (System.currentTimeMillis() - start_ms));
} else if (employeeId == 0) {
listOfEmpLoginData = null;
MyTimeLogger.getInstance().info("Time Taken for with fecth All Employees data based on Dates ::: "
+ (System.currentTimeMillis() - start_ms));
}
} catch (Exception e) { } catch (Exception e) {
MyTimeLogger.getInstance().error(e.getMessage()); MyTimeLogger.getInstance().error(e.getMessage());
throw new MyTimeException(e.getMessage()); throw new MyTimeException(e.getMessage());
......
...@@ -10,4 +10,6 @@ public interface RoleMappingService { ...@@ -10,4 +10,6 @@ public interface RoleMappingService {
void saveUniqueEmployeeAndRole(List<String> employeeIds, String roleId) throws MyTimeException; void saveUniqueEmployeeAndRole(List<String> employeeIds, String roleId) throws MyTimeException;
WriteResult deleteRole(String employeeId, String roleId) throws MyTimeException; WriteResult deleteRole(String employeeId, String roleId) throws MyTimeException;
String getEmployeeRole(String employeeId);
} }
package com.nisum.mytime.service; package com.nisum.mytime.service;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
...@@ -12,6 +15,7 @@ import org.springframework.stereotype.Service; ...@@ -12,6 +15,7 @@ import org.springframework.stereotype.Service;
import com.mongodb.WriteResult; import com.mongodb.WriteResult;
import com.nisum.mytime.exception.handler.MyTimeException; import com.nisum.mytime.exception.handler.MyTimeException;
import com.nisum.mytime.model.RoleMappingInfo; import com.nisum.mytime.model.RoleMappingInfo;
import com.nisum.mytime.repository.RoleInfoRepo;
import com.nisum.mytime.repository.RoleMappingInfoRepo; import com.nisum.mytime.repository.RoleMappingInfoRepo;
import com.nisum.mytime.utils.MyTimeUtils; import com.nisum.mytime.utils.MyTimeUtils;
...@@ -21,6 +25,9 @@ public class RoleMappingServiceImpl implements RoleMappingService { ...@@ -21,6 +25,9 @@ public class RoleMappingServiceImpl implements RoleMappingService {
@Autowired @Autowired
private RoleMappingInfoRepo roleMappingInfoRepo; private RoleMappingInfoRepo roleMappingInfoRepo;
@Autowired
private RoleInfoRepo roleInfoRepo;
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
...@@ -49,4 +56,26 @@ public class RoleMappingServiceImpl implements RoleMappingService { ...@@ -49,4 +56,26 @@ public class RoleMappingServiceImpl implements RoleMappingService {
return mongoTemplate.upsert(query, update, RoleMappingInfo.class); return mongoTemplate.upsert(query, update, RoleMappingInfo.class);
} }
@Override
public String getEmployeeRole(String employeeId) {
Map<Integer, String> roleInfoMap = new LinkedHashMap<Integer, String>();
List<RoleMappingInfo> listOfEmployeeRoles = roleMappingInfoRepo.findByEmployeeId(employeeId);
for (RoleMappingInfo employee : listOfEmployeeRoles) {
roleInfoMap.put((roleInfoRepo.findByRoleId(employee.getRoleId())).getPriority(), employee.getRoleId());
}
roleInfoMap = roleInfoMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors
.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new));
String roleName = null;
if (!roleInfoMap.isEmpty()) {
Map.Entry<Integer, String> entry = roleInfoMap.entrySet().iterator().next();
roleName = entry.getValue();
} else {
roleName = null;
}
return roleName;
}
} }
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