Browse Source

1. [ 防呆]避免StopTransaction 被電樁重送資訊洗掉

Jessica Tseng 2 years ago
parent
commit
6961d91a04

+ 17 - 6
EVCB_OCPP.WSServer/Message/CoreProfileHandler.cs

@@ -576,6 +576,8 @@ namespace EVCB_OCPP.WSServer.Message
                                 var transaction = db.TransactionRecord.Where(x => x.Id == _request.transactionId
                                  && x.ChargeBoxId == session.ChargeBoxId).FirstOrDefault();
 
+
+
                                 //遠傳太久以前的停止充電 直接拒絕 避免電樁持續重送~~~~~~~
                                 if (_request.timestamp < new DateTime(2021, 11, 1))
                                 {
@@ -596,6 +598,20 @@ namespace EVCB_OCPP.WSServer.Message
 
                                 if (transaction != null)
                                 {
+                                    var confirm = new StopTransactionConfirmation()
+                                    {
+                                        idTagInfo = _idTagInfo
+
+                                    };
+
+                                    //Avoid rewrite transaction data
+                                    if (transaction.StopTime != GlobalConfig.DefaultNullTime)
+                                    {
+                                        result.Message = confirm;
+                                        result.Success = true;
+                                        return result;
+                                    }
+
                                     _ConnectorId = transaction.ConnectorId;
                                     transaction.MeterStop = _request.meterStop;
                                     transaction.StopTime = _request.timestamp.ToUniversalTime();
@@ -607,12 +623,7 @@ namespace EVCB_OCPP.WSServer.Message
 
 
                                     await db.SaveChangesAsync();
-                                    var confirm = new StopTransactionConfirmation()
-                                    {
-                                        idTagInfo = _idTagInfo
-
-                                    };
-
+                                  
 
                                     if (session.IsBilling)
                                     {

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

@@ -35,4 +35,4 @@ using System.Runtime.InteropServices;
 [assembly: AssemblyVersion("1.0.5.0")]
 [assembly: AssemblyFileVersion("1.0.5.0")]
 
-[assembly: AssemblyInformationalVersion("6516adf")]
+[assembly: AssemblyInformationalVersion("f59930c")]