v1.0.149: VM parses PDF + stores elements_json in Lucee

This commit is contained in:
2026-06-23 12:22:05 +04:00
parent 2399b01a26
commit 9351347a11
2 changed files with 68 additions and 31 deletions
+17 -30
View File
@@ -339,20 +339,14 @@ fileInput.addEventListener('change', async function() {
if (!contractId && zf.contract_id) contractId = zf.contract_id;
renderTable();
// Авто-парсинг
// Авто-парсинг — VM уже распарсила
var zt0 = Date.now();
try {
var zpr = await fetch('/parser.cfm?doc_id=' + zf.doc_id);
var zpd = await zpr.json();
var zelapsed = ((Date.now() - zt0) / 1000).toFixed(1);
if (zpd.OK && zpd.STATUS === 'parsed') {
fileQueue[zIdx].parsed = true;
fileQueue[zIdx].status = '<span class="status-ok">✓ ' + zpd.ELEMENT_COUNT + ' эл. (' + zelapsed + 'с)</span>';
} else {
fileQueue[zIdx].status = '<span class="status-err">✗ ' + (zpd.ERROR_COUNT > 0 ? (zpd.ERRORS && zpd.ERRORS[0] || 'ошибка') : 'ошибка') + '</span>';
}
} catch(zpe) {
fileQueue[zIdx].status = '<span class="status-err">✗ парсинг: сеть</span>';
var zelapsed = ((Date.now() - zt0) / 1000).toFixed(1);
if (zf.PARSED && zf.PARSED.STATUS === 'parsed') {
fileQueue[zIdx].parsed = true;
fileQueue[zIdx].status = '<span class="status-ok">✓ ' + zf.PARSED.ELEMENT_COUNT + ' эл. (' + zelapsed + 'с)</span>';
} else {
fileQueue[zIdx].status = '<span class="status-err">✗ ' + ((zf.PARSED && zf.PARSED.ERROR) || 'ошибка') + '</span>';
}
renderTable();
}
@@ -389,24 +383,17 @@ fileInput.addEventListener('change', async function() {
fileQueue[rowIdx].status = '<span class="status-ok">✓</span>';
fileQueue[rowIdx].uploaded = true;
// Авто-парсинг сразу после загрузки
// Авто-парсинг — VM уже распарсила, берём из ответа
var t0 = Date.now();
fileQueue[rowIdx].status = '⏳ парсинг...';
renderTable();
try {
var pr = await fetch('/parser.cfm?doc_id=' + resp.DOC_ID);
var pd = await pr.json();
var elapsed = ((Date.now() - t0) / 1000).toFixed(1);
if (pd.OK && pd.STATUS === 'parsed') {
fileQueue[rowIdx].parsed = true;
fileQueue[rowIdx].parseInfo = pd;
fileQueue[rowIdx].status = '<span class="status-ok">✓ ' + pd.ELEMENT_COUNT + ' эл. (' + elapsed + 'с)</span>';
} else {
fileQueue[rowIdx].status = '<span class="status-err">✗ ' + (pd.ERROR_COUNT > 0 ? (pd.ERRORS && pd.ERRORS[0] || 'ошибка') : 'ошибка') + '</span>';
fileQueue[rowIdx].parseInfo = pd;
}
} catch(pe) {
fileQueue[rowIdx].status = '<span class="status-err">✗ парсинг: сеть</span>';
var elapsed = ((Date.now() - t0) / 1000).toFixed(1);
if (resp.PARSED && resp.PARSED.STATUS === 'parsed') {
fileQueue[rowIdx].parsed = true;
fileQueue[rowIdx].parseInfo = resp.PARSED;
fileQueue[rowIdx].status = '<span class="status-ok">✓ ' + resp.PARSED.ELEMENT_COUNT + ' эл. (' + elapsed + 'с)</span>';
} else {
var errMsg = (resp.PARSED && resp.PARSED.ERROR) || 'ошибка';
fileQueue[rowIdx].status = '<span class="status-err">✗ ' + errMsg + '</span>';
fileQueue[rowIdx].parseInfo = resp.PARSED;
}
} catch(err) {
fileQueue[rowIdx].status = '<span class="status-err">✗ ' + err.message + '</span>';