Commit 495ed4ca authored by đinh thị đầm's avatar đinh thị đầm

t

parent 4755371a
...@@ -6,19 +6,21 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -6,19 +6,21 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
public class CatalogiBusiness { public class CatalogiBusiness {
@Autowired @Autowired
private CatalogiRepository catalogiRepository; private CatalogiRepository catalogiRepository;
public Optional<Catalogi> findById(int id){ public Catalogi findCatalogiById(int id){
return catalogiRepository.findById(id); return catalogiRepository.findCatalogiById(id);
} }
public List<Catalogi> findAllCatalogi(){ public List<Catalogi> findAllCatalogi(){
return catalogiRepository.findAllCatalogi(); return catalogiRepository.findAllCatalogi();
} }
public Catalogi save(Catalogi catalogi){
return catalogiRepository.save(catalogi);
}
} }
...@@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -7,7 +7,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Optional;
@Service @Service
public class NewsBusiness { public class NewsBusiness {
...@@ -18,24 +17,32 @@ public class NewsBusiness { ...@@ -18,24 +17,32 @@ public class NewsBusiness {
return newsRepository.findAllNews(); return newsRepository.findAllNews();
} }
// Find News By News Id // Find News By News Id
public Optional<News> findById(int newsId){ public News findNewsById(int newsId){
return newsRepository.findById(newsId); return newsRepository.findNewsById(newsId);
} }
//Find news By Employee Id //Find news By Employee Id
public List<News> findByEmployeeId(int employeeId){ public List<News> findByEmployeeId(int employeeId){
return newsRepository.findByEmployeeId(employeeId); return newsRepository.findByEmployeeId(employeeId);
} }
// FInd 4 latest news by câtlogiId
public List<News> findLatestNews(int catalogiId){
return newsRepository.getLatestNews(catalogiId);
}
// Find 4 latest news
public List<News> findAllLatestNews(){
return newsRepository.getAllLatestNews();
}
// Find news By Catalogi // Find news By Catalogi
public List<News> findByCatalogiId(int catalogiId){ public List<News> findByCatalogiId(int catalogiId){
return newsRepository.findByCatalogiId(catalogiId); return newsRepository.findByCatalogiId(catalogiId);
} }
public Optional<News> findByIdAndEmployeeId(int id, int employeeId){ public News findNewsByIdAndEmployeeId(int id, int employeeId){
return newsRepository.findByIdAndEmployeeId(id,employeeId); return newsRepository.findByIdAndEmployeeId(id,employeeId);
} }
public Optional<News> findByIdAndAndCatalogiId(int id, int catalogiId){ public News findNewsByIdAndAndCatalogiId(int id, int catalogiId){
return newsRepository.findByIdAndAndCatalogiId(id,catalogiId); return newsRepository.findByIdAndAndCatalogiId(id,catalogiId);
} }
...@@ -53,12 +60,15 @@ public class NewsBusiness { ...@@ -53,12 +60,15 @@ public class NewsBusiness {
return updateNews; return updateNews;
} }
public String deleteNews(int employeeId,int newsId){ //
newsRepository.findByIdAndEmployeeId(employeeId,newsId).map(news ->{ public String deleteNews(int newsId){
newsRepository.delete(news); News news = newsRepository.findNewsById(newsId);
return "ok"; if(news == null){
}).orElseThrow(() -> new ResourceNotFoundException("News" ,"newsId",newsId)); throw new ResourceNotFoundException("News" ,"newsId",newsId);
return "Ok"; }
newsRepository.delete(news);
return "ok";
} }
} }
...@@ -5,12 +5,13 @@ import com.itsol.quantrivanphong.exception.ResourceNotFoundException; ...@@ -5,12 +5,13 @@ import com.itsol.quantrivanphong.exception.ResourceNotFoundException;
import com.itsol.quantrivanphong.model.Catalogi; import com.itsol.quantrivanphong.model.Catalogi;
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.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import javax.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/api")
public class CatalogiController { public class CatalogiController {
@Autowired @Autowired
private CatalogiBusiness catalogiBusiness; private CatalogiBusiness catalogiBusiness;
...@@ -22,7 +23,16 @@ public class CatalogiController { ...@@ -22,7 +23,16 @@ public class CatalogiController {
@GetMapping("/catalogies/{catalogiId}") @GetMapping("/catalogies/{catalogiId}")
public Catalogi getCatalogiById(@PathVariable(value = "catalogiId") int catalogiId){ public Catalogi getCatalogiById(@PathVariable(value = "catalogiId") int catalogiId){
return catalogiBusiness.findById(catalogiId).orElseThrow(()-> new ResourceNotFoundException("Catalogi","catalogiId",catalogiId)); Catalogi catalogi = catalogiBusiness.findCatalogiById(catalogiId);
if(catalogi == null) {
throw new ResourceNotFoundException("Catalogi", "catalogiId", catalogiId);
}
return catalogi;
}
@PostMapping("/catalogi")
public Catalogi createCatalogi(@Valid@RequestBody Catalogi catalogi) {
return catalogiBusiness.save(catalogi);
} }
} }
...@@ -5,8 +5,10 @@ import com.itsol.quantrivanphong.access.homepage.business.CatalogiBusiness; ...@@ -5,8 +5,10 @@ import com.itsol.quantrivanphong.access.homepage.business.CatalogiBusiness;
import com.itsol.quantrivanphong.access.homepage.business.NewsBusiness; import com.itsol.quantrivanphong.access.homepage.business.NewsBusiness;
import com.itsol.quantrivanphong.exception.ResourceNotFoundException; import com.itsol.quantrivanphong.exception.ResourceNotFoundException;
import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness; 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.Employee;
import com.itsol.quantrivanphong.model.News; import com.itsol.quantrivanphong.model.News;
import com.itsol.quantrivanphong.report.leaveform.controller.Notification;
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.*;
...@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; import java.util.List;
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
public class NewsController { public class NewsController {
...@@ -31,48 +34,82 @@ public class NewsController { ...@@ -31,48 +34,82 @@ public class NewsController {
return ResponseEntity.ok(newsBusiness.findAllNews()); return ResponseEntity.ok(newsBusiness.findAllNews());
} }
@GetMapping("/news/{newsId}")
public News getNewsById(@PathVariable(value = "newsId") int newsId){
return newsBusiness.findNewsById(newsId);
}
// get news by employeeId // get news by employeeId
@GetMapping("/news/employees/{employeeId}") @GetMapping("/employees/{employeeId}/news")
public List<News> getAllNewsByEmployeeId(@PathVariable(value = "employeeId") int employeeId) { public List<News> getAllNewsByEmployeeId(@PathVariable(value = "employeeId") int employeeId) {
return newsBusiness.findByEmployeeId(employeeId); return newsBusiness.findByEmployeeId(employeeId);
} }
// get News by catalogiId // get News by catalogiId
@GetMapping("/news/catalogi/{catalogiId}") @GetMapping("/catalogi/{catalogiId}/news")
public List<News> getAllNewsByCatalogiId(@PathVariable(value="catalogiId") int catalogiId){ public List<News> getAllNewsByCatalogiId(@PathVariable(value="catalogiId") int catalogiId){
return newsBusiness.findByCatalogiId(catalogiId); 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){
return newsBusiness.findLatestNews(catalogiId);
}
//get Latest news
@GetMapping("/catalogi/latestNews")
public List<News> getAllLatestNews(){
return newsBusiness.findAllLatestNews();
}
@GetMapping("/employees/{employeeId}/news/{newsId}")
public News getAllNewsByEmployeeId(@PathVariable(value = "employeeId") int employeeId,
@PathVariable (value = "newsId") int newsId) {
return newsBusiness.findNewsByIdAndEmployeeId(newsId,employeeId);
}
// create news by employeesId // create news by employeesId, categoriId
@PostMapping("/news/employees/{employeeId}") @PostMapping("/HR/{employeeId}/catalogies/{catalogiId}/news")
public News createNews(@PathVariable (value = "employeeId") int employeeId, public ResponseEntity createNews(@PathVariable (value = "employeeId") int employeeId,
@PathVariable (value = "catalogiId") int catalogiId,
@Valid @RequestBody News news) { @Valid @RequestBody News news) {
Employee employee = employeeBusiness.findById(employeeId); Employee employee = employeeBusiness.findById(employeeId);
Catalogi catalogi = catalogiBusiness.findCatalogiById(catalogiId);
if(employee == null){
throw new ResourceNotFoundException("Employee" ,"employeeId",employeeId);
}
if(catalogi==null){
throw new ResourceNotFoundException("Catalogi" ,"catalogiId",catalogiId);
}
news.setEmployee(employee); news.setEmployee(employee);
return newsBusiness.save(news); news.setCatalogi(catalogi);
newsBusiness.save(news);
return ResponseEntity.ok(new Notification(200, "Success"));
} }
// Edit news by EmployeeId // Edit news by EmployeeId
@PutMapping("/employees/{employeeId}/news/{newsId}") @PutMapping("HR/news/{newsId}")
public News updateNews(@PathVariable (value = "employeeId") int employeeId, public News updateNews(@PathVariable (value = "newsId") int newsId,
@PathVariable (value = "newsId") int newsId,
@Valid @RequestBody News newsRequest) { @Valid @RequestBody News newsRequest) {
if(employeeBusiness.findById(employeeId) == null) {
throw new ResourceNotFoundException("Employee" ,"employeeId",employeeId); if (newsBusiness.findNewsById(newsId)== null) {
}
if (!newsBusiness.findById(newsId).isPresent()) {
throw new ResourceNotFoundException("News", "id", newsId); throw new ResourceNotFoundException("News", "id", newsId);
} }
return newsBusiness.updateNews(newsId,newsRequest); return newsBusiness.updateNews(newsId,newsRequest);
} }
//delete news by employeeId and newsId //delete news by employeeId and newsId
@DeleteMapping("/employees/{employeeId}/news/{newsId}") @DeleteMapping("HR/news/{newsId}")
public ResponseEntity<?> deleteNews(@PathVariable (value = "employeeId") int employeeId, public ResponseEntity<?> deleteNews(@PathVariable (value = "newsId") int newsId) {
@PathVariable (value = "newsId") int newsId) { if(newsBusiness.findNewsById(newsId)== null){
if(!newsBusiness.findByIdAndEmployeeId(employeeId,newsId).isPresent()){
throw new ResourceNotFoundException("News","newsId",newsId); throw new ResourceNotFoundException("News","newsId",newsId);
} }
return ResponseEntity.ok(newsBusiness.deleteNews(employeeId,newsId)); return ResponseEntity.ok(newsBusiness.deleteNews(newsId));
} }
} }
...@@ -11,7 +11,6 @@ import java.util.List; ...@@ -11,7 +11,6 @@ import java.util.List;
public interface CatalogiRepository extends JpaRepository<Catalogi, Integer> { public interface CatalogiRepository extends JpaRepository<Catalogi, Integer> {
@Query("SELECT u from Catalogi u") @Query("SELECT u from Catalogi u")
List<Catalogi> findAllCatalogi(); List<Catalogi> findAllCatalogi();
@Query("SELECT u FROM Catalogi u where u.id=:id")
// @Query("SELECT u FROM Catalogi u where u.id=:id") Catalogi findCatalogiById(int id);
// Catalogi findCatalogiById(int id);
} }
...@@ -6,7 +6,6 @@ import org.springframework.data.jpa.repository.Query; ...@@ -6,7 +6,6 @@ import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Optional;
@Repository @Repository
public interface NewsRepository extends JpaRepository<News, Integer> { public interface NewsRepository extends JpaRepository<News, Integer> {
...@@ -14,8 +13,15 @@ public interface NewsRepository extends JpaRepository<News, Integer> { ...@@ -14,8 +13,15 @@ public interface NewsRepository extends JpaRepository<News, Integer> {
List<News> findAllNews(); List<News> findAllNews();
@Query("SELECT u FROM News u where u.id=:id") @Query("SELECT u FROM News u where u.id=:id")
News findNewsById(int id); News findNewsById(int id);
@Query(value="select * from News c where c.catalogi_id = ? ORDER BY c.created_at DESC limit 4",nativeQuery = true)
List<News> getLatestNews(int catalogiId);
@Query(value="select * from News c ORDER BY c.created_at DESC limit 4",nativeQuery = true)
List<News> getAllLatestNews();
List<News> findByEmployeeId(int employeeId); List<News> findByEmployeeId(int employeeId);
List<News> findByCatalogiId(int catalogiId); List<News> findByCatalogiId(int catalogiId);
Optional<News> findByIdAndEmployeeId(int id,int employeeId); News findByIdAndEmployeeId(int id,int employeeId);
Optional<News> findByIdAndAndCatalogiId(int id,int catalogiId); News findByIdAndAndCatalogiId(int id,int catalogiId);
} }
...@@ -3,7 +3,6 @@ package com.itsol.quantrivanphong.access.login.dto; ...@@ -3,7 +3,6 @@ package com.itsol.quantrivanphong.access.login.dto;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
@Data @Data
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
......
...@@ -23,20 +23,6 @@ public class EmailBussiness { ...@@ -23,20 +23,6 @@ public class EmailBussiness {
public boolean sendEmail(EmailDTO emailDTO) { public boolean sendEmail(EmailDTO emailDTO) {
boolean check; 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. // Recipient's email ID needs to be mentioned.
String to = emailDTO.getRecipientEmail(); String to = emailDTO.getRecipientEmail();
......
package com.itsol.quantrivanphong.access.register.controller; 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.bussiness.RegisterBussiness;
import com.itsol.quantrivanphong.access.register.dto.RegisterDTO; import com.itsol.quantrivanphong.access.register.dto.RegisterDTO;
import com.itsol.quantrivanphong.exception.InputException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
......
package com.itsol.quantrivanphong.report.issuescomment.bussiness;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import com.itsol.quantrivanphong.report.issuescomment.dto.IssuesCommentDTO;
import java.util.List;
public interface IssuesCommentBussiness {
// danh sách comment của issues
List<IssuesCommentDTO> getListComment(Integer issuesId);
WrapperResult createComment(IssuesCommentDTO dto);
WrapperResult updateComment(IssuesCommentDTO dto);
WrapperResult deleteComment(IssuesCommentDTO dto);
IssuesCommentDTO findIssuesCommentById(Integer id);
}
package com.itsol.quantrivanphong.report.issuescomment.bussiness;
import com.itsol.quantrivanphong.model.IssuesComment;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import com.itsol.quantrivanphong.report.issue.repository.IssueRepository;
import com.itsol.quantrivanphong.report.issuescomment.dto.IssuesCommentDTO;
import com.itsol.quantrivanphong.report.issuescomment.repository.IssuesCommentRepository;
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 IssuesCommentBussinessImpl implements IssuesCommentBussiness{
Logger logger = Logger.getLogger(IssuesCommentBussinessImpl.class);
@Autowired
private IssueRepository issueRepository;
@Autowired
private IssuesCommentRepository issuesCommentRepository;
@Override
public List<IssuesCommentDTO> getListComment(Integer issuesId) {
return lstDTO(issuesCommentRepository.findIssuesCommentByIssuesId(issuesId));
}
@Override
public WrapperResult createComment(IssuesCommentDTO dto) {
String views ="";
int status = 113;
dto.setUserCreate("phungdung");
if(dto.getUserCreate()!=null){
try{
dto.setCreateDate(new Timestamp(System.currentTimeMillis()));
IssuesComment issuesComment = issuesCommentRepository.save(Models(dto));
views="tạo comment thành công!";
status = 200;
}catch (Exception e){
logger.info(" Lỗi Insert Comment "+e.getMessage());
views="Lỗi Tạo Comment";
}
}else{
views="Vui lòng đăng nhập để thực hiện chức năng này";
}
return new WrapperResult(status,views);
}
@Override
public WrapperResult updateComment(IssuesCommentDTO dto) {
return null;
}
@Override
public WrapperResult deleteComment(IssuesCommentDTO dto) {
return null;
}
@Override
public IssuesCommentDTO findIssuesCommentById(Integer id) {
return DTO(issuesCommentRepository.findIssuesCommentById(id));
}
public IssuesComment Models(IssuesCommentDTO dto){
IssuesComment issuesComment = new IssuesComment();
BeanUtils.copyProperties(dto,issuesComment);
if(dto.getIssueId()!=null){
issuesComment.setIssues(issueRepository.findIssuesById(dto.getIssueId()));
}
return issuesComment;
}
public IssuesCommentDTO DTO(IssuesComment issuesComment){
IssuesCommentDTO dto = new IssuesCommentDTO();
BeanUtils.copyProperties(issuesComment,dto);
return dto;
}
public List<IssuesCommentDTO> lstDTO(List<IssuesComment> lst){
List<IssuesCommentDTO> lstDTO = new ArrayList<IssuesCommentDTO>();
for (IssuesComment issuesComment:lst) {
lstDTO.add(DTO(issuesComment));
}
return lstDTO;
}
}
package com.itsol.quantrivanphong.report.issuescomment.controller;
import com.itsol.quantrivanphong.report.issue.common.WrapperResult;
import com.itsol.quantrivanphong.report.issuescomment.bussiness.IssuesCommentBussiness;
import com.itsol.quantrivanphong.report.issuescomment.dto.IssuesCommentDTO;
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 IssuesControllers {
@Autowired
private IssuesCommentBussiness issuesCommentBussiness;
@GetMapping(value = "/Comment/{IssuesId}")
public ResponseEntity getComment(@PathVariable("IssuesId") Integer issuesId){
List<IssuesCommentDTO> listComment = issuesCommentBussiness.getListComment(issuesId);
return ResponseEntity.ok(listComment);
}
@PostMapping(value = "/tao-comment")
public ResponseEntity saveComment(@RequestBody IssuesCommentDTO issuesCommentDTO){
WrapperResult wrapperResult = issuesCommentBussiness.createComment(issuesCommentDTO);
return ResponseEntity.ok(wrapperResult);
}
}
package com.itsol.quantrivanphong.report.issuescomment.dto;
import com.itsol.quantrivanphong.report.issue.dto.IssueDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.sql.Timestamp;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IssuesCommentDTO {
private Integer id;
private String contentIssuse;
private String userCreate;
private Timestamp createDate;
private Integer issueId;
private IssueDTO issue;
}
package com.itsol.quantrivanphong.report.issuescomment.repository;
import com.itsol.quantrivanphong.model.IssuesComment;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface IssuesCommentRepository extends JpaRepository<IssuesComment,Integer> {
List<IssuesComment> findIssuesCommentByIssuesId(Integer issuesId);
IssuesComment findIssuesCommentById(Integer id);
}
...@@ -26,11 +26,11 @@ public class LeaveFormBusiness { ...@@ -26,11 +26,11 @@ public class LeaveFormBusiness {
return leaveFormRepository.findAll(); return leaveFormRepository.findAll();
} }
public String insertLeaveForm(int employee_Id, LeaveFormDTO leaveFormDTO, int leavetype_Id) { public String addLeaveForm(LeaveFormDTO leaveFormDTO) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(employee_Id); Employee employee = employeeRepository.findEmployeeById(leaveFormDTO.getEmployeeId());
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leavetype_Id); LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leaveFormDTO.getLeaveTypeId());
if (employee != null) { if (employee != null) {
if (leaveType != null) { if (leaveType != null) {
...@@ -56,36 +56,32 @@ public class LeaveFormBusiness { ...@@ -56,36 +56,32 @@ public class LeaveFormBusiness {
} }
@Transactional @Transactional
public String deleteLeaveForm(int emloyee_Id, int leaveform_Id) { public String deleteLeaveForm(int leaveFormId) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(emloyee_Id); LeaveForm leaveForm = leaveFormRepository.findLeaveFormById(leaveFormId);
LeaveForm leaveForm = leaveFormRepository.findLeaveFormByEmployeeAndId(employee, leaveform_Id);
if (employee != null) { if (leaveForm != null) {
if (leaveForm != null) { leaveFormRepository.delete(leaveForm);
leaveFormRepository.delete(leaveForm); if (leaveFormRepository.findLeaveFormById(leaveFormId) != null) {
if (leaveFormRepository.findLeaveFormByEmployeeAndId(employee, leaveform_Id) != null) { message = "Delete failed!";
message = "Delete failed!";
} else {
message = "Delete success!";
}
} else { } else {
message = "Leave Form does not exist"; message = "Delete success!";
} }
} else { } else {
message = "Employee does not exist"; message = "Leave Form does not exist";
} }
return message; return message;
} }
@Transactional @Transactional
public String updateLeaveForm(int employee_Id, int leavetype_Id, int leaveform_Id, LeaveFormDTO leaveFormDTO) { public String updateLeaveForm(LeaveFormDTO leaveFormDTO) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(employee_Id); Employee employee = employeeRepository.findEmployeeById(leaveFormDTO.getEmployeeId());
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leavetype_Id); LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leaveFormDTO.getLeaveTypeId());
LeaveForm leaveForm = leaveFormRepository.findLeaveFormByEmployeeAndLeaveTypeAndId(employee, leaveType, leaveform_Id); LeaveForm leaveForm = leaveFormRepository.findLeaveFormByEmployeeAndLeaveTypeAndId(employee, leaveType, leaveFormDTO.getId());
if (leaveType != null) { if (leaveType != null) {
if (leaveForm != null) { if (leaveForm != null) {
int i = leaveFormRepository.updateLeaveForm(leaveFormDTO.getTitle(), leaveFormDTO.getContent(), leaveform_Id); int i = leaveFormRepository.updateLeaveForm(leaveFormDTO.getTitle(), leaveFormDTO.getContent(), leaveFormDTO.getId());
if (i == 1) { if (i == 1) {
message = "Update success"; message = "Update success";
} else { } else {
...@@ -102,17 +98,19 @@ public class LeaveFormBusiness { ...@@ -102,17 +98,19 @@ public class LeaveFormBusiness {
} }
@Transactional @Transactional
public String updateLeaveFormStatus(int employee_Id, int leavetype_Id, int leaveform_Id) { public String updateLeaveFormStatus(int leaveformId) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(employee_Id); LeaveForm leaveForm = leaveFormRepository.findLeaveFormById(leaveformId);
LeaveType leaveType = leaveTypeRepository.findLeaveTypeById(leavetype_Id);
LeaveForm leaveForm = leaveFormRepository.findLeaveFormByEmployeeAndLeaveTypeAndId(employee, leaveType, leaveform_Id);
if (leaveForm != null) { if (leaveForm != null) {
int i = leaveFormRepository.updateLeaveFormStatus(leaveform_Id); if (leaveForm.isStatus()) {
if (i == 1) { message = "Status can not change";
message = "Update status success";
} else { } else {
message = "Update status failed"; int i = leaveFormRepository.updateLeaveFormStatus(leaveformId);
if (i == 1) {
message = "Update status success";
} else {
message = "Update status failed";
}
} }
} else { } else {
message = "Leave Form does not exist"; message = "Leave Form does not exist";
...@@ -121,8 +119,8 @@ public class LeaveFormBusiness { ...@@ -121,8 +119,8 @@ public class LeaveFormBusiness {
return message; return message;
} }
public List<LeaveForm> leaveFormById(int employee_Id) { public List<LeaveForm> showLeaveFormByEmployeeId(int employeeId) {
Employee employee = employeeRepository.findEmployeeById(employee_Id); Employee employee = employeeRepository.findEmployeeById(employeeId);
if (employee != null) { if (employee != null) {
if (leaveFormRepository.showLeaveFormById(employee) != null) { if (leaveFormRepository.showLeaveFormById(employee) != null) {
return leaveFormRepository.showLeaveFormById(employee); return leaveFormRepository.showLeaveFormById(employee);
...@@ -133,4 +131,12 @@ public class LeaveFormBusiness { ...@@ -133,4 +131,12 @@ public class LeaveFormBusiness {
return null; return null;
} }
} }
public LeaveForm showLeaveFormById(int id) {
return leaveFormRepository.findLeaveFormById(id);
}
public List<LeaveType> getLeaveTypeList() {
return leaveTypeRepository.findAll();
}
} }
package com.itsol.quantrivanphong.report.leaveform.controller; package com.itsol.quantrivanphong.report.leaveform.controller;
import com.itsol.quantrivanphong.exception.InputException; 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.business.LeaveFormBusiness;
import com.itsol.quantrivanphong.report.leaveform.dto.LeaveFormDTO; import com.itsol.quantrivanphong.report.leaveform.dto.LeaveFormDTO;
import com.itsol.quantrivanphong.model.LeaveForm;
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.*;
import javax.validation.Valid;
import java.util.List; import java.util.List;
@RestController @RestController
...@@ -17,59 +17,68 @@ public class LeaveFormController { ...@@ -17,59 +17,68 @@ public class LeaveFormController {
@Autowired @Autowired
LeaveFormBusiness leaveFormBusiness; LeaveFormBusiness leaveFormBusiness;
@GetMapping(path = "/leaveform") @GetMapping(path = "/leaveform/show")
public ResponseEntity<List<LeaveForm>> showAllLeaveForm() { public ResponseEntity<List<LeaveForm>> showAllLeaveForm() {
return ResponseEntity.ok(leaveFormBusiness.findAll()); return ResponseEntity.ok(leaveFormBusiness.findAll());
} }
@PostMapping(path = "/{employee_Id}/leavetype/{leavetype_Id}/leaveform", consumes = "application/json", produces = "application/json") @PostMapping(path = "/leaveform/add", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> insertLeaveForm(@PathVariable int employee_Id, @Valid @RequestBody LeaveFormDTO leaveFormDTO, @PathVariable int leavetype_Id) { public ResponseEntity addLeaveForm(@RequestBody LeaveFormDTO leaveFormDTO) {
String message; String message;
try { try {
if (leaveFormDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống"); if (leaveFormDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (leaveFormDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống"); if (leaveFormDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = leaveFormBusiness.insertLeaveForm(employee_Id, leaveFormDTO, leavetype_Id); message = leaveFormBusiness.addLeaveForm(leaveFormDTO);
} catch (InputException e) { } catch (InputException e) {
message = e.getMessage(); message = e.getMessage();
} }
return ResponseEntity.ok(message); return ResponseEntity.ok(new Notification(200, message));
} }
@DeleteMapping("/{employee_Id}/leaveform/{leaveform_Id}") @DeleteMapping("/leaveform/delete/{leaveformId}")
public ResponseEntity<String> deleteLeaveForm(@PathVariable int employee_Id, @Valid @PathVariable int leaveform_Id) { public ResponseEntity deleteLeaveForm(@PathVariable int leaveformId) {
return ResponseEntity.ok(leaveFormBusiness.deleteLeaveForm(employee_Id, leaveform_Id)); return ResponseEntity.ok(new Notification(200, leaveFormBusiness.deleteLeaveForm(leaveformId)));
} }
@PostMapping(path = "/{employee_Id}/leavetype/{leavetype_Id}/leaveform/{leaveform_Id}", consumes = "application/json", produces = "application/json") @PostMapping(path = "/leaveform/update", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> updateLeaveForm(@PathVariable int employee_Id, @PathVariable int leavetype_Id, @PathVariable int leaveform_Id, @Valid @RequestBody LeaveFormDTO leaveFormDTO) { public ResponseEntity updateLeaveForm(@RequestBody LeaveFormDTO leaveFormDTO) {
String message; String message;
try { try {
if (leaveFormDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống"); if (leaveFormDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (leaveFormDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống"); if (leaveFormDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = leaveFormBusiness.updateLeaveForm(employee_Id, leavetype_Id, leaveform_Id, leaveFormDTO); message = leaveFormBusiness.updateLeaveForm(leaveFormDTO);
} catch (InputException e) { } catch (InputException e) {
message = e.getMessage(); message = e.getMessage();
} }
return ResponseEntity.ok(message); return ResponseEntity.ok(new Notification(200, message));
} }
@PostMapping(path = "/{employee_Id}/leavetype/{leavetype_Id}/leaveform/{leaveform_Id}/status", consumes = "application/json", produces = "application/json") @PostMapping(path = "/leaveform/{leaveformId}/status")
public ResponseEntity<String> updateLeaveFormStatus(@PathVariable int employee_Id, @PathVariable int leavetype_Id, @PathVariable int leaveform_Id) { public ResponseEntity updateLeaveFormStatus(@PathVariable int leaveformId) {
String message; String message;
message = leaveFormBusiness.updateLeaveFormStatus(employee_Id, leavetype_Id, leaveform_Id); message = leaveFormBusiness.updateLeaveFormStatus(leaveformId);
return ResponseEntity.ok(message); return ResponseEntity.ok(new Notification(200, message));
} }
@GetMapping("/{employee_Id}/leaveform") @GetMapping("/leaveform/show/{employeeId}")
public ResponseEntity<List<LeaveForm>> showLeaveFormById(@PathVariable int employee_Id) { public ResponseEntity<List<LeaveForm>> showLeaveFormByEmployeeId(@PathVariable int employeeId) {
if (leaveFormBusiness.leaveFormById(employee_Id) != null) { if (leaveFormBusiness.showLeaveFormByEmployeeId(employeeId) != null) {
return ResponseEntity.ok(leaveFormBusiness.leaveFormById(employee_Id)); return ResponseEntity.ok(leaveFormBusiness.showLeaveFormByEmployeeId(employeeId));
} else { } else {
return null; return null;
} }
} }
@GetMapping("/leaveform/{id}")
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());
}
} }
...@@ -12,6 +12,6 @@ public class LeaveFormDTO { ...@@ -12,6 +12,6 @@ public class LeaveFormDTO {
private String title; private String title;
private String content; private String content;
private boolean status; private boolean status;
private int employee_id; private int employeeId;
private int leave_type_id; private int leaveTypeId;
} }
...@@ -15,7 +15,7 @@ public interface LeaveFormRepository extends JpaRepository<LeaveForm, Integer> { ...@@ -15,7 +15,7 @@ public interface LeaveFormRepository extends JpaRepository<LeaveForm, Integer> {
LeaveForm findLeaveFormByEmployeeAndId(Employee employee, int id); LeaveForm findLeaveFormByEmployeeAndId(Employee employee, int id);
// LeaveForm findLeaveFormById(int i); LeaveForm findLeaveFormById(int i);
LeaveForm findLeaveFormByEmployeeAndLeaveTypeAndId(Employee employee, LeaveType leaveType, int id); LeaveForm findLeaveFormByEmployeeAndLeaveTypeAndId(Employee employee, LeaveType leaveType, int id);
......
...@@ -21,9 +21,9 @@ public class TimeSheetBusiness { ...@@ -21,9 +21,9 @@ public class TimeSheetBusiness {
EProjectRepository eProjectRepository; EProjectRepository eProjectRepository;
@Autowired @Autowired
EmployeeRepository employeeRepository; EmployeeRepository employeeRepository;
public String insertTimeSheet(int employee_Id, TimeSheetDTO timeSheetDTO) { public String addTimeSheet(TimeSheetDTO timeSheetDTO) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(employee_Id); Employee employee = employeeRepository.findEmployeeById(timeSheetDTO.getEmployeeId());
Eproject eproject = eProjectRepository.findEprojectByIdAndEmployee(timeSheetDTO.getEprojectId(), employee); Eproject eproject = eProjectRepository.findEprojectByIdAndEmployee(timeSheetDTO.getEprojectId(), employee);
if (eproject != null) { if (eproject != null) {
// SimpleDateFormat formatter= new SimpleDateFormat("dd-MM-yyyy HH:mm"); // SimpleDateFormat formatter= new SimpleDateFormat("dd-MM-yyyy HH:mm");
...@@ -34,7 +34,7 @@ public class TimeSheetBusiness { ...@@ -34,7 +34,7 @@ public class TimeSheetBusiness {
timeSheet1.setContent(timeSheetDTO.getContent()); timeSheet1.setContent(timeSheetDTO.getContent());
timeSheet1.setNote(timeSheetDTO.getNote()); timeSheet1.setNote(timeSheetDTO.getNote());
timeSheet1.setEproject(eproject); timeSheet1.setEproject(eproject);
timeSheet1.setChecked(""); timeSheet1.setChecked("unapproved");
timeSheet1.setStatus(true); timeSheet1.setStatus(true);
TimeSheet timeSheet = timeSheetRepository.save(timeSheet1); TimeSheet timeSheet = timeSheetRepository.save(timeSheet1);
...@@ -49,14 +49,14 @@ public class TimeSheetBusiness { ...@@ -49,14 +49,14 @@ public class TimeSheetBusiness {
return message; return message;
} }
public String deleteTimeSheet(int employee_Id, int timeSheet_Id) { public String deleteTimeSheet(int timeSheetId) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(employee_Id); // Employee employee = employeeRepository.findEmployeeById(employee_Id);
Eproject eproject = eProjectRepository.findEprojectByEmployee(employee); // Eproject eproject = eProjectRepository.findEprojectByEmployee(employee);
TimeSheet timeSheet = timeSheetRepository.findTimeSheetByEprojectAndId(eproject, timeSheet_Id); TimeSheet timeSheet = timeSheetRepository.findTimeSheetById(timeSheetId);
if (timeSheet != null) { if (timeSheet != null) {
timeSheetRepository.delete(timeSheet); timeSheetRepository.delete(timeSheet);
if (timeSheetRepository.findTimeSheetByEprojectAndId(eproject, timeSheet_Id) == null) { if (timeSheetRepository.findTimeSheetById(timeSheetId) == null) {
message = "Delete success"; message = "Delete success";
} else { } else {
message = "Delete failed"; message = "Delete failed";
...@@ -72,15 +72,15 @@ public class TimeSheetBusiness { ...@@ -72,15 +72,15 @@ public class TimeSheetBusiness {
} }
@Transactional @Transactional
public String updateTimeSheet(int employee_Id, TimeSheetDTO timeSheetDTO, int timesheet_Id) { public String updateTimeSheet(TimeSheetDTO timeSheetDTO) {
String message; String message;
Employee employee = employeeRepository.findEmployeeById(employee_Id); Employee employee = employeeRepository.findEmployeeById(timeSheetDTO.getEmployeeId());
Eproject eproject = eProjectRepository.findEprojectByEmployee(employee); Eproject eproject = eProjectRepository.findEprojectByEmployee(employee);
TimeSheet timeSheet = timeSheetRepository.findTimeSheetByEprojectAndId(eproject, timesheet_Id); TimeSheet timeSheet = timeSheetRepository.findTimeSheetByEprojectAndId(eproject, timeSheetDTO.getId());
if (eproject != null) { if (eproject != null) {
if (timeSheet != null) { if (timeSheet != null) {
int i = timeSheetRepository.updateTimeSheet(timeSheetDTO.getTitle(), timeSheetDTO.getContent() int i = timeSheetRepository.updateTimeSheet(timeSheetDTO.getTitle(), timeSheetDTO.getContent()
, timeSheetDTO.getNote(), timesheet_Id); , timeSheetDTO.getNote(), timeSheetDTO.getId());
if (i == 1) { if (i == 1) {
message = "Update success"; message = "Update success";
} else { } else {
...@@ -95,10 +95,22 @@ public class TimeSheetBusiness { ...@@ -95,10 +95,22 @@ public class TimeSheetBusiness {
return message; return message;
} }
@Transactional
public String updateCheck(TimeSheetDTO timeSheetDTO) {
String message;
int i = timeSheetRepository.updateCheck(timeSheetDTO.getChecked(), timeSheetDTO.getId());
if (i == 1) {
message = "Success";
} else {
message = "Failed";
}
return message;
}
// @Transactional // @Transactional
// public String updateLeaveFormStatus(TimeSheetDTO timeSheetDTO) { // public String updateLeaveFormStatus(TimeSheetDTO timeSheetDTO) {
// String message; // String message;
// TimeSheet timeSheet = timeSheetRepository.findTimeSheetById(timeSheetDTO.getId()); // TimeSheet timeSheet = timeSheetRepository.findTimeSheetByEmployeeId(timeSheetDTO.getId());
// if (timeSheet != null) { // if (timeSheet != null) {
// int i = timeSheetRepository.updateTimeSheetStatus(timeSheetDTO.isStatus(), timeSheetDTO.getId()); // int i = timeSheetRepository.updateTimeSheetStatus(timeSheetDTO.isStatus(), timeSheetDTO.getId());
// if (i == 1) { // if (i == 1) {
...@@ -113,8 +125,8 @@ public class TimeSheetBusiness { ...@@ -113,8 +125,8 @@ public class TimeSheetBusiness {
// return message; // return message;
// } // }
public List<TimeSheet> findTimeSheetById(int employee_Id) { public List<TimeSheet> findTimeSheetByEmployeeId(int employeeId) {
Employee employee = employeeRepository.findEmployeeById(employee_Id); Employee employee = employeeRepository.findEmployeeById(employeeId);
Eproject eproject = eProjectRepository.findEprojectByEmployee(employee); Eproject eproject = eProjectRepository.findEprojectByEmployee(employee);
if (employee != null && eproject != null && timeSheetRepository.showTimeSheetByEproject(eproject) != null) { if (employee != null && eproject != null && timeSheetRepository.showTimeSheetByEproject(eproject) != null) {
return timeSheetRepository.showTimeSheetByEproject(eproject); return timeSheetRepository.showTimeSheetByEproject(eproject);
...@@ -122,4 +134,11 @@ public class TimeSheetBusiness { ...@@ -122,4 +134,11 @@ public class TimeSheetBusiness {
return null; return null;
} }
} }
public TimeSheet findTimeSheetById(int id) {
return timeSheetRepository.findTimeSheetById(id);
}
public List<Eproject> getEprojectList() {
return eProjectRepository.findAll();
}
} }
package com.itsol.quantrivanphong.report.timesheet.controller; package com.itsol.quantrivanphong.report.timesheet.controller;
import com.itsol.quantrivanphong.exception.InputException; import com.itsol.quantrivanphong.exception.InputException;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.TimeSheet; import com.itsol.quantrivanphong.model.TimeSheet;
import com.itsol.quantrivanphong.report.leaveform.controller.Notification;
import com.itsol.quantrivanphong.report.timesheet.business.TimeSheetBusiness; import com.itsol.quantrivanphong.report.timesheet.business.TimeSheetBusiness;
import com.itsol.quantrivanphong.report.timesheet.dto.TimeSheetDTO; import com.itsol.quantrivanphong.report.timesheet.dto.TimeSheetDTO;
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.*;
import javax.validation.Valid;
import java.util.List; import java.util.List;
@RestController @RestController
...@@ -16,6 +17,19 @@ import java.util.List; ...@@ -16,6 +17,19 @@ import java.util.List;
public class TimeSheetController { public class TimeSheetController {
@Autowired @Autowired
TimeSheetBusiness timeSheetBusiness; TimeSheetBusiness timeSheetBusiness;
@PostMapping(path = "/timesheet/add", consumes = "application/json", produces = "application/json")
public ResponseEntity addTimeSheet(@RequestBody TimeSheetDTO timeSheetDTO) {
String message;
try {
if (timeSheetDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (timeSheetDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = timeSheetBusiness.addTimeSheet(timeSheetDTO);
} catch (InputException e) {
message = e.getMessage();
}
return ResponseEntity.ok(new Notification(200, message));
}
// @PostMapping(path = "/timesheet", consumes = "application/json", produces = "application/json") // @PostMapping(path = "/timesheet", consumes = "application/json", produces = "application/json")
// public ResponseEntity<String> insertTimeSheet(@RequestBody TimeSheetDTO timeSheetDTO) { // public ResponseEntity<String> insertTimeSheet(@RequestBody TimeSheetDTO timeSheetDTO) {
// String message; // String message;
...@@ -30,29 +44,29 @@ public class TimeSheetController { ...@@ -30,29 +44,29 @@ public class TimeSheetController {
// return ResponseEntity.ok(message); // return ResponseEntity.ok(message);
// } // }
@DeleteMapping("/{employee_Id}/timesheet/{timesheet_Id}") @DeleteMapping("/timesheet/delete/{timesheetId}")
public ResponseEntity<String> deleteTimeSheet(@PathVariable int employee_Id, @Valid @PathVariable int timesheet_Id) { public ResponseEntity deleteTimeSheet(@PathVariable int timesheetId) {
return ResponseEntity.ok(timeSheetBusiness.deleteTimeSheet(employee_Id, timesheet_Id)); return ResponseEntity.ok(new Notification(200, timeSheetBusiness.deleteTimeSheet(timesheetId)));
} }
@GetMapping(path = "/timesheet") @GetMapping(path = "/timesheet/show")
public List<TimeSheet> showAllTimeSheet() { public List<TimeSheet> showAllTimeSheet() {
return timeSheetBusiness.findAll(); return timeSheetBusiness.findAll();
} }
@PostMapping(path = "/{employee_Id}/timesheet/{timesheet_Id}", consumes = "application/json", produces = "application/json") @PostMapping(path = "/timesheet/update", consumes = "application/json", produces = "application/json")
public ResponseEntity<String> updateTimeSheet(@PathVariable int employee_Id, @PathVariable int timesheet_Id, @Valid @RequestBody TimeSheetDTO timeSheetDTO) { public ResponseEntity updateTimeSheet(@RequestBody TimeSheetDTO timeSheetDTO) {
String message; String message;
try { try {
if (timeSheetDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống"); if (timeSheetDTO.getTitle().trim().equals("")) throw new InputException("Tiêu đề không được để trống");
if (timeSheetDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống"); if (timeSheetDTO.getContent().trim().equals("")) throw new InputException("Nội dung không được để trống");
message = timeSheetBusiness.updateTimeSheet(employee_Id, timeSheetDTO, timesheet_Id); message = timeSheetBusiness.updateTimeSheet(timeSheetDTO);
} catch (InputException e) { } catch (InputException e) {
message = e.getMessage(); message = e.getMessage();
} }
return ResponseEntity.ok(message); return ResponseEntity.ok(new Notification(200, message));
} }
// @PostMapping(path = "/update-status", consumes = "application/json", produces = "application/json") // @PostMapping(path = "/update-status", consumes = "application/json", produces = "application/json")
...@@ -62,8 +76,25 @@ public class TimeSheetController { ...@@ -62,8 +76,25 @@ public class TimeSheetController {
// return ResponseEntity.ok(message); // return ResponseEntity.ok(message);
// } // }
@GetMapping("/{employee_Id}/timesheet") @GetMapping("/timesheet/show/{employeeId}")
public ResponseEntity<List<TimeSheet>> showTimeSheetById(@PathVariable int employee_Id) { public ResponseEntity<List<TimeSheet>> showTimeSheetByEmployeeId(@PathVariable int employeeId) {
return ResponseEntity.ok(timeSheetBusiness.findTimeSheetById(employee_Id)); return ResponseEntity.ok(timeSheetBusiness.findTimeSheetByEmployeeId(employeeId));
}
@GetMapping("/timesheet/{id}")
public ResponseEntity<TimeSheet> showTimeSheetById(@PathVariable int id) {
return ResponseEntity.ok(timeSheetBusiness.findTimeSheetById(id));
}
@PostMapping(path = "/timesheet/update/check", consumes = "application/json", produces = "application/json")
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
...@@ -9,12 +9,11 @@ import lombok.NoArgsConstructor; ...@@ -9,12 +9,11 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class TimeSheetDTO { public class TimeSheetDTO {
private int id; private int id;
private int employeeId;
private String title; private String title;
private String content; private String content;
private String note; private String note;
private String checked; private String checked;
private boolean status; private boolean status;
private int eprojectId; private int eprojectId;
private int employeeId;
} }
...@@ -15,9 +15,6 @@ public interface EProjectRepository extends JpaRepository<Eproject, Integer> { ...@@ -15,9 +15,6 @@ public interface EProjectRepository extends JpaRepository<Eproject, Integer> {
//====================================================================================================== //======================================================================================================
// Hieunv // Hieunv
......
...@@ -7,18 +7,21 @@ import org.springframework.data.jpa.repository.Modifying; ...@@ -7,18 +7,21 @@ import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
// TimeSheet findTimeSheetById(int id); TimeSheet findTimeSheetById(int id);
// @Query("select ts from TimeSheet ts order by ts.createdAt desc") // @Query("select ts from TimeSheet ts order by ts.createdAt desc")
// List<TimeSheet> getAllTimeSheet(); // List<TimeSheet> getAllTimeSheet();
@Modifying @Modifying
@Query("update TimeSheet ts set ts.title = ?1, ts.content = ?2, ts.note = ?3 where ts.id = ?4") @Query("update TimeSheet ts set ts.title = ?1, ts.content = ?2, ts.note = ?3 where ts.id = ?4")
int updateTimeSheet(String title, String content, String note, int timesheet_Id); int updateTimeSheet(String title, String content, String note, int timeSheetId);
@Modifying
@Query("update TimeSheet ts set ts.checked = ?1 where ts.id = ?2")
int updateCheck(String check, int timeSheetId);
// @Modifying // @Modifying
// @Query("update TimeSheet ts set ts.status = ?1 where ts.id = ?2") // @Query("update TimeSheet ts set ts.status = ?1 where ts.id = ?2")
...@@ -27,7 +30,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { ...@@ -27,7 +30,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
@Query("select ts from TimeSheet ts where ts.eproject = ?1") @Query("select ts from TimeSheet ts where ts.eproject = ?1")
List<TimeSheet> showTimeSheetByEproject(Eproject eproject); List<TimeSheet> showTimeSheetByEproject(Eproject eproject);
TimeSheet findTimeSheetByEprojectAndId(Eproject eproject, int timeSheet_Id); TimeSheet findTimeSheetByEprojectAndId(Eproject eproject, int timeSheetId);
//================================================================================================================== //==================================================================================================================
...@@ -46,4 +49,10 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> { ...@@ -46,4 +49,10 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
@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)
int numberEmployeeLack(int ProjectId, String firstDate, String finalDate);
@Query(value = "SELECT * FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id JOIN employee e ON e.id = ep.employee_id WHERE ts.status = false AND created_at >= ?1 AND created_at <= ?2 AND ep.project_id = ?3 AND e.id = ?4", nativeQuery = true)
List<TimeSheet> listDateOfLack(String firstDate, String finalDate, int projectId, int employeeId);
} }
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -15,6 +15,14 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct ...@@ -15,6 +15,14 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
} }
} }
}) })
.state("layout3", {
abstract: true,
views: {
"layout": {
templateUrl: "layout/layout3.html"
}
}
})
.state("layout2", { .state("layout2", {
abstract: true, abstract: true,
views: { views: {
...@@ -23,6 +31,14 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct ...@@ -23,6 +31,14 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
} }
} }
}) })
.state("layout4", {
abstract: true,
views: {
"layout": {
templateUrl: "layout/layout4.html"
}
}
})
.state("employees", { .state("employees", {
...@@ -49,27 +65,6 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct ...@@ -49,27 +65,6 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
} }
}) })
// .state("timeSheet", {
// parent: 'layout1',
// url: "/timesheet",
// views: {
// "content": {
// templateUrl: "pages/timesheet/leaveFromeaveFromDetail.html",
// controller: "leaveFormController"
// }
// }
// })
// .state("timeSheetDetail", {
// parent: 'layout1',
// url: "/timesheetdetail/:id",
// views: {
// "content": {
// templateUrl: "pages/timesheet/l",
// controller: "timeSheetDetailController"
// }
// }
// })
.state("leaveform", { .state("leaveform", {
parent: 'layout1', parent: 'layout1',
url: "/leaveform", url: "/leaveform",
...@@ -199,21 +194,8 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct ...@@ -199,21 +194,8 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
} }
} }
}) })
//end report
// .state("project",{
// parent:'layout1',
// url:"/project",
// views:{
// "content":{
// templateUrl:"pages/project/project/projectListViews.html",
// controller:"projectViewsController"
// }
// }
// })
// Phần của DunPV
//danh sách các dự án //danh sách các dự án
.state("project", { .state("project", {
...@@ -315,7 +297,47 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct ...@@ -315,7 +297,47 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
} }
} }
}) })
// END DUNG PV .state("login", {
parent: 'layout2',
url: "/login",
views: {
"content": {
templateUrl: "pages/login/login.html",
controller: "loginController"
}
}
})
.state("register", {
parent: 'layout2',
url: "/register",
views: {
"content": {
templateUrl: "pages/login/register.html",
controller: "loginController"
}
}
})
.state("forgot-password", {
parent: 'layout2',
url: "/forgot-password",
views: {
"content": {
templateUrl: "pages/login/forgot-password.html",
controller: "loginController"
}
}
})
.state("gioithieu", {
parent: 'app',
url: "/gioithieu",
views: {
"content": {
templateUrl: "pages/gioithieu/gioithieu.htm",
controller: "gioithieuController"
}
}
})
}); });
......
...@@ -75,69 +75,6 @@ ...@@ -75,69 +75,6 @@
<a ui-sref="report2"> <a ui-sref="report2">
<i class="fa fa-envelope"></i> <i class="fa fa-envelope"></i>
<span>Report</span> <span>Report</span>
<!-- <i class="fa fa-angle-left pull-right"></i>-->
<!-- <small class="label pull-right label-info1">08</small>-->
<!-- <span class="label label-primary1 pull-right">02</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> </a>
</li> </li>
</ul> </ul>
...@@ -145,7 +82,7 @@ ...@@ -145,7 +82,7 @@
</nav> </nav>
</aside> </aside>
</div> </div>
<!-- header-starts -->
<div class="sticky-header header-section "> <div class="sticky-header header-section ">
<div class="header-left"> <div class="header-left">
<button id="showLeftPush"> <button id="showLeftPush">
......
This diff is collapsed.
...@@ -71,7 +71,24 @@ angular.module("myApp").controller('homeController', function ($scope,$http, $st ...@@ -71,7 +71,24 @@ angular.module("myApp").controller('homeController', function ($scope,$http, $st
}); });
} }
}; };
//Add News
$scope.createNews = function(newsAdd) {
if(confirm("Add?")) {
$http({
method: 'POST',
url: 'http://localhost:8080/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);
});
}
};
......
<div class="container"> <div class="container">
<div><a ui-sref="CatagoriManagement" style="padding:20px">Home</a></div>
<div > <div >
<div> <a href="#/management/HR/1/catagori/{{catagoriById.id}}/createNews"> Add News</a>
<div style="margin-top: 25px;">
<table class="table" > <table class="table" >
<thead> <thead>
<tr> <tr>
<tr> <tr>
<a ui-sref="CatagoriManagement"><< Back</a>
<td colspan="12"><h1 style="font-size: 30px;text-align: center">{{catagoriById.name}}</h1></td> <div ng-if="catagoriById.name == 'Office'">
</tr> <a href="#/management/catagori/4" style="float:left"><< Back </a>
</div>
<div ng-if="catagoriById.name == 'Outdoor Activiy'">
<a href="#/management/catagori/1" style="float:left"><< Back </a>
</div>
<div ng-if="catagoriById.name == 'Projects'">
<a href="#/management/catagori/2" style="float:left"><< Back</a>
</div>
<div ng-if="catagoriById.name == 'Recruitments'">
<a href="#/management/catagori/3" style="float:left"><< Back </a>
</div>
<div ng-if="catagoriById.name == 'Office'">
<a href="#/management/catagori/2" style="float:right">Next >> </a>
</div>
<div ng-if="catagoriById.name == 'Outdoor Activiy'">
<a href="#/management/catagori/3" style="float:right">Next >></a>
</div>
<div ng-if="catagoriById.name == 'Projects'">
<a href="#/management/catagori/4" style="float:right">Next >></a>
</div>
<div ng-if="catagoriById.name == 'Recruitments'">
<a href="#/management/catagori/1" style="float:right">Next >></a>
</div>
<td colspan="12"><h1 style="font-size: 30px;text-align: center">{{catagoriById.name}}</h1></td>
</tr>
<th>STT</th> <th>STT</th>
<th>News title</th> <th>News title</th>
<th>Create Date</th> <th>Create Date</th>
...@@ -27,11 +54,10 @@ ...@@ -27,11 +54,10 @@
<td>{{myNews.content}}</td> <td>{{myNews.content}}</td>
<td><a href="#/management/catagori/{{catagoriById.id}}/news/{{myNews.id}}" style="color:green;border: 1px solid black;padding: 10px;" >Edit</a> </td> <td><a href="#/management/catagori/{{catagoriById.id}}/news/{{myNews.id}}" style="color:green;border: 1px solid black;padding: 10px;" >Edit</a> </td>
<td><button type="button" style="color:red;border: 1px solid black;padding: 10px;" ng-click="deleteNews(myNews.id)">Delete</button> </td> <td><button type="button" style="color:red;border: 1px solid black;padding: 10px;" ng-click="deleteNews(myNews.id)">Delete</button> </td>
<td><button type="button" ng-click=""></button>Add</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div>Add </div>
</div> </div>
</div> </div>
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<div class="col-md-8"> <div class="col-md-8">
<tr> <tr>
<td><a ui-sref="addIssues" class="btn btn-success" data-toggle="modal"><i <td><a ui-sref="addIssues" class="btn btn-success" data-toggle="modal">
class="fa fa-user-plus"></i> <span>Thêm Dự Án Mới</span></a></a></td> <i class="fa fa-file-pdf-o" aria-hidden="true"></i> <span>Thêm Dự Án Mới</span></a></a></td>
</tr> </tr>
<h4></h4> <h4></h4>
<tr></tr> <tr></tr>
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
<div class="col-md-8"> <div class="col-md-8">
<tr> <tr>
<td><a ui-sref="addproject" class="btn btn-success" data-toggle="modal"><i <td><a ui-sref="addproject" class="btn btn-success" data-toggle="modal">
class="fa fa-user-plus"></i> <span>Thêm Dự Án Mới</span></a></a></td> <i class="fa fa-file-pdf-o" aria-hidden="true"></i><span>Thêm Dự Án Mới</span></a></a></td>
</tr> </tr>
<h4></h4> <h4></h4>
<tr></tr> <tr></tr>
......
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