agreement list added

This commit is contained in:
msyu
2025-06-14 12:32:09 +03:00
parent 38b621bc44
commit 13cc175dc3
47 changed files with 362 additions and 5932 deletions
+5 -5
View File
@@ -1,8 +1,8 @@
REM set Windows env
setx datasource_svc_class org.postgresql.Driver /M
setx datasource_svc_connectionString jdbc:postgresql://localhost:5432/svc /M
setx datasource_svc_username postgres /M
setx datasource_svc_password encrypted:8ea2101f286dfcf2947cb2162e927cb769b3f845b6d4c57ef2ae89463d72d97842a2228c7ba562a24ee8eaf728350ab6 /M
setx datasource_svc_connectionLimit 5 /M
setx datasource_spec_class org.postgresql.Driver /M
setx datasource_spec_connectionString jdbc:postgresql://localhost:5432/spec /M
setx datasource_spec_username postgres /M
setx datasource_spec_password encrypted:8ea2101f286dfcf2947cb2162e927cb769b3f845b6d4c57ef2ae89463d72d97842a2228c7ba562a24ee8eaf728350ab6 /M
setx datasource_spec_connectionLimit 5 /M
pause
+3 -2
View File
@@ -65,13 +65,12 @@ insert into contract (contragent_id,contract,dt_contract) values (2,'test',CURRE
-- ñîãëàøåíèå îáåñïå÷èâàåò ÿâíóþ ïðèêëàäíóþ âåðñèîííîñòü
drop table if exists agreement CASCADE;
create table agreement (
--agreement_id int GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY
--,
contract_id int NOT NULL
,agreement_version int NOT NULL -- èìåíîâàíèå ïîñòðîåíî íå òàê, êàê äëÿ âåðñèè ñòðîêè ñïåöèôèêàöèè
,agreement varchar(255) NULL -- íàçâàíèå ñîãëàøåíèÿ
,dt_agreement timestamptz NOT NULL -- ôîðìàëüíàÿ äàòà, íå ñâÿçàíà ñ âåðñèîííîñòüþ (ìîæåò áûòü, ïîðÿäîê)
,is_actual boolean NOT NULL -- ñ÷èòàåì, ÷òî íà äîãîâîð 1 äåéñòâóþùåå ñîãëàøåíèå - êîòîðûå äî íåãî, òå óñòàðåëè, êîòîðûå ïîñëå, òå â ïðîåêòå
,deal_uid uuid NOT NULL DEFAULT gen_random_uuid() -- ýòî ìîã áûòü ïåðâè÷íûé êëþ÷, ïîêà îí íå èñïîëüçóåòñÿ - òîëüêî èìèòèðóåò êëþ÷ ñäåëêè
,descr text NULL
,dt_created timestamptz NOT NULL default CURRENT_TIMESTAMP --
@@ -82,6 +81,8 @@ create table agreement (
);
ALTER TABLE agreement OWNER TO dbo;
insert into agreement (contract_id,agreement_version,dt_agreement,is_actual) values (1,0,CURRENT_TIMESTAMP,true);
-- alter table agreement add deal_uid uuid NOT NULL DEFAULT gen_random_uuid();
CREATE INDEX IF NOT EXISTS UX_deal_uid ON agreement(deal_uid);
-- øàïêà ñïåöèôèêàöèè, íå âåðñèîííàÿ (íå òåìïîðàëüíàÿ)
drop table if exists specification CASCADE;
+19
View File
@@ -1,3 +1,22 @@
2025-06-14 11:02:46
Центральный селект
select * from specification_item_version siv
join specification_item si on (siv.specification_item_uid=si.specification_item_uid)
join specification s on (si.specification_id=s.specification_id)
join agreement a on (s.contract_id=a.contract_id AND siv.agreement_version=a.agreement_version)
Теперь дифференциальный вариант. Для каждого варианта строки можно найти предыдущий (если он есть) и с ним сравнивать.
Нужно ли добавить типы экземпляров инсталл и пейг? С пейгом чтобы получить дифф, нужно количество - иначе мы можем дифф только на цену. Если мы хотим брать во внимание дату НОУ, то без количества разницу в стоимости мы не получим.
Как вообще учитывать дату в диффе? Или никак, просто передавать.
16:12 12.06.2025
Предлагается использовать конечную дату только для завершения действия всей строки спеки. Тогда ее просто убрать из версии? Некорректно, она же возникает в какой-то версии.
Если захочется делать одним соглашением 2 изменения строки, можно соглашению сделать суррогатный ключ, а номер соглашения для версии строки убрать из первичного ключа
2025-06-10
Отчет-дифф
Сделать автосоздание нового соглашения (например, если самое новое не действует - аттачить изменения к нему, если действует - создать новое не действующее)
Сделать прозрачно-версионное редактирование спецификации
Форма-отчет версии спецификации доделать
2025-06-02
можно отметить, что тут смешаны версионность допника и темпоральность строки
Можно сделать таблицу, собирающую версии строк, чтобы не искать каждый раз (а может, нам не нужен снапшот на произвольную дату? или версию допника - вот, я уже запутался)