123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- using HandyControl.Controls;
- using HandyControl.Tools.Extension;
- using LogoForceTestApp.Modules.MainModule.Models;
- using Newtonsoft.Json;
- using Prism.Commands;
- using Prism.Mvvm;
- using Prism.Regions;
- using Serilog;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Input;
- namespace LogoForceTestApp.Modules.MainModule.ViewModels
- {
- internal class OeeDebugPageViewModel: BindableBase
- {
- private readonly IRegionManager _regionManager;
- private readonly ILogger _logger;
- private readonly IHttpClientFactory _httpClientFactory;
- public string Op_Id { get; set; } = "C10088888";
- public string OeeIp { get; set; }
- //[OnChangedMethod("SetChanged")]
- public int OeePort { get; set; }
- //[OnChangedMethod("SetChanged")]
- public int WaitPartDuration { get; set; } = 1;
- public string Site { get; set; }
- public int StopDuration { get; set; } = 5;
- public string Floor { get; set; }
- public string Product { get; set; }
- public string Line { get; set; }
- public string ProcessOee { get; set; }
- public string TerminalId { get; set; }
- public string MachineId { get; set; }
- public string MacAddr { get; set; }
- public string IpAddr { get; set; }
- //public List<string> AddressSource { get; set; }
- public string Status { get; set; }
- public string OeePath { get; set; }
- public OeeDebugPageViewModel(IRegionManager regionManager,ILogger logger,IHttpClientFactory httpClientFactory)
- {
- var oeePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "oee.json");
- if (File.Exists(oeePath))
- {
- var streamOee = new StreamReader(oeePath);
- var json = streamOee.ReadToEnd();
- var oeeConfig = JsonConvert.DeserializeObject<OeeConfig>(json);
- OeeIp = oeeConfig.Ip;
- OeePort = oeeConfig.Port;
- WaitPartDuration = oeeConfig.WaitPartDuration;
- StopDuration = oeeConfig.StopDuration;
- Site = oeeConfig.Site;
- Floor = oeeConfig.Floor;
- Product = oeeConfig.Product;
- Line = oeeConfig.Line;
- ProcessOee = oeeConfig.Process;
- TerminalId = oeeConfig.TerminalId;
- MachineId = oeeConfig.MachineId;
- MacAddr = oeeConfig.Macaddr;
- IpAddr = oeeConfig.Ipaddr;
- OeePath = oeeConfig.OeePath;
- }
- _regionManager = regionManager;
- _logger = logger;
- _httpClientFactory = httpClientFactory;
- }
- private DelegateCommand uploadCommand;
- public ICommand UploadCommand => uploadCommand ??= new DelegateCommand(Upload);
- private async void Upload()
- {
- using var httpClient = _httpClientFactory.CreateClient();
- var oeeLogger = new OeeLogger
- {
- site = Site,
- floor = Floor,
- product = Product,
- line = Line,
- vendor = "Team",
- process = ProcessOee,
- terminalId = TerminalId,
- machineId = MachineId,
- status = Status,
- op_id = Op_Id,
- startTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
- ipaddr = IpAddr,
- macaddr = MacAddr,
- warningCodeList = new Warningcodelist[1]
- };
- oeeLogger.warningCodeList[0] = new Warningcodelist
- {
- warningCode = "100002",
- remark = "待料"
- };
- await UploadOeeAsync(oeeLogger);
- }
- private async Task UploadOeeAsync(OeeLogger oeeLogger)
- {
-
- using var client = _httpClientFactory.CreateClient();
- //var url = _appSttings.Value.OeeUrl;
- var loggingURI = $"http://{OeeIp}:{OeePort}/device/upload/logging/v1";
- try
- {
-
- var json = JsonConvert.SerializeObject(oeeLogger, Formatting.Indented);
- WriteToLocal(json);
- _logger.Information(json);
- _logger.Information($"{loggingURI}");
- client.BaseAddress = new Uri(loggingURI);
- var content = new StringContent(json, Encoding.UTF8, "application/json");
- var response= await client.PostAsync(loggingURI, content);
- var s = await response.Content.ReadAsStringAsync();
- MessageBox.Show($"状态码:{response.StatusCode}:" + s, "服务器响应");
- }
- catch (Exception e)
- {
- //WriteLog($"oee上传失败,{e.Message}", LogType.Error);
- MessageBox.Show($"oee上传失败,{e.Message}", "提示");
- }
- }
- private void WriteToLocal(string json)
- {
- var name = DateTime.Now.ToString("yyyy-mm-dd-HH-mm-ss")+"_oee" + ".json";
- var path = Path.Combine(OeePath, name);
- if (!Directory.Exists(OeePath))
- {
- MessageBox.Show("oee路径不存在", "提示");
- return;
- }
- using var stream = new StreamWriter(path);
- stream.Write(json);
- }
- }
- }
|