Commit 79a350ba authored by Phạm Duy Phi's avatar Phạm Duy Phi

Merge branch 'master' of https://git.myitsol.com/hieunv/qlns_n01

# Conflicts:
#	src/main/resources/application.properties
#	src/main/resources/public/common/css/all.css
#	src/main/resources/public/common/css/bootstrap-combined.min.css
#	src/main/resources/public/index.html
#	src/main/resources/public/js/angular-resource.js
#	src/main/resources/public/js/app.js
#	src/main/resources/public/layout/layout1.html
parents ca7526a5 e3332b54
package com.itsol.quantrivanphong.manager.project.project.bussiness; package com.itsol.quantrivanphong.manager.project.project.bussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO; import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository; import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository;
import com.itsol.quantrivanphong.model.Project;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
package com.itsol.quantrivanphong.manager.project.project.controller; package com.itsol.quantrivanphong.manager.project.project.controller;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import com.itsol.quantrivanphong.manager.project.project.bussiness.ProjectBussiness; import com.itsol.quantrivanphong.manager.project.project.bussiness.ProjectBussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO; import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
...@@ -8,7 +8,7 @@ import java.util.List; ...@@ -8,7 +8,7 @@ import java.util.List;
public interface ProjectRRepository extends JpaRepository<Project, Integer> { public interface ProjectRRepository 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) @Query(value = "SELECT p.id, p.name, p.descriptions, p.start_date, p.end_date, p.status FROM project p where p.status = 1", nativeQuery = true)
List<Project> listProjectWorking(); List<Project> listProjectWorking();
@Query(value = "SELECT p.name FROM project p where p.id = ?1", nativeQuery = true) @Query(value = "SELECT p.name FROM project p where p.id = ?1", nativeQuery = true)
......
package com.itsol.quantrivanphong.manager.project.projectgroup.bussiness; package com.itsol.quantrivanphong.manager.project.projectgroup.bussiness;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository; import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository;
import com.itsol.quantrivanphong.manager.project.projectgroup.common.EmployeeRepositoryImpl; import com.itsol.quantrivanphong.manager.project.projectgroup.common.EmployeeRepositoryImpl;
import com.itsol.quantrivanphong.manager.project.projectgroup.common.ProjectGroupUtils; import com.itsol.quantrivanphong.manager.project.projectgroup.common.ProjectGroupUtils;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO; import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.manager.project.projectgroup.repository.ProjectGroupRepository; import com.itsol.quantrivanphong.manager.project.projectgroup.repository.ProjectGroupRepository;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.Project;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package com.itsol.quantrivanphong.manager.project.projectgroup.controller; package com.itsol.quantrivanphong.manager.project.projectgroup.controller;
import com.itsol.quantrivanphong.manager.project.project.controller.ProjectController;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import com.itsol.quantrivanphong.manager.project.projectgroup.bussiness.ProjectGroupBussiness; import com.itsol.quantrivanphong.manager.project.projectgroup.bussiness.ProjectGroupBussiness;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO; import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
......
...@@ -4,7 +4,6 @@ package com.itsol.quantrivanphong.manager.reportdetail.bussiness; ...@@ -4,7 +4,6 @@ package com.itsol.quantrivanphong.manager.reportdetail.bussiness;
import com.itsol.quantrivanphong.manager.employee.repository.EmployeeRepository; import com.itsol.quantrivanphong.manager.employee.repository.EmployeeRepository;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRRepository; import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRRepository;
import com.itsol.quantrivanphong.manager.reportdetail.dto.request.ReportDTO; import com.itsol.quantrivanphong.manager.reportdetail.dto.request.ReportDTO;
import com.itsol.quantrivanphong.manager.reportdetail.dto.request.TimesheetRequestDTO;
import com.itsol.quantrivanphong.manager.reportdetail.repository.ProjectReportRepository; import com.itsol.quantrivanphong.manager.reportdetail.repository.ProjectReportRepository;
import com.itsol.quantrivanphong.model.*; import com.itsol.quantrivanphong.model.*;
import com.itsol.quantrivanphong.report.timesheet.repository.EProjectRepository; import com.itsol.quantrivanphong.report.timesheet.repository.EProjectRepository;
...@@ -45,36 +44,44 @@ public class ReportProjectBussiness { ...@@ -45,36 +44,44 @@ public class ReportProjectBussiness {
} }
//====================================================================================================================== //======================================================================================================================
public List<TimeSheet> findAllTimesheetStatusTrue(ReportDTO reportDTO){ public List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate){
List<TimeSheet> timeSheetList = timeSheetRepository.findAllTimesheetStatusTrue(reportDTO.getProjectId(), reportDTO.getCurrentDate()); List<TimeSheet> timeSheetList = timeSheetRepository.findAllTimeSheetStatusTrue(projectId, currentDate);
return timeSheetList; return timeSheetList;
} }
public String updateTimesheetStatus(ReportDTO reportDTO){ public String updateTimeSheetStatus(int projectId, String currentDate){
String mess; String mess;
try { try {
List<Eproject> eprojectList = eProjectRepository.listEprojectLack(reportDTO.getProjectId(), reportDTO.getCurrentDate()); List<Eproject> eprojectList = eProjectRepository.listEprojectLack(projectId, currentDate);
List<Integer> list = new ArrayList<>(); if(eprojectList.isEmpty()){
for (Eproject eproject: eprojectList) { mess = "Đã khởi tạo những thành viên chưa viết timeSheet rồi";
list.add(eproject.getId()); }else {
} List<Integer> list = new ArrayList<>();
for (Integer i: list){ for (Eproject eproject : eprojectList) {
timeSheetRepository.updateLack(i,false,"checked"); list.add(eproject.getId());
}
for (Integer i : list) {
timeSheetRepository.updateLack(i, false, "approved");
}
mess = "Tạo tự động thành công !";
} }
mess = "OK !";
}catch (Exception e){ }catch (Exception e){
mess = e.getMessage(); mess = e.getMessage();
} }
return mess; return mess;
} }
public List<Employee> listLackOfReport(int projectId, String currentDate){
List<Employee> employeeList = employeeRepository.listLackOfReport(projectId, currentDate);
return employeeList;
}
public String updateTimesheetChecked(TimesheetRequestDTO timesheetRequestDTO){ public String updateTimeSheetChecked(int timeSheetId, String check){
String mess; String mess;
try { try {
timeSheetRepository.updateTimesheetChecked(timesheetRequestDTO.getChecked(),timesheetRequestDTO.getId()); timeSheetRepository.updateTimeSheetChecked(check, timeSheetId);
mess = "OK !"; mess = "Đã đổi trạng thái thành công !";
}catch (Exception e){ }catch (Exception e){
mess = e.getMessage(); mess = e.getMessage();
} }
...@@ -85,24 +92,18 @@ public class ReportProjectBussiness { ...@@ -85,24 +92,18 @@ public class ReportProjectBussiness {
public List<ProjectReport> allProjectReport(ReportDTO reportDTO){ public List<ProjectReport> allProjectReport(int projectId){
List<ProjectReport> projectReportList = projectReportRepository.allProjectReport(reportDTO.getProjectId()); List<ProjectReport> projectReportList = projectReportRepository.allProjectReport(projectId);
if (projectReportList.isEmpty()){
return null;
}else
return projectReportList; return projectReportList;
} }
public ProjectReport latestReport(ReportDTO reportDTO){ public ProjectReport latestReport(int projectId){
return projectReportRepository.latestReport(reportDTO.getProjectId()); return projectReportRepository.latestReport(projectId);
} }
public List<Employee> listLackOfReport(ReportDTO reportDTO){
List<Employee> employeeList = employeeRepository.listLackOfReport(reportDTO.getProjectId(), reportDTO.getCurrentDate());
return employeeList;
}
public String insertProjectReport(ReportDTO reportDTO){ public String insertProjectReport(ReportDTO reportDTO){
String mess; String mess;
...@@ -116,11 +117,11 @@ public class ReportProjectBussiness { ...@@ -116,11 +117,11 @@ public class ReportProjectBussiness {
projectReport.setLackOfReport(timeSheetRepository.numberEmployeeLack(reportDTO.getProjectId(), reportDTO.getFirstPoint(), reportDTO.getFinalPoint())); projectReport.setLackOfReport(timeSheetRepository.numberEmployeeLack(reportDTO.getProjectId(), reportDTO.getFirstPoint(), reportDTO.getFinalPoint()));
projectReport.setFirstDate(reportDTO.getFirstPoint()); projectReport.setFirstDate(reportDTO.getFirstPoint());
projectReport.setFinalDate(reportDTO.getFinalPoint()); projectReport.setFinalDate(reportDTO.getFinalPoint());
projectReport.setStatus(reportDTO.isStatus());
projectReportRepository.insertProjectReport(projectReport.getProjectName(),projectReport.getTeamLeader(), projectReport.getNumberOfMember(), projectReport.getCalendarEffort(), projectReport.getLackOfReport(), projectReport.isStatus(),reportDTO.getProjectId(), projectReport.getFirstDate(), projectReport.getFinalDate());
mess = "Ok !"; projectReportRepository.insertProjectReport(projectReport.getProjectName(),projectReport.getTeamLeader(), projectReport.getNumberOfMember(), projectReport.getCalendarEffort(), projectReport.getLackOfReport(), reportDTO.getProjectId(), projectReport.getFirstDate(), projectReport.getFinalDate());
mess = "Đã tạo mới báo cáo!";
}catch (Exception e){ }catch (Exception e){
mess = e.getMessage(); mess = e.getMessage();
} }
...@@ -129,20 +130,41 @@ public class ReportProjectBussiness { ...@@ -129,20 +130,41 @@ public class ReportProjectBussiness {
} }
public ProjectReport findProjectReportById(int id){
return projectReportRepository.findById(id);
}
public String deleteProjectReportById(int id){
String mess;
ProjectReport pr = projectReportRepository.findById(id);
if (pr == null){
mess = "Không tìm thấy BC cần xóa";
}else {
projectReportRepository.deleteById(id);
pr = projectReportRepository.findById(id);
if(pr==null){
mess = "Xóa thành công !";
}else {
mess = "Xóa thất bại";
}
}
return mess;
}
//====================================================================================================================== //======================================================================================================================
public List<Employee> listEmployeeLack(ReportDTO reportDTO) { public List<Employee> listEmployeeLack(String firstDate, String finalDate, int projectId) {
List<Employee> employeeList = employeeRepository.listEmployeeLackOfReport(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId()); List<Employee> employeeList = employeeRepository.listEmployeeLackOfReport(firstDate, finalDate, projectId);
return employeeList; return employeeList;
} }
public int numberLack(ReportDTO reportDTO){ public int numberLack(String firstDate, String finalDate, int projectId, int employeeId){
return employeeRepository.numberLack(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId(), reportDTO.getEmployeeId()); return employeeRepository.numberLack(firstDate, finalDate, projectId, employeeId);
} }
public List<TimeSheet> listDateOfLack(ReportDTO reportDTO) { public List<TimeSheet> listDateOfLack(String firstDate, String finalDate, int projectId, int employeeId) {
List<TimeSheet> timeSheetList = timeSheetRepository.listDateOfLack(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId(), reportDTO.getEmployeeId()); List<TimeSheet> timeSheetList = timeSheetRepository.listDateOfLack(firstDate,finalDate,projectId, employeeId);
return timeSheetList; return timeSheetList;
} }
......
...@@ -11,14 +11,19 @@ import java.util.List; ...@@ -11,14 +11,19 @@ import java.util.List;
public interface ProjectReportRepository extends JpaRepository<ProjectReport, Integer> { public interface ProjectReportRepository extends JpaRepository<ProjectReport, Integer> {
ProjectReport findById(int id);
void deleteById(int id);
@Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC limit 1", nativeQuery = true) @Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC limit 1", nativeQuery = true)
ProjectReport latestReport(int projectId); ProjectReport latestReport(int projectId);
@Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC", nativeQuery = true) @Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC", nativeQuery = true)
List<ProjectReport> allProjectReport(int projectId); List<ProjectReport> allProjectReport(int projectId);
@Transactional @Transactional
@Modifying @Modifying
@Query(value = "INSERT INTO project_report(project_name, team_leader, number_of_members, calendar_effort, lack_of_reports, created_at, updated_at, status, project_id, first_date, final_date) VALUES (?1, ?2, ?3, ?4, ?5, CURRENT_DATE(), CURRENT_DATE() ,?6, ?7, ?8, ?9)",nativeQuery = true) @Query(value = "INSERT INTO project_report(project_name, team_leader, number_of_members, calendar_effort, lack_of_reports, created_at, updated_at, project_id, first_date, final_date) VALUES (?1, ?2, ?3, ?4, ?5, CURRENT_DATE(), CURRENT_DATE() ,?6, ?7, ?8)",nativeQuery = true)
void insertProjectReport(String projectName, String teamLeader, int NumberOfMember, int CalendarEffort, int LackOfReport, boolean status, int projectId, String firstDate, String finalDate); void insertProjectReport(String projectName, String teamLeader, int NumberOfMember, int CalendarEffort, int LackOfReport, int projectId, String firstDate, String finalDate);
} }
package com.itsol.quantrivanphong.model; package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.TimeSheet;
import com.itsol.quantrivanphong.model.Project;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -34,9 +31,11 @@ public class Eproject { ...@@ -34,9 +31,11 @@ public class Eproject {
@Column(name = "out_date",nullable = true) @Column(name = "out_date",nullable = true)
private Timestamp outDate; private Timestamp outDate;
@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER) @ManyToOne(fetch = FetchType.EAGER)
private Employee employee; private Employee employee;
@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER) @ManyToOne(fetch = FetchType.EAGER)
private Project project; private Project project;
......
...@@ -38,9 +38,6 @@ public class ProjectReport extends DateAudit { ...@@ -38,9 +38,6 @@ public class ProjectReport extends DateAudit {
@Column(name = "lack_of_reports") @Column(name = "lack_of_reports")
private int lackOfReport; private int lackOfReport;
@Column(name = "status")
private boolean status;
@Column(name = "first_date") @Column(name = "first_date")
private String firstDate; private String firstDate;
......
package com.itsol.quantrivanphong.model; package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.itsol.quantrivanphong.audit.DateAudit; import com.itsol.quantrivanphong.audit.DateAudit;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -39,7 +40,7 @@ public class TimeSheet extends DateAudit { ...@@ -39,7 +40,7 @@ public class TimeSheet extends DateAudit {
@Column(name = "status") @Column(name = "status")
private boolean status; private boolean status;
// @JsonIgnore @JsonIgnore
@ManyToOne(fetch = FetchType.EAGER) @ManyToOne(fetch = FetchType.EAGER)
private Eproject eproject; private Eproject eproject;
} }
package com.itsol.quantrivanphong.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class notification {
private int status;
private String view;
}
...@@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory; import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import javax.persistence.TypedQuery; import javax.persistence.TypedQuery;
import java.io.Serializable; import java.io.Serializable;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
...@@ -45,10 +44,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -45,10 +44,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) { } catch (HibernateException e) {
log.info(e.getMessage()); log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
return list; return list;
} }
...@@ -63,10 +58,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -63,10 +58,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) { } catch (HibernateException e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
log.info(e.getMessage()); log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
} }
...@@ -82,10 +73,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -82,10 +73,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) { } catch (HibernateException e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
log.info(e.getMessage()); log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
return entity; return entity;
} }
...@@ -107,10 +94,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -107,10 +94,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) { } catch (HibernateException e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
log.info(e.getMessage()); log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
return count; return count;
} }
...@@ -131,10 +114,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -131,10 +114,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) { } catch (HibernateException e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
log.info(e.getMessage()); log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
return count; return count;
} }
...@@ -151,10 +130,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -151,10 +130,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (Exception e) { } catch (Exception e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
log.info(e.getMessage()); log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
return entity; return entity;
} }
...@@ -181,10 +156,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -181,10 +156,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) { } catch (HibernateException e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
log.info(e.getMessage()); log.info(e.getMessage());
}finally {
if (entityManager != null) {
entityManager.close();
}
} }
return list; return list;
} }
...@@ -218,27 +189,11 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen ...@@ -218,27 +189,11 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} }
list = query1.getResultList(); list = query1.getResultList();
// số phần tử trong list
// StringBuilder sql2 = new StringBuilder("Select count(*) from ");
// sql2.append(getPersistenceClass());
// if (value != null && property != null) {
// sql2.append(" where ").append(property).append("= ?1");
// }
// TypedQuery<T> query2 = entityManager.createQuery(sql2.toString(),persistenceClass);
// if (value != null) {
// query2.setParameter(1,value);
// }
//
//// trả về size
totalItem = finAllEntity().size(); totalItem = finAllEntity().size();
entityManager.getTransaction().commit(); entityManager.getTransaction().commit();
} catch (HibernateException e) { } catch (HibernateException e) {
entityManager.getTransaction().rollback(); entityManager.getTransaction().rollback();
} finally {
if (entityManager != null) {
entityManager.close();
}
} }
return new Object[]{totalItem, list}; return new Object[]{totalItem, list};
} }
......
...@@ -37,7 +37,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { ...@@ -37,7 +37,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
//Timesheet Of Hieunv //Timesheet Of Hieunv
@Query(value = "SELECT * FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ep.project_id = ?1 AND ts.status = true and ts.created_at like ?2%", nativeQuery = true) @Query(value = "SELECT * FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ep.project_id = ?1 AND ts.status = true and ts.created_at like ?2%", nativeQuery = true)
List<TimeSheet> findAllTimesheetStatusTrue(int projectId, String currentDate); List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate);
@Transactional @Transactional
...@@ -48,7 +48,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { ...@@ -48,7 +48,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
@Transactional @Transactional
@Modifying @Modifying
@Query(value = "update TimeSheet ts set ts.checked = ?1 where ts.id = ?2", nativeQuery = true) @Query(value = "update TimeSheet ts set ts.checked = ?1 where ts.id = ?2", nativeQuery = true)
void updateTimesheetChecked(String checked, int id); void updateTimeSheetChecked(String checked, int id);
@Query(value = "SELECT Count(DISTINCT ts.eproject_id) FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ts.status = false AND ep.project_id = ?1 AND created_at >= ?2 AND created_at <= ?3",nativeQuery = true) @Query(value = "SELECT Count(DISTINCT ts.eproject_id) FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ts.status = false AND ep.project_id = ?1 AND created_at >= ?2 AND created_at <= ?3",nativeQuery = true)
int numberEmployeeLack(int ProjectId, String firstDate, String finalDate); int numberEmployeeLack(int ProjectId, String firstDate, String finalDate);
......
<<<<<<< HEAD
#server.port=8081 #server.port=8081
# =============================== # ===============================
# DATABASE CONNECTION # DATABASE CONNECTION
...@@ -17,6 +18,23 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect ...@@ -17,6 +18,23 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false #spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
#spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext #spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
#server.servlet.session.timeout=30s #server.servlet.session.timeout=30s
=======
server.port=8081
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/quantrivanphong
spring.datasource.username=root
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
server.servlet.session.timeout=30s
>>>>>>> e3332b54ca974d5c2f7700ae82c5db0b6e52667f
# =============================== # ===============================
# SEND EMAIL # SEND EMAIL
# ============================== # ==============================
......
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
\ No newline at end of file
...@@ -36,7 +36,15 @@ ...@@ -36,7 +36,15 @@
<!-- <script src="js/angular-route.js"></script>--> <!-- <script src="js/angular-route.js"></script>-->
<script src="js/angular-ui-router.min.js"></script> <script src="js/angular-ui-router.min.js"></script>
<script src="js/app.js"></script> <script src="js/app.js"></script>
<<<<<<< HEAD
<script src="pages/project/groupproject/groupProjectController.js"></script> <script src="pages/project/groupproject/groupProjectController.js"></script>
=======
<script src="pages/report/reportController.js"></script>
<script src="pages/employee/employeeController.js"></script>
<!-- <script src="pages/project/projectController.js"></script>-->
<script src="pages/leaveform/leaveFormController.js"></script>
<script src="pages/homepage/homeController.js"></script>
>>>>>>> e3332b54ca974d5c2f7700ae82c5db0b6e52667f
<script src="pages/timesheet/timeSheetController.js"></script> <script src="pages/timesheet/timeSheetController.js"></script>
<script src="pages/leaveform/leaveFormController.js"></script> <script src="pages/leaveform/leaveFormController.js"></script>
<script src="pages/leaveform/leaveFormDetailController.js"></script> <script src="pages/leaveform/leaveFormDetailController.js"></script>
......
This diff is collapsed.
<div class="container" style="text-align: center">
<h1>Chào Mừng bạn đến với trang ADMIN</h1>
</div>
\ No newline at end of file
angular.module("myApp").controller("adminController", function($scope, $http,$window) {
console.log("adminController");
});
\ No newline at end of file
<div class="card card-login mx-auto mt-5">
<div class="card-header">Reset Password</div>
<div class="card-body">
<div class="text-center mb-4">
<h4>Lấy lại mật khẩu bằng Email đăng ký?</h4>
</div>
<form>
<div class="form-group">
<div class="form-label-group">
<input type="email" id="inputEmail" class="form-control" placeholder="Enter email address"
required="required" autofocus="autofocus">
<label for="inputEmail">Enter email address</label>
</div>
</div>
<a class="btn btn-primary btn-block" href="login.html">Reset Password</a>
</form>
<div class="text-center">
<a class="d-block small mt-3" ui-sref="register">Đăng ký tài khoản</a>
<a class="d-block small" ui-sref="login">Đăng Nhập</a>
</div>
</div>
</div>
\ No newline at end of file
This diff is collapsed.
angular.module("myApp").controller("loginController", function($scope, $http,$window) {
console.log("loginController");
});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<div class="container">
<div class="row">
<div class="col-md-8">
<div>
<legend>Report List</legend>
</div>
</div>
</div>
</div>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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