Commit dd0bc65e authored by ='s avatar =

hieu

parent beded33f
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId> <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>org.springframework.boot</groupId> <!-- <groupId>org.springframework.boot</groupId>-->
<artifactId>spring-boot-starter-security</artifactId> <!-- <artifactId>spring-boot-starter-security</artifactId>-->
</dependency> <!-- </dependency>-->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
...@@ -47,11 +47,11 @@ ...@@ -47,11 +47,11 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>org.springframework.security</groupId> <!-- <groupId>org.springframework.security</groupId>-->
<artifactId>spring-security-test</artifactId> <!-- <artifactId>spring-security-test</artifactId>-->
<scope>test</scope> <!-- <scope>test</scope>-->
</dependency> <!-- </dependency>-->
</dependencies> </dependencies>
<build> <build>
......
package com.itsol.quantrivanphong.access.register.repository; package com.itsol.quantrivanphong.access.register.repository;
public class RegisterRepository { import com.itsol.quantrivanphong.model.ProjectReport;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface RegisterRepository extends JpaRepository<ProjectReport, Integer> {
} }
...@@ -88,4 +88,5 @@ public class Employee { ...@@ -88,4 +88,5 @@ public class Employee {
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "employee", fetch = FetchType.LAZY, cascade = CascadeType.ALL) @OneToMany(mappedBy = "employee", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<Eproject> eprojectList = new ArrayList<>(); private List<Eproject> eprojectList = new ArrayList<>();
} }
...@@ -35,7 +35,7 @@ public class Project { ...@@ -35,7 +35,7 @@ public class Project {
private String endDate; private String endDate;
@Column(name = "status") @Column(name = "status")
private boolean status; private int status;
@JsonIgnore @JsonIgnore
@OneToMany(mappedBy = "project", fetch = FetchType.LAZY, cascade = CascadeType.ALL) @OneToMany(mappedBy = "project", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
......
package com.itsol.quantrivanphong.report.project;
public class test {
}
package com.itsol.quantrivanphong.report.reportdetail.bussiness;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.report.reportdetail.dto.request.ReportDTO;
import com.itsol.quantrivanphong.report.reportdetail.dto.response.ReportResponseDTO;
import com.itsol.quantrivanphong.report.reportdetail.repository.EmployeeRepository;
import com.itsol.quantrivanphong.report.reportdetail.repository.ProjectRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ReportProjectBussiness {
@Autowired
private ProjectRepository projectRepository;
@Autowired
private EmployeeRepository employeeRepository;
public List<Project> listProjectIsTrue(){
List<Project> projectList = projectRepository.listProjectIsTrue();
if(projectList.isEmpty()){
return null;
}else
return projectList;
}
public ReportResponseDTO reportProjectDetail(ReportDTO reportDTO){
ReportResponseDTO rd = new ReportResponseDTO();
rd.setProjectId(reportDTO.getProjectId());
rd.setProjectName(projectRepository.ProjectName(reportDTO.getProjectId()));
rd.setTeamLeadList(employeeRepository.findTeamLeadPosition(reportDTO.getProjectId()));
rd.setMemberList(employeeRepository.findMemberPosition(reportDTO.getProjectId()));
rd.setFirstPoint(reportDTO.getFirstPoint());
rd.setFinalPoint(reportDTO.getFinalPoint());
return rd;
}
}
package com.itsol.quantrivanphong.report.reportdetail.controller;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.report.reportdetail.bussiness.ReportProjectBussiness;
import com.itsol.quantrivanphong.report.reportdetail.dto.request.ReportDTO;
import com.itsol.quantrivanphong.report.reportdetail.dto.response.ReportResponseDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping(path = "/admin/report")
public class ReportProjectController {
@Autowired
private ReportProjectBussiness reportProjectBussiness;
@GetMapping(path = "/project/all",consumes = "application/json", produces = "application/json")
public ResponseEntity<List<Project>> listProjectIsTrue(){
return ResponseEntity.ok(reportProjectBussiness.listProjectIsTrue());
}
@GetMapping(path = "/project/id",consumes = "application/json", produces = "application/json")
public ResponseEntity<ReportResponseDTO> reportProjectDetail(@RequestBody ReportDTO reportDTO){
return ResponseEntity.ok(reportProjectBussiness.reportProjectDetail(reportDTO));
}
}
package com.itsol.quantrivanphong.report.reportdetail.dto.request;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ReportDTO {
private String firstPoint;
private String finalPoint;
private int projectId;
private String position;
private boolean status;
}
package com.itsol.quantrivanphong.report.reportdetail.dto.response;
import com.itsol.quantrivanphong.model.Employee;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ReportResponseDTO {
private int projectId;
private String projectName;
private List<Employee> teamLeadList = new ArrayList<>();
private List<Employee> memberList = new ArrayList<>();
private String firstPoint;
private String finalPoint;
}
package com.itsol.quantrivanphong.report.reportdetail.repository;
import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Integer> {
@Query(value = "SELECT * FROM employee e JOIN eproject ep ON e.id = ep.employee_id JOIN project p ON ep.project_id = p.id WHERE p.id = ?1 AND ep.position = 'team_lead' GROUP BY e.id",nativeQuery = true)
List<Employee> findTeamLeadPosition(int projectId);
@Query(value = "SELECT * FROM employee e JOIN eproject ep ON e.id = ep.employee_id JOIN project p ON ep.project_id = p.id WHERE p.id = ?1 AND ep.position = 'member' GROUP BY e.id",nativeQuery = true)
List<Employee> findMemberPosition(int projectId);
}
package com.itsol.quantrivanphong.report.reportdetail.repository;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.Project;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface ProjectRepository extends JpaRepository<Project, Integer> {
@Query(value = "SELECT p.id, p.name, p.descriptions, p.start_date, p.end_date, p.status FROM project p where p.status = 2", nativeQuery = true)
List<Project> listProjectIsTrue();
@Query(value = "SELECT p.name FROM project p where p.id = ?1", nativeQuery = true)
String ProjectName(int projectId);
}
package com.itsol.quantrivanphong.report.reportdetail.repository;
import com.itsol.quantrivanphong.model.ProjectReport;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ReportDetailRepository extends JpaRepository<ProjectReport, Integer> {
}
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