123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414 |
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace MainForm.ClassFile.XiaomiAPI_MES
- {
- /// <summary>
- /// 小米MES - 出站接⼝
- /// 接口地址:
- /// 接口方法:UnitConfirmDataSetOut
- /// </summary>
- public class XiaomiMESHttp_StationOutbound : XiaomiMESHttp_X5
- {
- #region 变量
- /// <summary>
- /// 接口地址
- /// </summary>
- protected new static string MESUrl { set; get; } = GlobalContext.StationOutMESUrl;
- /// <summary>
- /// 接口方法
- /// </summary>
- protected new static string Method { set; get; } = "UnitConfirmDataSetOut";
- #endregion 变量
- /// <summary>
- /// 小米MES - 出站
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- public static XmMES_StationOutResponse StationOut(XmMES_StationOutRequest_Body body)
- {
- XmMES_StationOutResponse stationOutResponse = new XmMES_StationOutResponse();
- string bodyJson = JsonConvert.SerializeObject(body);
- XiaomiMES_X5RequestHeader header = new XiaomiMES_X5RequestHeader();
- header.appid = Appid; // 系统分配的应⽤ID
- header.method = Method; // API接⼝名称
- header.sign = GetSign_Up(Appid, bodyJson, Appkey); // md5签名
- header.url = MESUrl; // 接⼝地址
- //XmMES_StationOutRequest request = new XmMES_StationOutRequest();
- //request.header = header;
- //request.body = body;
- //string data = JsonConvert.SerializeObject(request);
- //转base64
- dynamic requestData = new { header = header, body = bodyJson };
- var serializedBody = JsonConvert.SerializeObject(requestData);
- var data = Convert.ToBase64String(Encoding.UTF8.GetBytes(serializedBody));
- XiaomiMES_X5Response response = Post(MESUrl, data);
- // ZS保存日志
- stationOutResponse.header = response.header;
- string responseBody = response.body;
- stationOutResponse.body = JsonConvert.DeserializeObject<XmMESStationOut_Body>(responseBody);
- return stationOutResponse;
- }
- #region 入参
- /// <summary>
- /// 出站接⼝ - 入参
- /// </summary>
- public class XmMES_StationOutRequest
- {
- /// <summary>
- /// 出站接⼝ - 入参 - header
- /// </summary>
- public XiaomiMES_X5RequestHeader header { get; set; } = new XiaomiMES_X5RequestHeader();
- /// <summary>
- /// 出站接⼝ - 入参 - body
- /// </summary>
- public XmMES_StationOutRequest_Body body { get; set; } = new XmMES_StationOutRequest_Body();
- }
- /// <summary>
- /// 出站接⼝ - 入参 - Body 实体
- /// </summary>
- public class XmMES_StationOutRequest_Body
- {
- /// <summary>
- /// 装备id(可配置)
- /// </summary>
- public string machineId { get; set; } = string.Empty;
- /// <summary>
- /// ⼯位ID(可配置)
- /// </summary>
- public string stationId { get; set; } = string.Empty;
- /// <summary>
- /// 客⼾端本机MAC地址,格式:XX-XX-XX-XX-XX-XX
- /// </summary>
- public string clientMac { get; set; } = string.Empty;
- /// <summary>
- /// 客⼾端请求时间,格式yyyy-MM-dd HH:mm:ss.fff
- /// </summary>
- public string clientTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
- /// <summary>
- /// 产品SN
- /// </summary>
- public string unitSn { get; set; } = string.Empty;
- /// <summary>
- /// 过站明细唯⼀标识UUID(每次调⽤OUT⽣成⼀个全新得uuid进⾏赋值,使⽤UUID函数直接⽣成即可)
- /// </summary>
- public string uuidInspection { get; set; } = Guid.NewGuid().ToString();
- /// <summary>
- /// 过站条件
- /// PASS或FAIL
- /// </summary>
- public string state { get; set; } = string.Empty;
- /// <summary>
- /// ⽤⼾ID;非必填
- /// 如果接⼊了MES⽤⼾才需要传⼊
- /// </summary>
- public string userId { get; set; } = string.Empty;
- /// <summary>
- /// ⼯⼚id;非必填
- /// </summary>
- public string factoryId { get; set; } = string.Empty;
- /// <summary>
- /// 设备数据
- /// </summary>
- public XmStationOut_UnitData unitData { get; set; } = new XmStationOut_UnitData();
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据
- /// </summary>
- public class XmStationOut_UnitData
- {
- /// <summary>
- /// 检测项数据;如果没有则不传
- /// </summary>
- public List<XmStationOut_InspectionItemData> inspectionItemData { get; set; } = new List<XmStationOut_InspectionItemData>();
- /// <summary>
- /// 不良点位检测数据;如果没有则不传
- /// </summary>
- public List<XmStationOut_InspectionPointData> inspectionPointData { get; set; } = new List<XmStationOut_InspectionPointData>();
- /// <summary>
- /// 制程⼯艺参数;如果没有则不传
- /// </summary>
- public List<XmStationOut_ProcessData> processData { get; set; } = new List<XmStationOut_ProcessData>();
- /// <summary>
- /// 关键参数;如果没有则不传
- /// </summary>
- public List<XmStationOut_KeyParam> keyParams { get; set; } = new List<XmStationOut_KeyParam>();
- /// <summary>
- /// 载具信息;如果没有则不传
- /// </summary>
- public XmStationOut_VehicleData vehicleData { get; set; } = new XmStationOut_VehicleData();
- /// <summary>
- /// ⽂件信息;如果没有则不传
- /// </summary>
- public List<XmStationOut_FileData> fileData { get; set; } = new List<XmStationOut_FileData>();
- /// <summary>
- /// 辅耗材消耗信息;如果没有则不传
- /// </summary>
- public List<XmStationOut_ConsumableData> consumableData { get; set; } = new List<XmStationOut_ConsumableData>();
- /// <summary>
- /// 关键部件绑定sn信息;如果没有则不传
- /// </summary>
- public List<XmStationOut_KeyMaterial> keyMaterial { get; set; } = new List<XmStationOut_KeyMaterial>();
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 检测项数据
- /// </summary>
- public class XmStationOut_InspectionItemData
- {
- /// <summary>
- /// ⼦条码SN
- /// </summary>
- public string childUnitSn { get; set; } = string.Empty;
- /// <summary>
- /// 检测结果
- /// PASS/FAIL
- /// </summary>
- public string childUnitState { get; set; } = string.Empty;
- /// <summary>
- /// ⼯具版本号
- /// </summary>
- public string toolVersion { get; set; } = string.Empty;
- /// <summary>
- /// 检测明细数据
- /// </summary>
- public List<XmStationOut_DataItem> dataItem { get; set; } = new List<XmStationOut_DataItem>();
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 检测项数据 - 检测明细数据
- /// </summary>
- public class XmStationOut_DataItem
- {
- /// <summary>
- /// 测试项名称
- /// </summary>
- public string functionName { get; set; } = string.Empty;
- /// <summary>
- /// 数据描述
- /// </summary>
- public string testItem { get; set; } = string.Empty;
- /// <summary>
- /// 数值
- /// </summary>
- public string value { get; set; } = string.Empty;
- /// <summary>
- /// 最⼤值;非必填
- /// </summary>
- public string hiLimit { get; set; } = string.Empty;
- /// <summary>
- /// 最⼩值;非必填
- /// </summary>
- public string lowLimit { get; set; } = string.Empty;
- /// <summary>
- /// 测试时间,单位s
- /// </summary>
- public string testTime { get; set; } = string.Empty;
- /// <summary>
- /// 错误代码(参考ErrorCode定义标准化表);非必填
- /// </summary>
- public string errorCode { get; set; } = string.Empty;
- /// <summary>
- /// 项⽬的检验结果
- /// PASS/FAIL
- /// </summary>
- public string status { get; set; } = string.Empty;
- /// <summary>
- /// 描述信息
- /// </summary>
- public string description { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 不良点位检测数据
- /// </summary>
- public class XmStationOut_InspectionPointData
- {
- /// <summary>
- /// 检验数据项⽬名称
- /// </summary>
- public string no { get; set; } = string.Empty;
- /// <summary>
- /// 检测结果
- /// </summary>
- public string result { get; set; } = string.Empty;
- /// <summary>
- /// ⼩板号
- /// </summary>
- public string panelNo { get; set; } = string.Empty;
- /// <summary>
- /// 不良code;非必填
- /// </summary>
- public string defectCode { get; set; } = string.Empty;
- /// <summary>
- /// 不良描述;非必填
- /// </summary>
- public string defectDesc { get; set; } = string.Empty;
- /// <summary>
- /// 不良位置
- /// </summary>
- public string location { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 制程⼯艺参数
- /// </summary>
- public class XmStationOut_ProcessData
- {
- /// <summary>
- /// 数据名字
- /// </summary>
- public string dataName { get; set; } = string.Empty;
- /// <summary>
- /// 数据值;非必填
- /// </summary>
- public string dataValue { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 关键参数
- /// </summary>
- public class XmStationOut_KeyParam
- {
- /// <summary>
- /// 关键参数code
- /// </summary>
- public string paramCode { get; set; } = string.Empty;
- /// <summary>
- /// 关键参数值
- /// </summary>
- public string paramValue { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 载具信息
- /// </summary>
- public class XmStationOut_VehicleData
- {
- /// <summary>
- /// 载具sn
- /// </summary>
- public string vehicleSn { get; set; } = string.Empty;
- /// <summary>
- /// 载具类型
- /// </summary>
- public string vehicleType { get; set; } = string.Empty;
- /// <summary>
- /// 槽位
- /// </summary>
- public string slot { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 文件信息
- /// </summary>
- public class XmStationOut_FileData
- {
- /// <summary>
- /// ⽂件名称
- /// </summary>
- public string fileName { get; set; } = string.Empty;
- /// <summary>
- /// ⽂件在⽂件服务器对应的uuid,可以采⽤异步上传,⾃定义uuid,先上传out,然后再异步上传⽂件,提升过站效率
- /// </summary>
- public string fileId { get; set; } = string.Empty;
- /// <summary>
- /// ⽂件服务器bucket
- /// </summary>
- public string bucket { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 辅耗材消耗信息
- /// </summary>
- public class XmStationOut_ConsumableData
- {
- /// <summary>
- /// 辅耗材sn
- /// </summary>
- public string consumableSn { get; set; } = string.Empty;
- /// <summary>
- /// 消耗数量
- /// </summary>
- public string useQty { get; set; } = string.Empty;
- /// <summary>
- /// 辅耗材使⽤位置;非必填
- /// </summary>
- public string componentLocation { get; set; } = string.Empty;
- }
- /// <summary>
- /// 出站接⼝ - 入参 - 设备数据 - 关键部件绑定sn信息
- /// </summary>
- public class XmStationOut_KeyMaterial
- {
- /// <summary>
- /// 绑定顺序 1,2,3,...
- /// </summary>
- public int bindSort { get; set; }
- /// <summary>
- /// 绑定部件的SN
- /// </summary>
- public string materialSn { get; set; } = string.Empty;
- }
- }
- #endregion 入参
- #region 出参
- /// <summary>
- /// 出站接⼝ - 出参
- /// </summary>
- public class XmMES_StationOutResponse
- {
- /// <summary>
- /// 出站接⼝ - 出参 - header
- /// </summary>
- public XiaomiMES_X5ResponseHeader header { get; set; } = new XiaomiMES_X5ResponseHeader();
- /// <summary>
- /// 出站接⼝ - 出参 - body
- /// </summary>
- public XmMESStationOut_Body body { get; set; } = new XmMESStationOut_Body();
- }
- /// <summary>
- /// 出站接⼝ - 出参 - Body 实体
- /// </summary>
- public class XmMESStationOut_Body
- {
- /// <summary>
- /// 服务器响应时间,格式yyyy-MM-dd HH:mm:ss.fff
- /// </summary>
- public string serverTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
- /// <summary>
- /// 回溯结果:
- /// PASS 成功,可以下⼀站;FAIL 失败,需要进维修室*(需要回溯的⼯站专⽤,其它⼯站可以忽略该字段)
- /// </summary>
- public string lookBackResult { get; set; } = string.Empty;
- ///// <summary>
- /////
- ///// </summary>
- //public string requestTime { get; set; } = string.Empty;
- ///// <summary>
- /////
- ///// </summary>
- //public string processTime { get; set; } = string.Empty;
- }
- #endregion 出参
- }
- }
|