Commit 5e029af6 authored by vikram singh's avatar vikram singh

Completed the code for monthly reports(showing data in grid)

parent 1d60a1f5
...@@ -41,6 +41,7 @@ import com.nisum.myteam.model.GroupByCount; ...@@ -41,6 +41,7 @@ import com.nisum.myteam.model.GroupByCount;
import com.nisum.myteam.model.ReportSeriesRecord; import com.nisum.myteam.model.ReportSeriesRecord;
import com.nisum.myteam.model.dao.Account; import com.nisum.myteam.model.dao.Account;
import com.nisum.myteam.model.dao.Employee; import com.nisum.myteam.model.dao.Employee;
import com.nisum.myteam.model.dao.Project;
import com.nisum.myteam.model.dao.Resource; import com.nisum.myteam.model.dao.Resource;
import com.nisum.myteam.model.vo.ReportVo; import com.nisum.myteam.model.vo.ReportVo;
import com.nisum.myteam.model.vo.ResourceVO; import com.nisum.myteam.model.vo.ResourceVO;
...@@ -288,41 +289,40 @@ public class ReportsController { ...@@ -288,41 +289,40 @@ public class ReportsController {
// return new ResponseEntity<>(resourcesList, HttpStatus.OK); // return new ResponseEntity<>(resourcesList, HttpStatus.OK);
// } // }
// @RequestMapping(value = "/fetchEmployeeDetailsByDateBillability",
@RequestMapping(value = "/fetchEmployeeDetailsByDateBillability", // method = RequestMethod.GET,
method = RequestMethod.GET, // produces = MediaType.APPLICATION_JSON_VALUE)
produces = MediaType.APPLICATION_JSON_VALUE) // public ResponseEntity<List<Resource>> fetchEmployeeDetailsByDateBillability(
public ResponseEntity<List<Resource>> fetchEmployeeDetailsByDateBillability( // @RequestParam("billabilityStatus") String billabilityStatus,
@RequestParam("billabilityStatus") String billabilityStatus, // @RequestParam("reportDate") String reportDateString)
@RequestParam("reportDate") String reportDateString) // throws MyTeamException {
throws MyTeamException { // List<Resource> empList = new ArrayList<>();
List<Resource> empList = new ArrayList<>(); // if (reportDateString != null && !reportDateString.isEmpty()) {
if (reportDateString != null && !reportDateString.isEmpty()) { // String pattern = "MM-dd-yyyy";
String pattern = "MM-dd-yyyy"; // SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); // Date reportDateValue = new Date();
Date reportDateValue = new Date(); // try {
try { // reportDateValue = simpleDateFormat.parse(reportDateString);
reportDateValue = simpleDateFormat.parse(reportDateString); // } catch (ParseException e) {
} catch (ParseException e) { // // TODO Auto-generated catch block
// TODO Auto-generated catch block // e.printStackTrace();
e.printStackTrace(); // }
} //
// Criteria status = Criteria.where("billableStatus")
Criteria status = Criteria.where("billableStatus") // .is(billabilityStatus);
.is(billabilityStatus); // Criteria criteriaV1 = Criteria.where("billingStartDate")
Criteria criteriaV1 = Criteria.where("billingStartDate") // .lt(reportDateValue);
.lt(reportDateValue); // Criteria criteriaV21 = Criteria.where("billingEndDate").is(null);
Criteria criteriaV21 = Criteria.where("billingEndDate").is(null); // Criteria criteriaV22 = Criteria.where("billingEndDate")
Criteria criteriaV22 = Criteria.where("billingEndDate") // .gt(reportDateValue);
.gt(reportDateValue); // Criteria criteriaV221 = status.andOperator(
Criteria criteriaV221 = status.andOperator( // criteriaV1.orOperator(criteriaV21, criteriaV22));
criteriaV1.orOperator(criteriaV21, criteriaV22)); // Query query = new Query();
Query query = new Query(); // query.addCriteria(criteriaV221);
query.addCriteria(criteriaV221); // empList = mongoTemplate.find(query, Resource.class);
empList = mongoTemplate.find(query, Resource.class); // }
} // return new ResponseEntity<>(empList, HttpStatus.OK);
return new ResponseEntity<>(empList, HttpStatus.OK); // }
}
@RequestMapping(value = "/getBarChartReport", @RequestMapping(value = "/getBarChartReport",
method = RequestMethod.GET, method = RequestMethod.GET,
...@@ -417,10 +417,62 @@ public class ReportsController { ...@@ -417,10 +417,62 @@ public class ReportsController {
List<Reports> resourcesList = new ArrayList<>(); List<Reports> resourcesList = new ArrayList<>();
if (account != null && !account.isEmpty()) { if (account != null && !account.isEmpty()) {
resourcesList = reportService.getEmployeeDetailsByAccountBillability(account,billabilityStatus); resourcesList = reportService.getEmployeeDetailsByAccountBillability(account,billabilityStatus);
} }
return new ResponseEntity<>(resourcesList, HttpStatus.OK); return new ResponseEntity<>(resourcesList, HttpStatus.OK);
} }
@RequestMapping(value = "/fetchEmployeeDetailsByDateBillability",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Reports>> fetchEmployeeDetailsByDateBillability(
@RequestParam("billabilityStatus") String billabilityStatus,
@RequestParam("reportDate") String reportDateString)
throws MyTeamException {
List<Resource> empList = new ArrayList<>();
List<Reports> reports=new ArrayList<>();
if (reportDateString != null && !reportDateString.isEmpty()) {
String pattern = "MM-dd-yyyy";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
Date reportDateValue = new Date();
try {
reportDateValue = simpleDateFormat.parse(reportDateString);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Criteria status = Criteria.where("billableStatus")
.is(billabilityStatus);
Criteria criteriaV1 = Criteria.where("billingStartDate")
.lt(reportDateValue);
Criteria criteriaV21 = Criteria.where("billingEndDate").is(null);
Criteria criteriaV22 = Criteria.where("billingEndDate")
.gt(reportDateValue);
Criteria criteriaV221 = status.andOperator(
criteriaV1.orOperator(criteriaV21, criteriaV22));
Query query = new Query();
query.addCriteria(criteriaV221);
empList = mongoTemplate.find(query, Resource.class);
empList.stream().forEach(e->{
Employee employee=employeeService.getEmployeeById(e.getEmployeeId());
Project project=reportService.getProjectById(e.getProjectId());
Reports report=new Reports();
report.setEmployeeName(employee.getEmployeeName());
report.setEmployeeId(employee.getEmployeeId());
report.setEmailId(employee.getEmailId());
report.setProjectName(project.getProjectName());
report.setFunctionalGroup(employee.getFunctionalGroup());
report.setBillableStatus(e.getBillableStatus());
report.setBillingStartDate(e.getBillingStartDate());
report.setBillingEndDate(e.getBillingEndDate());
reports.add(report);
});
}
return new ResponseEntity<>(reports, HttpStatus.OK);
}
} }
...@@ -4,6 +4,7 @@ import java.util.List; ...@@ -4,6 +4,7 @@ import java.util.List;
import com.nisum.myteam.exception.handler.MyTeamException; import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.model.Reports; import com.nisum.myteam.model.Reports;
import com.nisum.myteam.model.dao.Project;
import com.nisum.myteam.model.vo.ReportVo; import com.nisum.myteam.model.vo.ReportVo;
import com.nisum.myteam.model.vo.ResourceVO; import com.nisum.myteam.model.vo.ResourceVO;
...@@ -14,5 +15,7 @@ public interface IReportService { ...@@ -14,5 +15,7 @@ public interface IReportService {
public List<Reports> getEmployeeDetailsByFGAndBillability(String fGroup, String billableStatus) throws MyTeamException; public List<Reports> getEmployeeDetailsByFGAndBillability(String fGroup, String billableStatus) throws MyTeamException;
public List<Reports> getEmployeeDetailsByAccountBillability(String account, String billabilityStatus)throws MyTeamException; public List<Reports> getEmployeeDetailsByAccountBillability(String account, String billabilityStatus)throws MyTeamException;
public Project getProjectById(String employeeId);
} }
\ No newline at end of file
...@@ -141,7 +141,7 @@ public class ReportService implements IReportService { ...@@ -141,7 +141,7 @@ public class ReportService implements IReportService {
for(Employee employee:employees) { for(Employee employee:employees) {
Resource resourceObj=resourceService.getLatestResourceByEmpId(employee.getEmployeeId()); Resource resourceObj=resourceService.getLatestResourceByEmpId(employee.getEmployeeId());
if(resourceObj.getBillableStatus().equals(billableStatus) ||( billableStatus.equals("Non-Billable") && (resourceObj.getBillableStatus().equals(Shadow)||resourceObj.getBillableStatus().equals(Reserved)))) { if(resourceObj.getBillableStatus().equals(billableStatus) ||( billableStatus.equals("Non-Billable") && (resourceObj.getBillableStatus().equals(Shadow)||resourceObj.getBillableStatus().equals(Reserved)))) {
resultantEmployees.add(mappingReports(employee,resourceObj) ); resultantEmployees.add(mappingReports(employee,resourceObj));
} }
} }
return resultantEmployees; return resultantEmployees;
...@@ -161,4 +161,9 @@ public class ReportService implements IReportService { ...@@ -161,4 +161,9 @@ public class ReportService implements IReportService {
return Reports; return Reports;
} }
@Override
public Project getProjectById(String projectId) {
return projectService.getProjectByProjectId(projectId);
}
} }
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