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

Updated Employee efforts logic

parent 5d8f2b68
...@@ -5,13 +5,18 @@ import java.sql.ResultSet; ...@@ -5,13 +5,18 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import java.sql.Time; import java.sql.Time;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import javax.transaction.Transactional; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -29,6 +34,19 @@ public class EmployeeEffortsService implements IEmployeeEffortsService { ...@@ -29,6 +34,19 @@ public class EmployeeEffortsService implements IEmployeeEffortsService {
@Autowired @Autowired
DbConnection dbConnection; DbConnection dbConnection;
@Autowired
ResourceService resourceService;
@Autowired
ProjectService projectService;
@Autowired
AccountService accountService;
@Autowired
EmployeeService employeeService;
@Override @Override
public List<EmployeeEfforts> getEmployeeEffortsReport(String fromDate, String toDate) public List<EmployeeEfforts> getEmployeeEffortsReport(String fromDate, String toDate)
throws MyTeamException, SQLException { throws MyTeamException, SQLException {
...@@ -36,22 +54,36 @@ public class EmployeeEffortsService implements IEmployeeEffortsService { ...@@ -36,22 +54,36 @@ public class EmployeeEffortsService implements IEmployeeEffortsService {
query = MyTeamUtils.EMPLOYEE_EFFORTS_QUERY + "'" + fromDate.replace("-", "/") + "'" query = MyTeamUtils.EMPLOYEE_EFFORTS_QUERY + "'" + fromDate.replace("-", "/") + "'"
+ MyTeamUtils.EMPLOYEE_EFFORTS_QUERY1 + "'" + toDate.replace("-", "/") + "'" + MyTeamUtils.EMPLOYEE_EFFORTS_QUERY1 + "'" + toDate.replace("-", "/") + "'"
+ MyTeamUtils.EMPLOYEE_EFFORTS_QUERY2; + MyTeamUtils.EMPLOYEE_EFFORTS_QUERY2;
List<EmployeeEfforts> listOfEmpEffortsData = getEmployeeEfforts(query); List<EmployeeEfforts> listOfEmpEffortsData = getEmployeeEfforts(query, fromDate, toDate);
return listOfEmpEffortsData; return listOfEmpEffortsData;
} }
private List<EmployeeEfforts> getEmployeeEfforts(String query) { private List<EmployeeEfforts> getEmployeeEfforts(String query, String fromDate, String toDate) {
List<EmployeeEfforts> listOfEmpEffortsData = new ArrayList<>(); List<EmployeeEfforts> listOfEmpEffortsData = new ArrayList<>();
try (Connection connection = dbConnection.getDBConnection(); try (Connection connection = dbConnection.getDBConnection();
Statement statement = connection.createStatement(); Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query.toString())) { 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()) { while (resultSet.next()) {
EmployeeEfforts employeeEfforts = new EmployeeEfforts(); EmployeeEfforts employeeEfforts = new EmployeeEfforts();
employeeEfforts.setEmployeeId(resultSet.getString("EmployeeCode")); employeeEfforts.setEmployeeId(resultSet.getString("EmployeeCode"));
employeeEfforts.setEmployeeName(resultSet.getString("FirstName")); employeeEfforts.setEmployeeName(resultSet.getString("FirstName"));
employeeEfforts.setTotalHoursSpentInWeek(resultSet.getString("TotalHoursInWeek") + ':' + resultSet.getString("TotalMinutesInWeek")); 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); listOfEmpEffortsData.add(employeeEfforts);
} }
} catch (Exception e) { } catch (Exception e) {
......
...@@ -50,6 +50,7 @@ public class ResourceService implements IResourceService { ...@@ -50,6 +50,7 @@ public class ResourceService implements IResourceService {
public HashMap<String, Object> respMap = new HashMap<>(); public HashMap<String, Object> respMap = new HashMap<>();
private Resource getLatestAllocation(List<Resource> resourceAllocList){ private Resource getLatestAllocation(List<Resource> resourceAllocList){
Resource latestAlloc = null; Resource latestAlloc = null;
if(!resourceAllocList.isEmpty()) { if(!resourceAllocList.isEmpty()) {
...@@ -61,6 +62,10 @@ public class ResourceService implements IResourceService { ...@@ -61,6 +62,10 @@ public class ResourceService implements IResourceService {
} }
return latestAlloc; return latestAlloc;
} }
public List<Resource> getResourcesByEmployeeId(String employeeId){
return resourceRepo.findByEmployeeId(employeeId);
}
public Resource addResource(Resource resourceReq, String loginEmpId) throws MyTeamException { public Resource addResource(Resource resourceReq, String loginEmpId) throws MyTeamException {
List<Resource> resourceAllocList = resourceRepo.findByEmployeeIdAndProjectId(resourceReq.getEmployeeId(), resourceReq.getProjectId()); 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