浏览代码

1. Fix 跨日充電 取得充電當下資訊 問題

Jessica Tseng 2 年之前
父节点
当前提交
10a9eb94cc

+ 1 - 1
EVCB_OCPP.WEBAPI/EVCB_OCPP.WEBAPI.csproj

@@ -405,7 +405,7 @@
           <AutoAssignPort>True</AutoAssignPort>
           <DevelopmentServerPort>63823</DevelopmentServerPort>
           <DevelopmentServerVPath>/</DevelopmentServerVPath>
-          <IISUrl>http://localhost:60123/</IISUrl>
+          <IISUrl>http://localhost:60124/</IISUrl>
           <NTLMAuthentication>False</NTLMAuthentication>
           <UseCustomServer>False</UseCustomServer>
           <CustomServerUrl>

+ 1 - 1
EVCB_OCPP.WEBAPI/Properties/AssemblyInfo.cs

@@ -33,4 +33,4 @@ using System.Runtime.InteropServices;
 // 指定為預設值:
 [assembly: AssemblyVersion("2.0.1.0")]
 [assembly: AssemblyFileVersion("2.0.1.0")]
-[assembly: AssemblyInformationalVersion("faa6726")]
+[assembly: AssemblyInformationalVersion("28264a8")]

+ 18 - 4
EVCB_OCPP.WEBAPI/Services/ChargePointService.cs

@@ -364,12 +364,26 @@ namespace EVCB_OCPP.WEBAPI.Services
 
                     try
                     {
-                        using (SqlConnection conn = new SqlConnection(meterConnectionString))
+                        int retry = 0;
+                        string date = DateTime.UtcNow.ToString("yyMMdd");
+
+                        while (retry < 2)
                         {
-                            string date = transactionDatas[j].StartTime.ToString("yyMMdd");
-                            string strSql = "Select Top(1) * from [dbo].[ConnectorMeterValueRecord" + date + "] where ChargeBoxId=@ChargeBoxId and TransactionId=@TransactionId and MeasurandId=@MeasurandId order by CreatedOn desc;";
-                            meterModel = conn.Query<ConnectorMeterValueModel>(strSql, parameters, null, true, EVCBConfiguration.DB_DefaultConnectionTimeout).FirstOrDefault();
+                            retry++;
+                            using (SqlConnection conn = new SqlConnection(meterConnectionString))
+                            {                              
+                                string strSql = "Select Top(1) * from [dbo].[ConnectorMeterValueRecord" + date + "] where ChargeBoxId=@ChargeBoxId and TransactionId=@TransactionId and MeasurandId=@MeasurandId order by CreatedOn desc;";
+                                meterModel = conn.Query<ConnectorMeterValueModel>(strSql, parameters, null, true, EVCBConfiguration.DB_DefaultConnectionTimeout).FirstOrDefault();
+                                if (meterModel == null)
+                                {
+                                    date = transactionDatas[j].StartTime.ToString("yyMMdd");
+                                }
+                                else
+                                {
+                                    retry = 2;
+                                }
 
+                            }
                         }
 
                         if (meterModel != null)

+ 21 - 4
EVCB_OCPP.WEBAPI/Services/Integration/ChargePoint16Service.cs

@@ -152,6 +152,8 @@ namespace EVCB_OCPP.WEBAPI.Services.Integration
                 for (int i = 1; i <= _machine.GunAmt; i++)
                 {
                     var _RefConnector = _Connectors.Where(x => x.ConnectorId == i).FirstOrDefault();
+                    if (_RefConnector == null) continue;
+
                     cp.Connectors.Add(new Connector()
                     {
                         ConnectorId = _RefConnector == null ? i : _RefConnector.ConnectorId,
@@ -388,14 +390,29 @@ namespace EVCB_OCPP.WEBAPI.Services.Integration
                     parameters.Add("@TransactionId", transactionDatas[j].Id, DbType.String, ParameterDirection.Input);
                     parameters.Add("@MeasurandId", requiredMeasurands[i], DbType.String, ParameterDirection.Input);
 
+
                     try
                     {
-                        using (SqlConnection conn = new SqlConnection(meterConnectionString))
+                        int retry = 0;
+                        string date = DateTime.UtcNow.ToString("yyMMdd");
+
+                        while (retry < 2)
                         {
-                            string date = transactionDatas[j].StartTime.ToString("yyMMdd");
-                            string strSql = "Select Top(1) * from [dbo].[ConnectorMeterValueRecord" + date + "] where ChargeBoxId=@ChargeBoxId and TransactionId=@TransactionId and MeasurandId=@MeasurandId order by CreatedOn desc;";
-                            meterModel = conn.Query<ConnectorMeterValueModel>(strSql, parameters, null, true, EVCBConfiguration.DB_DefaultConnectionTimeout).FirstOrDefault();
+                            retry++;
+                            using (SqlConnection conn = new SqlConnection(meterConnectionString))
+                            {
+                                string strSql = "Select Top(1) * from [dbo].[ConnectorMeterValueRecord" + date + "] where ChargeBoxId=@ChargeBoxId and TransactionId=@TransactionId and MeasurandId=@MeasurandId order by CreatedOn desc;";
+                                meterModel = conn.Query<ConnectorMeterValueModel>(strSql, parameters, null, true, EVCBConfiguration.DB_DefaultConnectionTimeout).FirstOrDefault();
+                                if (meterModel == null)
+                                {
+                                    date = transactionDatas[j].StartTime.ToString("yyMMdd");
+                                }
+                                else
+                                {
+                                    retry = 2;
+                                }
 
+                            }
                         }
 
                         if (meterModel != null)

+ 5 - 5
EVCB_OCPP.WEBAPI/Web.config

@@ -7,11 +7,11 @@
   <connectionStrings>
     <add name="Main20DBContext" connectionString="data source=172.1.0.131;initial catalog=StandardOCPP20_Main;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
     <add name="MeterValue20DBContext" connectionString="data source=172.1.0.131;initial catalog=StandardOCPP20_MeterValue;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
-    <add name="ConnectionLogDBContext" connectionString="data source=172.1.2.187\SQLEXPRESS2017;initial catalog=StandardOCPP_ConnectionLog;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
-    <add name="MainDBContext" connectionString="data source=172.1.2.187\SQLEXPRESS2017;initial catalog=StandardOCPP_Main;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
-    <add name="MeterValueDBContext" connectionString="data source=172.1.2.187\SQLEXPRESS2017;initial catalog=StandardOCPP_MeterValue;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
-    <add name="APILogDBContext" connectionString="data source=172.1.2.187\SQLEXPRESS2017;initial catalog=StandardOCPP_APILog;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
-    <add name="WebDBContext" connectionString="data source=172.1.2.187\SQLEXPRESS2017;initial catalog=StandardOCPP_Web;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
+    <add name="ConnectionLogDBContext" connectionString="data source=172.1.2.187\SQLSERVER2016;initial catalog=StandardOCPP_ConnectionLog;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
+    <add name="MainDBContext" connectionString="data source=172.1.2.187\SQLSERVER2016;initial catalog=StandardOCPP_Main;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
+    <add name="MeterValueDBContext" connectionString="data source=172.1.2.187\SQLSERVER2016;initial catalog=StandardOCPP_MeterValue;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
+    <add name="APILogDBContext" connectionString="data source=172.1.2.187\SQLSERVER2016;initial catalog=StandardOCPP_APILog;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
+    <add name="WebDBContext" connectionString="data source=172.1.2.187\SQLSERVER2016;initial catalog=StandardOCPP_Web;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
 
   </connectionStrings>
   <appSettings>