Commit 1828c372 authored by Vijay Akula's avatar Vijay Akula

Provided the validation messages for Projects

parent 7a8ddf80
package com.nisum.myteam.configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
\ No newline at end of file
package com.nisum.myteam.controller; package com.nisum.myteam.controller;
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.nisum.myteam.exception.handler.MyTeamException; import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.exception.handler.ResponseDetails;
import com.nisum.myteam.model.Account; import com.nisum.myteam.model.Account;
import com.nisum.myteam.model.Project; import com.nisum.myteam.model.Project;
import com.nisum.myteam.repository.AccountRepo;
import com.nisum.myteam.repository.ProjectRepo;
import com.nisum.myteam.service.IEmployeeService; import com.nisum.myteam.service.IEmployeeService;
import com.nisum.myteam.service.IProjectService; import com.nisum.myteam.service.IProjectService;
import com.nisum.myteam.utils.MyTeamUtils; import com.nisum.myteam.utils.MyTeamUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@RestController @RestController
@Slf4j @Slf4j
public class ProjectController { public class ProjectController {
@Autowired @Autowired
private IEmployeeService employeeService; private IProjectService projectService;
@Autowired @Autowired
private IProjectService projectService; private IEmployeeService employeeService;
@Autowired
private AccountRepo accountRepo; @RequestMapping(value = "/projects", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> createProject(@Valid @RequestBody Project projectReq,
@Autowired @RequestParam(value = "loginEmpId") String loginEmpId, HttpServletRequest request) throws MyTeamException {
private ProjectRepo projectRepo;
if (!projectService.isProjectExists(projectReq.getProjectName())) {
@RequestMapping(value = "/projects", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> createProject(@RequestBody Project projectReq, String accountName = "";
@RequestParam(value = "loginEmpId") String loginEmpId) throws MyTeamException { Account account = projectService.getProjectAccount(projectReq.getAccountId());
if (account != null) {
// checking project duplicateName accountName = account.getAccountName();
int projectNameCount = 0; int sequenceNumber = account.getAccountProjectSequence();
if (projectReq.getAccountId() != null) { account.setAccountProjectSequence(sequenceNumber + 1);
projectService.updateProjSeqinAccount(account);
List<Project> projects=projectService.getProjectsUnderDomain(projectReq.getDomainId());
for (Project existproject : projects) { String projectId = accountName + String.format("%04d", sequenceNumber + 1);
if (projectReq.getProjectName().equalsIgnoreCase(existproject.getProjectName())) projectReq.setProjectId(projectId);
projectNameCount++;
} Project projectPersisted = projectService.createProject(projectReq, loginEmpId);
}
if (projectNameCount > MyTeamUtils.INT_ZERO) { if (projectPersisted != null) {
MyTeamException myTimeException = new MyTeamException("Project name already exist !!! try with new"); ResponseDetails getRespDetails = new ResponseDetails(new Date(), 800,
return new ResponseEntity<>(myTimeException, HttpStatus.OK); "Project has been created", "Project description", null,
} else { request.getRequestURI(), "details", projectPersisted);
String accountName = "";
String accountId = projectReq.getAccountId(); return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
// String accountName=projectAdded.getAccount(); }
Account account = accountRepo.findByAccountId(accountId);
if (account != null) }
accountName = account.getAccountName();
int sequenceNumber = account.getAccountProjectSequence(); }
account.setAccountProjectSequence(sequenceNumber + 1); ResponseDetails getRespDetails = new ResponseDetails(new Date(), 801,
// account.setAuditFields(loginEmpId, MyTimeUtils.UPDATE); "Project is already existed", "Choose the different project name", null,
accountRepo.save(account); request.getRequestURI(), "details", projectReq);
String projectId = accountName + String.format("%04d", sequenceNumber + 1);
projectReq.setProjectId(projectId); return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
Project project = projectService.createProject(projectReq, loginEmpId);
return new ResponseEntity<>(project, HttpStatus.OK);
} }
}
// @RequestMapping(value = "/updateProject"
// @RequestMapping(value = "/updateProject" @RequestMapping(value = "/projects/{projectId}", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = "/projects", method = RequestMethod.PUT, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> updateProject(@Valid @RequestBody Project project, @PathVariable(value = "projectId", required = true) String projectId,
public ResponseEntity<?> updateProject(@RequestBody Project project, @RequestParam(value = "loginEmpId") String loginEmpId, HttpServletRequest request) throws MyTeamException {
@RequestParam(value = "loginEmpId") String loginEmpId) throws MyTeamException {
// checking project duplicateName if (projectService.isProjectExistsById(projectId)) {
int projectNameCount = 0; if (projectService.isProjectExists(project.getProjectName())) {
if (project.getAccountId() != null) { Project updatedProject = projectService.updateProject(project, loginEmpId);
List<Project> projects = projectRepo.findByDomainId(project.getDomainId()); ResponseDetails getRespDetails = new ResponseDetails(new Date(), 801,
for (Project existproject : projects) { "Project has been updated", "Project Updation Description", null,
if (project.getProjectName().equalsIgnoreCase(existproject.getProjectName()) request.getRequestURI(), "Project Updation details", updatedProject);
&& !project.getProjectId().equals(existproject.getProjectId())) {
projectNameCount++; return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
} }
} ResponseDetails getRespDetails = new ResponseDetails(new Date(), 801,
if (projectNameCount > 0) { "Project is not existed", "Please provide the valid project name", null,
MyTeamException myTimeException = new MyTeamException("Project name already exist !!! try with new"); request.getRequestURI(), "details", project);
return new ResponseEntity<>(myTimeException, HttpStatus.OK);
} return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
Project updatedProject = projectService.updateProject(project, loginEmpId); }
return new ResponseEntity<>(updatedProject, HttpStatus.OK); ResponseDetails getRespDetails = new ResponseDetails(new Date(), 801,
} "Project Id is not existed", "Please provide the valid project Id", null,
request.getRequestURI(), "details", project);
// @RequestMapping(value = "/deleteProject" return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
@RequestMapping(value = "/deleteProject", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> deleteProject(@RequestParam("projectId") String projectId) throws MyTeamException { }
projectService.deleteProject(projectId);
return new ResponseEntity<>("Success", HttpStatus.OK); // @RequestMapping(value = "/deleteProject"
} @RequestMapping(value = "/projects/{projectId}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> deleteProject(@PathVariable("projectId") String projectId, HttpServletRequest request) throws MyTeamException {
// @RequestMapping(value = "/getProjects"
@RequestMapping(value = "/projects", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) if (projectService.isProjectExistsById(projectId)) {
public ResponseEntity<List<HashMap<Object, Object>>> getProjects( projectService.deleteProject(projectId);
@RequestParam(value = "empId", required = false, defaultValue = MyTeamUtils.ZERO) String empId) ResponseDetails deleteRespDetails = new ResponseDetails(new Date(), 604,
throws MyTeamException { "Project has been deleted successfully", "Project Deletion description", null, request.getRequestURI(), "Project Deletion details",
List<HashMap<Object, Object>> projects = null; projectId);
return new ResponseEntity<ResponseDetails>(deleteRespDetails, HttpStatus.OK);
if (!"undefined".equalsIgnoreCase(empId)) {
boolean isDl = employeeService.verifyEmployeeRole(empId, MyTeamUtils.DL); }
if (isDl) {
projects = projectService.deliveryLeadProjects(empId); ResponseDetails deleteRespDetails = new ResponseDetails(new Date(), 604,
} "Project does not exists", "Please provide valid project id", null, request.getRequestURI(), "Project Deletion details",
} else { projectId);
projects = projectService.getProjects(); return new ResponseEntity<ResponseDetails>(deleteRespDetails, HttpStatus.OK);
} }
return new ResponseEntity<>(projects, HttpStatus.OK);
}
// @RequestMapping(value = "/getProjects" //get projects only for DL
@RequestMapping(value = "/projects/{deliveryLeadId}", method = RequestMethod.GET, @RequestMapping(value = "/projects/employeeId/{employeeId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> getProjects(
@PathVariable(value = "employeeId") String employeeId, HttpServletRequest request)
throws MyTeamException {
List<HashMap<Object, Object>> projects = null;
if (employeeId != null && !"".equalsIgnoreCase(employeeId) && !"undefined".equalsIgnoreCase(employeeId)) {
boolean isDl = employeeService.verifyEmployeeRole(employeeId, MyTeamUtils.DL);
if (isDl) {
projects = projectService.deliveryLeadProjects(employeeId);
ResponseDetails getRespDetails = new ResponseDetails(new Date(), 604, "Retrieved the projects successfully",
"Projects list", projects, request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
ResponseDetails getRespDetails = new ResponseDetails(new Date(), 605, "You are not authorized to view Projects.",
"Only Delivery leads can get the project details", projects, request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
ResponseDetails getRespDetails = new ResponseDetails(new Date(), 606, "Please Provide valid employee id",
"Projects list", null, request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
@RequestMapping(value = "/projects/deliveryLeadId/{deliveryLeadId}", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE) produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Project>> getProjectsUnderDeliveryLead( public ResponseEntity<?> getProjectsUnderDeliveryLead(
@RequestParam("deliveryLeadId") String deliveryLeadId) @PathVariable("deliveryLeadId") String deliveryLeadId, HttpServletRequest request)
throws MyTeamException { throws MyTeamException {
List<Project> projects = projectService.getProjectsUnderDeliveryLead(deliveryLeadId);
return new ResponseEntity<>(projects, HttpStatus.OK); if (deliveryLeadId != null && !"".equalsIgnoreCase(deliveryLeadId)) {
ResponseDetails getRespDetails = new ResponseDetails(new Date(), 604, "Retrieved the projects successfully",
"Projects list under delivery lead", projectService.getProjectsUnderDeliveryLead(deliveryLeadId), request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
ResponseDetails getRespDetails = new ResponseDetails(new Date(), 606, "Please Provide valid Delivery lead id",
"Projects list under delivery lead", null, request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
} }
@RequestMapping(value = "/getMyProjectAllocations", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/getMyProjectAllocations", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<HashMap<Object, Object>>> getMyProjectAllocations( public ResponseEntity<?> getMyProjectAllocations(
@RequestParam("employeeId") String employeeId) throws MyTeamException { @RequestParam("employeeId") String employeeId, HttpServletRequest request) throws MyTeamException {
List<HashMap<Object, Object>> empPrjtsInfo = projectService.getProjectsForEmployee(employeeId);
return new ResponseEntity<>(empPrjtsInfo, HttpStatus.OK); if (employeeId != null && !"".equalsIgnoreCase(employeeId)) {
} ResponseDetails getRespDetails = new ResponseDetails(new Date(), 604, "Retrieved the project allocations successfully",
"Projects allocations for an employee", projectService.getProjectsForEmployee(employeeId), request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
}
\ No newline at end of file ResponseDetails getRespDetails = new ResponseDetails(new Date(), 606, "Please Provide valid employee id",
"Project allocations for an employee", null, request.getRequestURI(), "Project details", null);
return new ResponseEntity<ResponseDetails>(getRespDetails, HttpStatus.OK);
}
}
// checking project duplicateName
// int projectNameCount = 0;
// if (projectReq.getAccountId() != null) {
//
// List<Project> projects=projectService.getProjectsUnderDomain(projectReq.getDomainId());
//
// for (Project existproject : projects) {
// if (projectReq.getProjectName().equalsIgnoreCase(existproject.getProjectName()))
// projectNameCount++;
// }
// }
// if (projectNameCount > MyTeamUtils.INT_ZERO) {
// MyTeamException myTimeException = new MyTeamException("Project name already exist !!! try with new");
// return new ResponseEntity<>(myTimeException, HttpStatus.OK);
// } else {
//
// }
...@@ -27,7 +27,7 @@ import com.nisum.myteam.service.IResourceService; ...@@ -27,7 +27,7 @@ import com.nisum.myteam.service.IResourceService;
import com.nisum.myteam.utils.MyTeamUtils; import com.nisum.myteam.utils.MyTeamUtils;
@RestController @RestController
@RequestMapping("/projectTeam") @RequestMapping
public class ResourceController { public class ResourceController {
@Autowired @Autowired
...@@ -70,15 +70,12 @@ public class ResourceController { ...@@ -70,15 +70,12 @@ public class ResourceController {
resourceService.deleteResource(resource.getEmployeeId(), resource.getProjectId(), resource.getId(), loginEmpId); resourceService.deleteResource(resource.getEmployeeId(), resource.getProjectId(), resource.getId(), loginEmpId);
return new ResponseEntity<>("Success", HttpStatus.OK); return new ResponseEntity<>("Success", HttpStatus.OK);
} }
// @RequestMapping(value = "/getEmployeeProjectInfo" // @RequestMapping(value = "/getEmployeeProjectInfo"
@RequestMapping(value = "/resources", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/resources/employeeId/{employeeId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Resource>> getResourcesSortByStartDate(@RequestParam("empId") String empId) public ResponseEntity<List<Resource>> getResourcesSortByStartDate(@PathVariable(value = "employeeId",required = true) String employeeId)
throws MyTeamException { throws MyTeamException {
List<Resource> projectInfo = resourceService.getResourcesSortByStartDate(empId); List<Resource> projectInfo = resourceService.getResourcesSortByStartDate(employeeId);
return new ResponseEntity<>(projectInfo, HttpStatus.OK); return new ResponseEntity<>(projectInfo, HttpStatus.OK);
} }
...@@ -93,7 +90,7 @@ public class ResourceController { ...@@ -93,7 +90,7 @@ public class ResourceController {
// @RequestMapping(value = "/getShiftDetails" // @RequestMapping(value = "/getShiftDetails"
@RequestMapping(value = "/resources/{shift}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/resources/shifts/{shift}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Resource>> getResourcesForShift(@PathVariable("shift") String shift) public ResponseEntity<List<Resource>> getResourcesForShift(@PathVariable("shift") String shift)
throws MyTeamException { throws MyTeamException {
List<Resource> resourcesList = resourceService.getResourcesForShift(shift); List<Resource> resourcesList = resourceService.getResourcesForShift(shift);
...@@ -101,7 +98,7 @@ public class ResourceController { ...@@ -101,7 +98,7 @@ public class ResourceController {
} }
// @RequestMapping(value = "/getProjectAllocations" // @RequestMapping(value = "/getProjectAllocations"
@RequestMapping(value = "/resources/projects/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/resources/projects", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Resource>> getResourcesAllocatedForAllProjects() throws MyTeamException { public ResponseEntity<List<Resource>> getResourcesAllocatedForAllProjects() throws MyTeamException {
List<Resource> resourcesList = resourceService.getResourcesForActiveProjects(); List<Resource> resourcesList = resourceService.getResourcesForActiveProjects();
return new ResponseEntity<>(resourcesList, HttpStatus.OK); return new ResponseEntity<>(resourcesList, HttpStatus.OK);
...@@ -127,16 +124,13 @@ public class ResourceController { ...@@ -127,16 +124,13 @@ public class ResourceController {
@RequestMapping(value = "/getUnAssignedEmployees", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "resources/unAssignedEmployees", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Employee>> getUnAssignedEmployees() throws MyTeamException { public ResponseEntity<List<Employee>> getUnAssignedEmployees() throws MyTeamException {
List<Employee> employeesList = projectService.getUnAssignedEmployees(); List<Employee> employeesList = projectService.getUnAssignedEmployees();
return new ResponseEntity<>(employeesList, HttpStatus.OK); return new ResponseEntity<>(employeesList, HttpStatus.OK);
} }
@RequestMapping(value = "/getEmployeesDashBoard", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) @RequestMapping(value = "/getEmployeesDashBoard", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<EmployeeDashboardVO>> getEmployeesDashBoard() throws MyTeamException { public ResponseEntity<List<EmployeeDashboardVO>> getEmployeesDashBoard() throws MyTeamException {
......
...@@ -30,13 +30,13 @@ public class Project extends AuditFields implements Serializable { ...@@ -30,13 +30,13 @@ public class Project extends AuditFields implements Serializable {
private ObjectId id; private ObjectId id;
private String projectId; private String projectId;
private String projectName; private String projectName;
private String domainId;
private String domain; private String domain;
private String accountId;
private String status; private String status;
private List<String> employeeIds; private List<String> employeeIds;
private List<String> managerIds; private List<String> managerIds;
private String accountId;
private String domainId;
@DateTimeFormat(iso = ISO.DATE) @DateTimeFormat(iso = ISO.DATE)
private Date projectStartDate; private Date projectStartDate;
@DateTimeFormat(iso = ISO.DATE) @DateTimeFormat(iso = ISO.DATE)
......
...@@ -11,6 +11,8 @@ public interface ProjectRepo extends MongoRepository<Project, String> { ...@@ -11,6 +11,8 @@ public interface ProjectRepo extends MongoRepository<Project, String> {
Project findByProjectId(String projectId); Project findByProjectId(String projectId);
Project findByProjectName(String projectName);
List<Project> findByDeliveryLeadIds(String empId); List<Project> findByDeliveryLeadIds(String empId);
// List<Project> findByManagerId(String managerId); // List<Project> findByManagerId(String managerId);
......
...@@ -5,11 +5,7 @@ import java.util.List; ...@@ -5,11 +5,7 @@ import java.util.List;
import java.util.Set; import java.util.Set;
import com.nisum.myteam.exception.handler.MyTeamException; import com.nisum.myteam.exception.handler.MyTeamException;
import com.nisum.myteam.model.EmpLoginData; import com.nisum.myteam.model.*;
import com.nisum.myteam.model.Employee;
import com.nisum.myteam.model.EmployeeDashboardVO;
import com.nisum.myteam.model.Project;
import com.nisum.myteam.model.Resource;
public interface IProjectService { public interface IProjectService {
...@@ -46,4 +42,17 @@ public interface IProjectService { ...@@ -46,4 +42,17 @@ public interface IProjectService {
public List<HashMap<Object, Object>> deliveryLeadProjects(String empId) throws MyTeamException; public List<HashMap<Object, Object>> deliveryLeadProjects(String empId) throws MyTeamException;
public List<Project> getAllProjects(); public List<Project> getAllProjects();
public boolean isProjectExists(String projectName);
public boolean isProjectExistsById(String projectId);
public long getProjectsCount();
public Account getProjectAccount(String accountId);
public Account updateProjSeqinAccount(Account account) throws MyTeamException;
} }
package com.nisum.myteam.service.impl; package com.nisum.myteam.service.impl;
import java.util.ArrayList; import com.nisum.myteam.exception.handler.MyTeamException;
import java.util.Comparator; import com.nisum.myteam.model.*;
import java.util.Date; import com.nisum.myteam.repository.*;
import java.util.HashMap; import com.nisum.myteam.service.IAccountService;
import java.util.HashSet; import com.nisum.myteam.service.IDomainService;
import java.util.List; import com.nisum.myteam.service.IEmployeeService;
import java.util.Map; import com.nisum.myteam.service.IProjectService;
import java.util.Set; import com.nisum.myteam.utils.MyTeamUtils;
import java.util.stream.Collectors; import com.nisum.myteam.utils.PdfReportGenerator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.FindAndModifyOptions;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
...@@ -20,27 +19,8 @@ import org.springframework.data.mongodb.core.query.Query; ...@@ -20,27 +19,8 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.nisum.myteam.exception.handler.MyTeamException; import java.util.*;
import com.nisum.myteam.model.Account; import java.util.stream.Collectors;
import com.nisum.myteam.model.Billing;
import com.nisum.myteam.model.Domain;
import com.nisum.myteam.model.EmpLoginData;
import com.nisum.myteam.model.Employee;
import com.nisum.myteam.model.EmployeeDashboardVO;
import com.nisum.myteam.model.Project;
import com.nisum.myteam.model.Resource;
import com.nisum.myteam.repository.AccountRepo;
import com.nisum.myteam.repository.DomainRepo;
import com.nisum.myteam.repository.EmployeeRepo;
import com.nisum.myteam.repository.ProjectRepo;
import com.nisum.myteam.repository.ResourceRepo;
import com.nisum.myteam.service.IDomainService;
import com.nisum.myteam.service.IEmployeeService;
import com.nisum.myteam.service.IProjectService;
import com.nisum.myteam.utils.MyTeamUtils;
import com.nisum.myteam.utils.PdfReportGenerator;
import lombok.extern.slf4j.Slf4j;
@Service("projectService") @Service("projectService")
@Slf4j @Slf4j
...@@ -51,7 +31,8 @@ public class ProjectService implements IProjectService { ...@@ -51,7 +31,8 @@ public class ProjectService implements IProjectService {
@Autowired @Autowired
private ProjectRepo projectRepo; private ProjectRepo projectRepo;
@Autowired @Autowired
private ResourceRepo resourceRepo; private ResourceRepo resourceRepo;
...@@ -88,7 +69,10 @@ public class ProjectService implements IProjectService { ...@@ -88,7 +69,10 @@ public class ProjectService implements IProjectService {
@Autowired @Autowired
private IEmployeeService employeeService; private IEmployeeService employeeService;
@Autowired
private IAccountService accountService;
...@@ -96,25 +80,47 @@ public class ProjectService implements IProjectService { ...@@ -96,25 +80,47 @@ public class ProjectService implements IProjectService {
public List<Project> getProjectsUnderDomain(String domainId) { public List<Project> getProjectsUnderDomain(String domainId) {
return projectRepo.findByDomainId(domainId); return projectRepo.findByDomainId(domainId);
} }
public boolean isProjectExists(String projectName) {
boolean isProjectExists = false;
if (projectName != null && !"".equalsIgnoreCase(projectName)) {
Project project = projectRepo.findByProjectName(projectName);
isProjectExists = (project == null) ? false : true;
}
return isProjectExists;
}
public boolean isProjectExistsById(String projectId) {
boolean isProjectExists = false;
if (projectId != null && !"".equalsIgnoreCase(projectId)) {
Project project = projectRepo.findByProjectId(projectId);
isProjectExists = (project == null) ? false : true;
}
return isProjectExists;
}
public long getProjectsCount() {
return projectRepo.count();
}
public Account getProjectAccount(String accountId) {
Account account = null;
if (accountId != null && !"".equalsIgnoreCase(accountId)) {
return accountService.getAccountById(accountId);
}
return account;
}
public Account updateProjSeqinAccount(Account account) throws MyTeamException {
return accountService.updateAccount(account);
}
@Override @Override
public Project createProject(Project project, String loginEmpId) throws MyTeamException { public Project createProject(Project project, String loginEmpId) throws MyTeamException {
if (project.getDomainId() == null) { if (project.getDomainId() == null) {
// Domain domain = new Domain();
// domain.setAccountId(project.getAccountId());
// domain.setDomainName(project.getDomain());
// domain.setDeliveryManagers(project.getManagerIds());
// domain.setStatus(project.getStatus());
// domainController.createDomain(domain,null);
List<Domain> domainsList = domainRepo List<Domain> domainsList = domainRepo
.findByAccountId(project.getAccountId()); .findByAccountId(project.getAccountId());
Domain savedDomain = domainsList.get(0); Domain savedDomain = domainsList.get(0);
...@@ -667,4 +673,6 @@ public class ProjectService implements IProjectService { ...@@ -667,4 +673,6 @@ public class ProjectService implements IProjectService {
} }
return projectsList; return projectsList;
} }
} }
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