Browse Source

加油机详情

DOVER-GLOBAL\11047086 1 year ago
parent
commit
e3b1de032e

+ 2 - 2
IMES-Middleware-Platform/src/hosts/IMES-Middleware-Platform.Host/Configs/dbconfig.json

@@ -21,7 +21,7 @@
   //SqlServer "Data Source=.;User Id=sa;Password=pwd;Initial Catalog=master;TrustServerCertificate=true;Pooling=true;Min Pool Size=1"
   //PostgreSQL "Host=localhost;Port=5432;Username=postgres;Password=; Database=postgres;Pooling=true;Minimum Pool Size=1"
   //Oracle "user id=SYS;password=pwd; data source=//127.0.0.1:1521/XE;Pooling=true;Min Pool Size=1"
-  "createDbConnectionString": "Server=ipos.biz; Port=3307; Database=appdb; Uid=root; Pwd=Wayne@123; Charset=utf8mb4;",
+  "createDbConnectionString": "Server=47.101.220.106; Port=3307; Database=appdb; Uid=root; Pwd=Wayne@123; Charset=utf8mb4;",
   //建库脚本,复杂建库脚本可放到createdbsql.txt中
   //MySql "CREATE DATABASE `appdb` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci'"
   //SqlServer "CREATE DATABASE [appdb]"
@@ -64,7 +64,7 @@
   //PostgreSQL "Host=localhost;Port=5432;Username=postgres;Password=; Database=appdb;Pooling=true;Minimum Pool Size=1"
   //Sqlite "Data Source=|DataDirectory|\\appdb.db; Pooling=true;Min Pool Size=1"
   //"Oracle" "user id=SYS;password=pwd; data source=//127.0.0.1:1521/XE;Pooling=true;Min Pool Size=1",
-  "connectionString": "Server=ipos.biz; Port=3307; Database=appdb; Uid=root; Pwd=Wayne@123; Charset=utf8mb4;",
+  "connectionString": "Server=47.101.220.106; Port=3307; Database=appdb; Uid=root; Pwd=Wayne@123; Charset=utf8mb4;",
 
   //指定程序集
   //FreeSql.MySql.MySqlProvider`1,FreeSql.Provider.MySqlConnector

+ 23 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Core/Handlers/HttpHelper.cs

@@ -105,7 +105,30 @@ namespace IMES_Middleware_Platform.Api.Core.Handlers
                     return null;
                 }
             }
+        }
 
+        public async Task<string> GetDispensersDetailsAsync(string baseUrl, string accessToken, int id, int size = 20, int page = 0)
+        {
+            using (HttpClient httpClient = new HttpClient())
+            {
+                httpClient.BaseAddress = new Uri(baseUrl);
+                httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");
+                // _httpClient.DefaultRequestHeaders.Add("Cookie", cookie);
+                //https://cma-fds.org.cn/api/v1/notices?expand=station&expand=dispenser&expand=alarm&page=0&size=5&sort=id,desc&search=dispenser.id:34
+                string endpoint = $"?expand=station&expand=supplier&expand=blackBoxesOnlineTime&expand=nozzleControls&expand=nozzleControls.code&expand=nozzleControls.fuel&expand=nozzleControls.taxControl&expand=nozzleControls.taxControl.supplier&expand=nozzleControls.taxControl.calculatorMainboard.supplier&expand=nozzleControls.taxControl.calculatorMainboard.calculatorSoftware.supplier&expand=nozzleControls.encoderControls.supplier&expand=nozzleControls.encoderControls.meter.supplier&expand=nozzleControls.displayControls.supplier&expand=nozzleControls.blackBox.supplier&expand=nozzleControls.encoderControls.encoderSoftware.supplier&expand=nozzleControls.taxControl.taxSoftware.supplier&expand=nozzleControls.valveControls.supplier&expand=nozzleControls.valveControls.valveSoftware.supplier&expand=nozzleControls.vaporRecoveryControl&expand=nozzleControls.vaporRecoveryControl.vaporRecoverySoftware.supplier&expand=nozzleControls.vaporRecoveryControl.supplier";
+
+                HttpResponseMessage response = await httpClient.GetAsync(endpoint);
+                response.EnsureSuccessStatusCode();
+                if (response.IsSuccessStatusCode)
+                {
+                    return await response.Content.ReadAsStringAsync();
+                }
+                else
+                {
+                    Console.WriteLine($"Error: {response.StatusCode} - {response.ReasonPhrase}");
+                    return null;
+                }
+            }
         }
 
         public async Task<string> PostAsync(string url, HttpContent content)

