Материал: Автоматизация обработки заявок Пенсионным Фондом РФ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
101
return module.saveRegistration(regId, registration);
}
}
Контроллер связан с интерфейсом модуля регистрации:
RegistrationModule.java
package ru.pfrf.cs.fo.core.register;
import ru.pfrf.cs.fo.core.AppResult;
/**
* Интерфейс модуля регистраций
* Модуль осуществляет операциии CRUD регистраций и
* дополнительные специфичные оперцации по регистрациям
* соответствующие бизнес требованиям
*/
public interface RegistrationModule {
/**
* Получение данных по регистрации
* (C<b>R</b>UD)
* @param regId - идентификатор регистрации
* @return объект регистрации
*/
IRegistration getRegistration(long regId);
//Registration getRegistration(String regNum);
/**
* Создание новой регистрации
* (<b>C</b>RUD)
* @param IRegistration - рег. данные
* @return идентификатор регистрации
*/
long createRegistration(IRegistration IRegistration);
/**
* Сохранение данных по регистрации
* (CR<b>U</b>D)
* @param regId - рег. данные
* @param IRegistration - рег. данные
* @return ответ системы
*/
IRegistration saveRegistration(Long regId, IRegistration IRegistration);
/**
* Удаление регистрации
* (CRU<b>D</b>)
* @param regId
* @return ответ системы
*/
AppResult deleteRegistration(long regId);
/**
* Управление состоянием регистрации: аннулировано/не аннулировано
* @param regId - ID регистрации
* @param isAnnulled - true установить регистрации regId аннулированное
* состояние, false - регистрация не аннулирована
* @return
*/
IRegistration annulledStateRegistration(long regId, boolean isAnnulled);
}
RegistrationService.java реализация интерфейса модуля
package ru.pfrf.cs.fo.core.register;
102
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import ru.pfrf.cs.fo.core.AppResult;
import ru.pfrf.cs.fo.core.exception.RegistrationNotFoundException;
import ru.pfrf.cs.fo.core.register.db.RegisterRepository;
import ru.pfrf.cs.fo.core.register.db.entity.Registration;
import java.util.Date;
import java.util.Optional;
@Service
public class RegistrationService implements RegistrationModule {
private RegisterRepository repository;
@Autowired
public RegistrationService(RegisterRepository repository) {
this.repository = repository;
}
/**
* Получение регистрации по идентификатору
* @param regId - идентификатор регистрации
* @return объект-регистрация с заданным id
* @throws RegistrationNotFoundException
*/
@Override
public IRegistration getRegistration(long regId)
throws RegistrationNotFoundException
{
Optional<Registration> result = repository.findById(regId);
if (!result.isPresent()) throw new RegistrationNotFoundException();
return result.get();
}
/**
* Создание новой регистрации
* @param registration - рег. данные
* @return
*/
@Override
public long createRegistration(IRegistration registration) {
registration.setRegId(null);
registration = saveRegistration(registration);
return registration.getRegId();
}
/**
* Сохранение регистрации с указанным идентификатором и регистрационными
* данными
* @param regId - идентификатор регистрации
* @param registration - рег. данные
* @return рег.данные
*/
@Override
@Deprecated
public IRegistration saveRegistration(Long regId, IRegistration registration) {
registration.setRegId(regId);
repository.existsById(registration.getRegId());
return saveRegistration(registration);
}
/**
* Осуществляет фактическое сохранение в БД
* @param iRegistration - рег.данные
* @return сохраненные регистрационные данные
*/
private IRegistration saveRegistration(IRegistration iRegistration){
iRegistration = repository.save((Registration) iRegistration);
return iRegistration;
103
}
@Override
public AppResult deleteRegistration(long regId) {
return null;
}
@Override
public IRegistration annulledStateRegistration(long regId, boolean isAnnulled)
throws RegistrationNotFoundException
{
IRegistration iRegistration = getRegistration(regId);
if(iRegistration != null){
iRegistration.setActive(isAnnulled);
return saveRegistration(iRegistration);
}
return null;
}
}
iRegistration.java интерфейс сущности регистрации
package ru.pfrf.cs.fo.core.register;
import java.util.Date;
import java.util.HashMap;
public interface IRegistration {
Long getRegId();
void setRegId(Long regId);
String getPersnum();
void setPersnum(String persnum);
String getName();
void setName(String name);
String getFamily();
void setFamily(String family);
String getPatronymic();
void setPatronymic(String patronymic);
Date getCreateDate();
void setCreateDate(Date createDate);
Date getRegisterDate();
void setRegisterDate(Date registerDate);
Date getEditDate();
void setEditDate(Date editDate);
Date getReceiveDate();
void setReceiveDate(Date receiveDate);
String getCreateOperator();
void setCreateOperator(String createOperator);
String getEditOperator();
104
void setEditOperator(String editOperator);
Long getCreateAreaId();
void setCreateAreaId(Long createAreaId);
Long getEditAreaId();
void setEditAreaId(Long editAreaId);
String getCreateArea();
void setCreateArea(String createArea);
String getEditArea();
void setEditArea(String editArea);
Date getEndDate();
void setEndDate(Date endDate);
Integer getStatus();
void setStatus(Integer status);
String getCorpNum();
void setCorpNum(String corpNum);
Boolean isActive();
void setActive(Boolean active);
HashMap<String, Object> getValues();
void setValues(HashMap<String, Object> values);
Long getFormId();
void setFormId(Long formId);
}
RegisterRepository:
package ru.pfrf.cs.fo.core.register.db;
import org.springframework.data.repository.CrudRepository;
import ru.pfrf.cs.fo.core.register.db.entity.Registration;
public interface RegisterRepository extends CrudRepository<Registration, Long> {}
Registration.java:
package ru.pfrf.cs.fo.core.register.db.entity;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import ru.pfrf.cs.fo.core.register.db.types.JSONValues;
import ru.pfrf.cs.fo.core.register.IRegistration;
import javax.persistence.*;
import java.util.Date;
import java.util.HashMap;
@Entity
105
@Table(schema = "register", name = "register")
@TypeDef(name = "JSONValues", typeClass = JSONValues.class)
public class Registration implements IRegistration {
@Id
@SequenceGenerator( name = "registrationSeq",
sequenceName = "register.register_id_seq",
allocationSize = 1)
@GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "registrationSeq")
@Column(name = "id")
private Long regId;
private String persnum;
private String name;
private String family;
private String patronymic;
@Column(name = "create_date")
private Date createDate;
@Column(name = "register_date")
private Date registerDate;
@Column(name = "edit_date")
private Date editDate;
@Column(name = "receive_date")
private Date receiveDate;
@Column(name = "create_operator")
private String createOperator;
@Column(name = "edit_operator")
private String editOperator;
@Column(name = "create_area_id")
private Long createAreaId;
@Column(name = "edit_area_id")
private Long editAreaId;
@Column(name = "create_area")
private String createArea;
@Column(name = "edit_area")
private String editArea;
@Column(name = "end_date")
private Date endDate;
private Integer status;
@Column(name = "corp_num")
private String corpNum;
@Column(name = "is_active")
private Boolean active;
@Type(type = "JSONValues")
private HashMap<String, Object> values;
@Column(name = "theme_id")
private Long formId;
public Registration() {
}
public Long getRegId() {
return regId;
}
public void setRegId(Long regId) {
this.regId = regId;
}
public String getPersnum() {
return persnum;
}
public void setPersnum(String persnum) {
this.persnum = persnum;
}
public String getName() {
return name;
}
Источник: https://baza.diplomsite.ru/previewfile/1902