示例#1
0
  @Override
  public void update(NoticeRequestDTO noticeDTO) throws OperationalException {
    LocalDateTime currentTime = LocalDateTime.now();
    Notice notice = findById(noticeDTO.getNoticeId());
    if (notice == null) {
      throw new OperationalException(
          HttpConstants.NOT_FOUND, ResponseConstants.INVALID_NOTICE_ID, HttpStatus.NOT_FOUND);
    }
    assertEnum(noticeDTO.getStatus(), NoticeStatus.class, ResponseConstants.INVALID_STATUS);
    loadNoticeDetails(noticeDTO, notice);

    User user;
    if (SecurityContextHolder.getContext().getAuthentication().getPrincipal() != null) {
      user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    } else {
      user = userDao.getActiveUserDetails(noticeDTO.getModifiedBy());
      if (user == null) {
        throw new OperationalException(
            HttpConstants.NOT_FOUND, ResponseConstants.INVALID_MODIFIED_BY, HttpStatus.NOT_FOUND);
      }
    }

    String status = noticeDTO.getStatus();
    if (!StringUtils.isBlank(status) && status.equals(NoticeStatus.ACTIVE.name())) {
      notice.setApprovedDate(currentTime);
      notice.setApprovedBy(user);
    }
    NoticeHistory history =
        new NoticeHistory(notice, notice.getStatus(), noticeDTO.getNotes(), currentTime, user);
    notice.getHistory().add(history);
    super.update(notice);
  }
示例#2
0
 private Notice loadNoticeDetails(NoticeRequestDTO noticeDTO, Notice notice) {
   Notice noticeTemp = notice;
   if (notice == null) {
     noticeTemp = new Notice();
   }
   if (!StringUtils.isBlank(noticeDTO.getStatus())) {
     noticeTemp.setStatus(noticeDTO.getStatus());
   }
   if (!StringUtils.isBlank(noticeDTO.getDetails())) {
     noticeTemp.setDetails(noticeDTO.getDetails());
   }
   if (!StringUtils.isBlank(noticeDTO.getTitle())) {
     noticeTemp.setTitle(noticeDTO.getTitle());
   }
   return noticeTemp;
 }
示例#3
0
 @Override
 public void delete(int noticeId) throws OperationalException {
   Notice notice = findById(noticeId);
   if (notice == null) {
     throw new OperationalException(
         HttpConstants.NOT_FOUND, ResponseConstants.INVALID_NOTICE_ID, HttpStatus.NOT_FOUND);
   }
   notice.setStatus(NoticeStatus.DELETED.name());
   User user = null;
   if (SecurityContextHolder.getContext().getAuthentication().getPrincipal() != null) {
     user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
   }
   NoticeHistory history =
       new NoticeHistory(notice, NoticeStatus.DELETED.name(), null, LocalDateTime.now(), user);
   notice.getHistory().add(history);
   super.update(notice);
 }
示例#4
0
  @Override
  public void reject(int noticeId, String notes) throws OperationalException {
    Notice notice = findById(noticeId);
    if (notice == null) {
      throw new OperationalException(
          HttpConstants.NOT_FOUND, ResponseConstants.INVALID_NOTICE_ID, HttpStatus.NOT_FOUND);
    } else if (!notice.getStatus().equals(NoticeStatus.WAITING.name())) {
      throw new OperationalException(
          HttpConstants.NOT_FOUND, "Notice already rejected", HttpStatus.NOT_FOUND);
    }
    notice.setStatus(NoticeStatus.REJECTED.name());
    User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();

    NoticeHistory history =
        new NoticeHistory(notice, NoticeStatus.REJECTED.name(), notes, LocalDateTime.now(), user);
    notice.getHistory().add(history);
    super.update(notice);
    notifyRejectedToWebSocket(noticeId, user.getUserId(), notice.getDongName(), notice.getTitle());
  }
示例#5
0
  @Override
  public void approveAll() throws OperationalException {
    List<Notice> getWaitingNotices =
        super.findByCriteria(Notice.class, Restrictions.eq(STATUS, NoticeStatus.WAITING.name()));
    User operator = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    LocalDateTime currentTime = LocalDateTime.now();

    if (getWaitingNotices != null) {
      for (Notice notice : getWaitingNotices) {
        notice.setApprovedDate(currentTime);
        notice.setApprovedBy(operator);
        notice.setStatus(NoticeStatus.ACTIVE.name());
        NoticeHistory history =
            new NoticeHistory(notice, notice.getStatus(), "Approved all", currentTime, operator);
        notice.getHistory().add(history);
        super.update(notice);
      }
      notifyApprovedAllToWebSocket(operator.getUserId(), operator.getDongId(), null);
    }
  }
示例#6
0
  @Override
  public Notice request(NoticeRequestDTO noticeDTO) throws OperationalException {
    try {
      Notice notice = loadNoticeDetails(noticeDTO, null);
      notice.setCreationDate(LocalDateTime.now());
      User user = userDao.getActiveUserDetails(noticeDTO.getAuthor());
      if (user == null) {
        throw new OperationalException(
            HttpConstants.NOT_FOUND, ResponseConstants.INVALID_AUTHOR, HttpStatus.NOT_FOUND);
      }
      notice.setAuthor(user);
      notice.setLotId(noticeDTO.getLotId());
      notice.setDongName(noticeDTO.getDongName());
      notice.setStatus(NoticeStatus.WAITING.name());

      NoticeHistory history =
          new NoticeHistory(notice, notice.getStatus(), null, LocalDateTime.now(), user);
      notice.setHistory(new HashSet(Arrays.asList(history)));

      int id = super.save(notice);
      notice.setNoticeId(id);
      notifyApprovalToWebSocket(
          notice.getNoticeId(), noticeDTO.getAuthor(), notice.getDongName(), notice.getTitle());

      return notice;
    } catch (OperationalException e) {
      LOGGER.error("request: OperationalException ", e);
      throw new OperationalException(e.getHttpCode(), e.getMessage(), e.getHttpStatus());
    } catch (Exception e) {
      LOGGER.error("request: Exception ", e);
      throw new OperationalException(
          HttpConstants.INTERNAL_SERVER_ERROR,
          ResponseConstants.ERROR_FETCHING_FROM_DB,
          HttpStatus.INTERNAL_SERVER_ERROR);
    }
  }