Dossier Status dossier count
This commit is contained in:
parent
8ce645c227
commit
a3e42db426
@ -22,5 +22,6 @@ public class DossierStatusInfo {
|
||||
private String description;
|
||||
private String color;
|
||||
private String dossierTemplateId;
|
||||
private Long dossierCount;
|
||||
|
||||
}
|
||||
|
||||
@ -27,11 +27,6 @@ public interface DossierStatusResource {
|
||||
@PostMapping(value = DOSSIER_STATUS_PATH, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
DossierStatusInfo createOrUpdateDossierStatus(@RequestBody CreateOrUpdateDossierStatusRequest dossierStatusRequest);
|
||||
|
||||
@ResponseBody
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
@GetMapping(value = DOSSIER_STATUS_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<DossierStatusInfo> getAllDossierStatus();
|
||||
|
||||
@ResponseBody
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
@GetMapping(value = DOSSIER_STATUS_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
|
||||
@ -4,6 +4,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Formula;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
@ -38,4 +39,5 @@ public class DossierStatusEntity {
|
||||
|
||||
@OneToMany(mappedBy = "dossierStatus")
|
||||
private List<DossierEntity> dossiers = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierStatusRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -48,12 +49,14 @@ public class DossierStatusPersistenceService {
|
||||
}
|
||||
}
|
||||
|
||||
public List<DossierStatusEntity> getAllDossierStatus() {
|
||||
return dossierStatusRepository.findAll();
|
||||
|
||||
public List<DossierStatusInfo> getAllDossierStatusForTemplate(String dossierTemplateId) {
|
||||
var x = dossierStatusRepository.getAllDossierStatusForDossierTemplate(dossierTemplateId);
|
||||
return x;
|
||||
}
|
||||
|
||||
public List<DossierStatusEntity> getAllDossierStatusForTemplate(String dossierTemplateId) {
|
||||
return dossierStatusRepository.getAllDossierStatusForDossierTemplate(dossierTemplateId);
|
||||
public DossierStatusInfo getDossierStatusInfo(String dossierStatusId) {
|
||||
return dossierStatusRepository.findProjectionById(dossierStatusId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, dossierStatusId)));
|
||||
}
|
||||
|
||||
public DossierStatusEntity getDossierStatus(String dossierStatusId) {
|
||||
|
||||
@ -1,13 +1,20 @@
|
||||
package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface DossierStatusRepository extends JpaRepository<DossierStatusEntity, String> {
|
||||
|
||||
@Query("select s from DossierStatusEntity s where s.dossierTemplateId = :dossierTemplateId")
|
||||
List<DossierStatusEntity> getAllDossierStatusForDossierTemplate(String dossierTemplateId);
|
||||
@Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," +
|
||||
"s.description, s.color, s.dossierTemplateId, count(d)) from DossierStatusEntity s left outer join s.dossiers d where s.dossierTemplateId = :dossierTemplateId group by s")
|
||||
List<DossierStatusInfo> getAllDossierStatusForDossierTemplate(String dossierTemplateId);
|
||||
|
||||
@Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," +
|
||||
"s.description, s.color, s.dossierTemplateId, count(d)) from DossierStatusEntity s left outer join s.dossiers d where s.id = :dossierStatusId")
|
||||
Optional<DossierStatusInfo> findProjectionById(String dossierStatusId);
|
||||
}
|
||||
|
||||
@ -27,11 +27,6 @@ public class DossierStatusController implements DossierStatusResource {
|
||||
return convert(dossierStatusPersistenceService.createOrUpdateDossierStatus(dossierStatusRequest), DossierStatusInfo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DossierStatusInfo> getAllDossierStatus() {
|
||||
|
||||
return convert(dossierStatusPersistenceService.getAllDossierStatus(), DossierStatusInfo.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DossierStatusInfo> getAllDossierStatusForTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) {
|
||||
@ -41,7 +36,7 @@ public class DossierStatusController implements DossierStatusResource {
|
||||
@Override
|
||||
public DossierStatusInfo getDossierStatus(@PathVariable(DOSSIER_STATUS_ID) String dossierStatusId) {
|
||||
|
||||
return convert(dossierStatusPersistenceService.getDossierStatus(dossierStatusId), DossierStatusInfo.class);
|
||||
return dossierStatusPersistenceService.getDossierStatusInfo(dossierStatusId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -31,7 +31,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest {
|
||||
public void testDossierStatus() {
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
var allDossierStatus = dossierStatusClient.getAllDossierStatus();
|
||||
var allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
|
||||
assertThat(allDossierStatus.size()).isZero();
|
||||
|
||||
@ -43,7 +43,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest {
|
||||
var loadedDossierStatus = dossierStatusClient.createOrUpdateDossierStatus(crudsr);
|
||||
assertThat(loadedDossierStatus).isNotNull();
|
||||
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatus();
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
assertThat(allDossierStatus.size()).isEqualTo(1);
|
||||
|
||||
var testDossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "1", allDossierStatus.iterator().next());
|
||||
@ -56,6 +56,12 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest {
|
||||
cru.setDossierTemplateId(testDossier.getDossierTemplateId());
|
||||
cru.setDossierStatusId(null);
|
||||
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
assertThat(allDossierStatus.size()).isEqualTo(1);
|
||||
|
||||
assertThat(allDossierStatus.iterator().next().getDossierCount()).isEqualTo(1);
|
||||
|
||||
|
||||
var updated = dossierClient.updateDossier(cru, testDossier.getId());
|
||||
assertThat(updated.getDossierStatusId()).isNull();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user