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;
import com.nisum.myteam.model.ReportSeriesRecord;
import com.nisum.myteam.model.dao.Account;
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.vo.ReportVo;
import com.nisum.myteam.model.vo.ResourceVO;
......@@ -288,41 +289,40 @@ public class ReportsController {
// return new ResponseEntity<>(resourcesList, HttpStatus.OK);
// }
@RequestMapping(value = "/fetchEmployeeDetailsByDateBillability",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Resource>> fetchEmployeeDetailsByDateBillability(
@RequestParam("billabilityStatus") String billabilityStatus,
@RequestParam("reportDate") String reportDateString)
throws MyTeamException {
List<Resource> empList = 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);
}
return new ResponseEntity<>(empList, HttpStatus.OK);
}
// @RequestMapping(value = "/fetchEmployeeDetailsByDateBillability",
// method = RequestMethod.GET,
// produces = MediaType.APPLICATION_JSON_VALUE)
// public ResponseEntity<List<Resource>> fetchEmployeeDetailsByDateBillability(
// @RequestParam("billabilityStatus") String billabilityStatus,
// @RequestParam("reportDate") String reportDateString)
// throws MyTeamException {
// List<Resource> empList = 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);
// }
// return new ResponseEntity<>(empList, HttpStatus.OK);
// }
@RequestMapping(value = "/getBarChartReport",
method = RequestMethod.GET,
......@@ -417,10 +417,62 @@ public class ReportsController {
List<Reports> resourcesList = new ArrayList<>();
if (account != null && !account.isEmpty()) {
resourcesList = reportService.getEmployeeDetailsByAccountBillability(account,billabilityStatus);
}
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;
import com.nisum.myteam.exception.handler.MyTeamException;
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.ResourceVO;
......@@ -14,5 +15,7 @@ public interface IReportService {
public List<Reports> getEmployeeDetailsByFGAndBillability(String fGroup, String billableStatus) 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 {
for(Employee employee:employees) {
Resource resourceObj=resourceService.getLatestResourceByEmpId(employee.getEmployeeId());
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;
......@@ -161,4 +161,9 @@ public class ReportService implements IReportService {
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