瀏覽代碼

新增Reset charger 功能,每周五 02:30 重啟金獅湖站

Jessica Tseng 1 年之前
父節點
當前提交
57175174ae

+ 1 - 1
EVCB_OCPP.TaskScheduler/App.config

@@ -11,7 +11,7 @@
   </startup>
   <connectionStrings>
     <add name="OnlineLogDBContext" connectionString="Server=tcp:zerova-evbackend.database.windows.net,1433;initial catalog=StandardOCPP_OnlineRecord;;persist security info=True;user id=ev_user;password=Thw2DEa2hZPdg;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
-    <add name="MainDBContext" connectionString="Server=tcp:zerova-evbackend.database.windows.net,1433;initial catalog=StandardOCPP_Main;;persist security info=True;user id=ev_user;password=Thw2DEa2hZPdg;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
+    <add name="MainDBContext" connectionString="Server=172.1.2.187;initial catalog=StandardOCPP_Main;;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;initial catalog=StandardOCPP_Web;;persist security info=True;user id=sa;password=Ph0930118811;MultipleActiveResultSets=True;App=EntityFramework; Max Pool Size=500" providerName="System.Data.SqlClient" />
   </connectionStrings>
   

+ 1 - 0
EVCB_OCPP.TaskScheduler/EVCB_OCPP.TaskScheduler.csproj

@@ -125,6 +125,7 @@
     <Compile Include="DefaultSetting.cs" />
     <Compile Include="Jobs\CheckExecutionCmdJob.cs" />
     <Compile Include="Jobs\ExecutionCmdReportJob.cs" />
+    <Compile Include="Jobs\ResetChargerJob.cs" />
     <Compile Include="Jobs\StartTransacionReportJob.cs" />
     <Compile Include="Jobs\StopTransacionReportJob.cs" />
     <Compile Include="Models\ComandExecution.cs" />

+ 60 - 0
EVCB_OCPP.TaskScheduler/Jobs/ResetChargerJob.cs

@@ -0,0 +1,60 @@
+using Dapper;
+using EVCB_OCPP.TaskScheduler.Models;
+using EVCB_OCPP.TaskScheduler.Services;
+using Newtonsoft.Json;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using static Common.Logging.Configuration.ArgUtils;
+
+namespace EVCB_OCPP.TaskScheduler.Jobs
+{
+    public class ResetChargerJob : IJob
+    {
+        private NLog.ILogger logger = NLog.LogManager.GetCurrentClassLogger();
+        private string mainDBConnectString = ConfigurationManager.ConnectionStrings["MainDBContext"].ToString();
+        public async Task Execute(IJobExecutionContext context)
+        {
+            logger.Info(this.ToString() + " :Starting........");
+
+            List<string> chargers = new List<string>() { "DSYC152U00D5PHN2240A001A1", "DSYC152U00D5PHN2240A002A1", "DSYC152U00D5PHN2240A003A1", "DSYC182U0UD3PHN2240A001A1", "DSYC182U0UD3PHN2240A002A1", "DSYC182U0UD3PHN2240A003A1" };
+
+            foreach (var charger in chargers)
+            {
+                string sqlString = "INSERT INTO [dbo].[ServerMessage] (\"SerialNo\",\"OutAction\",\"OutRequest\",\"InMessage\",\"CreatedOn\",\"CreatedBy\",\"ReceivedOn\",\"ChargeBoxId\",\"UpdatedOn\")" +
+                       "VALUES( @SerialNo,@OutAction,@OutRequest,@InMessage,@CreatedOn,@CreatedBy,@ReceivedOn,@ChargeBoxId,@UpdatedOn); ";
+                using (var dbConn = new SqlConnection(mainDBConnectString))
+                {
+                    dbConn.Open();
+                    try
+                    {
+                        var parameters = new DynamicParameters();
+                        parameters.Add("@SerialNo", Guid.NewGuid().ToString(), System.Data.DbType.String);
+                        parameters.Add("@OutAction", "Reset", System.Data.DbType.String);
+                        parameters.Add("@OutRequest", @"{""type"":""Hard""}", System.Data.DbType.String);
+                        parameters.Add("@InMessage", string.Empty, System.Data.DbType.String);
+                        parameters.Add("@CreatedOn", DateTime.UtcNow, System.Data.DbType.DateTime);
+                        parameters.Add("@ReceivedOn", DefaultSetting.DefaultNullTime, System.Data.DbType.DateTime);
+                        parameters.Add("@CreatedBy", "Task", System.Data.DbType.String);
+                        parameters.Add("@ChargeBoxId", charger, System.Data.DbType.String);
+                        parameters.Add("@UpdatedOn", DefaultSetting.DefaultNullTime, System.Data.DbType.DateTime);
+
+                        await dbConn.ExecuteAsync(sqlString, parameters);
+                    }
+                    catch(Exception ex)
+                    {
+
+                    }
+                   
+                }
+            }
+
+            logger.Info(this.ToString() + " :Finished........");          
+        }     
+    }
+}

