首次提交:添加src文件夹代码
This commit is contained in:
@@ -0,0 +1,307 @@
|
||||
using Microsoft.AspNet.SignalR.Client;
|
||||
using StandardDomeNewApp.Communication.SignalRClient.ClinetMethods;
|
||||
using StandardDomeNewApp.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using StandardDomeNewApp.Model.WeiHongModel;
|
||||
using StandardDomeNewApp.Model;
|
||||
using Newtonsoft.Json;
|
||||
using static StandardDomeNewApp.Model.WeiHongModel.WeiHongReturnModel;
|
||||
using static StandardDomeNewApp.Model.MESDataModel;
|
||||
using static StandardDomeNewApp.Model.GuanYu.GYInterfaceModel;
|
||||
using System.Data;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace StandardDomeNewApp.Communication.SignalRClient.HubMethods
|
||||
{
|
||||
public class HubClient : IHubClient
|
||||
{
|
||||
private ConfigInfoModel configInfoModel { set; get; } = ConfigInfoModel.CreateObj();
|
||||
#region 【这个地方是放方法的】
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private IClientMethods clientMethods { set; get; }
|
||||
public FrameworkElement framework { set; get; }
|
||||
#endregion
|
||||
|
||||
private ContentCache contentCache = ContentCache.CreateObj(); //用于读取PLC数据
|
||||
|
||||
public override void Init(IHubProxy hubProxy)
|
||||
{
|
||||
proxy = hubProxy;
|
||||
//这种类都是后续按照这个格式添加 这里是客户端的方法实例化 如果不同的类型就用不同接口实现不同方法
|
||||
//clientMethods = new TestClientMethod();
|
||||
}
|
||||
public override void BeginRegister()
|
||||
{
|
||||
if (proxy == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (clientMethods == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//proxy.On<WeiHongReturnModel.MESFeedback>("ClientReceive", (MESFeedback) =>
|
||||
//{
|
||||
// clientMethods.ClientReceive(MESFeedback);
|
||||
//});
|
||||
}
|
||||
public void SignalServerInvoke(int CMD,string JSONPara)
|
||||
{
|
||||
if (View.MainWindow.isUploadMES==false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
switch (CMD)
|
||||
{
|
||||
case 0:
|
||||
Test(JSONPara);
|
||||
break;
|
||||
case (int)Model.MESDataModel.CMDType.获取产品型号:
|
||||
var mesFeedBack= GetProjCode(JSONPara);
|
||||
break;
|
||||
case (int)Model.MESDataModel.CMDType.获取水分结果:
|
||||
GetWaterResult(JSONPara);
|
||||
break;
|
||||
case (int)Model.MESDataModel.CMDType.电芯条码校验:
|
||||
var checkCell= CheckCell(JSONPara,"");
|
||||
break;
|
||||
case (int)Model.MESDataModel.CMDType.烘烤数据上传:
|
||||
GetWaterResult(JSONPara);
|
||||
break;
|
||||
case (int)Model.MESDataModel.CMDType.烘烤过程温度上传:
|
||||
GetWaterResult(JSONPara);
|
||||
break;
|
||||
}
|
||||
}
|
||||
private async Task Test(string JSONPara)
|
||||
{
|
||||
Model.MESDataModel.SendHeaderWithDtl sendHeaderWithDtl = new SendHeaderWithDtl();
|
||||
sendHeaderWithDtl.Cmd = 1;
|
||||
Model.MESDataModel.SendListItem sendListItem = new SendListItem();
|
||||
sendListItem.DataPreporty = "TestName";
|
||||
sendListItem.DataValue = JSONPara;
|
||||
|
||||
object MESFeedBack = await Send(sendHeaderWithDtl);
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取产品型号
|
||||
/// </summary>
|
||||
/// <param name="jsonPara"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Model.GuanYu.GYInterfaceModel.RtnZHComm> GetProjCode(string machineNo)
|
||||
{
|
||||
Model.MESDataModel.SendHeaderWithDtl sendHeaderWithDtl = new SendHeaderWithDtl();
|
||||
sendHeaderWithDtl.Cmd = (int)Model.MESDataModel.CMDType.获取产品型号;
|
||||
string computerName = System.Environment.MachineName;
|
||||
|
||||
List<Model.MESDataModel.SendListItem> sendListItems = new List<Model.MESDataModel.SendListItem>
|
||||
{
|
||||
new SendListItem{ DataPreporty="MachineNo",DataValue=machineNo },
|
||||
new SendListItem{ DataPreporty="ProcName",DataValue="HK" },
|
||||
new SendListItem{ DataPreporty="GXDM",DataValue="002" },
|
||||
new SendListItem{ DataPreporty="ComputerName",DataValue=computerName }
|
||||
};
|
||||
sendHeaderWithDtl.DataList = sendListItems;
|
||||
|
||||
MESFeedback mesFeedBack = await Send(sendHeaderWithDtl);
|
||||
string result = mesFeedBack.MesResult.ToString();
|
||||
Model.GuanYu.GYInterfaceModel.RtnZHComm rt = JsonConvert.DeserializeObject<Model.GuanYu.GYInterfaceModel.RtnZHComm>(result);
|
||||
|
||||
string value = rt.code;
|
||||
string value2 = rt.msg;
|
||||
List<string> valueList = rt.ProjCode;
|
||||
|
||||
return rt;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 校验电芯
|
||||
/// </summary>
|
||||
/// <param name="jsonPara"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<string> CheckCell(string code,string projCode)
|
||||
{
|
||||
Model.MESDataModel.SendHeaderWithDtl sendHeaderWithDtl = new SendHeaderWithDtl();
|
||||
sendHeaderWithDtl.Cmd = 2; //(int)Model.MESDataModel.CMDType.电芯条码校验;
|
||||
string computerName = System.Environment.MachineName;
|
||||
List<Model.MESDataModel.SendListItem> sendListItems = new List<Model.MESDataModel.SendListItem>
|
||||
{
|
||||
new SendListItem{ DataPreporty="CellName",DataValue=code },//电芯条码
|
||||
new SendListItem{ DataPreporty="ProjCode",DataValue=projCode },//电芯型号
|
||||
new SendListItem{ DataPreporty="infoData1",DataValue="0" },//周次樊工说不用传。3C才需要
|
||||
new SendListItem{ DataPreporty="ComputerName",DataValue=computerName }//计算机名
|
||||
};
|
||||
sendHeaderWithDtl.DataList = sendListItems;
|
||||
|
||||
MESFeedback mesFeedBack = await Send(sendHeaderWithDtl);
|
||||
string result = mesFeedBack.MesResult.ToString();
|
||||
Model.GuanYu.GYInterfaceModel.RtnZHComm rt = JsonConvert.DeserializeObject<Model.GuanYu.GYInterfaceModel.RtnZHComm>(result);
|
||||
|
||||
string successfulCode = rt.code;
|
||||
string msg = rt.msg;
|
||||
if(successfulCode=="0")
|
||||
{
|
||||
msg = "true";
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
/// <summary>
|
||||
/// 烘烤数据上传
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <param name="projCode"></param>
|
||||
/// <returns></returns>
|
||||
private async Task UploadBakeData(string code, string projCode)
|
||||
{
|
||||
#region
|
||||
string sql = $@" select a.BatteryCode as Cell_Name,
|
||||
a.ProjectCode as Proj_Code ,
|
||||
case when b.WaterResult='OK' then '0'else '1'end as Quality,
|
||||
'' as NGReason ,
|
||||
a.CreateTime as StartDate,
|
||||
b.BeginBakeTime as Baking_Start_Time,
|
||||
b.EndBakeTime as Baking_End_Time,
|
||||
'' as Distribution_Num,
|
||||
c.CavityNo as Cavity ,
|
||||
b.Layer as Lay ,
|
||||
'' as Position,
|
||||
'' as Vacuum_Chamber,
|
||||
f.Value as Valve_Vacuum,#真空值
|
||||
e.Value as Temperature,#温度平均值
|
||||
'machine' as Machine_No,#设备编号
|
||||
a.UserId as Operator,#操作工
|
||||
d.WaterContent as Water_Content,# 水含量
|
||||
a.IsSample as IsTestSample,
|
||||
'' as Remark ,
|
||||
'' as Extensions_1,
|
||||
'' as Extensions_2,
|
||||
b.BeginBakeAgainTime as Bakeagain_Start_Time,
|
||||
b.EndBakeAgainTime as Bakeagain_End_Time,
|
||||
e.AgainValue as Bakeagain_Temperature ,#加烘温度
|
||||
f.AgainValue as Bakeagain_Vacuum #真空
|
||||
,b.CurrentId
|
||||
from TPalletCode a
|
||||
left join TPallet b on a.PalletCode =b.PalletCode
|
||||
left join TMachineState c on b.PalletCode =c.PalletCode
|
||||
left join TWaterSample d on a.BatteryCode =d.BatteryCode
|
||||
left join TStatusHistoryDataAVG e on b.CurrentId =e.CurrentId and e.DataType ='Temperature'
|
||||
left join TStatusHistoryDataAVG f on b.CurrentId =f.CurrentId and f.DataType ='Vacuum'
|
||||
where a.BatteryCode ='{code}' ";
|
||||
#endregion
|
||||
DataTable Dt = Util.DatabaseHelper.GetDataTable(sql);
|
||||
|
||||
Model.MESDataModel.SendHeaderWithDtl sendHeaderWithDtl = new SendHeaderWithDtl();
|
||||
Model.MESDataModel.SendHeaderWithDtl MESDataModel =
|
||||
new Model.MESDataModel.SendHeaderWithDtl();
|
||||
MESDataModel.Cmd = 3; //(int)Model.MESDataModel.CMDType.烘烤数据上传;
|
||||
List<Model.MESDataModel.SendListItem> sendListItems =
|
||||
new List<Model.MESDataModel.SendListItem>();
|
||||
for (int i = 0; i < Dt.Columns.Count; i++)
|
||||
{
|
||||
Model.MESDataModel.SendListItem sendListItem = new MESDataModel.SendListItem();
|
||||
sendListItem.DataPreporty = Dt.Columns[i].ColumnName;
|
||||
sendListItem.DataValue = Dt.Rows[0][i].ToString();
|
||||
sendListItems.Add(sendListItem);
|
||||
}
|
||||
|
||||
MESDataModel.DataList = sendListItems;
|
||||
//proxy.Invoke("Receive", MESDataModel);
|
||||
MESFeedback mesFeedBack = await Send(sendHeaderWithDtl);
|
||||
string result = mesFeedBack.MesResult.ToString();
|
||||
Model.GuanYu.GYInterfaceModel.RtnZHComm rt = JsonConvert.DeserializeObject<Model.GuanYu.GYInterfaceModel.RtnZHComm>(result);
|
||||
|
||||
string value = rt.code;
|
||||
string value2 = rt.msg;
|
||||
List<string> valueList = rt.ProjCode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取水分检验结果
|
||||
/// </summary>
|
||||
/// <param name="JSONPara"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Model.GuanYu.GYInterfaceModel.RtnWaterInfo> GetWaterResult(string JSONPara)
|
||||
{
|
||||
Model.MESDataModel.SendHeaderWithDtl sendHeaderWithDtl = new SendHeaderWithDtl();
|
||||
sendHeaderWithDtl.Cmd = 5; //(int)Model.MESDataModel.CMDType.获取水分结果;
|
||||
Model.MESDataModel.SendListItem sendListItem = new SendListItem();
|
||||
sendListItem.DataPreporty = "strCellName";
|
||||
sendListItem.DataValue = JSONPara;
|
||||
List<Model.MESDataModel.SendListItem> sendListItems = new List<SendListItem>();
|
||||
sendListItems.Add(sendListItem);
|
||||
sendHeaderWithDtl.DataList = sendListItems;
|
||||
|
||||
MESFeedback mesFeedBack = await Send(sendHeaderWithDtl);
|
||||
string result = mesFeedBack.MesResult.ToString();
|
||||
Model.GuanYu.GYInterfaceModel.RtnWaterInfo rt = JsonConvert.DeserializeObject<Model.GuanYu.GYInterfaceModel.RtnWaterInfo>(result);
|
||||
//result = "";
|
||||
//string valueCode = rt.code;
|
||||
//string valueMsg = rt.msg;
|
||||
//var valueList = rt.Data;
|
||||
// Model.GuanYu.GYInterfaceModel.DataItems returnItems = rt.Data;
|
||||
//string waterContent = returnItems.Water_Content;
|
||||
return rt;
|
||||
}
|
||||
|
||||
public async Task<string> GetWaterResult2(string code, string projCode)
|
||||
{
|
||||
Model.MESDataModel.SendHeaderWithDtl sendHeaderWithDtl = new SendHeaderWithDtl();
|
||||
sendHeaderWithDtl.Cmd = 2; //(int)Model.MESDataModel.CMDType.电芯条码校验;
|
||||
string computerName = System.Environment.MachineName;
|
||||
List<Model.MESDataModel.SendListItem> sendListItems = new List<Model.MESDataModel.SendListItem>
|
||||
{
|
||||
new SendListItem{ DataPreporty="CellName",DataValue=code },//电芯条码
|
||||
new SendListItem{ DataPreporty="ProjCode",DataValue=projCode },//电芯型号
|
||||
new SendListItem{ DataPreporty="infoData1",DataValue="0" },//周次樊工说不用传。3C才需要
|
||||
new SendListItem{ DataPreporty="ComputerName",DataValue=computerName }//计算机名
|
||||
};
|
||||
sendHeaderWithDtl.DataList = sendListItems;
|
||||
|
||||
MESFeedback mesFeedBack = await Send(sendHeaderWithDtl);
|
||||
string result = mesFeedBack.MesResult.ToString();
|
||||
Model.GuanYu.GYInterfaceModel.RtnZHComm rt = JsonConvert.DeserializeObject<Model.GuanYu.GYInterfaceModel.RtnZHComm>(result);
|
||||
|
||||
string successfulCode = rt.code;
|
||||
string msg = rt.msg;
|
||||
if (successfulCode == "0")
|
||||
{
|
||||
msg = "true";
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async Task<MESFeedback> Send(SendHeaderWithDtl data)
|
||||
{
|
||||
MESFeedback task = null;
|
||||
if (proxy == null)
|
||||
{
|
||||
return task;
|
||||
}
|
||||
try
|
||||
{
|
||||
|
||||
task = await proxy.Invoke<MESFeedback>("Receive", data);
|
||||
}
|
||||
catch (Exception ex)//进到这里表示连接异常
|
||||
{
|
||||
//task = new MESFeedback { Status = "404", MesResult = ex.Message };
|
||||
}
|
||||
return task;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user