Browse Source

Implement-api-scan-update-code-details

new-feature
Viet.LeQ2 2 years ago
parent
commit
34cd54b118
9 changed files with 132 additions and 58 deletions
  1. +3
    -3
      src/main/java/vn/azteam/tpf/domain/TBCodeDetails.java
  2. +0
    -19
      src/main/java/vn/azteam/tpf/domain/TBCodeDetailsStatusEnum.java
  3. +1
    -5
      src/main/java/vn/azteam/tpf/domain/TBCodeStatusEnum.java
  4. +3
    -0
      src/main/java/vn/azteam/tpf/service/TBCodeDetailsService.java
  5. +4
    -4
      src/main/java/vn/azteam/tpf/service/dto/TBCodeDetailsDTO.java
  6. +41
    -3
      src/main/java/vn/azteam/tpf/service/impl/TBCodeDetailsImpl.java
  7. +33
    -14
      src/main/java/vn/azteam/tpf/service/impl/TBCodeServiceImpl.java
  8. +45
    -7
      src/main/java/vn/azteam/tpf/web/rest/TBCodeDetailsResource.java
  9. +2
    -3
      src/main/java/vn/azteam/tpf/web/rest/TBCodeResource.java

+ 3
- 3
src/main/java/vn/azteam/tpf/domain/TBCodeDetails.java View File



@Column(name = "status") @Column(name = "status")
@Enumerated(value = EnumType.STRING) @Enumerated(value = EnumType.STRING)
private TBCodeDetailsStatusEnum status = TBCodeDetailsStatusEnum.NEW;
private TBCodeStatusEnum status = TBCodeStatusEnum.NEW;


@Column(name = "last_updated_date") @Column(name = "last_updated_date")
private Instant lastUpdatedDate; private Instant lastUpdatedDate;
this.numberScan = numberScan; this.numberScan = numberScan;
} }


public TBCodeDetailsStatusEnum getStatus() {
public TBCodeStatusEnum getStatus() {
return status; return status;
} }


public void setStatus(TBCodeDetailsStatusEnum status) {
public void setStatus(TBCodeStatusEnum status) {
this.status = status; this.status = status;
} }



+ 0
- 19
src/main/java/vn/azteam/tpf/domain/TBCodeDetailsStatusEnum.java View File

package vn.azteam.tpf.domain;

public enum TBCodeDetailsStatusEnum {
NEW("NEW"),

UPDATED("UPDATED"),

CANCELED("UPDATED_PRINTED");

private final String name;

TBCodeDetailsStatusEnum(final String name) {
this.name = name;
}

public String getName() {
return name;
}
}

+ 1
- 5
src/main/java/vn/azteam/tpf/domain/TBCodeStatusEnum.java View File



EXPIRED("EXPIRED"), EXPIRED("EXPIRED"),


CANCELED("CANCELED"),

UPDATED("UPDATED"),

UPDATED_PRINTED("UPDATED_PRINTED");
CANCELED("CANCELED");







+ 3
- 0
src/main/java/vn/azteam/tpf/service/TBCodeDetailsService.java View File

import vn.azteam.tpf.web.rest.errors.BadRequestAlertException; import vn.azteam.tpf.web.rest.errors.BadRequestAlertException;


import java.util.List; import java.util.List;
import java.util.Optional;


