Загрузка данных
<!DOCTYPE html>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html lang="ru">
<jsp:include page="head.jsp"/>
<body>
<script type="text/javascript" src="<c:url value='/js/${version}/queryAction.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/${version}/queryTable.js'/>"></script>
<style>
#registerFilterBlock {
margin-bottom: 15px;
}
#registerFilterBlock .filter-field {
margin-bottom: 10px;
}
#registerFilterBlock .register-filter-buttons {
margin-top: 8px;
margin-bottom: 18px;
padding-left: 15px;
white-space: nowrap;
}
#registerFilterBlock .register-filter-buttons .btn {
margin-right: 8px;
}
#filter_register_status {
width: 100%;
}
#registerFilterBlock .select2-container {
width: 100% !important;
}
</style>
<script type="text/javascript">
var skip_url_app = false;
const urlParams = new URLSearchParams(window.location.search);
var registerTypeValue = "УЗЕВ-ДДС-НПФ";
function application() {
var smevRegId = urlParams.get('id');
if (smevRegId !== null) {
return { id: smevRegId }
} else {
return { id: null }
}
};
function clickSecondaryTableZev() {
var sid = urlParams.get('sid');
var id = urlParams.get('id');
if (sid && id) {
$('#queryTable_NOd4LnJR tr').filter(function () {
return $(this).text().trim().toLowerCase().includes(sid);
}).click();
}
}
function clickSecondaryTableEpgu() {
var sid = urlParams.get('sid');
var id = urlParams.get('id');
if (sid && id) {
$('#queryTable_W7cDAp2Z td').filter(function () {
return $(this).text().trim().toLowerCase().includes(sid);
}).click();
}
}
$(function () {
// Select2 для фильтра нижних таблиц (статус ЗЕВ)
$("#filterStatus").select2({
placeholder: "Статус ЗЕВ",
allowClear: true,
data: [
{ id: 'Удовлетворено СФР', text: 'Удовлетворено СФР' },
{ id: 'Не удовлетворено СФР', text: 'Не удовлетворено СФР' },
{ id: 'Сформировано', text: 'Сформировано' },
{ id: 'Отклонено', text: 'Отклонено' },
{ id: 'Принято', text: 'Принято' },
{ id: 'Зарегистрировано', text: 'Зарегистрировано' },
{ id: 'Аннулировано', text: 'Аннулировано' },
{ id: 'Удалено', text: 'Удалено' },
{ id: 'Отказано', text: 'Отказано' }
],
multiple: false
});
// Select2 для фильтра верхней таблицы реестров
$("#filter_register_status").select2({
placeholder: "Статус",
allowClear: true,
minimumInputLength: 0,
id: function (e) { return e.id; },
data: { results: [
{ id: 1, text: 'Сформирован' },
{ id: 2, text: 'Проверяется' },
{ id: 3, text: 'ФЛК пройден' },
{ id: 4, text: 'Ошибка ФЛК' },
{ id: 5, text: 'Отправлен' }
]},
});
// Кнопки фильтра нижних таблиц
$("#filter_search").click(function () {
dataTable_zev.reload();
dataTable_epgu.reload();
});
$('#filter_clean').click(function () {
$('#filterForm')[0].reset();
$('#filterStatus').select2('val', null);
dataTable_epgu.reload();
dataTable_zev.reload();
});
// Кнопки фильтра верхней таблицы реестров
$('#filter\\.search').click(function () {
var hasFilter = $('#filter_register_status').val()
|| $('#filter\\.created_at_from').val()
|| $('#filter\\.created_at_to').val()
|| $('#filter\\.register_number').val();
if (!hasFilter) {
showMessages([{ messageType: 'info', message: 'Задайте хотя бы один фильтр для поиска' }]);
return;
}
skip_url_app = true;
registerTable.reload();
});
$('#filter\\.cleanFilter').click(function () {
$('#filter_register_status').select2('val', '');
$('#filter\\.created_at_from').val('');
$('#filter\\.created_at_to').val('');
$('#filter\\.register_number').val('');
skip_url_app = false;
registerTable.reload();
});
var registerTable = new QueryTable("k6uzt3IS", {
initComplete: function (settings, json) {
registerTable.addActionButton("addNewRegister", "Создать", addNewRegister, "btn-success", false);
registerTable.addActionButton("exportRegister", "Сформировать xml c проверкой", exportRegister, "btn-primary", true);
registerTable.addActionButton("uploadRegister", "Отправить в СФР", uploadRegister, "btn-primary", true);
registerTable.addActionButton("deleteRegister", "Удалить", deleteRegister, "btn-danger", true);
},
onRowSelect: function (data, index) {
dataTable_zev.reload();
dataTable_epgu.reload();
},
onRowDeselect: function (data, index) {
dataTable_zev.reload();
dataTable_epgu.reload();
},
drawCallback: function (settings) {
skip_url_app = (settings.oAjaxData.queryTableFilter.size != 0);
dataTable_zev.reload();
dataTable_epgu.reload();
}
},
function () {
var data = {};
data.registerType = registerTypeValue;
let id_register = application().id;
if (skip_url_app) {
data.id = -1;
} else {
data.id = id_register;
}
data.filter_status = $("#filter_register_status").val();
data.filter_date_from = $("#filter\\.created_at_from").val();
data.filter_date_to = $("#filter\\.created_at_to").val();
data.filter_number = $("#filter\\.register_number").val();
return data;
},
{ order: [[0, 'desc']], selectFirstRow: true });
var dataTable_zev = new QueryTable("NOd4LnJR", {
drawCallback: function (settings) {
clickSecondaryTableZev();
}
},
function () {
var appData = registerTable.data();
var data = {};
data.registerId = (appData ? appData.id : -1);
var sid = urlParams.get('sid');
if (sid) { data.id = sid; }
if ($("#filterStatus").val()) { data.filterStatus = $("#filterStatus").val(); }
if ($("#filterDateFrom").val()) { data.filterDateFrom = $("#filterDateFrom").val(); }
if ($("#filterDateTo").val()) { data.filterDateTo = $("#filterDateTo").val(); }
return data;
}, { selectFirstRow: true });
var dataTable_epgu = new QueryTable("W7cDAp2Z", {
drawCallback: function (settings) {
clickSecondaryTableEpgu();
}
},
function () {
var appData = registerTable.data();
var data = {};
data.registerId = (appData ? appData.id : -1);
var sid = urlParams.get('sid');
if (sid) { data.id = sid; }
if ($("#filterStatus").val()) { data.filterStatus = $("#filterStatus").val(); }
if ($("#filterDateFrom").val()) { data.filterDateFrom = $("#filterDateFrom").val(); }
if ($("#filterDateTo").val()) { data.filterDateTo = $("#filterDateTo").val(); }
return data;
}, { selectFirstRow: true });
function uploadRegister() {
var validationResult = [];
var mes = {};
var message_level = 'info';
var appData = registerTable.data();
if (appData.verified_file_id == '' || appData.verified_file_id == null) {
mes = { messageType: message_level, message: 'Отсутствует документ в СФР' };
validationResult.push(mes);
showMessages(validationResult);
return;
}
if (!appData.ready_to_upload) {
mes = { messageType: message_level, message: 'Документ в СФР не прошёл форматно-логический контроль' };
validationResult.push(mes);
showMessages(validationResult);
return;
}
var archiveName = appData.sfr_file_name;
var dotPosition = (archiveName).lastIndexOf('.');
if (dotPosition != -1) { archiveName = archiveName.slice(0, dotPosition); }
archiveName = archiveName + '.tar.gz';
$.ajax({
url: "queryAction/action",
type: "POST",
async: false,
data: {
viewCode: 'esnVAXlT',
queryActionCode: 'DaizGytc',
record_id: appData.v_file_id,
unload_mode: 1,
unload_format: 'gzp',
unload_archive_name: archiveName
},
dataType: "json",
success: function (data) {
if (data) {
if (data.data == 0) {
mes = { messageType: message_level, message: 'Файл выгружен.' };
validationResult.push(mes);
}
if (data.data == 1) {
mes = { messageType: message_level, message: 'Файл с таким именем уже существует во внешнем хранилище.' };
validationResult.push(mes);
}
if (data.data != 0 && data.data != 1) {
mes = { messageType: message_level, message: 'Ошибка: код процесса выгрузки ' + data };
validationResult.push(mes);
}
showMessages(validationResult);
}
}
});
}
function deleteRegister() {
var result = confirm("Вы хотите удалить реестр?");
if (!result) { return; }
var appData = registerTable.data();
var deleteCode = 'jhTAl89Q';
if (registerTypeValue == 'УЗЕВ-ДДС-НПФ-ЕПГУ') { deleteCode = 'jWJGcqjO'; }
$.ajax({
url: "queryAction/action",
type: "POST",
async: false,
data: {
viewCode: 'esnVAXlT',
queryActionCode: deleteCode,
id: appData.id,
},
dataType: "json",
success: function (data) {
if (data) {
if (data.messages) { showMessages(data.messages); }
}
registerTable.reload();
}
});
}
function addNewRegister() {
openNewWindow("view?viewCode=zOH3yED0");
}
function exportRegister() {
var data = registerTable.data();
var registerId = (data ? data.id : -1);
var param = 'registerId=' + registerId + '&';
param = param + "id=" + registerId;
if (registerTypeValue == 'УЗЕВ-ДДС-НПФ') {
window.open("queryModel/file?queryModelCode=kMHGMtuj&queryModelCharset=UTF-8&viewCode=esnVAXlT&" + param, '_blank');
} else {
window.open("queryModel/file?queryModelCode=lVgpeDZS&queryModelCharset=UTF-8&viewCode=esnVAXlT&" + param, '_blank');
}
}
$('#zev-epgu').on('change', function () {
registerTypeValue = this.checked ? 'УЗЕВ-ДДС-НПФ-ЕПГУ' : 'УЗЕВ-ДДС-НПФ';
registerTable.reload();
var tableContainerZev = document.getElementById('table_zev');
var tableContainerEpgu = document.getElementById('table_epgu');
if (this.checked) {
tableContainerZev.hidden = true;
tableContainerEpgu.hidden = false;
} else {
tableContainerZev.hidden = false;
tableContainerEpgu.hidden = true;
}
});
});
</script>
<jsp:include page="header.jsp"/>
<jsp:include page="navbar.jsp"/>
<div class="container" id="mainContainer">
<div class="page-header">
<h1>${view.name}</h1>
</div>
<div class="container-fluid">
<div class="row row-main">
<jsp:include page="sidebar.jsp"/>
<div class="col-sm-10">
<tags:breadcrumbs path="https://portal.futurenpf.ru/knowledgebase/category/30252/"/>
<div class="row">
<div class="col-sm-12">
<input type="checkbox" style="margin: 0 10px;" id="zev-epgu" name="zev-epgu">
<label style="margin: 10px 0px;" for="zev-epgu">ЗЕВ-ЕПГУ</label>
<%-- Фильтры верхней таблицы реестров --%>
<div id="registerFilterBlock">
<div class="col-sm-3 filter-field">
<label class="control-label">Статус</label>
<input type="text" class="form-control" id="filter_register_status" name="filter_register_status"/>
</div>
<div class="col-sm-3 filter-field">
<label for="filter.created_at_from">Дата реестра с</label>
<input type="date" id="filter.created_at_from" name="filter.created_at_from" class="form-control">
</div>
<div class="col-sm-3 filter-field">
<label for="filter.created_at_to">Дата реестра по</label>
<input type="date" id="filter.created_at_to" name="filter.created_at_to" class="form-control">
</div>
<div class="col-sm-3 filter-field">
<label for="filter.register_number">Номер реестра</label>
<input type="text" id="filter.register_number" name="filter.register_number" class="form-control" placeholder="Номер реестра">
</div>
<div class="clearfix"></div>
<div class="col-sm-12 register-filter-buttons">
<button id="filter.search" type="button" class="btn btn-success">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span> Найти
</button>
<button id="filter.cleanFilter" type="button" class="btn btn-warning">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Сбросить
</button>
</div>
<div class="clearfix"></div>
</div>
<form class="form-vertical" id="paramForm">
<input type="hidden" name="registerId" id="registerId">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="k6uzt3IS"/>
<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
</jsp:include>
</form>
</div>
</div>
<hr>
<div class="row">
<div class="col-sm-12">
<%-- Фильтры нижних таблиц ЗЕВ --%>
<form id="filterForm" class="form-horizontal" style="margin-bottom:15px;">
<div class="form-group">
<div class="col-sm-2">
<label class="control-label">Статус ЗЕВ</label>
<div type="text" class="form-control" id="filterStatus" name="filterStatus"></div>
</div>
<div class="col-sm-2">
<label for="filterDateFrom">Дата регистрации С</label>
<input type="text"
class="form-control date-picker-on"
name="filterDateFrom"
value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />"
id="filterDateFrom" placeholder="Дата">
</div>
<div class="col-sm-2">
<label for="filterDateTo">Дата регистрации ПО</label>
<input type="text"
class="form-control date-picker-on"
name="filterDateTo"
value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />"
id="filterDateTo" placeholder="Дата">
</div>
</div>
<div class="form-group col-sm-12 btn-group">
<button id="filter_search" name="filter_search" type="button" class="btn btn-success">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span> Найти
</button>
<button id="filter_clean" name="filter_clean" type="button" class="btn btn-warning">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Сбросить
</button>
</div>
</form>
<div class="dynamic-table" id="table_zev">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="NOd4LnJR"/>
<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
</jsp:include>
</div>
<div class="dynamic-table" id="table_epgu" hidden>
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="W7cDAp2Z"/>
<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
</jsp:include>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<jsp:include page="footer.jsp"/>
</body>
</html>