v1.0.103: шаги 10+11 — массовый INSERT full_replace + UUID тип last_event_id

This commit is contained in:
2026-06-22 08:14:53 +04:00
parent 9a8c41637b
commit bb891afdea
+17 -19
View File
@@ -37,28 +37,26 @@
<cfthrow message="full_replace: LLM вернул пустой ops, спецификация НЕ изменена">
</cfif>
<!--- full_replace: явные DELETE для аудита --->
<!--- full_replace: явные DELETE для аудита (массовый INSERT) --->
<cfif url.mode EQ "full_replace">
<cfquery name="curRows" datasource="baza">
SELECT name_hash, name, price, qty, sum, date_start
<cfquery datasource="baza">
INSERT INTO spec_events (contract_id, supplement_id, seq, action, target_hash, comment, status)
SELECT
<cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">,
<cfqueryparam value="#supplementId#" cfsqltype="cf_sql_varchar">,
<cfqueryparam value="#seq#" cfsqltype="cf_sql_integer"> + ROW_NUMBER() OVER (),
'DELETE',
name_hash,
'full_replace',
'applied'
FROM spec_current
WHERE contract_id = <cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfloop query="curRows">
<cfset seq++>
<cfquery datasource="baza">
INSERT INTO spec_events (contract_id, supplement_id, seq, action, target_hash, comment, status)
VALUES (
<cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">,
<cfqueryparam value="#supplementId#" cfsqltype="cf_sql_varchar">,
<cfqueryparam value="#seq#" cfsqltype="cf_sql_integer">,
'DELETE',
<cfqueryparam value="#curRows.name_hash#" cfsqltype="cf_sql_varchar">,
'full_replace',
'applied'
)
</cfquery>
</cfloop>
<cfquery name="cntDel" datasource="baza">
SELECT COUNT(*) as cnt FROM spec_current
WHERE contract_id = <cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfset seq = seq + cntDel.cnt>
<cfquery datasource="baza">
DELETE FROM spec_current WHERE contract_id = <cfqueryparam value="#url.contract_id#" cfsqltype="cf_sql_varchar">
</cfquery>
@@ -122,7 +120,7 @@
<cfqueryparam value="#qt#" cfsqltype="cf_sql_float" null="#len(qt) EQ 0#">,
<cfqueryparam value="#sm#" cfsqltype="cf_sql_float" null="#len(sm) EQ 0#">,
<cfqueryparam value="#ds#" cfsqltype="cf_sql_varchar" null="#len(ds) EQ 0#">,
<cfqueryparam value="#evt.id#" cfsqltype="cf_sql_varchar">
<cfqueryparam value="#evt.id#" cfsqltype="cf_sql_char" maxlength="36">,
)
</cfquery>
<cfset summary.added++>