/** /**
* Service Interface for managing TBCodeDetailsService. * Service Interface for managing TBCodeDetailsService.
List<TBCodeDetailsDTO> saveAll(List<TBCodeDetailsDTO> tBCodeDetailsDTOs); List<TBCodeDetailsDTO> saveAll(List<TBCodeDetailsDTO> tBCodeDetailsDTOs);


void updateNumberScan(String code) throws BadRequestAlertException; void updateNumberScan(String code) throws BadRequestAlertException;

Optional<TBCodeDetailsDTO> updateStatusTBCodeDetails(TBCodeDetailsDTO tBCodeDetailsDTO);
} }

+ 4
- 4
src/main/java/vn/azteam/tpf/service/dto/TBCodeDetailsDTO.java View File

package vn.azteam.tpf.service.dto; package vn.azteam.tpf.service.dto;


import vn.azteam.tpf.domain.TBCodeDetailsStatusEnum;
import vn.azteam.tpf.domain.TBCodeStatusEnum;


import java.io.Serializable; import java.io.Serializable;
import java.time.Instant; import java.time.Instant;


private Integer numberScan; private Integer numberScan;


private TBCodeDetailsStatusEnum status;
private TBCodeStatusEnum status;


private Instant createdDate; private Instant createdDate;


this.numberScan = numberScan; this.numberScan = numberScan;
} }


public TBCodeDetailsStatusEnum getStatus() {
public TBCodeStatusEnum getStatus() {
return status; return status;
} }


public void setStatus(TBCodeDetailsStatusEnum status) {
public void setStatus(TBCodeStatusEnum status) {
this.status = status; this.status = status;
} }



+ 41
- 3
src/main/java/vn/azteam/tpf/service/impl/TBCodeDetailsImpl.java View File

import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import vn.azteam.tpf.domain.TBCode;
import vn.azteam.tpf.domain.TBCodeDetails; import vn.azteam.tpf.domain.TBCodeDetails;
import vn.azteam.tpf.domain.TBCodeStatusEnum;
import vn.azteam.tpf.repository.TBCodeDetailsRepository; import vn.azteam.tpf.repository.TBCodeDetailsRepository;
import vn.azteam.tpf.repository.TBDetailUserRepository;
import vn.azteam.tpf.repository.search.TBCodeDetailsSearchRepository; import vn.azteam.tpf.repository.search.TBCodeDetailsSearchRepository;
import vn.azteam.tpf.service.TBCodeDetailsService; import vn.azteam.tpf.service.TBCodeDetailsService;
import vn.azteam.tpf.service.dto.TBCodeDetailsDTO; import vn.azteam.tpf.service.dto.TBCodeDetailsDTO;


private final TBCodeDetailsMapper tBCodeDetailsMapper; private final TBCodeDetailsMapper tBCodeDetailsMapper;


private final TBDetailUserRepository tBDetailUserRepository;

private final TBCodeDetailsSearchRepository tBCodeDetailsSearchRepository; private final TBCodeDetailsSearchRepository tBCodeDetailsSearchRepository;


public TBCodeDetailsImpl(TBCodeDetailsRepository tbCodeDetailsRepository, TBCodeDetailsMapper tBCodeDetailsMapper, TBCodeDetailsSearchRepository tBCodeDetailsSearchRepository) {
public TBCodeDetailsImpl(TBCodeDetailsRepository tbCodeDetailsRepository,
TBCodeDetailsMapper tBCodeDetailsMapper,
TBDetailUserRepository tBDetailUserRepository,
TBCodeDetailsSearchRepository tBCodeDetailsSearchRepository) {
this.tbCodeDetailsRepository = tbCodeDetailsRepository; this.tbCodeDetailsRepository = tbCodeDetailsRepository;
this.tBCodeDetailsMapper = tBCodeDetailsMapper; this.tBCodeDetailsMapper = tBCodeDetailsMapper;
this.tBDetailUserRepository = tBDetailUserRepository;
this.tBCodeDetailsSearchRepository = tBCodeDetailsSearchRepository; this.tBCodeDetailsSearchRepository = tBCodeDetailsSearchRepository;
} }


Optional<TBCodeDetails> tbCodeDetailsOptional = tbCodeDetailsRepository.findByCode(code); Optional<TBCodeDetails> tbCodeDetailsOptional = tbCodeDetailsRepository.findByCode(code);
if (tbCodeDetailsOptional.isPresent()) { if (tbCodeDetailsOptional.isPresent()) {
TBCodeDetails tbCodeDetails = tbCodeDetailsOptional.get(); TBCodeDetails tbCodeDetails = tbCodeDetailsOptional.get();
if(tbCodeDetails.getTbCode() != null) {

TBCode tbCode = tbCodeDetails.getTbCode();
if (!TBCodeStatusEnum.ACTIVE.getName().equals(tbCodeDetails.getStatus().getName()) ||
tbCode.getExpiredDate().isBefore(Instant.now())) {
throw new BadRequestAlertException("Not found", "tb code details to update with code:", code);
} }

Integer numberScan = tbCodeDetails.getNumberScan(); Integer numberScan = tbCodeDetails.getNumberScan();
tbCodeDetails.setNumberScan(numberScan.equals(0) ? 1 : numberScan + 1); tbCodeDetails.setNumberScan(numberScan.equals(0) ? 1 : numberScan + 1);
tbCodeDetails.setLastUpdatedDate(Instant.now()); tbCodeDetails.setLastUpdatedDate(Instant.now());
} }
} }


@Override
public Optional<TBCodeDetailsDTO> updateStatusTBCodeDetails(TBCodeDetailsDTO tBCodeDetailsDTO) {
log.debug("Request to updateStatusTBCodeDetails TBCodeDetails id: {}", tBCodeDetailsDTO.getId());
try {
Optional<TBCodeDetails> tbCodeDetailsOptional = tbCodeDetailsRepository.findById(tBCodeDetailsDTO.getId());
if (!tbCodeDetailsOptional.isPresent()) {
throw new BadRequestAlertException("Not found TBCodeDetails", "",
tBCodeDetailsDTO.getId().toString());
}

if (tbCodeDetailsOptional.get().getStatus().equals(TBCodeStatusEnum.EXPIRED)) {
throw new BadRequestAlertException("Bad request, could not change status Canceled or Expired", "",
tBCodeDetailsDTO.getId().toString());
}

TBCodeDetails tbCodeDetails = tbCodeDetailsOptional.get();
tbCodeDetails.setStatus(tBCodeDetailsDTO.getStatus());
tbCodeDetails.setModifiedBy(tBDetailUserRepository.findById(tBCodeDetailsDTO.getModifiedById()).get());
tbCodeDetails.setModifiedDate(Instant.now());
tbCodeDetails = tbCodeDetailsRepository.save(tbCodeDetails);
return Optional.ofNullable(tBCodeDetailsMapper.toDto(tbCodeDetails));
} catch (Exception exception) {
throw new RuntimeException();
}
}

} }

+ 33
- 14
src/main/java/vn/azteam/tpf/service/impl/TBCodeServiceImpl.java View File

import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import vn.azteam.tpf.domain.TBCode; import vn.azteam.tpf.domain.TBCode;
import vn.azteam.tpf.domain.TBCodeDetails;
import vn.azteam.tpf.domain.TBCodeStatusEnum; import vn.azteam.tpf.domain.TBCodeStatusEnum;
import vn.azteam.tpf.repository.TBCodeDetailsRepository;
import vn.azteam.tpf.repository.TBCodeRepository; import vn.azteam.tpf.repository.TBCodeRepository;
import vn.azteam.tpf.repository.search.TBCodeSearchRepository; import vn.azteam.tpf.repository.search.TBCodeSearchRepository;
import vn.azteam.tpf.service.TBCodeService; import vn.azteam.tpf.service.TBCodeService;


private final TBCodeRepository tbCodeRepository; private final TBCodeRepository tbCodeRepository;


private final TBCodeDetailsRepository tbCodeDetailsRepository;

private final TBCodeMapper tBCodeMapper; private final TBCodeMapper tBCodeMapper;


private final TBCodeSearchRepository tBCodeSearchRepository; private final TBCodeSearchRepository tBCodeSearchRepository;


public TBCodeServiceImpl(TBCodeRepository tbCodeRepository, public TBCodeServiceImpl(TBCodeRepository tbCodeRepository,
TBCodeMapper tBCodeMapper, TBCodeSearchRepository tBCodeSearchRepository) {
TBCodeDetailsRepository tbCodeDetailsRepository, TBCodeMapper tBCodeMapper,
TBCodeSearchRepository tBCodeSearchRepository) {
this.tbCodeRepository = tbCodeRepository; this.tbCodeRepository = tbCodeRepository;
this.tbCodeDetailsRepository = tbCodeDetailsRepository;
this.tBCodeMapper = tBCodeMapper; this.tBCodeMapper = tBCodeMapper;
this.tBCodeSearchRepository = tBCodeSearchRepository; this.tBCodeSearchRepository = tBCodeSearchRepository;
} }
@Transactional(readOnly = true) @Transactional(readOnly = true)
public Optional<TBCodeDTO> updateStatusTBCode(TBCodeDTO tbCodeDTO) { public Optional<TBCodeDTO> updateStatusTBCode(TBCodeDTO tbCodeDTO) {
log.debug("Request to updateTBCode TBCode id: {}", tbCodeDTO.getId()); log.debug("Request to updateTBCode TBCode id: {}", tbCodeDTO.getId());
Optional<TBCode> tbCodeOptional = tbCodeRepository.findById(tbCodeDTO.getId());
if (!tbCodeOptional.isPresent()) {
throw new BadRequestAlertException("Not found TBCode", "",
tbCodeDTO.getId().toString());
}
try {
Optional<TBCode> tbCodeOptional = tbCodeRepository.findById(tbCodeDTO.getId());
if (!tbCodeOptional.isPresent()) {
throw new BadRequestAlertException("Not found TBCode", "",
tbCodeDTO.getId().toString());
}

if (TBCodeStatusEnum.CANCELED.equals(tbCodeOptional.get().getStatus()) ||
tbCodeOptional.get().getStatus().equals(TBCodeStatusEnum.EXPIRED)) {
throw new BadRequestAlertException("Bad request, could not change status Canceled or Expired", "",
tbCodeDTO.getId().toString());
}


if (TBCodeStatusEnum.CANCELED.equals(tbCodeOptional.get().getStatus()) ||
tbCodeOptional.get().getStatus().equals(TBCodeStatusEnum.EXPIRED)) {
throw new BadRequestAlertException("Bad request, could not change status Canceled or Expired", "",
tbCodeDTO.getId().toString());
TBCode tbCode = tBCodeMapper.toEntity(tbCodeDTO);
tbCode = tbCodeRepository.save(tbCode);

if (!tbCode.getTbCodeDetails().isEmpty()) {
List<TBCodeDetails> tbCodeDetailsList = new ArrayList<>();
for (TBCodeDetails tbCodeDetails : tbCode.getTbCodeDetails()) {
tbCodeDetails.setStatus(tbCode.getStatus());
tbCodeDetailsList.add(tbCodeDetails);
}
tbCodeDetailsRepository.saveAll(tbCodeDetailsList);
}
return Optional.ofNullable(tBCodeMapper.toDto(tbCode));
} catch (Exception exception) {
throw new RuntimeException();
} }

TBCode tbCode = tBCodeMapper.toEntity(tbCodeDTO);
tbCode = tbCodeRepository.save(tbCode);
return Optional.ofNullable(tBCodeMapper.toDto(tbCode));
} }
} }

+ 45
- 7
src/main/java/vn/azteam/tpf/web/rest/TBCodeDetailsResource.java View File

package vn.azteam.tpf.web.rest; package vn.azteam.tpf.web.rest;


import com.codahale.metrics.annotation.Timed; import com.codahale.metrics.annotation.Timed;
import io.github.jhipster.web.util.ResponseUtil;
import io.searchbox.strings.StringUtils; import io.searchbox.strings.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import vn.azteam.tpf.domain.TBCodeStatusEnum;
import vn.azteam.tpf.service.TBCodeDetailsQueryService; import vn.azteam.tpf.service.TBCodeDetailsQueryService;
import vn.azteam.tpf.service.TBCodeDetailsService; import vn.azteam.tpf.service.TBCodeDetailsService;
import vn.azteam.tpf.service.UserService;
import vn.azteam.tpf.service.dto.TBCodeDetailsDTO;
import vn.azteam.tpf.service.dto.UserDTO;
import vn.azteam.tpf.service.util.PageableUtil; import vn.azteam.tpf.service.util.PageableUtil;
import vn.azteam.tpf.service.util.UserRoleUtil; import vn.azteam.tpf.service.util.UserRoleUtil;
import vn.azteam.tpf.web.rest.errors.BadRequestAlertException;

import java.time.Instant;
import java.util.Optional;


@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
public class TBCodeDetailsResource { public class TBCodeDetailsResource {


private static final String ENTITY_NAME = "tBCodeDetails";
private final Logger log = LoggerFactory.getLogger(TBCodeDetailsResource.class); private final Logger log = LoggerFactory.getLogger(TBCodeDetailsResource.class);


private final TBCodeDetailsService tBCodeDetailsService; private final TBCodeDetailsService tBCodeDetailsService;


private final PageableUtil pageableUtil; private final PageableUtil pageableUtil;


private final UserService userService;



public TBCodeDetailsResource(TBCodeDetailsService tBCodeDetailsService, TBCodeDetailsQueryService tBCodeDetailsQueryService, UserRoleUtil userRoleUtil, PageableUtil pageableUtil) {
public TBCodeDetailsResource(TBCodeDetailsService tBCodeDetailsService, TBCodeDetailsQueryService tBCodeDetailsQueryService,
UserRoleUtil userRoleUtil, PageableUtil pageableUtil, UserService userService) {
this.tBCodeDetailsService = tBCodeDetailsService; this.tBCodeDetailsService = tBCodeDetailsService;
this.tBCodeDetailsQueryService = tBCodeDetailsQueryService; this.tBCodeDetailsQueryService = tBCodeDetailsQueryService;
this.userRoleUtil = userRoleUtil; this.userRoleUtil = userRoleUtil;
this.pageableUtil = pageableUtil; this.pageableUtil = pageableUtil;
this.userService = userService;
} }


@GetMapping("/tb-codes-scan/{code}")
@GetMapping("/tb-code-details/scan/{code}")
@Timed @Timed
public ResponseEntity<?> getTBCodeScan(@PathVariable String code) {
public ResponseEntity<?> getTBCodeDetailsScan(@PathVariable String code) {
if (StringUtils.isBlank(code)) { if (StringUtils.isBlank(code)) {
return (ResponseEntity<?>) ResponseEntity.badRequest(); return (ResponseEntity<?>) ResponseEntity.badRequest();
} }
tBCodeDetailsService.updateNumberScan(code); tBCodeDetailsService.updateNumberScan(code);
return ResponseEntity.ok().build(); return ResponseEntity.ok().build();
} }

@PutMapping("/tb-code-details/update/{id}/status/{status}")
@Timed
public ResponseEntity<TBCodeDetailsDTO> updateTBCodeDetailsStatus(@PathVariable Long id, @PathVariable String status) {
log.debug("REST request to update tb codes : {}, status {} ", id, status);
if (id == null || org.apache.commons.lang3.StringUtils.isBlank(status)) {
throw new BadRequestAlertException("1039", ENTITY_NAME, "1039");
}
try {
TBCodeStatusEnum.valueOf(status);
} catch (Exception exception) {
throw new BadRequestAlertException("1039", ENTITY_NAME, "1039");
}
UserDTO currentUser = userService.getCurrentUserDTO().get();
TBCodeDetailsDTO tbCodeDetailsDTO = new TBCodeDetailsDTO();
tbCodeDetailsDTO.setId(id);
tbCodeDetailsDTO.setModifiedDate(Instant.now());
tbCodeDetailsDTO.setModifiedById(currentUser.getId());
tbCodeDetailsDTO.setStatus(TBCodeStatusEnum.valueOf(status));

Optional<TBCodeDetailsDTO> tBCodeUpdated =
tBCodeDetailsService.updateStatusTBCodeDetails(tbCodeDetailsDTO);
// if (null != tBCropDTO) {
// sendNotificationPersonInCharge(cropPersonInChargeDTO, listAssignmentPrev);
// }
return ResponseUtil.wrapOrNotFound(tBCodeUpdated);
}
} }

+ 2
- 3
src/main/java/vn/azteam/tpf/web/rest/TBCodeResource.java View File

import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vn.azteam.tpf.domain.TBCodeDetailsStatusEnum;
import vn.azteam.tpf.domain.TBCodeStatusEnum; import vn.azteam.tpf.domain.TBCodeStatusEnum;
import vn.azteam.tpf.service.*; import vn.azteam.tpf.service.*;
import vn.azteam.tpf.service.dto.*; import vn.azteam.tpf.service.dto.*;
codeDetailsDTO.setCode(tBCodeDTO.getCode()); codeDetailsDTO.setCode(tBCodeDTO.getCode());
codeDetailsDTO.setTbCode(tBCodeDTO); codeDetailsDTO.setTbCode(tBCodeDTO);
codeDetailsDTO.setNumberScan(0); codeDetailsDTO.setNumberScan(0);
codeDetailsDTO.setStatus(TBCodeDetailsStatusEnum.NEW);
codeDetailsDTO.setStatus(TBCodeStatusEnum.NEW);
codeDetailsDTO.setCreatedDate(Instant.now()); codeDetailsDTO.setCreatedDate(Instant.now());
tBCodeDTO.setCreatedById(currentUser.getUserId()); tBCodeDTO.setCreatedById(currentUser.getUserId());
tbCodeDetailsDTOS.add(codeDetailsDTO); tbCodeDetailsDTOS.add(codeDetailsDTO);
*/ */
@PutMapping("/tb-codes/update/{id}/status/{status}") @PutMapping("/tb-codes/update/{id}/status/{status}")
@Timed @Timed
public ResponseEntity<TBCodeDTO> updateTBCode(@PathVariable Long id, String status) {
public ResponseEntity<TBCodeDTO> updateTBCode(@PathVariable Long id, @PathVariable String status) {
log.debug("REST request to update tb codes : {}, status {} ", id, status); log.debug("REST request to update tb codes : {}, status {} ", id, status);
if (id == null || StringUtils.isBlank(status)) { if (id == null || StringUtils.isBlank(status)) {
throw new BadRequestAlertException("1039", ENTITY_NAME, "1039"); throw new BadRequestAlertException("1039", ENTITY_NAME, "1039");

Loading…
Cancel
Save