WIP: D3 importer

This commit is contained in:
Michał Zieliński
2025-04-29 16:46:03 +02:00
parent bf8d86111c
commit dd150f3c39
9 changed files with 82 additions and 13 deletions

View File

@@ -2,7 +2,7 @@ DECLARE @JustForDebug TINYINT = 1;
-- SETUP VARIABLES
DECLARE @Type NVARCHAR(3) = 'D3';
DECLARE @Month INT = 1;
DECLARE @Month INT = 3;
DECLARE @Year INT = 2025;
IF @Type NOT IN ('D3')

View File

@@ -2,9 +2,9 @@ DECLARE @JustForDebug TINYINT = 1;
-- SETUP VARIABLES
DECLARE @Type NVARCHAR(3) = 'FK2';
DECLARE @Month INT = 4;
DECLARE @Month INT = 5;
DECLARE @Year INT = 2025;
DECLARE @MonthName NVARCHAR(20) = 'Kwiecien_2025';
DECLARE @MonthName NVARCHAR(20) = 'Maj_2025';
IF @Type NOT IN ('K5', 'PU', 'AK', 'FK', 'D1', 'FK2')
BEGIN

View File

@@ -1,8 +1,8 @@
-- T3-MultiSourceSummary
DECLARE @JustForDebug TINYINT = 0;
DECLARE @JustForDebug TINYINT = 1;
-- SETUP VARIABLES
DECLARE @Month INT = 4;
DECLARE @Month INT = 5;
DECLARE @Year INT = 2025;
DECLARE @Number INT = (SELECT COUNT(id) + 1 FROM [diunabi-morska].[dbo].[Layers]);

View File

@@ -4,7 +4,7 @@ DECLARE @JustForDebug TINYINT = 1;
-- SETUP VARIABLES
DECLARE @Type NVARCHAR(3) = 'FK';
DECLARE @Month INT = 4;
DECLARE @Month INT = 5;
DECLARE @Year INT = 2025;
IF @Type NOT IN ('K5', 'PU', 'AK', 'FK')

View File

@@ -1,10 +1,10 @@
-- T4-SingleSource
DECLARE @JustForDebug TINYINT = 1;
DECLARE @JustForDebug TINYINT = 0;
-- SETUP VARIABLES
DECLARE @Type NVARCHAR(3) = 'FK2';
DECLARE @Month INT = 4;
DECLARE @Month INT = 5;
DECLARE @Year INT = 2025;
DECLARE @Number INT = (SELECT COUNT(id) + 1 FROM [diunabi-morska].[dbo].[Layers]);

View File

@@ -2,7 +2,7 @@
DECLARE @JustForDebug TINYINT = 1;
-- SETUP VARIABLES
DECLARE @Month INT = 2;
DECLARE @Month INT = 3;
DECLARE @Year INT = 2025;
DECLARE @Number INT = (SELECT COUNT(id) + 1 FROM [diunabi-morska].[dbo].[Layers]);

View File

@@ -0,0 +1,68 @@
-- T3-MultiSourceSummary
DECLARE @JustForDebug TINYINT = 0;
-- SETUP VARIABLES
DECLARE @Number INT = (SELECT COUNT(id) + 1 FROM [diunabi-morska].[dbo].[Layers]);
DECLARE @CurrentTimestamp NVARCHAR(14) = FORMAT(GETDATE(), 'yyyyMMddHHmm');
DECLARE @Name NVARCHAR(50) = CONCAT(
'L', @Number, '-D-D3_B2B-', @CurrentTimestamp
);
DECLARE @LayerId UNIQUEIDENTIFIER = NEWID();
SELECT @Name AS Name, @Query AS Query;
IF @JustForDebug = 1
BEGIN
SELECT 'Just for debug' AS Logger;
RETURN;
END;
INSERT INTO [diunabi-morska].[dbo].[Layers]
([Id], [Number], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], [CreatedById], [ModifiedById], [Type])
VALUES (@LayerId, @Number, @Name, GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 3);
DECLARE @Array TABLE (
Code NVARCHAR(50),
Desc1 NVARCHAR(50)
);
INSERT INTO @Array (Code, Desc1)
VALUES
('3089','402-2-001'),
('3084','402-2-002'),
('3045','402-2-003'),
('????','402-2-004', 'GODLEWSKA JOANNA'),
('????','402-2-005', 'HABOWSKA URSZULA'),
('3010','JANCZEWSKA DOROTA'),
('????','402-2-007', 'PROMEDA SP ZOO'),
('3091','402-2-008'),
('3090','402-2-009'),
('3092','402-2-010'),
('????','402-2-011'),
('3093','402-2-012'),
('????','402-2-013', 'ŚWINIARSKA BEATA'),
('3094','402-2-014'),
('????','402-2-015', 'WIERZBOWSKA');
-- Loop through the array and insert into the target table
DECLARE @Code NVARCHAR(50);
DECLARE @Desc1 NVARCHAR(50);
DECLARE CursorArray CURSOR FOR
SELECT Code, Desc1 FROM @Array;
OPEN CursorArray;
FETCH NEXT FROM CursorArray INTO @Code, @Desc1;
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO [diunabi-morska].[dbo].[Records]
([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId])
VALUES (NEWID(), @Code, @Desc1, GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, @LayerId);
FETCH NEXT FROM CursorArray INTO @Code, @Desc1;
END;
CLOSE CursorArray;
DEALLOCATE CursorArray;

View File

@@ -6,7 +6,8 @@ public enum LayerType
{
Import,
Processed,
Administration
Administration,
Dictionary,
}
public class Layer
{

View File

@@ -40,13 +40,13 @@ public class MorskaD3Importer(
throw new Exception($"DataInbox not found, {type}");
}
var data = Convert.FromBase64String(dataInbox.Data);
var tst = Encoding.UTF8.GetString(data);
var records = JsonSerializer.Deserialize<List<Record>>(Encoding.UTF8.GetString(data));
if (records == null)
{
throw new Exception($"DataInbox.Data is empty, {dataInbox.Name}");
}
year = "2024";
records = records.Where(x => x.Code!.EndsWith($"{year}{month}")).ToList();
records = records.Where(x => x.Code!.StartsWith($"{year}{month}")).ToList();
if (records.Count == 0)
{
throw new Exception($"No records found for {year}{month}");
@@ -72,6 +72,6 @@ public class MorskaD3Importer(
db.Layers.Add(layer);
controller.SaveRecords(layer.Id, records, Guid.Parse("F392209E-123E-4651-A5A4-0B1D6CF9FF9D"));
//db.SaveChanges();
db.SaveChanges();
}
}