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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
106
public void setName(String name) {
this.name = name;
}
public String getFamily() {
return family;
}
public void setFamily(String family) {
this.family = family;
}
public String getPatronymic() {
return patronymic;
}
public void setPatronymic(String patronymic) {
this.patronymic = patronymic;
}
public Date getCreateDate() {
return createDate != null ? (Date) createDate.clone() : null;
}
public void setCreateDate(Date createDate) {
this.createDate = (createDate != null ? (Date) createDate.clone() : null);
}
public Date getRegisterDate() {
return registerDate != null ? (Date) registerDate.clone() : null;
}
public void setRegisterDate(Date registerDate) {
this.registerDate = registerDate != null ? (Date)registerDate.clone() : null;
}
public Date getEditDate() {
return editDate != null ? (Date) editDate.clone() : null;
}
public void setEditDate(Date editDate) {
this.editDate = (editDate != null ? (Date) editDate.clone() : null);
}
public Date getReceiveDate() {
return receiveDate != null ? (Date) receiveDate.clone() : null;
}
public void setReceiveDate(Date receiveDate) {
this.receiveDate = (receiveDate != null ? (Date) receiveDate.clone() : null);
}
public String getCreateOperator() {
return createOperator;
}
public void setCreateOperator(String createOperator) {
this.createOperator = createOperator;
}
public String getEditOperator() {
return editOperator;
}
public void setEditOperator(String editOperator) {
this.editOperator = editOperator;
}
public Long getCreateAreaId() {
return createAreaId;
}
107
public void setCreateAreaId(Long createAreaId) {
this.createAreaId = createAreaId;
}
public Long getEditAreaId() {
return editAreaId;
}
public void setEditAreaId(Long editAreaId) {
this.editAreaId = editAreaId;
}
public String getCreateArea() {
return createArea;
}
public void setCreateArea(String createArea) {
this.createArea = createArea;
}
public String getEditArea() {
return editArea;
}
public void setEditArea(String editArea) {
this.editArea = editArea;
}
public Date getEndDate() {
return endDate != null ? (Date) endDate.clone() : null;
}
public void setEndDate(Date endDate) {
this.endDate = (endDate != null ? (Date) endDate.clone() : null);
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getCorpNum() {
return corpNum;
}
public void setCorpNum(String corpNum) {
this.corpNum = corpNum;
}
public Boolean isActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
public HashMap<String, Object> getValues() {
return values;
}
public void setValues(HashMap<String, Object> values) {
this.values = values;
}
public Long getFormId() {
return formId;
108
}
public void setFormId(Long formId) {
this.formId = formId;
}
}
CustomPostgresDialect.java
package ru.pfrf.cs.fo.core.register.db.types;
import org.hibernate.dialect.PostgreSQL94Dialect;
import java.sql.Types;
public class CustomPostgresDialect extends PostgreSQL94Dialect {
public CustomPostgresDialect() {
this.registerColumnType(Types.JAVA_OBJECT, "jsonb");
}
}
JSONValues.java
package ru.pfrf.cs.fo.core.register.db.types;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.type.SerializationException;
import org.hibernate.usertype.UserType;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
@Component
public class JSONValues implements UserType {
private final ObjectMapper MAPPER = new ObjectMapper();
@Override
public int[] sqlTypes() {
return new int[]{Types.JAVA_OBJECT};
}
@Override
public Class<?> returnedClass() {
return Map.class;
}
@Override
public boolean equals(Object x, Object y) throws HibernateException {
return false;
}
@Override
public int hashCode(Object x) throws HibernateException {
if (x == null) {
return 0;
}
109
return x.hashCode();
}
@Override
public Object nullSafeGet(ResultSet rs,
String[] names,
SharedSessionContractImplementor session,
Object owner)
throws HibernateException, SQLException
{
Object obj = null;
byte[] bytes = rs.getBytes(names[0]);
if (bytes != null && !rs.wasNull()) {
try {
obj = MAPPER.readValue(bytes, HashMap.class);
} catch (IOException e) {
throw new HibernateException(
"unable to read object from result set", e);
}
} else {
try {
String content = rs.getString(names[0]);
if (content != null && !rs.wasNull()) {
obj = MAPPER.readValue(content, HashMap.class);
}
} catch (IOException e) {
throw new HibernateException(
"unable to read object from result set", e);
}
}
return obj;
}
@Override
public void nullSafeSet( PreparedStatement st,
Object value, int index,
SharedSessionContractImplementor session)
throws HibernateException, SQLException
{
if (value == null) {
st.setNull(index, Types.OTHER);
} else {
try {
st.setObject(index, MAPPER.writeValueAsString(value), Types.OTHER);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
@Override
public Object deepCopy(Object value) throws HibernateException {
if (value == null) {
return null;
}
if (!(value instanceof Map)) {
return null;
}
Map<String, Object> resultMap = new HashMap<>();
Map<?, ?> tempMap = (Map<?, ?>) value;
tempMap.forEach((key, val) -> resultMap.put((String) key, val));
return resultMap;
}
@Override
public boolean isMutable() {
return false;
}
@Override
110
public Serializable disassemble(Object value) throws HibernateException {
Object copy = deepCopy(value);
if (copy instanceof Serializable) {
return (Serializable) copy;
}
throw new SerializationException(String.format(
"Cannot serialize '%s', %s is not Serializable.",
value, value.getClass()), null);
}
@Override
public Object assemble(Serializable cached, Object owner)
throws HibernateException
{
return deepCopy(cached);
}
@Override
public Object replace(Object original, Object target, Object owner)
throws HibernateException {
return deepCopy(original);
}
}
RegistrationNotFoundException.java
package ru.pfrf.cs.fo.core.exception;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "No such Registration")
//404
public class RegistrationNotFoundException extends RuntimeException {
}
AppResult.java
package ru.pfrf.cs.fo.core;
public interface AppResult<T> {
void setResult(T result);
T getResult();
}
SimpleResult.java
package ru.pfrf.cs.fo.core;
public class SimpleResult<T> implements AppResult<T> {
private T result;
@Override
public void setResult(T result) {
this.result = result;
}
@Override
public T getResult() {
return result;
}
}
Источник: https://baza.diplomsite.ru/previewfile/1902