Bewertungsystem weitergeschrieben
This commit is contained in:
@@ -65,7 +65,7 @@ namespace dcnsanplanung.DAL.Services.PostgresqlData
|
|||||||
{
|
{
|
||||||
Haltung result = new Haltung()
|
Haltung result = new Haltung()
|
||||||
{
|
{
|
||||||
//ID = reader.GetInt32(0),
|
ID = reader.GetInt32(0),
|
||||||
Guid = Guid.Parse(reader.GetString(1)),
|
Guid = Guid.Parse(reader.GetString(1)),
|
||||||
Ref_Projekt_Guid = Guid.Parse(reader.GetString(2)),
|
Ref_Projekt_Guid = Guid.Parse(reader.GetString(2)),
|
||||||
Objektbezeichnung = reader.GetString(3),
|
Objektbezeichnung = reader.GetString(3),
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
using dcnsanplanung.bewertung.M149_3;
|
using dcnsanplanung.bewertung.M149_3;
|
||||||
using dcnsanplanung.shared.Model;
|
using dcnsanplanung.shared.Model;
|
||||||
|
using Syncfusion.XlsIO;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
namespace dcnsanplanung.bewertung
|
namespace dcnsanplanung.bewertung
|
||||||
{
|
{
|
||||||
public static class BewM149
|
public static class BewM149
|
||||||
{
|
{
|
||||||
|
private static int counter = 0;
|
||||||
public static Dictionary<int, int> StartWert = new Dictionary<int, int>()
|
public static Dictionary<int, int> StartWert = new Dictionary<int, int>()
|
||||||
{
|
{
|
||||||
{0,400 },
|
{0,400 },
|
||||||
@@ -17,7 +19,7 @@ namespace dcnsanplanung.bewertung
|
|||||||
{5,0 }
|
{5,0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
public static float SXj(int sk,float length)
|
public static decimal SXj(int sk,decimal length)
|
||||||
{
|
{
|
||||||
return (5 - sk) * length;
|
return (5 - sk) * length;
|
||||||
}
|
}
|
||||||
@@ -33,46 +35,192 @@ namespace dcnsanplanung.bewertung
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void CalculateHaltung(Haltung haltung)
|
public static void CalculateHaltung(List<Haltung> haltung)
|
||||||
{
|
{
|
||||||
|
//MjcwMjkwMEAzMjMzMmUzMDJlMzBZSE9jRFVFZlYyNXhBMFE2Y2pkd0pReVJHcmtlaFlVaUh1aTBlWW80WVZNPQ==
|
||||||
|
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MjcwMjkwMEAzMjMzMmUzMDJlMzBZSE9jRFVFZlYyNXhBMFE2Y2pkd0pReVJHcmtlaFlVaUh1aTBlWW80WVZNPQ==");
|
||||||
|
ExcelEngine excelEngine = new ExcelEngine();
|
||||||
|
IApplication application = excelEngine.Excel;
|
||||||
|
|
||||||
|
application.DefaultVersion = ExcelVersion.Xlsx;
|
||||||
|
IWorkbook workbook = application.Workbooks.Create(haltung.Count);
|
||||||
|
for(int i = 0; i < haltung.Count; i++)
|
||||||
|
{
|
||||||
|
IWorksheet worksheet = workbook.Worksheets[i];
|
||||||
|
Haltung halt = haltung[i];
|
||||||
|
CalculateHaltung(halt, worksheet);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FileStream stream = new FileStream("beurteilung.xlsx", FileMode.Create, FileAccess.ReadWrite);
|
||||||
|
workbook.SaveAs(stream);
|
||||||
|
stream.Dispose();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CalculateHaltung(Haltung haltung, IWorksheet worksheet)
|
||||||
|
{
|
||||||
|
BewM149.counter++;
|
||||||
var k = ObjektKlasse(haltung.Kodierungen);
|
var k = ObjektKlasse(haltung.Kodierungen);
|
||||||
|
List<Schaden> streckenSchaeden = new List<Schaden>();
|
||||||
|
|
||||||
|
worksheet.Name = string.Format("{0} ({1})", haltung.Objektbezeichnung, BewM149.counter);
|
||||||
|
|
||||||
|
worksheet.Range[1, 1].Text = "Haltung";
|
||||||
|
worksheet.Range[1, 3].Text = haltung.Objektbezeichnung;
|
||||||
|
worksheet.Range[2, 1].Text = "Durchmesser";
|
||||||
|
worksheet.Range[2, 3].Text = haltung.DN.ToString();
|
||||||
|
worksheet.Range[3, 1].Text = "Material";
|
||||||
|
worksheet.Range[3, 3].Text = haltung.Material;
|
||||||
|
|
||||||
|
|
||||||
|
int i = 7;
|
||||||
|
worksheet.Range[i, 1].Text = "Entfernung";
|
||||||
|
worksheet.Range[i, 2].Text = "Streckenschaden";
|
||||||
|
worksheet.Range[i, 3].Text = "Hauptcode";
|
||||||
|
worksheet.Range[i, 4].Text = "CH1";
|
||||||
|
worksheet.Range[i, 5].Text = "CH2";
|
||||||
|
worksheet.Range[i, 6].Text = "Q1";
|
||||||
|
worksheet.Range[i, 7].Text = "Q2";
|
||||||
|
worksheet.Range[i, 8].Text = "SK D";
|
||||||
|
worksheet.Range[i, 9].Text = "SK S";
|
||||||
|
worksheet.Range[i, 10].Text = "SK B";
|
||||||
|
worksheet.Range[i, 11].Text = "D";
|
||||||
|
worksheet.Range[i, 12].Text = "S";
|
||||||
|
worksheet.Range[i, 13].Text = "B";
|
||||||
|
|
||||||
foreach (var schaden in haltung.Kodierungen)
|
foreach (var schaden in haltung.Kodierungen)
|
||||||
{
|
{
|
||||||
schaden.KBj = SXj(schaden.KB, 2.5f);
|
i++;
|
||||||
schaden.KDj = SXj(schaden.KD, 2.5f);
|
decimal entfernung = 2.5m;
|
||||||
schaden.KSj = SXj(schaden.KS, 2.5f);
|
bool streckenschaden = false;
|
||||||
|
if(schaden.IsStreckenSchaden)
|
||||||
|
{
|
||||||
|
if (schaden.StreckenschadenCode.Substring(0, 1).Equals("A"))
|
||||||
|
{
|
||||||
|
streckenSchaeden.Add(schaden);
|
||||||
|
streckenschaden = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Code
|
||||||
|
string code = schaden.StreckenschadenCode.Substring(1);
|
||||||
|
var schaeden = streckenSchaeden.Where(x => x.StreckenschadenCode.Contains(code)).Last();
|
||||||
|
entfernung = schaden.Entfernung - schaeden.Entfernung;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!streckenschaden)
|
||||||
|
{
|
||||||
|
if (entfernung < 2.5m) entfernung = 2.5m;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
entfernung = 0m;
|
||||||
|
}
|
||||||
|
schaden.KBj = SXj(schaden.KB, entfernung);
|
||||||
|
schaden.KDj = SXj(schaden.KD, entfernung);
|
||||||
|
schaden.KSj = SXj(schaden.KS, entfernung);
|
||||||
|
|
||||||
|
worksheet.Range[i, 1].Text = schaden.Entfernung.ToString();
|
||||||
|
worksheet.Range[i, 2].Text = schaden.StreckenschadenCode;
|
||||||
|
worksheet.Range[i, 3].Text = schaden.Hauptcode;
|
||||||
|
worksheet.Range[i, 4].Text = schaden.CH1;
|
||||||
|
worksheet.Range[i, 5].Text = schaden.CH2;
|
||||||
|
worksheet.Range[i, 6].Text = schaden.Q1;
|
||||||
|
worksheet.Range[i, 7].Text = schaden.Q2;
|
||||||
|
worksheet.Range[i, 8].Number = schaden.KD;
|
||||||
|
worksheet.Range[i, 9].Number = schaden.KS;
|
||||||
|
worksheet.Range[i, 10].Number = schaden.KB;
|
||||||
|
worksheet.Range[i, 11].Text = schaden.KDj.ToString();
|
||||||
|
worksheet.Range[i, 12].Text = schaden.KSj.ToString();
|
||||||
|
worksheet.Range[i, 13].Text = schaden.KBj.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
float Haltungslaenge = (float)haltung.Kodierungen.Select(x => x.Entfernung).Max();
|
|
||||||
|
|
||||||
float KBSumme = haltung.Kodierungen.Select(x => x.KBj).Sum();
|
|
||||||
float KSSumme = haltung.Kodierungen.Select(x => x.KSj).Sum();
|
|
||||||
float KDSumme = haltung.Kodierungen.Select(x => x.KDj).Sum();
|
|
||||||
|
|
||||||
float ObjektDSumme = SXj(k["D"],Haltungslaenge);
|
decimal Haltungslaenge = haltung.Kodierungen.Select(x => x.Entfernung).Max();
|
||||||
float ObjektSSumme = SXj(k["S"],Haltungslaenge);
|
|
||||||
float ObjektBSumme = SXj(k["B"],Haltungslaenge);
|
|
||||||
|
|
||||||
float SchadensDichteD = KDSumme / ObjektDSumme;
|
decimal KBSumme = haltung.Kodierungen.Select(x => x.KBj).Sum();
|
||||||
float SchadensDichteS = KSSumme / ObjektSSumme;
|
decimal KSSumme = haltung.Kodierungen.Select(x => x.KSj).Sum();
|
||||||
float SchadensDichteB = KBSumme / ObjektBSumme;
|
decimal KDSumme = haltung.Kodierungen.Select(x => x.KDj).Sum();
|
||||||
|
|
||||||
float zuschlagD = 50 * SchadensDichteD;
|
i++;
|
||||||
float zuschlagS = 50 * SchadensDichteS;
|
worksheet.Range[i, 6].Text = "Summe";
|
||||||
float zuschlagB = 50 * SchadensDichteB;
|
worksheet.Range[i, 11].Text = KDSumme.ToString();
|
||||||
|
worksheet.Range[i, 12].Text = KSSumme.ToString();
|
||||||
|
worksheet.Range[i, 13].Text = KBSumme.ToString();
|
||||||
|
|
||||||
|
i++;
|
||||||
|
worksheet.Range[i, 6].Text = "Objektklasse";
|
||||||
|
worksheet.Range[i, 8].Text = k["D"].ToString();
|
||||||
|
worksheet.Range[i, 9].Text = k["S"].ToString();
|
||||||
|
worksheet.Range[i, 10].Text = k["B"].ToString();
|
||||||
|
|
||||||
|
decimal ObjektDSumme = SXj(k["D"],Haltungslaenge);
|
||||||
|
decimal ObjektSSumme = SXj(k["S"],Haltungslaenge);
|
||||||
|
decimal ObjektBSumme = SXj(k["B"],Haltungslaenge);
|
||||||
|
|
||||||
|
decimal SchadensDichteB = 0m;
|
||||||
|
decimal SchadensDichteD = 0m;
|
||||||
|
decimal SchadensDichteS = 0m;
|
||||||
|
|
||||||
|
decimal zuschlagD = 0m;
|
||||||
|
decimal zuschlagS = 0m;
|
||||||
|
decimal zuschlagB = 0m;
|
||||||
|
|
||||||
|
if (ObjektBSumme > 0)
|
||||||
|
SchadensDichteB = Decimal.Round(KBSumme / ObjektBSumme, 2);
|
||||||
|
if (ObjektDSumme > 0)
|
||||||
|
SchadensDichteD = Decimal.Round(KDSumme / ObjektDSumme,2);
|
||||||
|
if (ObjektSSumme > 0)
|
||||||
|
SchadensDichteS = Decimal.Round(KSSumme / ObjektSSumme,2);
|
||||||
|
|
||||||
|
|
||||||
|
if (ObjektDSumme > 0)
|
||||||
|
zuschlagD = 50 * SchadensDichteD;
|
||||||
|
if (ObjektDSumme > 0)
|
||||||
|
zuschlagS = 50 * SchadensDichteS;
|
||||||
|
if (ObjektBSumme > 0)
|
||||||
|
zuschlagB = 50 * SchadensDichteB;
|
||||||
|
i++;
|
||||||
|
worksheet.Range[i, 6].Text = "Zuschlag";
|
||||||
|
worksheet.Range[i, 11].Text = String.Format("{0:0.}",zuschlagD);
|
||||||
|
worksheet.Range[i, 12].Text = String.Format("{0:0.}",zuschlagS);
|
||||||
|
worksheet.Range[i, 13].Text = String.Format("{0:0.}",zuschlagB);
|
||||||
|
|
||||||
int startWertD = StartWert[k["D"]];
|
int startWertD = StartWert[k["D"]];
|
||||||
int startWertB = StartWert[k["B"]];
|
int startWertB = StartWert[k["B"]];
|
||||||
int startWertS = StartWert[k["S"]];
|
int startWertS = StartWert[k["S"]];
|
||||||
|
i++;
|
||||||
|
worksheet.Range[i, 6].Text = "Startwert";
|
||||||
|
worksheet.Range[i, 11].Number = startWertD;
|
||||||
|
worksheet.Range[i, 12].Number = startWertS;
|
||||||
|
worksheet.Range[i, 13].Number = startWertB;
|
||||||
|
|
||||||
int ZustandPunkteD = startWertD + (int)zuschlagD;
|
int ZustandPunkteD = startWertD + (int)zuschlagD;
|
||||||
int ZustandPunkteB = startWertB + (int)zuschlagB;
|
int ZustandPunkteB = startWertB + (int)zuschlagB;
|
||||||
int ZustandPunkteS = startWertS + (int)zuschlagS;
|
int ZustandPunkteS = startWertS + (int)zuschlagS;
|
||||||
|
i++;
|
||||||
|
worksheet.Range[i, 11].Number = ZustandPunkteD;
|
||||||
|
worksheet.Range[i, 12].Number = ZustandPunkteS;
|
||||||
|
worksheet.Range[i, 13].Number = ZustandPunkteB;
|
||||||
|
|
||||||
|
|
||||||
|
int BewertungspunkteD = 0;
|
||||||
|
int BewertungspunkteS = 0;
|
||||||
|
int BewertungspunkteB = 0;
|
||||||
|
if(ZustandPunkteD > 0)
|
||||||
|
BewertungspunkteD = ZustandPunkteD + 500 + RD(EBaujahr.VOR1965, EEinstau.NICHTEINGEHALTEN, ELageGrundWasser.IM);
|
||||||
|
if(ZustandPunkteS > 0)
|
||||||
|
BewertungspunkteS = ZustandPunkteS + 500 + RS(EUeberdeckung.KLEINER25, EBodenGruppe.BG4);
|
||||||
|
if(ZustandPunkteB >0)
|
||||||
|
BewertungspunkteB = ZustandPunkteB + 500 + RB(EEinstau.NICHTEINGEHALTEN, EUeberdeckung.KLEINER25);
|
||||||
|
i++;
|
||||||
|
worksheet.Range[i, 11].Number = BewertungspunkteD;
|
||||||
|
worksheet.Range[i, 12].Number = BewertungspunkteS;
|
||||||
|
worksheet.Range[i, 13].Number = BewertungspunkteB;
|
||||||
|
|
||||||
int BewertungspunkteD = ZustandPunkteD + 500 + RD(EBaujahr.VOR1965, EEinstau.NICHTEINGEHALTEN, ELageGrundWasser.IM);
|
|
||||||
int BewertungspunkteS = ZustandPunkteS + 500 + RS(EUeberdeckung.KLEINER25, EBodenGruppe.BG4);
|
|
||||||
int BewertungspunkteB = ZustandPunkteB + 500 + RB(EEinstau.NICHTEINGEHALTEN, EUeberdeckung.KLEINER25);
|
|
||||||
|
|
||||||
// Sanierungsbedarfzahl errechnen
|
// Sanierungsbedarfzahl errechnen
|
||||||
List<int> ints = new List<int>();
|
List<int> ints = new List<int>();
|
||||||
@@ -84,15 +232,27 @@ namespace dcnsanplanung.bewertung
|
|||||||
int bp3 = ints.Min();
|
int bp3 = ints.Min();
|
||||||
int bp2 = ints.Sum() - bp1 - bp3;
|
int bp2 = ints.Sum() - bp1 - bp3;
|
||||||
|
|
||||||
int restbp1 = Convert.ToInt32(bp1.ToString().Substring(1));
|
int restbp1 = 0;
|
||||||
int restbp2 = Convert.ToInt32(bp2.ToString().Substring(1));
|
int restbp2 = 0;
|
||||||
int restbp3 = Convert.ToInt32(bp3.ToString().Substring(1));
|
int restbp3 = 0;
|
||||||
|
if(bp1 > 0) restbp1 = Convert.ToInt32(bp1.ToString().Substring(1));
|
||||||
|
if(bp2 > 0) restbp2 = Convert.ToInt32(bp2.ToString().Substring(1));
|
||||||
|
if(bp3 > 0) restbp3 = Convert.ToInt32(bp3.ToString().Substring(1));
|
||||||
|
|
||||||
int rest = (restbp1 + restbp2 + restbp3) / 30;
|
int rest = (restbp1 + restbp2 + restbp3) / 30;
|
||||||
|
|
||||||
string sanierungszahl = string.Format("{0}{1}{2}{3}",(int)(bp1 / 100),(int)(bp2 /100),(int)(bp3 / 100),rest);
|
string sanierungszahl = string.Format("{0}{1}{2}{3}",(int)(bp1 / 100),(int)(bp2 /100),(int)(bp3 / 100),rest);
|
||||||
|
|
||||||
int sanzahl = Convert.ToInt32(sanierungszahl);
|
int sanzahl = Convert.ToInt32(sanierungszahl);
|
||||||
|
|
||||||
|
|
||||||
|
worksheet.Range[1, 5].Number = sanzahl;
|
||||||
|
|
||||||
|
var mk = Beurteilung(sanzahl);
|
||||||
|
|
||||||
|
worksheet.Range[2, 5].Text = mk.Item1;
|
||||||
|
|
||||||
|
worksheet.Range[3, 5].Text = mk.Item2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tuple<string,string> Beurteilung(int sanierungsbedarfzahl)
|
public static Tuple<string,string> Beurteilung(int sanierungsbedarfzahl)
|
||||||
@@ -198,11 +358,19 @@ namespace dcnsanplanung.bewertung
|
|||||||
case "BDE": abstractCode = new BDE(); break;
|
case "BDE": abstractCode = new BDE(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (abstractCode == null) return result;
|
if (abstractCode == null)
|
||||||
|
{
|
||||||
|
result.Add("D", 5);
|
||||||
|
result.Add("B", 5);
|
||||||
|
result.Add("S", 5);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
abstractCode.WriteCH1(ch1);
|
abstractCode.WriteCH1(ch1);
|
||||||
abstractCode.WriteCH2(ch2);
|
abstractCode.WriteCH2(ch2);
|
||||||
float _q1 = float.Parse(q1);
|
float _q1 = 0;
|
||||||
|
if (!q1.Equals(string.Empty))
|
||||||
|
_q1 = float.Parse(q1);
|
||||||
//float _q2 = float.Parse(q2);
|
//float _q2 = float.Parse(q2);
|
||||||
abstractCode.WriteQ1(_q1);
|
abstractCode.WriteQ1(_q1);
|
||||||
//abstractCode.WriteQ2(_q2);
|
//abstractCode.WriteQ2(_q2);
|
||||||
|
|||||||
@@ -1,10 +1,90 @@
|
|||||||
namespace dcnsanplanung.bewertung.M149_3
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
|
||||||
|
namespace dcnsanplanung.bewertung.M149_3
|
||||||
{
|
{
|
||||||
public class BAK : AbstractCode
|
public class BAK : AbstractCode
|
||||||
{
|
{
|
||||||
public BAK() : base("Feststellung der Innenauskleidung")
|
public BAK() : base("Feststellung der Innenauskleidung")
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int CalculateDK()
|
||||||
|
{
|
||||||
|
switch(Ch1)
|
||||||
|
{
|
||||||
|
case "B": return 4;
|
||||||
|
case "C": return 2;
|
||||||
|
case "I": return 2;
|
||||||
|
case "J": return 1;
|
||||||
|
case "K": return 2;
|
||||||
|
case "L": return 3;
|
||||||
|
case "M":
|
||||||
|
case "N": return 2;
|
||||||
|
case "Z": return 7;
|
||||||
|
default: return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int CalculateSK()
|
||||||
|
{
|
||||||
|
switch(Ch1)
|
||||||
|
{
|
||||||
|
case "D":
|
||||||
|
{
|
||||||
|
if (Ch2.Equals("C"))
|
||||||
|
{
|
||||||
|
return 7;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case "E": return 7;
|
||||||
|
case "F": return 4;
|
||||||
|
case "L": return 7;
|
||||||
|
case "Z": return 7;
|
||||||
|
default: return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int CalculateBK()
|
||||||
|
{
|
||||||
|
switch(Ch1)
|
||||||
|
{
|
||||||
|
case "A":
|
||||||
|
{
|
||||||
|
switch(Q1)
|
||||||
|
{
|
||||||
|
case >= 50: return 0;
|
||||||
|
case >= 35: return 1;
|
||||||
|
case >= 20: return 2;
|
||||||
|
case >= 5: return 3;
|
||||||
|
default: return 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "C": return 2;
|
||||||
|
case "D": return 7;
|
||||||
|
case "E":
|
||||||
|
{
|
||||||
|
switch (Q1)
|
||||||
|
{
|
||||||
|
case >= 50: return 0;
|
||||||
|
case >= 35: return 1;
|
||||||
|
case >= 20: return 2;
|
||||||
|
case >= 5: return 3;
|
||||||
|
default: return 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "G":
|
||||||
|
case "H": return 4;
|
||||||
|
case "K": return 7;
|
||||||
|
case "Z": return 7;
|
||||||
|
default: return 5;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,40 @@
|
|||||||
{
|
{
|
||||||
public BBE() : base("Andere Hindernisse")
|
public BBE() : base("Andere Hindernisse")
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int CalculateDK()
|
||||||
|
{
|
||||||
|
if (Ch1.Equals("D") || Ch1.Equals("G")) return 2;
|
||||||
|
return base.CalculateDK();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int CalculateBK()
|
||||||
|
{
|
||||||
|
switch (Ch1)
|
||||||
|
{
|
||||||
|
case "A":
|
||||||
|
case "B":
|
||||||
|
case "C":
|
||||||
|
case "D":
|
||||||
|
case "E":
|
||||||
|
case "F":
|
||||||
|
case "G":
|
||||||
|
case "H":
|
||||||
|
case "Z":
|
||||||
|
{
|
||||||
|
switch(Q1)
|
||||||
|
{
|
||||||
|
case >= 50: return 0;
|
||||||
|
case >= 35: return 1;
|
||||||
|
case >= 20: return 2;
|
||||||
|
case >= 5: return 3;
|
||||||
|
default: return 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return base.CalculateBK();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,10 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Syncfusion.XlsIO.Net.Core" Version="23.1.36" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\dcnsanplanung.shared\dcnsanplanung.shared.csproj" />
|
<ProjectReference Include="..\dcnsanplanung.shared\dcnsanplanung.shared.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ namespace dcnsanplanung.shared.Helper
|
|||||||
private void ReadSchnittstelle(string XMLFile)
|
private void ReadSchnittstelle(string XMLFile)
|
||||||
{
|
{
|
||||||
List<Schnittstelle.Import.XML.v2013.Model.KanalObjekt> source_KanalObjekt = new Schnittstelle.Import.XML.v2013.XML2013(XMLFile).KanalObjekte.FindAll(x => x.Inspektionsdaten.Anlagentyp == Schnittstelle.Import.XML.v2013.Model.EAnlagetyp.Haltung);
|
List<Schnittstelle.Import.XML.v2013.Model.KanalObjekt> source_KanalObjekt = new Schnittstelle.Import.XML.v2013.XML2013(XMLFile).KanalObjekte.FindAll(x => x.Inspektionsdaten.Anlagentyp == Schnittstelle.Import.XML.v2013.Model.EAnlagetyp.Haltung);
|
||||||
|
//List<Schnittstelle.Import.XML.v2013.Model.KanalObjekt> source_KanalObjekt = new Schnittstelle.Import.XML.v2013.XML2013(XMLFile).KanalObjekte.FindAll(x => x.Inspektionsdaten.Anlagentyp == Schnittstelle.Import.XML.v2013.Model.EAnlagetyp.Anschlussleitung);
|
||||||
|
|
||||||
//List<Model.Haltung> haltungen = new List<Model.Haltung>();
|
//List<Model.Haltung> haltungen = new List<Model.Haltung>();
|
||||||
foreach (Schnittstelle.Import.XML.v2013.Model.KanalObjekt src in source_KanalObjekt)
|
foreach (Schnittstelle.Import.XML.v2013.Model.KanalObjekt src in source_KanalObjekt)
|
||||||
|
|||||||
@@ -15,16 +15,16 @@ namespace dcnsanplanung.shared.Model
|
|||||||
public int KD { get; set; }
|
public int KD { get; set; }
|
||||||
public int KS { get; set; }
|
public int KS { get; set; }
|
||||||
public int KB { get; set; }
|
public int KB { get; set; }
|
||||||
public float KDj { get; set; }
|
public decimal KDj { get; set; }
|
||||||
public float KBj { get; set; }
|
public decimal KBj { get; set; }
|
||||||
public float KSj { get; set; }
|
public decimal KSj { get; set; }
|
||||||
public string StreckenschadenCode { get; set; } = string.Empty;
|
public string StreckenschadenCode { get; set; } = string.Empty;
|
||||||
public List<Sanierungsvorgabe> Sanierungsvorgaben { get; set; }
|
public List<Sanierungsvorgabe> Sanierungsvorgaben { get; set; }
|
||||||
public bool IsStreckenSchaden
|
public bool IsStreckenSchaden
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return StreckenschadenCode != string.Empty;
|
return StreckenschadenCode != string.Empty && StreckenschadenCode != "0";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
<Button Content="Klassifiziere" Command="{Binding Klassifiere}" />
|
<Button Content="Klassifiziere" Command="{Binding Klassifiere}" />
|
||||||
<Label Content="{Binding ZahlEinzelfall}" />
|
<Label Content="{Binding ZahlEinzelfall}" />
|
||||||
<Button Content="Zeige Einzelfall" Command="{Binding SelectEinzelfall}" />
|
<Button Content="Zeige Einzelfall" Command="{Binding SelectEinzelfall}" />
|
||||||
|
<Button Content="Bewertung durchführen" Command="{Binding ExecuteBewertung}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -39,8 +39,8 @@ namespace dcnsanplanung.wpf.ViewModel
|
|||||||
|
|
||||||
private void doBerechneObjektklasse()
|
private void doBerechneObjektklasse()
|
||||||
{
|
{
|
||||||
BewM149.CalculateHaltung(model);
|
//BewM149.CalculateHaltung(model);
|
||||||
//BewM149.ObjektKlasse(model.Kodierungen);
|
BewM149.ObjektKlasse(model.Kodierungen);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doSpeichern()
|
private void doSpeichern()
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using dcnsanplanung.bewertung;
|
||||||
using dcnsanplanung.DAL.Services.PostgresqlData;
|
using dcnsanplanung.DAL.Services.PostgresqlData;
|
||||||
using dcnsanplanung.shared.Model;
|
using dcnsanplanung.shared.Model;
|
||||||
|
using Schnittstelle.Import.XML.v2013.Model;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace dcnsanplanung.wpf.ViewModel
|
namespace dcnsanplanung.wpf.ViewModel
|
||||||
@@ -21,6 +23,7 @@ namespace dcnsanplanung.wpf.ViewModel
|
|||||||
public ICommand LoadXMLFile { get; set; }
|
public ICommand LoadXMLFile { get; set; }
|
||||||
public ICommand Klassifiere { get; set; }
|
public ICommand Klassifiere { get; set; }
|
||||||
public ICommand SelectEinzelfall { get; set; }
|
public ICommand SelectEinzelfall { get; set; }
|
||||||
|
public ICommand ExecuteBewertung { get; set; }
|
||||||
|
|
||||||
public string ZahlEinzelfall => Einzelfallbetrachtung.Count.ToString();
|
public string ZahlEinzelfall => Einzelfallbetrachtung.Count.ToString();
|
||||||
|
|
||||||
@@ -43,17 +46,38 @@ namespace dcnsanplanung.wpf.ViewModel
|
|||||||
LoadHaltungen();
|
LoadHaltungen();
|
||||||
LoadXMLFile = new RelayCommand(() => dooAsync());
|
LoadXMLFile = new RelayCommand(() => dooAsync());
|
||||||
Klassifiere = new RelayCommand(() => dooKlassifiziereAsync());
|
Klassifiere = new RelayCommand(() => dooKlassifiziereAsync());
|
||||||
|
ExecuteBewertung = new RelayCommand(() => dooBewertungAsync());
|
||||||
SelectEinzelfall = new RelayCommand(() => selectEinzelfall());
|
SelectEinzelfall = new RelayCommand(() => selectEinzelfall());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async void dooBewertungAsync()
|
||||||
|
{
|
||||||
|
DAL.Services.PostgresqlData.HaltungDataService haltungDataService = new DAL.Services.PostgresqlData.HaltungDataService("Host = 10.1.0.2; Database = sanplaner; Username = sanplaner; Password = sanplaner");
|
||||||
|
var s = await haltungDataService.GetAllByProjekt(0);
|
||||||
|
SchadenDataService schadenDataService = new SchadenDataService("Host = 10.1.0.2; Database = sanplaner; Username = sanplaner; Password = sanplaner");
|
||||||
|
foreach (var item in s)
|
||||||
|
{
|
||||||
|
|
||||||
|
IEnumerable<Schaden> src_kodierung = await schadenDataService.GetAllByHaltung(item);
|
||||||
|
item.Kodierungen = src_kodierung.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
BewM149.CalculateHaltung(s.ToList());
|
||||||
|
|
||||||
|
MessageBox.Show("Fertig");
|
||||||
|
}
|
||||||
|
|
||||||
private void selectEinzelfall()
|
private void selectEinzelfall()
|
||||||
{
|
{
|
||||||
|
if (Einzelfallbetrachtung.Count < 1) return;
|
||||||
Haltung? einzelfall = Einzelfallbetrachtung.Dequeue();
|
Haltung? einzelfall = Einzelfallbetrachtung.Dequeue();
|
||||||
if (einzelfall == null) return;
|
if (einzelfall == null) return;
|
||||||
W_ObjektView w_ObjektView = new W_ObjektView();
|
W_ObjektView w_ObjektView = new W_ObjektView();
|
||||||
w_ObjektView.DataContext = new HaltungObjektViewModel(einzelfall);
|
w_ObjektView.DataContext = new HaltungObjektViewModel(einzelfall);
|
||||||
w_ObjektView.Show();
|
w_ObjektView.Show();
|
||||||
|
OnPropertyChanged("ZahlEinzelfall");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void dooKlassifiziereAsync()
|
private async void dooKlassifiziereAsync()
|
||||||
@@ -77,15 +101,22 @@ namespace dcnsanplanung.wpf.ViewModel
|
|||||||
{
|
{
|
||||||
var k = bewertung.BewM149.Klassifiziere(schaden.Hauptcode, schaden.CH1, schaden.CH2, schaden.Q1, schaden.Q2, (int)haltung.DN);
|
var k = bewertung.BewM149.Klassifiziere(schaden.Hauptcode, schaden.CH1, schaden.CH2, schaden.Q1, schaden.Q2, (int)haltung.DN);
|
||||||
//SchadenDataService schadenDataService = new SchadenDataService("Host = localhost; Database = sanplaner; Username = dcnsanplaner; Password = sanplaner");
|
//SchadenDataService schadenDataService = new SchadenDataService("Host = localhost; Database = sanplaner; Username = dcnsanplaner; Password = sanplaner");
|
||||||
if (k.Count == 0) continue;
|
|
||||||
schaden.KB = k["B"];
|
schaden.KB = k["B"];
|
||||||
schaden.KD = k["D"];
|
schaden.KD = k["D"];
|
||||||
schaden.KS = k["S"];
|
schaden.KS = k["S"];
|
||||||
|
|
||||||
|
// HACK für keine Einzelfallbetrachtung zu generieren.
|
||||||
|
if (schaden.KB == 7) schaden.KB = 2;
|
||||||
|
if (schaden.KD == 7) schaden.KD = 2;
|
||||||
|
if (schaden.KS == 7) schaden.KS = 2;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
if(schaden.KB == 7 || schaden.KD == 7 || schaden.KS == 7)
|
if(schaden.KB == 7 || schaden.KD == 7 || schaden.KS == 7)
|
||||||
{
|
{
|
||||||
einzelfall = true;
|
einzelfall = true;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
await schadenDataService.Update(schaden);
|
await schadenDataService.Update(schaden);
|
||||||
}
|
}
|
||||||
if(einzelfall)
|
if(einzelfall)
|
||||||
@@ -94,13 +125,16 @@ namespace dcnsanplanung.wpf.ViewModel
|
|||||||
OnPropertyChanged("ZahlEinzelfall");
|
OnPropertyChanged("ZahlEinzelfall");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
MessageBox.Show("Fertig");
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task dooAsync()
|
async Task dooAsync()
|
||||||
{
|
{
|
||||||
DAL.Helper.WriteToDatabase writer = new DAL.Helper.WriteToDatabase(@"C:\Users\damia\Desktop\dev\dcnsanplanung\RW.xml");
|
DAL.Helper.WriteToDatabase writer = new DAL.Helper.WriteToDatabase(@"C:\Users\damia\Desktop\dev\dcnsanplanung\OOWV.xml");
|
||||||
await writer.WriteInHaltung();
|
await writer.WriteInHaltung();
|
||||||
//Debugger.Break();
|
LoadHaltungen();
|
||||||
|
|
||||||
|
MessageBox.Show("Fertig mit Importieren");
|
||||||
//await writer.WriteInLV();
|
//await writer.WriteInLV();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user