Commit 9160c603 authored by Md Suleman's avatar Md Suleman

Updated Employee efforts logic

parent 5d8f2b68
......@@ -5,13 +5,18 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.transaction.Transactional;
import com.nisum.myteam.model.dao.Account;
import com.nisum.myteam.model.dao.Project;
import com.nisum.myteam.model.dao.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -29,6 +34,19 @@ public class EmployeeEffortsService implements IEmployeeEffortsService {
@Autowired
DbConnection dbConnection;
@Autowired
ResourceService resourceService;
@Autowired
ProjectService projectService;
@Autowired
AccountService accountService;
@Autowired
EmployeeService employeeService;
@Override
public List<EmployeeEfforts> getEmployeeEffortsReport(String fromDate, String toDate)
throws MyTeamException, SQLException {
......@@ -36,22 +54,36 @@ public class EmployeeEffortsService implements IEmployeeEffortsService {
query = MyTeamUtils.EMPLOYEE_EFFORTS_QUERY + "'" + fromDate.replace("-", "/") + "'"
+ MyTeamUtils.EMPLOYEE_EFFORTS_QUERY1 + "'" + toDate.replace("-", "/") + "'"
+ MyTeamUtils.EMPLOYEE_EFFORTS_QUERY2;
List<EmployeeEfforts> listOfEmpEffortsData = getEmployeeEfforts(query);
List<EmployeeEfforts> listOfEmpEffortsData = getEmployeeEfforts(query, fromDate, toDate);
return listOfEmpEffortsData;
}
private List<EmployeeEfforts> getEmployeeEfforts(String query) {
private List<EmployeeEfforts> getEmployeeEfforts(String query, String fromDate, String toDate) {
List<EmployeeEfforts> listOfEmpEffortsData = new ArrayList<>();
try (Connection connection = dbConnection.getDBConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query.toString())) {
final Date from = new SimpleDateFormat("yyyy-mm-dd").parse(fromDate);
final Date to = new SimpleDateFormat("yyyy-mm-dd").parse(toDate);
while (resultSet.next()) {
EmployeeEfforts employeeEfforts = new EmployeeEfforts();
employeeEfforts.setEmployeeId(resultSet.getString("EmployeeCode"));
employeeEfforts.setEmployeeName(resultSet.getString("FirstName"));
employeeEfforts.setTotalHoursSpentInWeek(resultSet.getString("TotalHoursInWeek") + ':' + resultSet.getString("TotalMinutesInWeek"));
List<Resource> resourceList = resourceService.getResourcesByEmployeeId(employeeEfforts.getEmployeeId()).stream().filter(r->
(r.getBillingStartDate().before(from) && r.getBillingEndDate().after(to))
).collect(Collectors.toList());
if (!resourceList.isEmpty()) {
Resource resource = resourceList.get(0);
Project project = projectService.getProjectByProjectId(resource.getProjectId());
Account account = accountService.getAccountById(project.getAccountId());
employeeEfforts.setProjectName(project.getProjectName());
employeeEfforts.setAccountName(account.getAccountName());
employeeEfforts.setFunctionalOrg(employeeService.getEmployeeById(employeeEfforts.getEmployeeId()).getFunctionalGroup());
}
listOfEmpEffortsData.add(employeeEfforts);
}
} catch (Exception e) {
......
......@@ -50,6 +50,7 @@ public class ResourceService implements IResourceService {
public HashMap<String, Object> respMap = new HashMap<>();
private Resource getLatestAllocation(List<Resource> resourceAllocList){
Resource latestAlloc = null;
if(!resourceAllocList.isEmpty()) {
......@@ -61,6 +62,10 @@ public class ResourceService implements IResourceService {
}
return latestAlloc;
}
public List<Resource> getResourcesByEmployeeId(String employeeId){
return resourceRepo.findByEmployeeId(employeeId);
}
public Resource addResource(Resource resourceReq, String loginEmpId) throws MyTeamException {
List<Resource> resourceAllocList = resourceRepo.findByEmployeeIdAndProjectId(resourceReq.getEmployeeId(), resourceReq.getProjectId());
......
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