From d40663995441f6bf363c0cba4e18f397170689c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Fri, 19 Jun 2026 10:46:57 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20Lucee=20serializeJSON=20=D0=B4=D0=B0?= =?UTF-8?q?=D1=91=D1=82=20UPPERCASE=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B8,=20re?= =?UTF-8?q?vert=20lowercase=20(v1.0.60)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.cfm | 64 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/index.cfm b/index.cfm index a6255b7..2096b72 100644 --- a/index.cfm +++ b/index.cfm @@ -61,7 +61,7 @@
Nubes - Сверка договоров — LLM v1.0.59 — Lucee + Сверка договоров — LLM v1.0.60 — Lucee
@@ -214,8 +214,8 @@ fileInput.addEventListener('change', async function() { fileQueue[rowIdx].status = '↑ ' + pct + '%'; renderTable(); }); - if (resp && resp.contract_id) contractId = resp.contract_id; - fileQueue[rowIdx].doc_id = resp.doc_id; + if (resp && resp.CONTRACT_ID) contractId = resp.CONTRACT_ID; + fileQueue[rowIdx].doc_id = resp.DOC_ID; fileQueue[rowIdx].status = ''; fileQueue[rowIdx].uploaded = true; } catch(err) { @@ -252,8 +252,8 @@ function uploadFile(file, onProgress) { xhr.onload = function() { try { var r = JSON.parse(xhr.responseText); - if (r.ok) resolve(r); - else reject(new Error(r.error || 'Неизвестная ошибка')); + if (r.OK) resolve(r); + else reject(new Error(r.ERROR || 'Неизвестная ошибка')); } catch(e) { reject(new Error('Некорректный ответ')); } }; xhr.onerror = function() { reject(new Error('Сеть')); }; @@ -297,12 +297,12 @@ parseBtn.addEventListener('click', async function() { try { var resp = await fetch('/parser.cfm?doc_id=' + f.doc_id); var d = await resp.json(); - if (d.ok && d.status === 'parsed') { + if (d.OK && d.STATUS === 'parsed') { f.parsed = true; f.parseInfo = d; - f.status = '✓ ' + d.element_count + ' эл.'; + f.status = '✓ ' + d.ELEMENT_COUNT + ' эл.'; } else { - f.status = '✗ ' + (d.error_count > 0 ? (d.errors && d.errors[0] || 'ошибка') : 'ошибка') + ''; + f.status = '✗ ' + (d.ERROR_COUNT > 0 ? (d.ERRORS && d.ERRORS[0] || 'ошибка') : 'ошибка') + ''; f.parseInfo = d; } } catch(e) { @@ -327,10 +327,10 @@ async function refreshSupps() { try { var resp = await fetch('/api.cfm?action=query&sql=' + encodeURIComponent("SELECT s.id, s.type, s.document_id FROM supplements s WHERE s.contract_id='" + contractId + "'")); var data = await resp.json(); - if (data.ok && data.rows) { - data.rows.forEach(function(r) { + if (data.OK && data.ROWS) { + data.ROWS.forEach(function(r) { var supp = {}; - data.columns.forEach(function(c, ci) { supp[c] = r[ci]; }); + data.COLUMNS.forEach(function(c, ci) { supp[c] = r[ci]; }); for (var i = 0; i < fileQueue.length; i++) { if (fileQueue[i].doc_id === supp.document_id) { fileQueue[i].supp_id = supp.id; @@ -382,16 +382,16 @@ document.getElementById('llmBtn').addEventListener('click', async function() { try { var resp = await fetch('/api.cfm?action=query&sql=' + encodeURIComponent("SELECT id, type FROM supplements WHERE contract_id='" + contractId + "' ORDER BY created_at")); var data = await resp.json(); - if (data.ok && data.rows) { - for (var i = 0; i < data.rows.length; i++) { + if (data.OK && data.ROWS) { + for (var i = 0; i < data.ROWS.length; i++) { try { - var er = await fetch('/extractor.cfm?supplement_id=' + data.rows[i].id); + var er = await fetch('/extractor.cfm?supplement_id=' + data.ROWS[i].id); var ed = await er.json(); - if (ed.ok) { - var info = (ed.skipped ? '⏭ ' : '✓ ') + (data.rows[i].type || '') + ': ' + ed.rows_saved + ' строк'; - diffBody.innerHTML += '
' + info + '
'; + if (ed.OK) { + var info = (ed.SKIPPED ? '⏭ ' : '✓ ') + (data.ROWS[i].type || '') + ': ' + ed.ROWS_SAVED + ' строк'; + diffBody.innerHTML += '
' + info + '
'; } else { - diffBody.innerHTML += '
✗ ' + (ed.error||'') + '
'; + diffBody.innerHTML += '
✗ ' + (ed.ERROR||'') + '
'; } } catch(e) {} } @@ -403,31 +403,31 @@ document.getElementById('llmBtn').addEventListener('click', async function() { try { var resp = await fetch('/differ.cfm?contract_id=' + contractId); var data = await resp.json(); - if (data.ok && data.all_changes) { - var all = data.all_changes; + if (data.OK && data.ALL_CHANGES) { + var all = data.ALL_CHANGES; diffBody.innerHTML = ''; all.forEach(function(ch) { - var s = ch.summary || {}; - diffBody.innerHTML += '
📄 Допник (' + ch.type + ')
'; - diffBody.innerHTML += '
+' + (s.added||0) + ' ~' + (s.changed||0) + ' -' + (s.deleted||0) + '
'; - diffStatus.textContent = 'изм:' + (s.changed||0) + ' +' + (s.added||0) + ' -' + (s.deleted||0); + var s = ch.SUMMARY || {}; + diffBody.innerHTML += '
📄 Допник (' + ch.TYPE + ')
'; + diffBody.innerHTML += '
+' + (s.ADDED||0) + ' ~' + (s.CHANGED||0) + ' -' + (s.DELETED||0) + '
'; + diffStatus.textContent = 'изм:' + (s.CHANGED||0) + ' +' + (s.ADDED||0) + ' -' + (s.DELETED||0); - var changes = ch.changes || []; + var changes = ch.CHANGES || []; if (changes.length === 0) { diffBody.innerHTML += '
Нет изменений
'; } else { var tbl = '
'; changes.forEach(function(c) { - var cls = c.change_type === 'added' ? 'diff-added' : c.change_type === 'deleted' ? 'diff-deleted' : c.change_type === 'changed' ? 'diff-changed' : ''; - var vals = c.new_values && Object.keys(c.new_values).length > 0 ? c.new_values : (c.old_values || {}); - tbl += ''; + var cls = c.CHANGE_TYPE === 'added' ? 'diff-added' : c.CHANGE_TYPE === 'deleted' ? 'diff-deleted' : c.CHANGE_TYPE === 'changed' ? 'diff-changed' : ''; + var vals = c.NEW_VALUES && Object.keys(c.NEW_VALUES).length > 0 ? c.NEW_VALUES : (c.OLD_VALUES || {}); + tbl += ''; }); tbl += '
УслугаЦенаОбъёмСуммаНачало
' + (c.row_num||'') + '' + (vals.name||'') + '' + _dc(c,'price') + '' + _dc(c,'qty') + '' + _dc(c,'sum') + '' + (vals.date_start||'') + '
' + (c.ROW_NUM||'') + '' + (vals.NAME||'') + '' + _dc(c,'PRICE') + '' + _dc(c,'QTY') + '' + _dc(c,'SUM') + '' + (vals.DATE_START||'') + '
'; diffBody.innerHTML += tbl; } }); } else { - diffBody.innerHTML += '
✗ ' + (data.error||'') + '
'; + diffBody.innerHTML += '
✗ ' + (data.ERROR||'') + '
'; } } catch(e) { diffBody.innerHTML += '
✗ ' + e.message + '
'; } @@ -440,12 +440,12 @@ document.getElementById('llmBtn').addEventListener('click', async function() { }); function _dc(c, field) { - if (c.change_type === 'changed' && c.old_values && c.new_values) { - var ov = (c.old_values||{})[field], nv = (c.new_values||{})[field]; + if (c.CHANGE_TYPE === 'changed' && c.OLD_VALUES && c.NEW_VALUES) { + var ov = (c.OLD_VALUES||{})[field], nv = (c.NEW_VALUES||{})[field]; if (ov !== nv && ov !== undefined) return '' + (ov||'—') + '' + (nv||'—') + ''; } - var v = ((c.new_values || c.old_values || {})[field]); + var v = ((c.NEW_VALUES || c.OLD_VALUES || {})[field]); return v != null ? v : '—'; }