Commit 6f855afc authored by đinh thị đầm's avatar đinh thị đầm

Merge branch 'dinhdam'

# Conflicts:
#	src/main/java/com/itsol/quantrivanphong/access/homepage/business/CatalogiBusiness.java
#	src/main/java/com/itsol/quantrivanphong/access/homepage/business/NewsBusiness.java
#	src/main/java/com/itsol/quantrivanphong/access/homepage/controller/CatalogiController.java
#	src/main/java/com/itsol/quantrivanphong/access/homepage/controller/NewsController.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/project/bussiness/ProjectBussiness.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/project/bussiness/ProjectBussinessImpl.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/project/controller/ProjectController.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/projectgroup/bussiness/ProjectGroupBussiness.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/projectgroup/bussiness/ProjectGroupBussinessImpl.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/projectgroup/common/EmployeeRepositoryImpl.java
#	src/main/java/com/itsol/quantrivanphong/manager/project/projectgroup/controller/ProjectGroupController.java
#	src/main/java/com/itsol/quantrivanphong/model/Catalogi.java
#	src/main/java/com/itsol/quantrivanphong/model/Eproject.java
#	src/main/java/com/itsol/quantrivanphong/model/News.java
#	src/main/java/com/itsol/quantrivanphong/report/issue/common/AbstractEntityManagerDao.java
#	src/main/java/com/itsol/quantrivanphong/report/issue/common/GennericeEntityManagerDao.java
#	src/main/java/com/itsol/quantrivanphong/report/leaveform/business/LeaveFormBusiness.java
#	src/main/java/com/itsol/quantrivanphong/report/leaveform/controller/LeaveFormController.java
#	src/main/java/com/itsol/quantrivanphong/report/timesheet/business/TimeSheetBusiness.java
#	src/main/java/com/itsol/quantrivanphong/report/timesheet/controller/TimeSheetController.java
#	src/main/java/com/itsol/quantrivanphong/report/timesheet/repository/TimeSheetRepository.java
#	src/main/resources/public/layout/layout1.html
#	src/main/resources/public/pages/report/employeeListViews.html
#	src/main/resources/public/pages/report/employeeListViews1.html
#	src/main/resources/public/pages/report/reportController.js
#	src/main/resources/public/pages/report/reportPage.html
parents e3332b54 5a3250a9
package com.itsol.quantrivanphong.access.homepage.business;
import com.itsol.quantrivanphong.access.homepage.repository.CatalogiRepository;
import com.itsol.quantrivanphong.exception.ResourceNotFoundException;
import com.itsol.quantrivanphong.model.Catalogi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class CatalogiBusiness {
......@@ -24,4 +24,13 @@ public class CatalogiBusiness {
public Catalogi save(Catalogi catalogi){
return catalogiRepository.save(catalogi);
}
public String deleteCatalogi(int catalogiId){
Catalogi catalogi = catalogiRepository.findCatalogiById(catalogiId);
if(catalogi == null){
throw new ResourceNotFoundException("News" ,"newsId",catalogiId);
}
catalogiRepository.delete(catalogi);
return "ok";
}
}
......@@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class NewsBusiness {
......@@ -62,8 +61,8 @@ public class NewsBusiness {
}
//
public String deleteNews(int newsId,int employeeId){
News news = newsRepository.findByIdAndEmployeeId(newsId,employeeId);
public String deleteNews(int newsId){
News news = newsRepository.findNewsById(newsId);
if(news == null){
throw new ResourceNotFoundException("News" ,"newsId",newsId);
}
......
......@@ -30,9 +30,17 @@ public class CatalogiController {
return catalogi;
}
@PostMapping("/catalogi")
@PostMapping("HR/catalogi")
public Catalogi createCatalogi(@Valid@RequestBody Catalogi catalogi) {
return catalogiBusiness.save(catalogi);
}
@DeleteMapping("HR/catalogi/{catalogiId}")
public ResponseEntity<?> deleteNews(@PathVariable (value = "catalogiId") int catalogiId) {
if(catalogiBusiness.findCatalogiById(catalogiId)== null){
throw new ResourceNotFoundException("News","newsId",catalogiId);
}
return ResponseEntity.ok(catalogiBusiness.deleteCatalogi(catalogiId));
}
}
......@@ -8,9 +8,8 @@ import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness;
import com.itsol.quantrivanphong.model.Catalogi;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.News;
import com.itsol.quantrivanphong.report.leaveform.controller.Notification;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......@@ -51,6 +50,11 @@ public class NewsController {
return newsBusiness.findByCatalogiId(catalogiId);
}
@GetMapping("/catalogi/{catalogiId}/news/{newsId}")
public News getNewsByCatalogiId(@PathVariable(value="catalogiId") int catalogiId,
@PathVariable(value="newsId") int newsId){
return newsBusiness.findNewsByIdAndAndCatalogiId(newsId,catalogiId);
}
// get LatestNews by catalogiId
@GetMapping("/catalogi/{catalogiId}/latestNews")
public List<News> getLatestNews(@PathVariable(value="catalogiId") int catalogiId){
......@@ -70,8 +74,8 @@ public class NewsController {
}
// create news by employeesId, categoriId
@PostMapping("/employees/{employeeId}/catalogies/{catalogiId}/news")
public News createNews(@PathVariable (value = "employeeId") int employeeId,
@PostMapping("/HR/{employeeId}/catalogies/{catalogiId}/news")
public ResponseEntity createNews(@PathVariable (value = "employeeId") int employeeId,
@PathVariable (value = "catalogiId") int catalogiId,
@Valid @RequestBody News news) {
Employee employee = employeeBusiness.findById(employeeId);
......@@ -85,17 +89,15 @@ public class NewsController {
news.setEmployee(employee);
news.setCatalogi(catalogi);
return newsBusiness.save(news);
newsBusiness.save(news);
return ResponseEntity.ok(new Notification(200, "Success"));
}
// Edit news by EmployeeId
@PutMapping("/employees/{employeeId}/news/{newsId}")
public News updateNews(@PathVariable (value = "employeeId") int employeeId,
@PathVariable (value = "newsId") int newsId,
@PutMapping("HR/news/{newsId}")
public News updateNews(@PathVariable (value = "newsId") int newsId,
@Valid @RequestBody News newsRequest) {
if(employeeBusiness.findById(employeeId)==null) {
throw new ResourceNotFoundException("Employee" ,"employeeId",employeeId);
}
if (newsBusiness.findNewsById(newsId)== null) {
throw new ResourceNotFoundException("News", "id", newsId);
}
......@@ -103,12 +105,11 @@ public class NewsController {
}
//delete news by employeeId and newsId
@DeleteMapping("/HR/catagori/{catagoriId}/news/{newsId}")
public ResponseEntity<?> deleteNews(@PathVariable (value = "catagoriId") int catagoriId,
@PathVariable (value = "newsId") int newsId) {
if(newsBusiness.findNewsByIdAndAndCatalogiId(newsId,catagoriId)== null){
@DeleteMapping("HR/news/{newsId}")
public ResponseEntity<?> deleteNews(@PathVariable (value = "newsId") int newsId) {
if(newsBusiness.findNewsById(newsId)== null){
throw new ResourceNotFoundException("News","newsId",newsId);
}
return ResponseEntity.ok(newsBusiness.deleteNews(newsId,catagoriId));
return ResponseEntity.ok(newsBusiness.deleteNews(newsId));
}
}
......@@ -6,7 +6,6 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
@Repository
public interface NewsRepository extends JpaRepository<News, Integer> {
......
......@@ -3,7 +3,6 @@ package com.itsol.quantrivanphong.access.login.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
@Data
@AllArgsConstructor
@NoArgsConstructor
......
......@@ -23,20 +23,6 @@ public class EmailBussiness {
public boolean sendEmail(EmailDTO emailDTO) {
boolean check;
// MimeMessage message = sender.createMimeMessage();
// MimeMessageHelper helper = new MimeMessageHelper(message);
//
//
// try {
// helper.setTo(emailDTO.getRecipientEmail());
// helper.setText(emailDTO.getMessage(),"text/html");
// helper.setSubject(emailDTO.getSubject());
// sender.send(message);
// check = true;
// } catch (Exception e) {
// e.printStackTrace();
// check = false;
// }
// Recipient's email ID needs to be mentioned.
String to = emailDTO.getRecipientEmail();
......
package com.itsol.quantrivanphong.access.register.controller;
import com.itsol.quantrivanphong.exception.InputException;
import com.itsol.quantrivanphong.access.register.bussiness.RegisterBussiness;
import com.itsol.quantrivanphong.access.register.dto.RegisterDTO;
import com.itsol.quantrivanphong.exception.InputException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......
package com.itsol.quantrivanphong.manager.project.project.bussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.report.issue.common.AbstractDaoPage;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import java.util.List;
public interface ProjectBussiness {
// Danh sách dự án phân theo trang
List<ProjectDTO> findProjectPage(String property, Object value, String sortExperssion, String sortDirection, Integer offset, Integer limit);
// Danh sách dự án tất cả các dự án
// Danh sách dự án tất cả các dự án
List<ProjectDTO> findAllProject();
// upload thông tin dự án
String updateProject(ProjectDTO dto);
// thêm dự án mới
String saveProject(ProjectDTO dto);
// tìm kiếm dự án theo id
// upload thông tin dự án
WrapperResult updateProject(ProjectDTO dto);
// thêm dự án mới
WrapperResult saveProject(ProjectDTO dto);
// tìm kiếm dự án theo id
ProjectDTO findByProjectId(Integer id);
// xóa list dự án theo arr ids
String deleteProject(Integer[] ids);
// xóa một project
String deleteProjectById(Integer ids);
WrapperResult deleteProjectById(Integer ids);
AbstractDaoPage<ProjectDTO> getPageProject(int page, int pageSize);
}
......@@ -3,8 +3,13 @@ package com.itsol.quantrivanphong.manager.project.project.bussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.report.issue.common.AbstractDaoPage;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
......@@ -13,22 +18,13 @@ import java.util.List;
@Service
public class ProjectBussinessImpl implements ProjectBussiness {
private Logger logger = Logger.getLogger(ProjectBussinessImpl.class);
private String views = "";
@Autowired
private ProjectRepository projectRepository;
@Override
public List<ProjectDTO> findProjectPage(String property, Object value, String sortExperssion, String sortDirection, Integer offset, Integer limit) {
List<ProjectDTO> projectDTOList = new ArrayList<ProjectDTO>();
Object[] objects = projectRepository.getEntityPage(property,value,sortExperssion,sortDirection,offset,limit);
projectDTOList = lstDTO((List<Project>) objects[1]);
return projectDTOList;
}
@Override
public List<ProjectDTO> findAllProject() {
try {
return lstDTO(projectRepository.finAllEntity());
return lstDTO(projectRepository.findAll());
} catch (Exception e) {
logger.info("Lỗi findAll " + e.getMessage());
}
......@@ -36,17 +32,22 @@ public class ProjectBussinessImpl implements ProjectBussiness {
}
@Override
public String updateProject(ProjectDTO dto) {
public WrapperResult updateProject(ProjectDTO dto) {
String views = null;
int status = 113;
try {
ProjectDTO projectDTO = findByProjectId(dto.getId());
dto.setStartDate(projectDTO.getStartDate());
dto.setEndDate(projectDTO.getEndDate());
if (dto.getStartDate() == null) {
views = "ngày bắt đầu dự án không được null";
} else if (dto.getEndDate() == null) {
views = "ngày dự kiếm kết thúc dự án không được null";
} else if (projectDTO != null) {
ProjectDTO updateProject = modelparseDto(projectRepository.updateEntity(dtoParseModels(dto)));
ProjectDTO updateProject = modelparseDto(projectRepository.save(dtoParseModels(dto)));
if (updateProject != null) {
views = "sửa thành công project";
status = 200;
}
} else {
views = "không tìm thấy project phù hợp";
......@@ -55,11 +56,14 @@ public class ProjectBussinessImpl implements ProjectBussiness {
logger.info("Lỗi update" + e.getMessage());
views = "lỗi update project";
}
return views;
return new WrapperResult(status, views);
}
@Override
public String saveProject(ProjectDTO dto) {
public WrapperResult saveProject(ProjectDTO dto) {
String views = null;
int status = 113;
if (projectRepository.findByName(dto.getName()) == null) {
try {
if (dto.getStartDate() == null) {
views = "ngày bắt đầu dự án không được null";
......@@ -67,20 +71,29 @@ public class ProjectBussinessImpl implements ProjectBussiness {
views = "ngày dự kiếm kết thúc dự án không được null";
} else {
dto.setStatus(0);
projectRepository.saveEntity(dtoParseModels(dto));
// projectRepository.saveEntity(dtoParseModels(dto));
ProjectDTO saveProject = modelparseDto(projectRepository.save(dtoParseModels(dto)));
if (saveProject != null) {
views = "thêm thành công project !";
status = 200;
} else {
views = "thêm project không thành công!";
}
}
} catch (Exception e) {
logger.info("Lỗi insert " + e.getMessage());
views = "thêm project không thành công!";
views = "Lỗi thêm dữ liệu";
}
} else {
views = "Đã tồn tại Dự Án";
}
return views;
return new WrapperResult(status, views);
}
@Override
public ProjectDTO findByProjectId(Integer id) {
try {
ProjectDTO projectDTO = modelparseDto(projectRepository.findByEmtityId(id));
ProjectDTO projectDTO = modelparseDto(projectRepository.findProjectById(id));
if (projectDTO != null) {
return projectDTO;
}
......@@ -90,30 +103,48 @@ public class ProjectBussinessImpl implements ProjectBussiness {
return null;
}
@Override
public String deleteProject(Integer[] ids) {
int count = 0;
count = projectRepository.deleteEntity(ids);
if (count != 0) {
views = "xóa thành công " + count + " project";
public WrapperResult deleteProjectById(Integer id) {
String views = null;
int status = 113;
logger.info("deleteProjectById");
if (findByProjectId(id) != null) {
try {
projectRepository.deleteById(id);
views = "xóa thành công project";
status = 200;
} catch (Exception e) {
logger.info("lỗi :" + e.getMessage());
views = "Lỗi xóa";
}
} else {
views = "project không tồn tại";
views = "dự án không tồn tại không tồn tại";
}
return views;
return new WrapperResult(status, views);
}
@Override
public String deleteProjectById(Integer id) {
logger.info("deleteProjectById");
int count = 0;
count = projectRepository.deleteEntityByID(id);
if (count != 0) {
views = "xóa thành công " + count + " project";
public AbstractDaoPage<ProjectDTO> getPageProject(int page, int pageSize) {
AbstractDaoPage<ProjectDTO> abstractDaoPage = new AbstractDaoPage<ProjectDTO>();
List<Project> lstM = getListPage(page,pageSize);
List<ProjectDTO> listDTO = lstDTO(lstM);
abstractDaoPage.setLstResult(listDTO);
abstractDaoPage.setPage(page);
abstractDaoPage.setMaxPageItem(pageSize);
abstractDaoPage.setTotalItem(findAllProject().size());
abstractDaoPage.setTotalPage((int)Math.ceil((double) abstractDaoPage.getTotalItem()/abstractDaoPage.getMaxPageItem()));
return abstractDaoPage;
}
public List<Project> getListPage(int page, int pageSize) {
Pageable paging = PageRequest.of(page,pageSize);
Page<Project> pagedResult = projectRepository.findAll(paging);
if(pagedResult.hasContent()) {
return pagedResult.getContent();
} else {
views = "project không tồn tại";
return new ArrayList<Project>();
}
return views;
}
public List<ProjectDTO> lstDTO(List<Project> lstModels) {
......
......@@ -3,6 +3,7 @@ package com.itsol.quantrivanphong.manager.project.project.controller;
import com.itsol.quantrivanphong.manager.project.project.bussiness.ProjectBussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......@@ -17,74 +18,32 @@ public class ProjectController {
@Autowired
private ProjectBussiness projectBussiness;
@GetMapping(value = "/danh-sach-du-an/{offset}/{limit}")
public ResponseEntity<List<ProjectDTO>> getProjectPage(@PathVariable("offset") Integer offset,@PathVariable("limit") Integer limit){
return ResponseEntity.ok(projectBussiness.findProjectPage(null,null,null,null,offset,limit));
}
@GetMapping(value = "/danh-sach-du-an")
public ResponseEntity<List<ProjectDTO>> getAllProject(){
return ResponseEntity.ok(projectBussiness.findAllProject());
}
@GetMapping(value = "/danh-sach-du-an/{page}/{pageSize}")
public ResponseEntity getPageProject(@PathVariable("page") int page, @PathVariable("pageSize") int pageSize){
return ResponseEntity.ok(projectBussiness.getPageProject(page,pageSize));
}
@GetMapping(value = "/chi-tiet-du-an/{id}",produces = SystemConstants.TYPE_JSON)
public ResponseEntity<ProjectDTO> findProjectId(@PathVariable Integer id){
public ResponseEntity findProjectId(@PathVariable Integer id){
ProjectDTO projectDTO = projectBussiness.findByProjectId(id);
return ResponseEntity.ok(projectDTO);
}
@PostMapping(value = "/them-du-an",consumes = SystemConstants.TYPE_JSON)
public ResponseEntity saveProject(@RequestBody ProjectDTO projectDTO){
String views = projectBussiness.saveProject(projectDTO);
return ResponseEntity.ok(new WrapperResult(200, views));
WrapperResult wrapperResult = projectBussiness.saveProject(projectDTO);
return ResponseEntity.ok(wrapperResult);
}
@PutMapping(value = "/sua-du-an",consumes = SystemConstants.TYPE_JSON)
public ResponseEntity updateProject(@RequestBody ProjectDTO projectDTO){
String views = projectBussiness.updateProject(projectDTO);
return ResponseEntity.ok(new WrapperResult(200, views));
}
@DeleteMapping(value = "/xoa-danh-sach-du-an",consumes = SystemConstants.TYPE_JSON)
public ResponseEntity deleteProject(@RequestBody ProjectDTO projectDTO){
String views ="";
if(projectDTO.getIds()!=null){
views = projectBussiness.deleteProject(projectDTO.getIds());
}else{
views="không tồn tại";
}
return ResponseEntity.ok(views);
WrapperResult wrapperResult = projectBussiness.updateProject(projectDTO);
return ResponseEntity.ok(wrapperResult);
}
@DeleteMapping(value = "/xoa-du-an",consumes = SystemConstants.TYPE_JSON)
public ResponseEntity deleteProjectById(@RequestBody ProjectDTO projectDTO){
String views ="";
if(projectDTO.getId()!=null){
views = projectBussiness.deleteProjectById(projectDTO.getId());
}else{
views="không tồn tại";
}
return ResponseEntity.ok(new WrapperResult(200, views));
}
static class WrapperResult{
private int status;
private String message;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public WrapperResult(int status, String message) {
this.status = status;
this.message = message;
}
WrapperResult wrapperResult = projectBussiness.deleteProjectById(projectDTO.getId());
return ResponseEntity.ok(wrapperResult);
}
}
package com.itsol.quantrivanphong.manager.project.project.repository;
import com.itsol.quantrivanphong.report.issue.common.GennericeEntityManagerDao;
import com.itsol.quantrivanphong.model.Project;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectRepository extends JpaRepository<Project,Integer> {
Project findProjectById(Integer id);
Project findProjectByName(String nameProject);
Project findByName(String nameProject);
public interface ProjectRepository extends GennericeEntityManagerDao<Integer, Project> {
}
package com.itsol.quantrivanphong.manager.project.project.repository;
import com.itsol.quantrivanphong.report.issue.common.AbstractEntityManagerDao;
import com.itsol.quantrivanphong.model.Project;
import org.springframework.stereotype.Repository;
@Repository
public class ProjectRepositoryImpl extends AbstractEntityManagerDao<Integer, Project> implements ProjectRepository{
}
package com.itsol.quantrivanphong.manager.project.projectgroup.bussiness;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import java.util.List;
public interface ProjectGroupBussiness {
// chi tiết nhóm dự án
// chi tiết nhóm dự án
List<ProjectGroupDTO> getGroupByProjectId(Integer projectId);
// thêm thành viên vào nhóm dự án
String saveEmployeeProject(ProjectGroupDTO dto);
// sửa thông tin nhóm dự án, các thành viên out nhóm
String updateEmployeeProject(ProjectGroupDTO dto);
// Tìm kiếm thành viên trong nhóm theo tên đăng nhập
ProjectGroupDTO findEmployeeProject(String username);
// thành viên out dự án
String outProjectGroup(Integer[]ids);
// thành viên out dự án
String deleteEmployeeProject(Integer id);
// thêm thành viên vào nhóm dự án
WrapperResult saveEmployeeProject(ProjectGroupDTO dto);
// sửa thông tin nhóm dự án, các thành viên out nhóm
WrapperResult updateEmployeeProject(ProjectGroupDTO dto);
// thành viên out dự án
WrapperResult deleteEmployeeProject(Integer id);
WrapperResult updateEmployeeOutGroup(ProjectGroupDTO dto);
ProjectGroupDTO findEmployeeProjectById(Integer id);
}
package com.itsol.quantrivanphong.manager.project.projectgroup.bussiness;
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.EmployeeProject;
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.repository.ProjectGroupRepository;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.util.List;
@Service
public class ProjectGroupBussinessImpl implements ProjectGroupBussiness {
Logger logger = Logger.getLogger(ProjectGroupBussinessImpl.class);
private Logger logger = Logger.getLogger(ProjectGroupBussinessImpl.class);
@Autowired
private ProjectGroupRepository projectGroupRepository;
......@@ -23,94 +26,127 @@ public class ProjectGroupBussinessImpl implements ProjectGroupBussiness {
private ProjectRepository projectRepository;
@Autowired
private EmployeeRepositoryImpl employeeRepository;
private ProjectGroupUtils utils;
@Autowired
private ProjectGroupUtils utils;
private EmployeeProject employeeProject;
@Override
public List<ProjectGroupDTO> getGroupByProjectId(Integer projectId) {
logger.info("getGroupByProjectId");
Project project = projectRepository.findByEmtityId(projectId);
if (project != null) {
List<Eproject> lstModels = projectGroupRepository.finByProperty("project", project, "joinDate", "DESC");
List<Eproject> lstModels = projectGroupRepository.findByProjectId(projectId);
List<ProjectGroupDTO> lstDTO = utils.getListDTO(lstModels);
return lstDTO;
}
return null;
}
public boolean checkEmployeeInGroupProject(ProjectGroupDTO dto){
List<Eproject> lst = projectGroupRepository.finByProperty("project",projectRepository.findByEmtityId(dto.getProjectId()),null,null);
for (Eproject eproject:lst) {
if(eproject.getEmployee().getId()==dto.getUserId()){
public boolean checkEmployeeInGroupProject(ProjectGroupDTO dto) {
if (dto.getProjectId()!=null) {
List<Eproject> lst = projectGroupRepository.findByProjectId(dto.getProjectId());
for (Eproject eproject : lst) {
if (eproject.getEmployee().getUsername().equals(dto.getUserName())) {
return true;
}
}
}
return false;
}
@Override
public String saveEmployeeProject(ProjectGroupDTO dto) {
logger.info("saveEmployeeProject");
public WrapperResult saveEmployeeProject(ProjectGroupDTO dto) {
String views = "";
if(!checkEmployeeInGroupProject(dto)) {
int status = 113;
logger.info("saveEmployeeProject");
Employee employee = employeeProject.findByUsername(dto.getUserName());
if (employee == null) {
views = "Nhân viên không tồn tại !";
} else if (!checkEmployeeInGroupProject(dto)) {
try {
projectGroupRepository.saveEntity(utils.Model(dto));
dto.setStatus(1);
dto.setUserId(employee.getId());
dto.setJoinDate(new Timestamp(System.currentTimeMillis()));
Eproject eproject = projectGroupRepository.save(utils.Model(dto));
if (eproject != null) {
views = "thêm thành công nhân viên vào nhóm dự án";
} catch (Exception e) {
status = 200;
} else {
views = "thêm không thành công!";
}
}else {
} catch (Exception e) {
logger.info("Lỗi " + e.getMessage());
}
} else {
status = 113;
views = "thành viên đã tồn tại";
}
return views;
return new WrapperResult(status, views);
}
@Override
public String updateEmployeeProject(ProjectGroupDTO dto) {
public WrapperResult updateEmployeeProject(ProjectGroupDTO dto) {
String views = "";
int status = 113;
logger.info("updateEmployeeProject");
String views="";
Eproject eproject = projectGroupRepository.findByEmtityId(dto.getId());
if(eproject!=null){
Eproject updateProjectGroup = projectGroupRepository.updateEntity(utils.Model(dto));
if(updateProjectGroup!=null){
views = "Sửa thành công";
}
}else{
Eproject eproject = projectGroupRepository.findEprojectById(dto.getId());
if (eproject != null) {
eproject.setPosition(dto.getPosition());
Eproject updateProjectGroup = projectGroupRepository.save(eproject);
if (updateProjectGroup != null) {
views = "cập nhật chức vụ thành viên thành công";
status = 200;
}
} else {
views = "đối tượng không tồn tại";
}
return null;
return new WrapperResult(status, views);
}
@Override
public ProjectGroupDTO findEmployeeProject(String username) {
public ProjectGroupDTO findEmployeeProjectById(Integer id) {
try {
ProjectGroupDTO projectGroupDTO = utils.DTO(projectGroupRepository.findEprojectById(id));
if (projectGroupDTO != null) {
return projectGroupDTO;
}
} catch (Exception e) {
logger.info("Lỗi update EProject " + e.getMessage());
}
return null;
}
@Override
public String outProjectGroup(Integer[] ids) {
logger.info("outProjectGroup");
public WrapperResult deleteEmployeeProject(Integer id) {
String views = "";
int count=0;
count = projectGroupRepository.deleteEntity(ids);
if(count!=0){
views="Bạn đã cho "+count+" thoát ra khỏi nhóm";
}else{
views=" thành viên không tồn tại";
int status = 113;
logger.info("deleteEmployeeProject");
if (projectGroupRepository.findEprojectById(id) != null) {
projectGroupRepository.deleteById(id);
views = "Bạn đã cho thoát ra khỏi nhóm";
status = 200;
} else {
views = "Thành viên không tồn tại trong nhóm";
}
return views;
return new WrapperResult(status, views);
}
@Override
public String deleteEmployeeProject(Integer id) {
logger.info("deleteEmployeeProject");
public WrapperResult updateEmployeeOutGroup(ProjectGroupDTO dto) {
String views = "";
int count=0;
count = projectGroupRepository.deleteEntityByID(id);
if(count!=0){
views="Bạn đã cho "+count+" thoát ra khỏi nhóm";
}else{
views=" thành viên không tồn tại";
}
return views;
int status = 113;
logger.info("updateEmployeeOutGroup");
Eproject eproject = projectGroupRepository.findEprojectById(dto.getId());
if (eproject != null) {
eproject.setStatus(2);
eproject.setOutDate(new Timestamp(System.currentTimeMillis()));
Eproject updateProjectGroup = projectGroupRepository.save(eproject);
if (updateProjectGroup != null) {
views = "thành viên đã out nhóm";
status = 200;
}
} else {
views = "đối tượng không tồn tại";
}
return new WrapperResult(status, views);
}
}
package com.itsol.quantrivanphong.manager.project.projectgroup.common;
import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EmployeeProject extends JpaRepository<Employee,Integer> {
Employee findEmployeeById(Integer employeeId);
Employee findByUsername(String username);
}
package com.itsol.quantrivanphong.manager.project.projectgroup.common;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.report.issue.common.AbstractEntityManagerDao;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
@Service
public class EmployeeRepositoryImpl extends AbstractEntityManagerDao<Integer, Employee> {
private Logger logger = Logger.getLogger(EmployeeRepositoryImpl.class);
public Employee getEmployeeById(Integer employeeId) {
try {
Employee employee = findByEmtityId(employeeId);
if (employee != null) {
return employee;
}
} catch (Exception e) {
logger.info("( Lỗi tìm employee theo ID: )" + e.getMessage());
}
return null;
}
}
package com.itsol.quantrivanphong.manager.project.projectgroup.common;
import com.itsol.quantrivanphong.access.login.dto.EmployeeDTO;
import com.itsol.quantrivanphong.model.Employee;
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.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.Project;
import org.apache.log4j.Logger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -18,7 +18,7 @@ import java.util.List;
public class ProjectGroupUtils {
private static Logger logger = Logger.getLogger(ProjectGroupUtils.class);
@Autowired
private EmployeeRepositoryImpl employeeRepository;
private EmployeeProject employeeRepository;
@Autowired
private ProjectRepository projectRepository;
......@@ -29,8 +29,9 @@ public class ProjectGroupUtils {
model.setJoinDate(dto.getJoinDate());
model.setOutDate(dto.getOutDate());
model.setPosition(dto.getPosition());
model.setStatus(dto.getStatus());
try{
Employee findEmployee = employeeRepository.getEmployeeById(dto.getUserId());
Employee findEmployee = employeeRepository.findEmployeeById(dto.getUserId());
if(findEmployee!=null){
model.setEmployee(findEmployee);
}
......@@ -38,7 +39,7 @@ public class ProjectGroupUtils {
logger.info("(Lỗi không tìm thấy Employee) "+e.getMessage());
}
try{
Project project = projectRepository.findByEmtityId(dto.getProjectId());
Project project = projectRepository.findProjectById(dto.getProjectId());
if(project!=null){
model.setProject(project);
}
......
......@@ -2,13 +2,11 @@ package com.itsol.quantrivanphong.manager.project.projectgroup.controller;
import com.itsol.quantrivanphong.manager.project.projectgroup.bussiness.ProjectGroupBussiness;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
public class ProjectGroupController {
......@@ -17,64 +15,40 @@ public class ProjectGroupController {
// thông tin của 1 nhóm dư án theo id của dự án
// Team lead,Hr
@GetMapping(value = "/thong-tin-du-an/{id}", produces = SystemConstants.TYPE_JSON)
public ResponseEntity<List<ProjectGroupDTO>> getOneProjectGroup(@PathVariable("id") Integer projectId) {
@GetMapping(value = "/thong-tin-du-an/{id}")
public ResponseEntity getOneProjectGroup(@PathVariable("id") Integer projectId) {
return ResponseEntity.ok(projectGroupBussiness.getGroupByProjectId(projectId));
}
@GetMapping(value = "/chi-tiet-thanh-vien-du-an/{id}")
public ResponseEntity getOneEmployeeProject(@PathVariable("id") Integer employeeProjectId) {
return ResponseEntity.ok(projectGroupBussiness.findEmployeeProjectById(employeeProjectId));
}
// thêm thành viên vào dự án
// hr,manager, teamlead thêm thành viên
@PostMapping(value = "/them-thanh-vien", consumes = SystemConstants.TYPE_JSON, produces = SystemConstants.TYPE_JSON)
@PostMapping(value = "/them-thanh-vien")
public ResponseEntity addMemberProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
String views = projectGroupBussiness.saveEmployeeProject(projectGroupDTO);
return ResponseEntity.ok(new WrapperResult(200, views));
WrapperResult wrapperResult = projectGroupBussiness.saveEmployeeProject(projectGroupDTO);
return ResponseEntity.ok(wrapperResult);
}
// cập nhật thông tin thành viên
// manager cập nhật chức vụ cho nhân viên vào xét duyệt vào dự án
@PutMapping(value = "/cap-nhat-thong-tin-thanh-vien",consumes = SystemConstants.TYPE_JSON, produces = SystemConstants.TYPE_JSON)
public ResponseEntity updateMemberProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
String views = projectGroupBussiness.updateEmployeeProject(projectGroupDTO);
return ResponseEntity.ok(views);
@PutMapping(value = "/cap-nhat-chuc-vu-thanh-vien")
public ResponseEntity updatePositionProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
WrapperResult wrapperResult = projectGroupBussiness.updateEmployeeProject(projectGroupDTO);
return ResponseEntity.ok(wrapperResult);
}
// xóa thành viên ra khỏi dự án
@DeleteMapping(value = "/thanh-vien-out-du-an")
public ResponseEntity deleteMembersProject(@RequestBody ProjectGroupDTO projectGroupDTO){
String views = projectGroupBussiness.outProjectGroup(projectGroupDTO.getIds());
return ResponseEntity.ok(views);
@PutMapping(value = "/thanh-vien-out-nhom")
public ResponseEntity updateMemberOutProject(@RequestBody ProjectGroupDTO projectGroupDTO) {
WrapperResult wrapperResult = projectGroupBussiness.updateEmployeeOutGroup(projectGroupDTO);
return ResponseEntity.ok(wrapperResult);
}
@DeleteMapping(value = "/xoa-thanh-vien-du-an")
public ResponseEntity deleteMemberProject(@RequestBody ProjectGroupDTO projectGroupDTO){
String views = projectGroupBussiness.deleteEmployeeProject(projectGroupDTO.getId());
return ResponseEntity.ok(new WrapperResult(200, views));
}
static class WrapperResult{
private int status;
private String message;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public WrapperResult(int status, String message) {
this.status = status;
this.message = message;
}
WrapperResult wrapperResult = projectGroupBussiness.deleteEmployeeProject(projectGroupDTO.getId());
return ResponseEntity.ok(wrapperResult);
}
}
......@@ -19,11 +19,11 @@ public class ProjectGroupDTO {
private Timestamp joinDate;
// ngày ra dự án
private Timestamp outDate;
private int status;
private Integer userId;
private Integer projectId;
private String userName;
private String nameProject;
private EmployeeDTO employeeDTO;
private ProjectDTO projectDTO;
private Integer[]ids;
}
package com.itsol.quantrivanphong.manager.project.projectgroup.repository;
import com.itsol.quantrivanphong.report.issue.common.GennericeEntityManagerDao;
import com.itsol.quantrivanphong.model.Eproject;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProjectGroupRepository extends GennericeEntityManagerDao<Integer, Eproject> {
import java.util.List;
public interface ProjectGroupRepository extends JpaRepository<Eproject,Integer> {
List<Eproject> findByProjectId(Integer projectId);
Eproject findEprojectById(Integer eProjectId);
}
package com.itsol.quantrivanphong.manager.project.projectgroup.repository;
import com.itsol.quantrivanphong.report.issue.common.AbstractEntityManagerDao;
import com.itsol.quantrivanphong.model.Eproject;
import org.springframework.stereotype.Repository;
@Repository
public class ProjectGroupRepositoryImpl extends AbstractEntityManagerDao<Integer, Eproject> implements ProjectGroupRepository {
}
package com.itsol.quantrivanphong.manager.project;
public class test {
}
package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.itsol.quantrivanphong.audit.DateAudit;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import javax.persistence.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = {"createdAt", "updatedAt"},
allowGetters = true)
@Table(name = "catalogi")
public class Catalogi extends DateAudit {
public class Catalogi {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
......@@ -37,8 +29,10 @@ public class Catalogi extends DateAudit {
@Column(name = "descriptions")
private String descriptions;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "catalogi")
private List<News> news = new ArrayList<>();
}
......@@ -21,25 +21,27 @@ public class Eproject {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private int id;
// chức vụ trong project
// chức vụ trong project
@Column(name = "position", nullable = false)
private String position;
//ngày vào dự án
//ngày vào dự án
@Column(name = "join_date",nullable =false)
private Timestamp joinDate;
// ngày ra dự án
// ngày ra dự án
@Column(name = "out_date",nullable = true)
private Timestamp outDate;
@JsonIgnore
@Column(name = "status",nullable = false)
private int status;
@ManyToOne(fetch = FetchType.EAGER)
private Employee employee;
@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER)
private Project project;
@JsonIgnore
@OneToMany(mappedBy = "eproject", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<TimeSheet> timeSheetList = new ArrayList<>();
}
package com.itsol.quantrivanphong.model;
import com.itsol.quantrivanphong.model.Project;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "issues")
public class Issues {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private int id;
// tiêu đề liên quan
private Integer id;
// tiêu đề liên quan
@Column(name = "title")
private String title;
//nội dung
//nội dung
@Column(name = "content")
private String actionCode;
// trạng thái vấn đề đó trong project
// trạng thái vấn đề đó trong project
@Column(name = "status")
private boolean status;
private int status;
@Column(name = "startdate")
private Timestamp startDate;
@ManyToOne(fetch = FetchType.EAGER)
private Project project;
@JsonIgnore
@OneToMany(mappedBy = "issues", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<IssuesComment> issuesCommentList = new ArrayList<>();
}
package com.itsol.quantrivanphong.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.sql.Timestamp;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "issuescomment")
public class IssuesComment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Integer id;
//nội dung
@Column(name = "content")
private String contentIssuse;
@Column(name = "usercreate")
private String userCreate;
@Column(name = "createdate")
private Timestamp createDate;
@ManyToOne(fetch = FetchType.EAGER)
private Issues issues;
}
......@@ -2,6 +2,7 @@ package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -14,6 +15,7 @@ import java.util.List;
@NoArgsConstructor
@Entity
@Table(name = "leave_type")
@Builder
public class LeaveType {
@Id
......
......@@ -17,7 +17,7 @@ import javax.persistence.*;
@AllArgsConstructor
@NoArgsConstructor
@EntityListeners(AuditingEntityListener.class)
@JsonIgnoreProperties(value = {"createdAt", "updatedAt"},allowGetters = true)
@JsonIgnoreProperties(value = {"createdAt", "updatedAt"}, allowGetters = true)
@Table(name = "news")
public class News extends DateAudit {
......@@ -47,12 +47,10 @@ public class News extends DateAudit {
@JsonIgnore
private Catalogi catalogi;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "user_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
@JsonIgnore
private Employee employee;
@ManyToOne(fetch = FetchType.EAGER)
private Employee employee;
}
......@@ -18,25 +18,26 @@ import java.util.List;
@Table(name = "project")
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Integer id;
// tên project
// tên project
@Column(name = "name", nullable = false)
private String name;
//mô tả ngắn
//mô tả ngắn
@Column(name = "descriptions")
private String descriptions;
//ngày bắt đầu của dự án
//ngày bắt đầu của dự án
@Column(name = "start_date", nullable = false)
private Timestamp startDate;
//ngày kết thúc dự án
//ngày kết thúc dự án
@Column(name = "end_date")
private Timestamp endDate;
//trạng thái
//trạng thái
@Column(name = "status",nullable = false)
private Integer status;
......
package com.itsol.quantrivanphong.report.issue.bussiness;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository;
import com.itsol.quantrivanphong.model.Issues;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import com.itsol.quantrivanphong.report.issue.dto.IssueDTO;
import com.itsol.quantrivanphong.report.issue.repository.IssueRepository;
import org.apache.log4j.Logger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
@Service
public class IssueBussinesImpl implements IssueBussiness {
Logger logger = Logger.getLogger(IssueBussinesImpl.class);
@Autowired
private IssueRepository issueRepository;
@Autowired
private ProjectRepository projectRepository;
@Override
public List<Issues> getAllIssue() {
return issueRepository.findAll();
}
@Override
public WrapperResult saveIssue(IssueDTO issueDTO) {
String views = null;
int status = 113;
try {
issueDTO.setStatus(0);
issueDTO.setStartDate(new Timestamp(System.currentTimeMillis()));
Issues saveIssues = issueRepository.save(dtoParseModels(issueDTO));
if (saveIssues != null) {
views = "thêm thành công Issues !";
status = 200;
} else {
views = "thêm Issues không thành công!";
}
} catch (Exception e) {
logger.info("Lỗi insert " + e.getMessage());
views = "Lỗi thêm dữ liệu";
}
return new WrapperResult(status, views);
}
@Override
public WrapperResult updateIssue(IssueDTO issueDTO) {
String views = null;
int status = 113;
try {
Issues issues = issueRepository.findIssuesById(issueDTO.getId());
if (issues != null) {
if (issues.getStatus() == 0) {
issues.setStatus(1);
}else{
issues.setStatus(0);
}
Issues saveIssues = issueRepository.save(issues);
if (saveIssues != null) {
views = "Cập nhật thành công Issues !";
status = 200;
} else {
views = "không thành công!";
}
} else {
views = "Issue không tồn tại!";
}
} catch (Exception e) {
logger.info("Lỗi Cập nhật " + e.getMessage());
views = "Lỗi Cập nhật dữ liệu";
}
return new WrapperResult(status, views);
}
@Override
public WrapperResult deleteIssue(IssueDTO issueDTO) {
String views = null;
int status = 113;
try {
Issues issues = issueRepository.findIssuesById(issueDTO.getId());
if (issues != null) {
issueRepository.deleteById(issueDTO.getId());
views = "Xóa thành công Issues !";
status = 200;
} else {
views = "Issue không tồn tại!";
}
} catch (Exception e) {
logger.info("Lỗi Delete " + e.getMessage());
views = "Lỗi xóa dữ liệu";
}
return new WrapperResult(status, views);
}
@Override
public Issues findIssueById(Integer id) {
return issueRepository.findIssuesById(id);
}
public IssueDTO modelsParseDTO(Issues models) {
IssueDTO issueDTO = new IssueDTO();
BeanUtils.copyProperties(models, issueDTO);
return issueDTO;
}
public Issues dtoParseModels(IssueDTO dto) {
Issues issues = new Issues();
BeanUtils.copyProperties(dto, issues);
issues.setProject(projectRepository.findProjectById(dto.getProjectId()));
return issues;
}
public List<IssueDTO> lstModel(List<Issues> lstModel) {
if (lstModel.size() != 0 && !lstModel.isEmpty()) {
List<IssueDTO> lstDTO = new ArrayList<IssueDTO>();
for (Issues issues : lstModel) {
lstDTO.add(modelsParseDTO(issues));
}
return lstDTO;
}
return null;
}
}
package com.itsol.quantrivanphong.report.issue.bussiness;
import com.itsol.quantrivanphong.model.Issues;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import com.itsol.quantrivanphong.report.issue.dto.IssueDTO;
import java.util.List;
public interface IssueBussiness {
List<Issues> getAllIssue();
WrapperResult saveIssue(IssueDTO issueDTO);
WrapperResult updateIssue(IssueDTO issueDTO);
WrapperResult deleteIssue(IssueDTO issueDTO);
Issues findIssueById(Integer id);
}
package com.itsol.quantrivanphong.report.issue.common;
import java.util.ArrayList;
import java.util.List;
public class AbstractDaoPage<T> {
private List<T> lstResult = new ArrayList<T>();
// Số page đang đứng
private int page;
// Tổng sô page trong 1 item
private Integer maxPageItem;
// Tổng số page hiện tại
private int totalPage;
// Tổng số item
private int totalItem;
private int Count;
public List<T> getLstResult() {
return lstResult;
}
public void setLstResult(List<T> lstResult) {
this.lstResult = lstResult;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public Integer getMaxPageItem() {
return maxPageItem;
}
public void setMaxPageItem(Integer maxPageItem) {
this.maxPageItem = maxPageItem;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalItem() {
return totalItem;
}
public void setTotalItem(int totalItem) {
this.totalItem = totalItem;
}
public int getCount() {
return (lstResult!=null)?lstResult.size():0;
}
}
package com.itsol.quantrivanphong.report.issue.common;
import java.io.Serializable;
import java.util.List;
public interface GennericeEntityManagerDao<ID extends Serializable,T> {
List<T> finAllEntity();
void saveEntity(T entity);
T updateEntity(T entity);
Integer deleteEntity(ID[] ids);
Integer deleteEntityByID(Integer id);
T findByEmtityId(ID id);
List<T> finByProperty(String property, Object value, String sortExperssion, String sortDirection);
Object[] getEntityPage(String property, Object value, String sortExperssion, String sortDirection,Integer offset, Integer limit);
// Integer getCount();
}
package com.itsol.quantrivanphong.report.issue.common;
import java.util.List;
public class WrapperResultObject {
private int status;
private String message;
private List<String> lstRole;
private String Role;
public String getRole() {
return Role;
}
public void setRole(String role) {
Role = role;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<String> getLstRole() {
return lstRole;
}
public void setLstRole(List<String> lstRole) {
this.lstRole = lstRole;
}
public WrapperResultObject(int status, String message, List<String> lstRole) {
this.status = status;
this.message = message;
this.lstRole = lstRole;
}
public WrapperResultObject(int status, String message, List<String> lstRole, String role) {
this.status = status;
this.message = message;
this.lstRole = lstRole;
Role = role;
}
}
package com.itsol.quantrivanphong.report.issue.controller;
import com.itsol.quantrivanphong.model.Issues;
import com.itsol.quantrivanphong.report.issue.bussiness.IssueBussiness;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import com.itsol.quantrivanphong.report.issue.dto.IssueDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
public class IssueController {
@Autowired
private IssueBussiness issueBussiness;
@GetMapping(value = "/danh-sach-issues")
public ResponseEntity getAllIssue(){
return ResponseEntity.ok(issueBussiness.getAllIssue());
}
@GetMapping(value = "/chi-tiet-issues/{id}")
public ResponseEntity getIssueById(@PathVariable("id")Integer id){
Issues issues = issueBussiness.findIssueById(id);
if(issues!=null){
return ResponseEntity.ok(issues);
}
return ResponseEntity.ok("Issues không tồn tại");
}
@PostMapping(value = "/them-issues")
public ResponseEntity saveIssue(@RequestBody IssueDTO issueDTO){
WrapperResult wrapperResult = issueBussiness.saveIssue(issueDTO);
return ResponseEntity.ok(wrapperResult);
}
@PutMapping(value = "/sua-issues")
public ResponseEntity editIssue(@RequestBody IssueDTO issueDTO){
WrapperResult wrapperResult = issueBussiness.updateIssue(issueDTO);
return ResponseEntity.ok(wrapperResult);
}
@DeleteMapping(value = "/xoa-issues")
public ResponseEntity deleteIssue(@RequestBody IssueDTO issueDTO){
WrapperResult wrapperResult = issueBussiness.deleteIssue(issueDTO);
return ResponseEntity.ok(wrapperResult);
}
}
package com.itsol.quantrivanphong.report.issue.dto;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.sql.Timestamp;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IssueDTO {
private Integer id;
private String title;
private String actionCode;
private Timestamp startDate;
private int status;
private Integer projectId;
private ProjectDTO projectDTO;
}
package com.itsol.quantrivanphong.report.issue.repository;
import com.itsol.quantrivanphong.report.issue.common.GennericeEntityManagerDao;
import com.itsol.quantrivanphong.model.Issues;
import org.springframework.data.jpa.repository.JpaRepository;
public interface IssueRepository extends GennericeEntityManagerDao<Integer, Issues> {
public interface IssueRepository extends JpaRepository<Issues, Integer> {
Issues findIssuesById(Integer id);
}
package com.itsol.quantrivanphong.report.issue.repository;
import com.itsol.quantrivanphong.report.issue.common.AbstractEntityManagerDao;
import com.itsol.quantrivanphong.model.Issues;
import org.springframework.stereotype.Repository;
@Repository
public class IssueRepositoryImpl extends AbstractEntityManagerDao<Integer, Issues> implements IssueRepository{
}
package com.itsol.quantrivanphong.report.issue;
public class test {
}
......@@ -6,7 +6,7 @@ import com.itsol.quantrivanphong.model.LeaveForm;
import com.itsol.quantrivanphong.model.LeaveType;
import com.itsol.quantrivanphong.report.leaveform.dto.LeaveFormDTO;
import com.itsol.quantrivanphong.report.leaveform.repository.LeaveFormRepository;
import com.itsol.quantrivanphong.report.leaveform.repository.LeaveTypeRepository;
import com.itsol.quantrivanphong.report.leavetype.repository.LeaveTypeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -135,4 +135,8 @@ public class LeaveFormBusiness {
public LeaveForm showLeaveFormById(int id) {
return leaveFormRepository.findLeaveFormById(id);
}
public List<LeaveType> getLeaveTypeList() {
return leaveTypeRepository.findAll();
}
}
package com.itsol.quantrivanphong.report.leaveform.controller;
import com.itsol.quantrivanphong.exception.InputException;
import com.itsol.quantrivanphong.model.LeaveForm;
import com.itsol.quantrivanphong.model.LeaveType;
import com.itsol.quantrivanphong.report.leaveform.business.LeaveFormBusiness;
import com.itsol.quantrivanphong.report.leaveform.dto.LeaveFormDTO;
import com.itsol.quantrivanphong.model.LeaveForm;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......@@ -76,4 +76,9 @@ public class LeaveFormController {
public ResponseEntity<LeaveForm> showLeaveFormById(@PathVariable int id) {
return ResponseEntity.ok(leaveFormBusiness.showLeaveFormById(id));
}
@GetMapping(path = "/leaveType/getAll")
public ResponseEntity<List<LeaveType>> getAllLeaveType() {
return ResponseEntity.ok(leaveFormBusiness.getLeaveTypeList());
}
}
package com.itsol.quantrivanphong.report.leavetype.business;
import com.itsol.quantrivanphong.model.LeaveType;
import com.itsol.quantrivanphong.report.leavetype.dto.LeaveTypeDTO;
import com.itsol.quantrivanphong.report.leavetype.repository.LeaveTypeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class LeaveTypeBusiness {
@Autowired
LeaveTypeRepository leaveTypeRepository;
public String addLeaveType(LeaveTypeDTO leaveTypeDTO) {
String message;
LeaveType leaveType = leaveTypeRepository.save(LeaveType.builder()
.name(leaveTypeDTO.getName())
.descriptions(leaveTypeDTO.getDescriptions())
.status(true)
.build());
if (leaveType != null) {
message = "Insert leave type success";
} else {
message = "Insert leave type failed";
}
return message;
}
@Transactional
public String deleteLeaveType(int leaveTypeId) {
String message;
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leaveTypeId);
if (leaveType != null) {
leaveTypeRepository.delete(leaveType);
if (leaveTypeRepository.findLeaveTypeById(leaveTypeId) != null) {
message = "Delete failed!";
} else {
message = "Delete success!";
}
} else {
message = "Leave Form does not exist";
}
return message;
}
@Transactional
public String updateLeaveType(LeaveTypeDTO leaveTypeDTO) {
String message;
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leaveTypeDTO.getId());
if (leaveType != null) {
int i = leaveTypeRepository.updateLeaveType(leaveTypeDTO.getName(), leaveTypeDTO.getDescriptions(), leaveTypeDTO.getId());
if (i == 1) {
message = "Update success";
} else {
message = "Update failed";
}
} else {
message = "Leave Type does not exist";
}
return message;
}
public List<LeaveType> getLeaveTypeList() {
return leaveTypeRepository.findAll();
}
}
package com.itsol.quantrivanphong.report.leavetype.controller;
import com.itsol.quantrivanphong.exception.InputException;
import com.itsol.quantrivanphong.model.LeaveType;
import com.itsol.quantrivanphong.report.leaveform.controller.Notification;
import com.itsol.quantrivanphong.report.leavetype.business.LeaveTypeBusiness;
import com.itsol.quantrivanphong.report.leavetype.dto.LeaveTypeDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping(path = "/leavetype")
public class LeaveTypeController {
@Autowired
LeaveTypeBusiness leaveTypeBusiness;
@PostMapping(path = "/add", consumes = "application/json", produces = "application/json")
public ResponseEntity addLeaveForm(@RequestBody LeaveTypeDTO leaveTypeDTO) {
String message;
try {
if (leaveTypeDTO.getName().trim().equals("")) throw new InputException("Tên không được để trống");
if (leaveTypeDTO.getDescriptions().trim().equals("")) throw new InputException("Mô tả không được để trống");
message = leaveTypeBusiness.addLeaveType(leaveTypeDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(new Notification(200, message));
}
@DeleteMapping("/delete/{leaveTypeId}")
public ResponseEntity deleteLeaveForm(@PathVariable int leaveTypeId) {
return ResponseEntity.ok(new Notification(200, leaveTypeBusiness.deleteLeaveType(leaveTypeId)));
}
@PostMapping(path = "/update", consumes = "application/json", produces = "application/json")
public ResponseEntity updateLeaveForm(@RequestBody LeaveTypeDTO leaveTypeDTO) {
String message;
try {
if (leaveTypeDTO.getName().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (leaveTypeDTO.getDescriptions().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = leaveTypeBusiness.updateLeaveType(leaveTypeDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(new Notification(200, message));
}
@GetMapping(path = "/getAll")
public ResponseEntity<List<LeaveType>> getAllLeaveType() {
return ResponseEntity.ok(leaveTypeBusiness.getLeaveTypeList());
}
}
package com.itsol.quantrivanphong.report.leavetype.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LeaveTypeDTO {
private int id;
private String name;
private String descriptions;
private boolean status;
}
package com.itsol.quantrivanphong.report.leaveform.repository;
package com.itsol.quantrivanphong.report.leavetype.repository;
import com.itsol.quantrivanphong.model.LeaveType;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
public interface LeaveTypeRepository extends JpaRepository<LeaveType, Integer> {
LeaveType findLeaveTypeById(int id);
@Modifying
@Query("update LeaveType lt set lt.name = ?1, lt.descriptions = ?2 where lt.id = ?3")
int updateLeaveType(String name, String descriptions, int id);
}
......@@ -137,4 +137,8 @@ public class TimeSheetBusiness {
public TimeSheet findTimeSheetById(int id) {
return timeSheetRepository.findTimeSheetById(id);
}
public List<Eproject> getEprojectList() {
return eProjectRepository.findAll();
}
}
package com.itsol.quantrivanphong.report.timesheet.controller;
import com.itsol.quantrivanphong.exception.InputException;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.TimeSheet;
import com.itsol.quantrivanphong.report.leaveform.controller.Notification;
import com.itsol.quantrivanphong.report.timesheet.business.TimeSheetBusiness;
......@@ -90,4 +91,10 @@ public class TimeSheetController {
public ResponseEntity<String> updateCheck(@RequestBody TimeSheetDTO timeSheetDTO) {
return ResponseEntity.ok(timeSheetBusiness.updateCheck(timeSheetDTO));
}
@GetMapping(path = "/getAll")
public List<Eproject> getAllEproject() {
return timeSheetBusiness.getEprojectList();
}
}
\ No newline at end of file
......@@ -8,13 +8,10 @@ import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface EProjectRepository extends JpaRepository<Eproject, Integer> {
// Eproject findEprojectById(int id);
Eproject findEprojectById(int id);
Eproject findEprojectByEmployee(Employee employee);
Eproject findEprojectByIdAndEmployee(int eProject_Id, Employee employee);
Eproject findEprojectByIdAndEmployee(int eProjectId, Employee employee);
......
......@@ -37,7 +37,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
//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)
List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate);
List<TimeSheet> findAllTimesheetStatusTrue(int projectId, String currentDate);
@Transactional
......@@ -48,7 +48,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
@Transactional
@Modifying
@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)
int numberEmployeeLack(int ProjectId, String firstDate, String finalDate);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -33,22 +33,31 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
<script src="js/angular-route.js"></script>
<script src="js/angular-ui-router.min.js"></script>
<script src="js/angular-resource.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-sanitize.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.3.3.js"></script>
<script src="js/app.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/project/project/projectController.js"></script>
<script src="pages/project/groupproject/groupProjectController.js"></script>
<script src="pages/project/groupproject/groupProjectViewController.js"></script>
<script src="pages/issue/IssueAddControlelr.js"></script>
<script src="pages/issue/IssueController.js"></script>
<script src="pages/issue/IssuesDetailController.js"></script>
<script src="pages/issue/IssuesDeleteController.js"></script>
<script src="pages/leaveform/leaveFormController.js"></script>
<script src="pages/homepage/homeController.js"></script>
<script src="pages/homepage/MyHomeController.js"></script>
<script src="pages/homepage/HomeService.js"></script>
<script src="pages/timesheet/timeSheetController.js"></script>
<script src="pages/timesheet/timeSheetDetailController.js"></script>
<script src="pages/leaveform/leaveFormDetailController.js"></script>
<script src="pages/employee/createEmployeeController.js"></script>
<script src="pages/project/project/projectViewController.js"></script>
<link data-require="bootstrap-css@2.3.2" data-semver="2.3.2" rel="stylesheet"
href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"/>
`
<!-- end anguarjs app-->
<link href="css/custom.css" rel="stylesheet">
......@@ -111,6 +120,8 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
});
</script>
</head>
<body class="cbp-spmenu-push" ng-app="myApp">
<div ui-view="layout"></div>
......
This diff is collapsed.
This diff is collapsed.
......@@ -30,16 +30,27 @@
<span>Employee</span>
</a>
</li>
<!-- PhungDung-->
<li class="treeview">
<!-- <a ui-sref="project">-->
<a ui-sref="project">
<i class="fa fa-laptop"></i>
<span>Project</span>
</a>
</li>
<li class="treeview">
<a ui-sref="issues">
<i class="fa fa-laptop"></i>
<span>Quản Lý Issues</span>
</a>
</li>
<!-- END DUng-->
<li class="treeview">
<li class="treeview">
<a ui-sref="news">
<a ui-sref="CatagoriManagement">
<i class="fa fa-newspaper-o" aria-hidden="true"></i>
<span>News</span>
</a>
......@@ -60,86 +71,18 @@
</a>
</li>
<li class="treeview">
<a ui-sref="reportProject" >
<i class="fa fa-edit"></i>
<span>Report TimeSheet</span>
</a>
</li>
<li class="treeview">
<a ui-sref="report2">
<i class="fa fa-envelope"></i>
<span>Report</span>
</a>
<ul class="treeview-menu">
<li>
<a href="inbox.html">
<i class="fa fa-angle-right"></i>
Mail Inbox
</a>
</li>
<li>
<a href="compose.html">
<i class="fa fa-angle-right"></i>
Compose Mail
</a>
</li>
</ul>
</li>
<li class="treeview">
<a href="#">
<i class="fa fa-folder"></i>
<span>Examples</span>
<i class="fa fa-angle-left pull-right"></i>
</a>
<ul class="treeview-menu">
<li>
<a href="login.html">
<i class="fa fa-angle-right"></i>
Login
</a>
</li>
<li>
<a href="signup.html">
<i class="fa fa-angle-right"></i>
Register
</a>
</li>
<li>
<a href="blank-page.html">
<i class="fa fa-angle-right"></i>
Blank Page
</a>
</li>
</ul>
</li>
<li class="header">LABELS</li>
<li>
<a href="#">
<i class="fa fa-angle-right text-red"></i>
<span>Important</span>
</a>
</li>
<li>
<a href="#">
<i class="fa fa-angle-right text-yellow"></i>
<span>Warning</span>
</a>
</li>
<li>
<a href="#">
<i class="fa fa-angle-right text-aqua"></i>
<span>Information</span>
</a>
</li>
</ul>
</div>
</nav>
</aside>
</div>
<!-- header-starts -->
<div class="sticky-header header-section ">
<div class="header-left">
<button id="showLeftPush">
......
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="container">
<table class="table">
......@@ -9,6 +8,10 @@
<td><label>User Name</label></td>
<td>
<input type="text" maxlength="29" ng-model="emp.username"/>
<span style="color:red" ng-show="myForm.emp.username.$dirty && myForm.emp.username.$invalid">
<span ng-show="myForm.emp.username.$error.required">Username is required.</span>
</span>
</td>
</tr>
<tr>
......
angular.module("myApp").factory('News', function ($resource) {
return $resource('http://localhost:8080/api/news/:id', {id: '@myNewsId'},{
return $resource('http://localhost:8081/api/news/:id', {id: '@myNewsId'},{
'get': {
method: 'GET',
isArray: false
......@@ -9,11 +9,11 @@ angular.module("myApp").factory('News', function ($resource) {
});
angular.module('myApp').factory('Catagories', function ($resource) {
return $resource('http://localhost:8080/api/catalogies/:id', {id: '@myCatagoriesId'});
return $resource('http://localhost:8081/api/catalogies/:id', {id: '@myCatagoriesId'});
});
angular.module('myApp').factory('LatestNews', function ($resource) {
return $resource('http://localhost:8080/api/catalogi/:id/latestNews', {id: '@CatagoriesId'},{
return $resource('http://localhost:8081/api/catalogi/:id/latestNews', {id: '@CatagoriesId'},{
'get': {
method: 'GET',
isArray: true
......@@ -22,7 +22,7 @@ angular.module('myApp').factory('LatestNews', function ($resource) {
});
angular.module('myApp').factory('NewsByCatagori', function ($resource) {
return $resource('http://localhost:8080/api/catalogi/:id/news', {id: '@catagoriesId'},{
return $resource('http://localhost:8081/api/catalogi/:id/news', {id: '@catagoriesId'},{
'get': {
method: 'GET',
isArray: true
......
angular.module("myApp").controller('MyHomeController', function ($scope,$http, $state,News, $window,$stateParams,Catagories,LatestNews) {
$scope.catagories = Catagories.query();
$scope.currentPage = 1
,$scope.numPerPage = 6
,$scope.maxSize = 5;
$scope.catagoriDetail = Catagories.get({}, {myCatagoriesId: $stateParams.catagoriId}).$promise.then(
function (value) {
$scope.todos = value.news;
$scope.catagori = value;
$scope.numPages = function () {
return Math.ceil($scope.todos.length / $scope.numPerPage);
};
console.log( $scope.todos.length);
$scope.$watch('currentPage + numPerPage', function () {
var begin = (($scope.currentPage - 1) * $scope.numPerPage)
, end = begin + $scope.numPerPage;
$scope.myNews = $scope.todos.slice(begin, end);
});
},
function (error) {
console.log()
}
);
$scope.newsById = News.get({}, {myNewsId: $stateParams.Id1});
$scope.show = function(id){
$scope.newestNews = LatestNews.get({}, {CatagoriesId: id});
};
$scope.catagoriById = Catagories.get({}, {myCatagoriesId: $stateParams.myCatagoriId});
//Delete News
$scope.deleteNews = function(newsId) {
if (confirm("Delete?")) {
$http({
method: 'DELETE',
url: 'http://localhost:8080/api/HR/news/' + newsId,
headers: {
'Content-Type': 'application/json'
}
}).then(function (response) {
console.log("delete OK");
$state.reload();
}, function (data, status) {
$state.reload();
});
}
};
//Edit news
$scope.newsEditById = News.get({}, {myNewsId: $stateParams.myNewsEditId});
$scope.editNews = function(newsEditById) {
if(confirm("Update?")) {
$http({
method: 'PUT',
url: 'http://localhost:8081/api/HR/news/' + newsEditById.id,
data: angular.toJson(newsEditById),
headers: {
'Content-Type': 'application/json'
}
}).then(function (response) {
console.log("update OK");
$state.go('newsManagement',{myCatagoriId:$stateParams.myCatagoriEditId});
}, function (data, status) {
console.log(status);
});
}
};
//Add News
$scope.createNews = function(newsAdd) {
if(confirm("Add?")) {
$http({
method: 'POST',
url: 'http://localhost:8081/api/HR/'+ $stateParams.employeeId+'/catalogies/' + $stateParams.myCatagoriAddId+'/news',
data: angular.toJson(newsAdd),
headers: {
'Content-Type': 'application/json'
}
}).then(function (response) {
console.log("update OK");
$state.go('newsManagement',{myCatagoriId:$stateParams.myCatagoriAddId});
}, function (data, status) {
console.log(status);
});
}
};
});
\ No newline at end of file
<form name="myForm" novalidate ng-submit="createNews(newsAdd)" >
<table border= 1>
<tr>
<td>Thumbnail</td>
<td><input type="text" data-ng-model="newsAdd.thumbnail" /></td>
</tr>
<tr>
<td>Title</td>
<td><input type="text" ng-model="newsAdd.title" /></td>
</tr>
<tr>
<td>Content</td>
<td><input type="text" data-ng-model="newsAdd.content" /></td>
</tr>
<tr>
<td>Status</td>
<td><input type="text" data-ng-model="newsAdd.status" /></td>
</tr>
<tr>
<td colspan="2">
<input data-ng-disabled="myForm.$invalid" type="submit" value="Submit" class="blue-button" />
</td>
</tr>
</table>
</form>
......@@ -14,7 +14,7 @@
<div>
<tr>
<!-- <input type="submit" name="submit" value="Duyệt" ui-sref="leaveForm" ng-click="updateStatus(leaveFormDetail.id)"/>-->
<input type="submit" name="submit" value="Quay lại" ui-sref="leaveForm"/>
<input type="submit" name="submit" value="Quay lại" ui-sref="leaveform"/>
</tr>
</div>
<br><br>
......
......@@ -5,7 +5,7 @@ angular.module("myApp").controller("leaveFormDetailController", function($scope,
console.log("Leave Form Detail Controller");
$http({
method : 'GET',
url : "http://localhost:8080/timesheet/leaveform/" + $stateParams.id
url : "http://localhost:8081/employee/leaveform/" + $stateParams.id
}).then(function successCallback(response) {
console.log(response);
$scope.leaveFormDetail=response.data;
......@@ -17,7 +17,7 @@ angular.module("myApp").controller("leaveFormDetailController", function($scope,
function updateStatus(id){
$http({
method : 'POST',
url : "http://localhost:8080/timesheet/leaveform/"+id+"/status",
url : "http://localhost:8081/employee/leaveform/"+id+"/status",
}).then(function successCallback(response) {
console.log(response);
$state.reload();
......
This diff is collapsed.
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.
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