コード例 #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
  @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);
    }
  }
コード例 #3
0
  @Override
  public Notice add(NoticeRequestDTO noticeDTO) throws OperationalException {
    try {
      Notice notice = loadNoticeDetails(noticeDTO, null);
      LocalDateTime currentTime = LocalDateTime.now();
      notice.setCreationDate(currentTime);
      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.setDongName(noticeDTO.getDongName());
      notice.setLotId(noticeDTO.getLotId());
      notice.setStatus(NoticeStatus.ACTIVE.name());
      notice.setApprovedDate(currentTime);
      notice.setApprovedBy(user);

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

      int id = super.save(notice);

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