Commit 5032e7fd authored by George Novikov's avatar George Novikov

отделение TemplateEntityVersion от TemplateEntity

parent 709456c1
Pipeline #333 failed with stage
...@@ -3,6 +3,7 @@ package kz.project.printedFormsService.data.dto; ...@@ -3,6 +3,7 @@ package kz.project.printedFormsService.data.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import kz.project.printedFormsService.data.entity.TemplateEntity; import kz.project.printedFormsService.data.entity.TemplateEntity;
import kz.project.printedFormsService.data.entity.TemplateEntityVersion;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -99,7 +100,7 @@ public class TemplateDto { ...@@ -99,7 +100,7 @@ public class TemplateDto {
return new PageImpl<>(dtos, PageRequest.of(all.getNumber(),all.getSize()),all.getTotalElements()); return new PageImpl<>(dtos, PageRequest.of(all.getNumber(),all.getSize()),all.getTotalElements());
} }
public static Page<TemplateDto> toDtoList(Page<TemplateEntity> all, Page<TemplateEntity> versions){ public static Page<TemplateDto> toDtoList(Page<TemplateEntity> all, Page<TemplateEntityVersion> versions){
if(all.getContent() == null && versions.getContent() == null) return null; if(all.getContent() == null && versions.getContent() == null) return null;
List<TemplateDto> dtos = new ArrayList<>(); List<TemplateDto> dtos = new ArrayList<>();
...@@ -109,8 +110,8 @@ public class TemplateDto { ...@@ -109,8 +110,8 @@ public class TemplateDto {
} }
} }
if (versions.getContent() != null){ if (versions.getContent() != null){
for (TemplateEntity ver:versions.getContent()) { for (TemplateEntityVersion ver:versions.getContent()) {
dtos.add(TemplateDto.toDtoAll(ver)); dtos.add(TemplateDto.toDtoAll(new TemplateEntity(ver)));
} }
} }
......
...@@ -2,11 +2,9 @@ package kz.project.printedFormsService.data.entity; ...@@ -2,11 +2,9 @@ package kz.project.printedFormsService.data.entity;
import jakarta.persistence.*; import jakarta.persistence.*;
import kz.project.printedFormsService.data.entity.dict.DTemplateType; import kz.project.printedFormsService.data.entity.dict.DTemplateType;
import lombok.Data;
@Entity @Entity
@Table(name = "template", schema = "template_schema") @Table(name = "template", schema = "template_schema")
@Data
public class TemplateEntity { public class TemplateEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
...@@ -23,6 +21,91 @@ public class TemplateEntity { ...@@ -23,6 +21,91 @@ public class TemplateEntity {
@OneToOne @OneToOne
private TemplateFileInfoEntity templateHeader; private TemplateFileInfoEntity templateHeader;
public TemplateEntity() {}
public TemplateEntity(TemplateEntityVersion version){
this.id = version.getId();
this.code = version.getCode();
this.name = version.getName();
this.status = version.getStatus();
this.project = version.getProject();
this.version = version.getVersion();
this.type = version.getType();
this.template = version.getTemplate();
this.templateHeader = version.getTemplateHeader();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getStatus() {
return status;
}
public void setStatus(Boolean status) {
this.status = status;
}
public String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public DTemplateType getType() {
return type;
}
public void setType(DTemplateType type) {
this.type = type;
}
public TemplateFileInfoEntity getTemplate() {
return template;
}
public void setTemplate(TemplateFileInfoEntity template) {
this.template = template;
}
public TemplateFileInfoEntity getTemplateHeader() {
return templateHeader;
}
public void setTemplateHeader(TemplateFileInfoEntity templateHeader) {
this.templateHeader = templateHeader;
}
@Override @Override
public boolean equals(Object o){ public boolean equals(Object o){
if (this == o) return true; if (this == o) return true;
......
package kz.project.printedFormsService.data.entity;
import jakarta.persistence.*;
import kz.project.printedFormsService.data.entity.dict.DTemplateType;
@Entity
@Table(name = "template_version", schema = "template_schema")
public class TemplateEntityVersion {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String code;
private String name;
private Boolean status;
private String project;
private Integer version;
@ManyToOne
private DTemplateType type;
@OneToOne
private TemplateFileInfoEntity template;
@OneToOne
private TemplateFileInfoEntity templateHeader;
public TemplateEntityVersion() {}
public TemplateEntityVersion(TemplateEntity entity) {
this.code = entity.getCode();
this.name = entity.getName();
this.status = entity.getStatus();
this.project = entity.getProject();
this.version = entity.getVersion();
this.type = entity.getType();
this.template = entity.getTemplate();
this.templateHeader = entity.getTemplateHeader();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Boolean getStatus() {
return status;
}
public void setStatus(Boolean status) {
this.status = status;
}
public String getProject() {
return project;
}
public void setProject(String project) {
this.project = project;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public DTemplateType getType() {
return type;
}
public void setType(DTemplateType type) {
this.type = type;
}
public TemplateFileInfoEntity getTemplate() {
return template;
}
public void setTemplate(TemplateFileInfoEntity template) {
this.template = template;
}
public TemplateFileInfoEntity getTemplateHeader() {
return templateHeader;
}
public void setTemplateHeader(TemplateFileInfoEntity templateHeader) {
this.templateHeader = templateHeader;
}
@Override
public boolean equals(Object o){
if (this == o) return true;
if (o == null || !(o instanceof TemplateEntity)) return false;
TemplateEntity other = (TemplateEntity) o;
/* Примитивы */
boolean isCodeEqual = this.code == other.getCode() || (this.code != null && this.code.equals(other.getCode()));
boolean isNameEqual = this.name == other.getName() || (this.name != null && this.name.equals(other.getName()));
boolean isStatusEqual = this.status == other.getStatus() || (this.status != null && this.status.equals(other.getStatus()));
boolean isProjectEqual = this.project == other.getProject() || (this.project != null && this.project.equals(other.getProject()));
/* Сложные типы */
boolean isTypeEqual = this.type == other.getType() || (this.type != null && this.type.equals(other.getType()));
boolean isTemplateEqual = this.template == other.getTemplate() || (this.template != null && this.template.equals(other.getTemplate()));
boolean isHeaderEqual = this.templateHeader == other.getTemplateHeader() || (this.templateHeader != null && this.templateHeader.equals(other.getTemplateHeader()));
return isCodeEqual && isNameEqual && isStatusEqual && isProjectEqual && isTypeEqual && isTemplateEqual && isHeaderEqual;
}
@Override
public int hashCode(){
int hash = 17;
if (code != null) hash = 31 * hash * code.hashCode();
if (name != null) hash = 31 * hash * name.hashCode();
if (status != null) hash = 31 * hash * status.hashCode();
if (project != null) hash = 31 * hash * project.hashCode();
if (type != null) hash = 31 * hash * type.hashCode();
if (template != null) hash = 31 * hash * template.hashCode();
if (templateHeader != null) hash = 31 * hash * templateHeader.hashCode();
return hash;
}
}
package kz.project.printedFormsService.data.repository; package kz.project.printedFormsService.data.repository;
import kz.project.printedFormsService.data.entity.TemplateEntity; import kz.project.printedFormsService.data.entity.TemplateEntity;
import kz.project.printedFormsService.data.entity.TemplateEntityVersion;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
public interface TemplateVersionRepository extends JpaRepository<TemplateEntity, Long> { @Repository
Page<TemplateEntity> findAllByCode(Pageable pageable, String code); public interface TemplateVersionRepository extends JpaRepository<TemplateEntityVersion, Long> {
Page<TemplateEntityVersion> findAllByCode(Pageable pageable, String code);
} }
...@@ -6,6 +6,7 @@ import kz.project.printedFormsService.data.dto.TemplateDto; ...@@ -6,6 +6,7 @@ import kz.project.printedFormsService.data.dto.TemplateDto;
import kz.project.printedFormsService.data.dto.TemplateResponseDto; import kz.project.printedFormsService.data.dto.TemplateResponseDto;
import kz.project.printedFormsService.data.dto.TemplateShortDto; import kz.project.printedFormsService.data.dto.TemplateShortDto;
import kz.project.printedFormsService.data.entity.TemplateEntity; import kz.project.printedFormsService.data.entity.TemplateEntity;
import kz.project.printedFormsService.data.entity.TemplateEntityVersion;
import kz.project.printedFormsService.data.entity.TemplateFileInfoEntity; import kz.project.printedFormsService.data.entity.TemplateFileInfoEntity;
import kz.project.printedFormsService.data.repository.*; import kz.project.printedFormsService.data.repository.*;
import kz.project.printedFormsService.exception.ValidationException; import kz.project.printedFormsService.exception.ValidationException;
...@@ -81,7 +82,7 @@ public class TemplateServiceImpl implements TemplateService { ...@@ -81,7 +82,7 @@ public class TemplateServiceImpl implements TemplateService {
TemplateEntity receivedEntity = createTemplateEntity(dto, files); TemplateEntity receivedEntity = createTemplateEntity(dto, files);
if (!existingEntity.equals(receivedEntity)){ if (!existingEntity.equals(receivedEntity)){
versionRepository.save(existingEntity); versionRepository.save(new TemplateEntityVersion(existingEntity));
} }
return TemplateResponseDto.toDto(repository.save(receivedEntity)); return TemplateResponseDto.toDto(repository.save(receivedEntity));
...@@ -117,15 +118,13 @@ public class TemplateServiceImpl implements TemplateService { ...@@ -117,15 +118,13 @@ public class TemplateServiceImpl implements TemplateService {
public Page<TemplateDto> getAllTemplateByCode(String code, Pageable pageable) throws ValidationException { public Page<TemplateDto> getAllTemplateByCode(String code, Pageable pageable) throws ValidationException {
if (code != null) { if (code != null) {
Page<TemplateEntity> allByCode = repository.findAllByCode(pageable, code); Page<TemplateEntity> allByCode = repository.findAllByCode(pageable, code);
Page<TemplateEntity> allVersionsByCode = versionRepository.findAllByCode(pageable, code); Page<TemplateEntityVersion> allVersionsByCode = versionRepository.findAllByCode(pageable, code);
if (allByCode != null && allVersionsByCode != null) if (allByCode != null && allVersionsByCode != null)
return TemplateDto.toDtoList(allByCode, allVersionsByCode); return TemplateDto.toDtoList(allByCode, allVersionsByCode);
Page<TemplateEntity> existingPage = allByCode != null ? allByCode : allVersionsByCode; if (allByCode != null)
return TemplateDto.toDtoList(allByCode);
if (existingPage != null)
return TemplateDto.toDtoList(existingPage);
} }
throw new ValidationException("Не переданы обязательные поля", 13); throw new ValidationException("Не переданы обязательные поля", 13);
} }
......
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