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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
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 getValues() {
return values;
}
public void setValues(HashMap 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 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;
}
}
111
FormController.java
package ru.pfrf.cs.fo.rest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import ru.pfrf.cs.fo.module.form.FormModule;
import ru.pfrf.cs.fo.module.form.RegistrationForm;
@RestController
@RequestMapping("/rest/v1/form/")
public class FormController {
private final FormModule module;
@Autowired
public FormController(FormModule module) {
this.module = module;
}
/**
* Параметры формы регистрации
* @return 200, 401, 403
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public RegistrationForm getStart() {
//получение параметров
return null;
}
/**
* Форма новой регистрации
* @param formId
* @return 200, 401, 403, 404
*/
@RequestMapping(value = "/{formId}", method = RequestMethod.GET)
public RegistrationForm getFormNewRegistration(@PathVariable long formId) {
//получить форму регистрации
return module.getForm(formId);
}
/**
* Форма новой регистрации с заполненными полями по предыдущей регистрации
* @param formId
* @param regId
* @return 200, 401, 403, 404
*/
@RequestMapping(value = "/{formId}", method = RequestMethod.POST)
public RegistrationForm postFormRegistration(@PathVariable long formId,
@RequestBody long regId){
//получить форму регистрации и регистрацию
return module.getForm(formId, regId);
}
/**
* Форма редактирования регистрации
* @param formId
* @param regId
* @return 200, 401, 403, 404
*/
@RequestMapping(value = "/{formId}", method = RequestMethod.PUT)
public RegistrationForm putFormRegistration(@PathVariable long formId,
@RequestBody long regId){
//Получить форму регистрации и регистрацию
return module.getForm(formId, regId);
}
/**
* Форма просмотра регистрации
* @param regId
* @return 200, 401, 403, 404
*/
112
@RequestMapping(value = "/registration/{regId}", method = RequestMethod.GET)
public RegistrationForm getFormRegistration(@PathVariable long regId){
//Получить форму регистрации и регистрацию
return null;
}
/**
* Форма редактирования результатов рассмотрения
* @param formId
* @param regId
* @return 200, 401, 403, 404
*/
@RequestMapping(value = "/{formId}/result", method = RequestMethod.POST)
public RegistrationForm postFormRegistrationResult(@PathVariable long formId,
@RequestBody long regId) {
return null;
}
}
FormModule.java
package ru.pfrf.cs.fo.module.form;
public interface FormModule {
RegistrationForm getForm(long formId);
RegistrationForm getForm(long formId, long regId);
RegistrationForm getFormResult(long formId, long regId);
}
FormService.java
package ru.pfrf.cs.fo.module.form;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Service;
import ru.pfrf.cs.fo.module.form.manager.FormManager;
@Service
@EnableConfigurationProperties(FormsProperties.class)
public class FormService implements FormModule {
private final FormManager manager;
@Autowired
public FormService(FormManager manager) {
this.manager = manager;
}
public RegistrationForm getForm(long formId){
return manager.getForm(formId);
}
public RegistrationForm getForm(long formId, long regId){
return manager.getForm(formId, regId);
}
@Override
public RegistrationForm getFormResult(long formId, long regId) {
return manager.getFormResult(formIs, regId);
}
}
113
SearchController.java
package ru.pfrf.cs.fo.rest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
import ru.pfrf.cs.fo.core.register.db.entity.Registration;
import ru.pfrf.cs.fo.module.form.RegistrationForm;
import ru.pfrf.cs.fo.module.search.SearchModule;
import java.util.List;
@RestController
@RequestMapping("/rest/v1/search/")
public class SearchController {
private final SearchModule module;
@Autowired
public SearchController(SearchModule module) {
this.module = module;
}
/**
* Поиск регистрации по образцу(анкетные данные)
* В теле принимает объект типа{@link
ru.pfrf.cs.fo.core.register.db.entity.Registration} с предзаполнеными полями в
качестве критерия для поиска(образец)
* @return 200, 403
*/
@RequestMapping(value = "/", method = RequestMethod.POST)
public List getFormNewRegistration(@RequestBody Registration
registration) {
return module.searchByRegistrationExample(registration);
}
/**
* Поиск регистрации по образцу(документы)
* В теле принимает объект типа{@link
ru.pfrf.cs.fo.core.register.db.entity.Registration} с предзаполнеными полями в
качестве критерия для поиска(образец)
* и параметр - номер страницы
* @return 200, 403
*/
@RequestMapping(value = "/{pageNumber}", method = RequestMethod.POST)
public Page getRegistrationExamplesOnPage(@RequestBody
Registration registration, @PathVariable int pageNumber) {
return module.searchByRegistrationExamplePagination(registration,
pageNumber);
}
}
SearchModule.java
package ru.pfrf.cs.fo.module.search;
import org.springframework.data.domain.Page;
import ru.pfrf.cs.fo.core.register.db.entity.Registration;
import java.util.List;
/**
* Интерфейс модуля поиска регистраций
*/
public interface SearchModule {
/**
* Поиск регистраций по регистрационному образцу
114
* @param registration предзаполненный образец
*/
List searchByRegistrationExample(Registration registration);
/**
* Поиск регистраций по регистрационному образцу
* @param registration предзаполненный образец
* @param pageNum номер страницы
*/
Page searchByRegistrationExamplePagination(Registration
registration, int pageNum);
}
SearchService.java
package ru.pfrf.cs.fo.module.search;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Example;
import ru.pfrf.cs.fo.core.register.db.entity.Registration;
import ru.pfrf.cs.fo.module.search.db.SearchRepository;
import java.util.List;
@Service
public class SearchService implements SearchModule {
private SearchRepository repository;
private final int REGISTRATION_ON_PAGE = 10;
public SearchService(SearchRepository repository) {
this.repository = repository;
}
public List searchByRegistrationExample(Registration
registration) {
Example registrationExample = Example.of(registration);
return repository.findAll(registrationExample);
}
public Page searchByRegistrationExamplePagination(Registration
registration, int pageNum) {
Example registrationExample = Example.of(registration);
return repository.findAll(registrationExample, PageRequest.of(pageNum,
REGISTRATION_ON_PAGE));
}
}

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)