+ 24 - 10
EVCB_OCPP.TaskScheduler/Program.cs

@@ -19,10 +19,10 @@ namespace EVCB_OCPP.TaskScheduler
         {
             try
             {
-                logger.Info("running....");            
+                logger.Info("running....");
 
                 DoHardWork().GetAwaiter().GetResult();
-              
+
             }
             catch (Exception ex)
             {
@@ -38,10 +38,10 @@ namespace EVCB_OCPP.TaskScheduler
             try
             {
                 // Grab the Scheduler instance from the Factory
-               
-               
+
+
                 IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
-                
+
                 // and start it off
                 await scheduler.Start();
 
@@ -66,6 +66,11 @@ namespace EVCB_OCPP.TaskScheduler
                  .WithIdentity("job5", "group1")
                  .Build();
 
+
+                IJobDetail _ResetChargerJob = JobBuilder.Create<ResetChargerJob>()
+                .WithIdentity("job6", "group1")
+                .Build();
+
                 // Trigger the job to run now, and then repeat every 10 seconds
                 ITrigger _CheckEVSEOnlineTrigger = TriggerBuilder.Create()
                     .WithIdentity("trigger1", "group1")
@@ -108,12 +113,21 @@ namespace EVCB_OCPP.TaskScheduler
                  .RepeatForever())
              .Build();
 
+
+                ITrigger _ResetChargerTrigger = TriggerBuilder.Create()
+             .WithIdentity("trigger6", "group1")
+             .StartNow()
+             .WithCronSchedule("0 51 18 ? * THU")
+             .Build();
+
                 // Tell quartz to schedule the job using our trigger
-                await scheduler.ScheduleJob(_CheckEVSEOnlineJob, _CheckEVSEOnlineTrigger);
-                await scheduler.ScheduleJob(_StartTransacionReportJob, _StartTransacionReportTrigger);
-                await scheduler.ScheduleJob(_StopTransacionReportJob, _StopTransacionReportTrigger);
-                await scheduler.ScheduleJob(_CheckExecutionCmdJob, _CheckExecutionCmdTrigger);
-                await scheduler.ScheduleJob(_ExecutionCmdReportJob, _ExecutionCmdReportTrigger);
+                //await scheduler.ScheduleJob(_CheckEVSEOnlineJob, _CheckEVSEOnlineTrigger);
+                //await scheduler.ScheduleJob(_StartTransacionReportJob, _StartTransacionReportTrigger);
+                //await scheduler.ScheduleJob(_StopTransacionReportJob, _StopTransacionReportTrigger);
+                //await scheduler.ScheduleJob(_CheckExecutionCmdJob, _CheckExecutionCmdTrigger);
+                //await scheduler.ScheduleJob(_ExecutionCmdReportJob, _ExecutionCmdReportTrigger);
+
+                await scheduler.ScheduleJob(_ResetChargerJob, _ResetChargerTrigger);
 
 
             }

+ 4 - 4
EVCB_OCPP.TaskScheduler/Properties/AssemblyInfo.cs

@@ -31,7 +31,7 @@ using System.Runtime.InteropServices;
 //
 // 您可以指定所有的值,或將組建編號或修訂編號設為預設值
 // 指定為預設值: 
-// [assembly: AssemblyVersion("0.1.0.0")]
-[assembly: AssemblyVersion("0.1.0.0")]
-[assembly: AssemblyFileVersion("0.1.0.0")]
-[assembly: AssemblyInformationalVersion("befd1a7")]
+// [assembly: AssemblyVersion("1.1.1.0")]
+[assembly: AssemblyVersion("1.1.1.0")]
+[assembly: AssemblyFileVersion("1.1.1.0")]
+[assembly: AssemblyInformationalVersion("808811c")]