+ 15 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Domain/FuelDispenser/Dto/FuelDispenserDto.cs

@@ -80,6 +80,18 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
         /// 规格参数
         /// </summary>
         public string ModelSpec { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string Description { get; set; }
+        /// <summary>
+        /// 报警状态
+        /// </summary>
+        public int AlarmLevel { get; set; }
+        /// <summary>
+        /// 累计在线时间
+        /// </summary>
+        public string OnlineDesc { get; set; }
         public FuelDispenserEntity ToFuelDispenser(FuelDispenserDto gasPump)
         {
             return new FuelDispenserEntity()
@@ -100,6 +112,9 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
                 AccuracyLevel = gasPump.AccuracyLevel,
                 ModelSpec = gasPump.ModelSpec,
                 FuelId = gasPump.FuelId,
+                Description = gasPump.Description,
+                AlarmLevel = gasPump.AlarmLevel,
+                OnlineDesc = gasPump.OnlineDesc,
             };
         }
     }

+ 590 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Domain/FuelDispenser/Dto/Rootobject.cs

@@ -0,0 +1,590 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
+{
+
+    public class Rootobject
+    {
+        public object lastInspectTime { get; set; }
+        public string measureRang { get; set; }
+        public bool alarming { get; set; }
+        public int? deviceAlarmLevel { get; set; }
+        public string onlineStatus { get; set; }
+        public long? productTime { get; set; }
+        public string type { get; set; }
+        public string accuracyLevel { get; set; }
+        public string uuid { get; set; }
+        public string deviceStatus { get; set; }
+        public object lockTime { get; set; }
+        public object[] changeInfo { get; set; }
+        public object contact { get; set; }
+        public Supplier supplier { get; set; }
+        public Station station { get; set; }
+        public bool _lock { get; set; }
+        public int? modifiedBy { get; set; }
+        public long? startTime { get; set; }
+        public int? alarmLevel { get; set; }
+        public int? id { get; set; }
+        public Nozzlecontrol[] nozzleControls { get; set; }
+        public string modelSpec { get; set; }
+        public string serialNum { get; set; }
+        public bool test { get; set; }
+        public object[] sealNo { get; set; }
+        public object[] alarms { get; set; }
+        public long? alarmTime { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public object[] photoIds { get; set; }
+        public long? soldTime { get; set; }
+        public string[] alarmDetail { get; set; }
+        public object verificationCode { get; set; }
+        public Blackboxesonlinetime blackBoxesOnlineTime { get; set; }
+        public long? createdDate { get; set; }
+        public object phone { get; set; }
+        public int? createdBy { get; set; }
+        public bool repairing { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string setup { get; set; }
+        public int? noticesTotal { get; set; }
+        public int? nozzleControlsTotal { get; set; }
+    }
+
+
+ 
+    public class Blackboxesonlinetime
+    {
+        public int? onlineTime { get; set; }
+        public int? offlineTime { get; set; }
+        public string onlineDesc { get; set; }
+        public string offlineDesc { get; set; }
+    }
+
+    public class Nozzlecontrol
+    {
+        public Taxcontrol taxControl { get; set; }
+        public Code code { get; set; }
+        public int? mainBoard { get; set; }
+        public bool hidden { get; set; }
+        public int? deviceAlarmLevel { get; set; }
+        public Fuel fuel { get; set; }
+        public string onlineStatus { get; set; }
+        public object[] taxAlarms { get; set; }
+        public string iotType { get; set; }
+        public long? productTime { get; set; }
+        public string deviceStatus { get; set; }
+        public int? modifiedBy { get; set; }
+        public long? startTime { get; set; }
+        public Encodercontrol[] encoderControls { get; set; }
+        public int? alarmLevel { get; set; }
+        public int? id { get; set; }
+        public string value { get; set; }
+        public Displaycontrol[] displayControls { get; set; }
+        public bool dirty { get; set; }
+        public string recover { get; set; }
+        public object[] alarms { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public object vaporRecoveryControl { get; set; }
+        public long? soldTime { get; set; }
+        public object[] alarmDetail { get; set; }
+        public long? createdDate { get; set; }
+        public Blackbox blackBox { get; set; }
+        public int? nozzleNo { get; set; }
+        public int? createdBy { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string cheatStatus { get; set; }
+        public object[] valveControls { get; set; }
+    }
+
+    public class Taxcontrol
+    {
+        public int? mainBoard { get; set; }
+        public int? resetTimes { get; set; }
+        public int? deviceAlarmLevel { get; set; }
+        public string signature { get; set; }
+        public string onlineStatus { get; set; }
+        public long? productTime { get; set; }
+        public string uuid { get; set; }
+        public bool signVerify { get; set; }
+        public string deviceStatus { get; set; }
+        public Calculatormainboard calculatorMainboard { get; set; }
+        public Supplier3 supplier { get; set; }
+        public int? modifiedBy { get; set; }
+        public long? startTime { get; set; }
+        public int? alarmLevel { get; set; }
+        public string sn { get; set; }
+        public int? id { get; set; }
+        public int? dispenserSupplierId { get; set; }
+        public bool dirty { get; set; }
+        public string mainBoardUuid { get; set; }
+        public object[] alarms { get; set; }
+        public string nozzleControlName { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public long? soldTime { get; set; }
+        public object[] alarmDetail { get; set; }
+        public long? createdDate { get; set; }
+        public Taxsoftware taxSoftware { get; set; }
+        public int? createdBy { get; set; }
+        public long? modifiedDate { get; set; }
+        public object hdv { get; set; }
+    }
+
+    public class Calculatormainboard
+    {
+        public int? mainBoard { get; set; }
+        public int? deviceAlarmLevel { get; set; }
+        public string signature { get; set; }
+        public Calculatorsoftware calculatorSoftware { get; set; }
+        public string onlineStatus { get; set; }
+        public string iotType { get; set; }
+        public long? productTime { get; set; }
+        public string uuid { get; set; }
+        public bool signVerify { get; set; }
+        public string deviceStatus { get; set; }
+        public string swv { get; set; }
+        public Supplier2 supplier { get; set; }
+        public int? modifiedBy { get; set; }
+        public long? startTime { get; set; }
+        public int? alarmLevel { get; set; }
+        public int? id { get; set; }
+        public bool dirty { get; set; }
+        public object[] alarms { get; set; }
+        public string nozzleControlName { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public long? soldTime { get; set; }
+        public object[] alarmDetail { get; set; }
+        public long? createdDate { get; set; }
+        public int? createdBy { get; set; }
+        public long? modifiedDate { get; set; }
+        public object hdv { get; set; }
+    }
+
+    public class Calculatorsoftware
+    {
+        public int? commitmentLetterId { get; set; }
+        public int? secretVersion { get; set; }
+        public string description { get; set; }
+        public string deviceStatus { get; set; }
+        public long? createdDate { get; set; }
+        public string swv { get; set; }
+        public int? softwareId { get; set; }
+        public int? createdBy { get; set; }
+        public Supplier1 supplier { get; set; }
+        public long? modifiedDate { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? protocolVersion { get; set; }
+        public int? id { get; set; }
+        public string hash { get; set; }
+        public string pubKey { get; set; }
+    }
+
+    public class Supplier1
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Supplier2
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Supplier3
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Taxsoftware
+    {
+        public int? commitmentLetterId { get; set; }
+        public int? secretVersion { get; set; }
+        public string description { get; set; }
+        public string deviceStatus { get; set; }
+        public long? createdDate { get; set; }
+        public string swv { get; set; }
+        public int? softwareId { get; set; }
+        public int? createdBy { get; set; }
+        public Supplier4 supplier { get; set; }
+        public long? modifiedDate { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? protocolVersion { get; set; }
+        public int? id { get; set; }
+        public string hash { get; set; }
+        public string pubKey { get; set; }
+    }
+
+    public class Supplier4
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Code
+    {
+        public string code { get; set; }
+        public long? createdDate { get; set; }
+        public string supplierRegisterNo { get; set; }
+        public int? createdBy { get; set; }
+        public long? modifiedDate { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+        public string status { get; set; }
+    }
+
+    public class Fuel
+    {
+        public string fuelName { get; set; }
+        public long? createdDate { get; set; }
+        public int? createdBy { get; set; }
+        public long? modifiedDate { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+        public string fuelId { get; set; }
+    }
+
+    public class Blackbox
+    {
+        public string cpuUuid { get; set; }
+        public bool alarming { get; set; }
+        public int? resetTimes { get; set; }
+        public long? onlineStatusDate { get; set; }
+        public int? deviceAlarmLevel { get; set; }
+        public string onlineStatus { get; set; }
+        public string iotType { get; set; }
+        public long? productTime { get; set; }
+        public string imsi { get; set; }
+        public string uuid { get; set; }
+        public string deviceStatus { get; set; }
+        public string smUuid { get; set; }
+        public string iccid { get; set; }
+        public string swv { get; set; }
+        public string qrCode { get; set; }
+        public object supplier { get; set; }
+        public int? modifiedBy { get; set; }
+        public long? startTime { get; set; }
+        public int? alarmLevel { get; set; }
+        public int? id { get; set; }
+        public bool filtering { get; set; }
+        public int? dispenserSupplierId { get; set; }
+        public string taxType { get; set; }
+        public long? alarmTime { get; set; }
+        public object[] alarms { get; set; }
+        public string nozzleControlName { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public long? soldTime { get; set; }
+        public string[] alarmDetail { get; set; }
+        public object[] snapshot2 { get; set; }
+        public long? createdDate { get; set; }
+        public int? createdBy { get; set; }
+        public Xattrs xattrs { get; set; }
+        public long? modifiedDate { get; set; }
+        public string imei { get; set; }
+        public int? offlineAlarmLevel { get; set; }
+        public string hdv { get; set; }
+        public long? registerUpdateTime { get; set; }
+    }
+
+    public class Xattrs
+    {
+        public Uart5cancontrols uart5CanControls { get; set; }
+        public int? strength { get; set; }
+        public string buildTime { get; set; }
+        public int? onchipFlash { get; set; }
+        public Safechipcontrols safeChipControls { get; set; }
+        public Uart6cancontrols uart6CanControls { get; set; }
+        public string netDevice { get; set; }
+        public Gpsmodulecontrols gpsModuleControls { get; set; }
+    }
+
+    public class Uart5cancontrols
+    {
+        public int? cover { get; set; }
+        public int? canBaud { get; set; }
+        public string swv { get; set; }
+        public string buildTime { get; set; }
+        public string hdid { get; set; }
+        public string hdv { get; set; }
+    }
+
+    public class Safechipcontrols
+    {
+        public int? cover { get; set; }
+        public string swv { get; set; }
+        public string buildTime { get; set; }
+        public string hdid { get; set; }
+        public int? supplier_type { get; set; }
+        public string hdv { get; set; }
+    }
+
+    public class Uart6cancontrols
+    {
+        public int? cover { get; set; }
+        public int? canBaud { get; set; }
+        public string swv { get; set; }
+        public string buildTime { get; set; }
+        public string hdid { get; set; }
+        public string hdv { get; set; }
+    }
+
+    public class Gpsmodulecontrols
+    {
+        public float lon { get; set; }
+        public float lat { get; set; }
+    }
+
+    public class Encodercontrol
+    {
+        public int? deviceAlarmLevel { get; set; }
+        public string signature { get; set; }
+        public string onlineStatus { get; set; }
+        public long? productTime { get; set; }
+        public bool signVerify { get; set; }
+        public string uuid { get; set; }
+        public string deviceStatus { get; set; }
+        public Supplier5 supplier { get; set; }
+        public int? modifiedBy { get; set; }
+        public long? startTime { get; set; }
+        public int? alarmLevel { get; set; }
+        public string sn { get; set; }
+        public int? id { get; set; }
+        public int? dispenserSupplierId { get; set; }
+        public bool dirty { get; set; }
+        public Meter meter { get; set; }
+        public object[] alarms { get; set; }
+        public string nozzleControlName { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public long? soldTime { get; set; }
+        public object[] alarmDetail { get; set; }
+        public long? createdDate { get; set; }
+        public Encodersoftware encoderSoftware { get; set; }
+        public int? createdBy { get; set; }
+        public long? modifiedDate { get; set; }
+        public object hdv { get; set; }
+    }
+
+    public class Supplier5
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Meter
+    {
+        public int? deviceAlarmLevel { get; set; }
+        public string onlineStatus { get; set; }
+        public object[] alarms { get; set; }
+        public string nozzleControlName { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public object productTime { get; set; }
+        public string uuid { get; set; }
+        public long? soldTime { get; set; }
+        public string deviceStatus { get; set; }
+        public object[] alarmDetail { get; set; }
+        public long? createdDate { get; set; }
+        public int? createdBy { get; set; }
+        public Supplier6 supplier { get; set; }
+        public long? modifiedDate { get; set; }
+        public string setup { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? alarmLevel { get; set; }
+        public long? startTime { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Supplier6
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Encodersoftware
+    {
+        public int? commitmentLetterId { get; set; }
+        public int? secretVersion { get; set; }
+        public string description { get; set; }
+        public string deviceStatus { get; set; }
+        public long? createdDate { get; set; }
+        public string swv { get; set; }
+        public int? softwareId { get; set; }
+        public int? createdBy { get; set; }
+        public Supplier7 supplier { get; set; }
+        public long? modifiedDate { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? protocolVersion { get; set; }
+        public int? id { get; set; }
+        public string hash { get; set; }
+        public string pubKey { get; set; }
+    }
+
+    public class Supplier7
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+    public class Displaycontrol
+    {
+        public bool dirty { get; set; }
+        public int? deviceAlarmLevel { get; set; }
+        public string onlineStatus { get; set; }
+        public object[] alarms { get; set; }
+        public string nozzleControlName { get; set; }
+        public int? photoId { get; set; }
+        public long? fixTime { get; set; }
+        public object productTime { get; set; }
+        public string uuid { get; set; }
+        public object soldTime { get; set; }
+        public string deviceStatus { get; set; }
+        public object[] alarmDetail { get; set; }
+        public long? createdDate { get; set; }
+        public int? createdBy { get; set; }
+        public Supplier8 supplier { get; set; }
+        public long? modifiedDate { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? alarmLevel { get; set; }
+        public long? startTime { get; set; }
+        public string sn { get; set; }
+        public int? id { get; set; }
+        public int? dispenserSupplierId { get; set; }
+    }
+
+    public class Supplier8
+    {
+        public string groupType { get; set; }
+        public object address { get; set; }
+        public string code { get; set; }
+        public int? standardId { get; set; }
+        public string description { get; set; }
+        public int? photoId { get; set; }
+        public string registerNo { get; set; }
+        public long? createdDate { get; set; }
+        public string[] deviceTypes { get; set; }
+        public int? createdBy { get; set; }
+        public object phone { get; set; }
+        public object contact { get; set; }
+        public string name { get; set; }
+        public long? modifiedDate { get; set; }
+        public string alias { get; set; }
+        public int? modifiedBy { get; set; }
+        public int? id { get; set; }
+    }
+
+}

+ 4 - 4
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Domain/FuelDispenser/Dto/SupplierDto.cs

@@ -23,7 +23,7 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
         public int? CreatedBy { get; set; }
         public object Phone { get; set; }
         public object Contact { get; set; }
-        public string Name { get; set; }
+        public string Name { get; set; }//制造商
         public long? ModifiedDate { get; set; }
         public string Alias { get; set; }
         public int ModifiedBy { get; set; }
@@ -91,7 +91,7 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
     {
         public object LastInspectTime { get; set; }
         public string MeasureRang { get; set; }//测量范围
-        public bool Alarming { get; set; }
+        public bool Alarming { get; set; }//自锁功能 
         public int DeviceAlarmLevel { get; set; }
         public string OnlineStatus { get; set; }//在线状态 online:在线  offline : 离线
         public long? ProductTime { get; set; }//出厂时间
@@ -109,7 +109,7 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
         public int ModifiedBy { get; set; }
         public long? StartTime { get; set; }//启用时间
 
-        public int AlarmLevel { get; set; }
+        public int AlarmLevel { get; set; }//报警状态   0:正常   1:一般报警    2:严重报警
         public int Id { get; set; }
         public string ModelSpec { get; set; }//规格参数
         public string SerialNum { get; set; }//序列号     出厂编号
@@ -118,7 +118,7 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto
         public List<object> Alarms { get; set; }
         public long? AlarmTime { get; set; }
         public int PhotoId { get; set; }
-        public long? FixTime { get; set; }
+        public long? FixTime { get; set; } //安装日期
         public List<int> PhotoIds { get; set; }
         public long? SoldTime { get; set; }
         public List<string> AlarmDetail { get; set; }

+ 13 - 1
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Domain/FuelDispenser/FuelDispenserEntity.cs

@@ -44,9 +44,13 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser
         public int GunCount { get; set; }
 
         /// <summary>
-        /// 加油机厂
+        /// 制造
         /// </summary>
         public string Manufacturer { get; set; }
+        /// <summary>
+        /// 加油机厂商
+        /// </summary>
+        public string Description { get; set; }
 
         /// <summary>
         /// 出厂时间
@@ -84,6 +88,14 @@ namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser
         /// 规格参数
         /// </summary>
         public string ModelSpec { get; set; }
+        /// <summary>
+        /// 报警状态  0:正常   1:一般报警    2:严重报警
+        /// </summary>
+        public int AlarmLevel { get; set; }
+        /// <summary>
+        /// 累计在线时间
+        /// </summary>
+        public string OnlineDesc { get; set; }
 
     }
 }

+ 15 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Domain/FuelDispenser/INozzlecontrolRepository.cs

@@ -0,0 +1,15 @@
+using IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using ZhonTai.Admin.Core.Repositories;
+
+namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser
+{
+
+    public interface INozzlecontrolRepository : IRepositoryBase<NozzlecontrolEntity>
+    {
+    }
+}

+ 51 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Domain/FuelDispenser/NozzlecontrolEntity.cs

@@ -0,0 +1,51 @@
+using FreeSql.DataAnnotations;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using ZhonTai.Admin.Core.Entities;
+
+namespace IMES_Middleware_Platform.Api.Domain.FuelDispenser
+{
+    /// <summary>
+    /// 油枪
+    /// </summary>
+    [Table(Name = "Nozzlecontrol")]
+    public class NozzlecontrolEntity : EntityAdd
+    {
+        /// <summary>
+        /// 油机ID
+        /// </summary>
+        public int FuelId { get; set; }
+        /// <summary>
+        /// ECQS编码
+        /// </summary>
+        public string Code { get; set; }
+        /// <summary>
+        /// 油品
+        /// </summary>
+        public string FuelName { get; set; }
+        /// <summary>
+        /// 枪号
+        /// </summary>
+        public string Name { get; set; }
+        /// <summary>
+        /// 主板数
+        /// </summary>
+        public int? MainBoard { get; set; }
+        /// <summary>
+        /// 枪数
+        /// </summary>
+        public int? NozzleNo { get; set; }
+        /// <summary>
+        /// 在线状态
+        /// </summary>
+        public string OnlineStatus { get; set; }
+        /// <summary>
+        /// 自锁功能
+        /// </summary>
+        public bool Alarming { get; set; }
+
+    }
+}

+ 75 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/IMES_Middleware_Platform.Api.xml

@@ -382,6 +382,21 @@
             规格参数
             </summary>
         </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto.FuelDispenserDto.Description">
+            <summary>
+            
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto.FuelDispenserDto.AlarmLevel">
+            <summary>
+            报警状态
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto.FuelDispenserDto.OnlineDesc">
+            <summary>
+            累计在线时间
+            </summary>
+        </member>
         <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto.LifecycleDto.FuelId">
             <summary>
             油机ID
@@ -433,6 +448,11 @@
             </summary>
         </member>
         <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.FuelDispenserEntity.Manufacturer">
+            <summary>
+            制造商
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.FuelDispenserEntity.Description">
             <summary>
             加油机厂商
             </summary>
@@ -477,6 +497,16 @@
             规格参数
             </summary>
         </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.FuelDispenserEntity.AlarmLevel">
+            <summary>
+            报警状态  0:正常   1:一般报警    2:严重报警
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.FuelDispenserEntity.OnlineDesc">
+            <summary>
+            累计在线时间
+            </summary>
+        </member>
         <member name="T:IMES_Middleware_Platform.Api.Domain.FuelDispenser.LifeCycle">
             <summary>
             生命周期
@@ -502,6 +532,51 @@
             操作
             </summary>
         </member>
+        <member name="T:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity">
+            <summary>
+            油枪
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.FuelId">
+            <summary>
+            油机ID
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.Code">
+            <summary>
+            ECQS编码
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.FuelName">
+            <summary>
+            油品
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.Name">
+            <summary>
+            枪号
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.MainBoard">
+            <summary>
+            主板数
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.NozzleNo">
+            <summary>
+            枪数
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.OnlineStatus">
+            <summary>
+            在线状态
+            </summary>
+        </member>
+        <member name="P:IMES_Middleware_Platform.Api.Domain.FuelDispenser.NozzlecontrolEntity.Alarming">
+            <summary>
+            自锁功能
+            </summary>
+        </member>
         <member name="T:IMES_Middleware_Platform.Api.Domain.Module.Dto.ModuleGetPageDto">
             <summary>
             模块分页

+ 20 - 0
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Repositories/FuelDispenser/NozzlecontrolRepository.cs

@@ -0,0 +1,20 @@
+using IMES_Middleware_Platform.Api.Core.Repositories;
+using IMES_Middleware_Platform.Api.Domain.FuelDispenser;
+using IMES_Middleware_Platform.Api.Domain.FuelDispenser.Dto;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using ZhonTai.Admin.Core.Db.Transaction;
+
+namespace IMES_Middleware_Platform.Api.Repositories.FuelDispenser
+{
+    public class NozzlecontrolRepository : AppRepositoryBase<NozzlecontrolEntity>, INozzlecontrolRepository
+    {
+        public NozzlecontrolRepository(UnitOfWorkManagerCloud uowm) : base(uowm)
+        {
+
+        }
+    }
+}

+ 46 - 4
IMES-Middleware-Platform/src/platform/IMES-Middleware-Platform.Api/Services/Association/AssociationService.cs

@@ -37,13 +37,15 @@ namespace IMES_Middleware_Platform.Api.Services.Association
         public readonly IFuelDispenserRepository _fuelDispenserRepository;
         public readonly IAlarmHistoryRepository _alarmHistoryRepository;
         public readonly ILifeCycleRepository _lifeCycleRepository;
+        public readonly INozzlecontrolRepository _nozzlecontrolRepository;
         static string token = string.Empty;
-        public AssociationService(IConfiguration configuration, IFuelDispenserRepository fuelDispenserRepository, IAlarmHistoryRepository alarmHistoryRepository, ILifeCycleRepository lifeCycleRepository)
+        public AssociationService(IConfiguration configuration, IFuelDispenserRepository fuelDispenserRepository, IAlarmHistoryRepository alarmHistoryRepository, ILifeCycleRepository lifeCycleRepository, INozzlecontrolRepository nozzlecontrolRepository)
         {
             _configuration = configuration;
             _fuelDispenserRepository = fuelDispenserRepository;
             _alarmHistoryRepository = alarmHistoryRepository;
             _lifeCycleRepository = lifeCycleRepository;
+            _nozzlecontrolRepository = nozzlecontrolRepository;
         }
 
         public Task<LocalApiDto> GetAllStation(string areaType, string search)
@@ -312,6 +314,7 @@ namespace IMES_Middleware_Platform.Api.Services.Association
         {
             for (var i = 0; i < myObject.Content.Count(); i++)
             {
+                await Dispensers(myObject.Content[i].Id);
                 await GetLifecycleAsync(myObject.Content[i].Id);
                 await GetAlarmHistoryAsync(myObject.Content[i].Id);
                 DateTime? ProductTime = myObject.Content[i].ProductTime.HasValue
@@ -320,6 +323,9 @@ namespace IMES_Middleware_Platform.Api.Services.Association
                 DateTime? StartTime = myObject.Content[i].StartTime.HasValue
                 ? DateTimeOffset.FromUnixTimeMilliseconds(myObject.Content[i].StartTime.Value).UtcDateTime
                 : (DateTime?)null;
+                DateTime? InstallationDate = myObject.Content[i].FixTime.HasValue
+               ? DateTimeOffset.FromUnixTimeMilliseconds(myObject.Content[i].FixTime.Value).UtcDateTime
+               : (DateTime?)null;
                 FuelDispenserDto fuelDispenserDto = new FuelDispenserDto
                 {
                     Name = myObject.Content[i].Name,
@@ -328,16 +334,18 @@ namespace IMES_Middleware_Platform.Api.Services.Association
                     SerialNumber = myObject.Content[i].SerialNum,
                     Model = myObject.Content[i].Type,
                     GunCount = myObject.Content[i].NozzleControlsTotal, // 例如,假设有4个枪
-                    Manufacturer = myObject.Content[i].Supplier?.Description,
+                    Manufacturer = myObject.Content[i].Supplier?.Name,//制造商
+                    Description = myObject.Content[i].Supplier?.Description,//加油机厂商
                     ManufactureDate = ProductTime, // 使用实际的出厂时间
                     StartupDate = StartTime, // 使用实际的启动时间
-                    InstallationDate = null, // 使用实际的安装时间
+                    InstallationDate = InstallationDate, // 使用实际的安装时间
                     DeviceStatus = myObject.Content[i].DeviceStatus,
                     OnlineStatus = myObject.Content[i].OnlineStatus,// 假设在线状态为1,可以根据实际情况设置
                     AccuracyLevel = myObject.Content[i].AccuracyLevel,//准确度等级
                     MeasureRang = myObject.Content[i].MeasureRang,//测量范围
                     ModelSpec = myObject.Content[i].ModelSpec,//规格参数
-                    FuelId = myObject.Content[i].Id
+                    FuelId = myObject.Content[i].Id,
+                    AlarmLevel = myObject.Content[i].AlarmLevel,
                 };
                 var fuelDispenser = _fuelDispenserRepository.Where(x => x.SerialNumber == fuelDispenserDto.SerialNumber).First();
                 if (fuelDispenser == null)
@@ -348,9 +356,43 @@ namespace IMES_Middleware_Platform.Api.Services.Association
                 {
                     fuelDispenser.DeviceStatus = fuelDispenserDto.DeviceStatus;
                     fuelDispenser.OnlineStatus = fuelDispenserDto.OnlineStatus;
+                    fuelDispenser.FuelId = fuelDispenserDto.FuelId;
                     await _fuelDispenserRepository.UpdateAsync(fuelDispenser);
                 }
             }
         }
+        public async Task Dispensers(int FuelId)
+        {
+            HttpHelper helper = new HttpHelper();
+            string result = await helper.GetDispensersDetailsAsync(string.Format(@"https://cma-fds.org.cn/api/v1/dispensers/{0}?", FuelId), token, FuelId);
+            Rootobject myObject = Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject>(result);
+            if (myObject != null)
+            {
+                string SerialNumber = myObject.serialNum;
+                var fuelDispenser = _fuelDispenserRepository.Where(x => x.SerialNumber == SerialNumber).First();
+                DateTime? fixTime = myObject.fixTime.HasValue
+              ? DateTimeOffset.FromUnixTimeMilliseconds(myObject.fixTime.Value).UtcDateTime
+              : (DateTime?)null;
+                if (fuelDispenser != null)
+                {
+                    fuelDispenser.OnlineDesc = myObject.blackBoxesOnlineTime.onlineDesc;
+                    fuelDispenser.InstallationDate = fixTime;
+                    await _fuelDispenserRepository.UpdateAsync(fuelDispenser);
+                }
+                for (var i = 0; i < myObject.nozzleControls.Count(); i++)
+                {
+                    NozzlecontrolEntity nozzlecontrolEntity = new NozzlecontrolEntity();
+                    nozzlecontrolEntity.Code = myObject.nozzleControls[i]?.code?.code;//编码
+                    nozzlecontrolEntity.FuelName = myObject.nozzleControls[i].fuel?.fuelName;//油品
+                    nozzlecontrolEntity.OnlineStatus = myObject.onlineStatus;//在线状态
+                    nozzlecontrolEntity.Name = myObject.nozzleControls[i]?.name;//枪号
+                    nozzlecontrolEntity.MainBoard = myObject.nozzleControls[i]?.taxControl?.mainBoard;
+                    nozzlecontrolEntity.NozzleNo = myObject.nozzleControls[i]?.nozzleNo;
+                    nozzlecontrolEntity.Alarming = myObject.alarming;
+                    nozzlecontrolEntity.FuelId = FuelId;
+                    await _nozzlecontrolRepository.InsertAsync(nozzlecontrolEntity);
+                }
+            }
+        }
     }
 }