| | |
| | | using yunneiWCS.SystemInteraction.tianyong; |
| | | using yunneiWCS.PLC.Srm; |
| | | using yunneiWCS.SystemInteraction.mes2.dto; |
| | | using yunneiWCS.ThreadTask; |
| | | |
| | | namespace yunneiWCS |
| | | { |
| | |
| | | Thread mesSendData = new Thread(mesDataTranffic); |
| | | StartThread(mesSendData); |
| | | |
| | | new Thread(mesDataTranfficForRealMes).Start(); |
| | | new Thread(mesDataTranfficForRealMes.Handler).Start(); |
| | | |
| | | new Thread(mesStockDataForRealMes.Handler).Start(); |
| | | |
| | | new Thread(RefershData).Start(); |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// MES数据推送 [Editby shaocx,2025-09-02] |
| | | /// </summary> |
| | | public void mesDataTranfficForRealMes() |
| | | { |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | Thread.Sleep(5000); |
| | | using (dbmodel mod = new dbmodel()) |
| | | { |
| | | List<Wms_outInStockRecord_V2_Mes> sendMesData = mod.Wms_outInStockRecord_V2_Mes.Where(x => x.isSendToMes == 0).ToList(); |
| | | |
| | | if (sendMesData.Count > 0) |
| | | { |
| | | foreach (var itemTask in sendMesData) |
| | | { |
| | | try |
| | | { |
| | | ApiResponse<object> ret = null; |
| | | |
| | | //获取信息明细 |
| | | var details = mod.Wms_outInStockRecord_Details_V2_Mes.Where(x => x.mainId == itemTask.ID).ToList(); |
| | | List<InboundStockInfoToMes> pushData = new List<InboundStockInfoToMes>(); |
| | | foreach (var de in details) |
| | | { |
| | | pushData.Add(new InboundStockInfoToMes() |
| | | { |
| | | containerCode = itemTask.containerCode, |
| | | createTime = itemTask.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | materialCode = de.productCode, |
| | | materialName = de.productName, |
| | | positionName = itemTask.sourcePlace, |
| | | productName = itemTask.materialName, |
| | | serialNumber = de.serialNumber, |
| | | supplier = itemTask.supplier, |
| | | version = itemTask.version, |
| | | }); |
| | | } |
| | | |
| | | if (isvirtual) |
| | | {//模拟环境 |
| | | ret = new ApiResponse<object>(); |
| | | ret.Success = true; |
| | | ret.Message = "系统模拟完成"; |
| | | } |
| | | else |
| | | { |
| | | switch (itemTask.outInFlag) |
| | | { |
| | | case (int)OutInFlag.入库: |
| | | ret = PushMesHandler.Mes_InStockSend(pushData, itemTask.ID.ToString()); |
| | | break; |
| | | case (int)OutInFlag.出库: |
| | | ret = PushMesHandler.Mes_OutStockSend(pushData, itemTask.ID.ToString()); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (ret.Success) |
| | | { |
| | | itemTask.isSendToMes = 1; |
| | | } |
| | | else |
| | | { |
| | | itemTask.isSendToMes = 0; |
| | | } |
| | | itemTask.SendToMesTime = DateTime.Now; |
| | | itemTask.MesRet = ret.Message; |
| | | itemTask.SendToMesCount = (itemTask.SendToMesCount ?? 0) + 1; |
| | | mod.SaveChanges(); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SystemWarningMsg.msg_mesDataTranfficForRealMes = "推送给MES数据异常:" + JsonConvert.SerializeObject(ex); |
| | | WZ.Useful.Commons.LogTextHelper.WriteLine("Form1", "mesDataTranffic", SystemWarningMsg.msg_mesDataTranffic); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | SystemWarningMsg.msg_mesDataTranfficForRealMes = "没有数据要推送给MES!"; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | SystemWarningMsg.msg_mesDataTranfficForRealMes = "数据要推送给MES出现异常:" + ex.Message; |
| | | WZ.Useful.Commons.LogTextHelper.WriteLine("Form1", "mesDataTranffic数据要推送给MES出现异常:", SystemWarningMsg.msg_mesDataTranfficForRealMes + "," + JsonConvert.SerializeObject(ex)); |
| | | } |
| | | } |
| | | |
| | | } |
| | | private void Form1_FormClosing(object sender, FormClosingEventArgs e) |
| | | { |
| | | Environment.Exit(0);//退出本进程所有线程 |
| | |
| | | { |
| | | LogTextHelper.BatchDeleteLog(); |
| | | LogTextHelper.BatchDeleteLog(@"H:\\api\\YUN\\Log"); |
| | | LogTextHelper.BatchDeleteLog(@"d:\\Log\\YuNei\\WCS");//移除log4日志 |
| | | ClearDataHandler.Delete_System_TianYongLog(7); |
| | | ClearDataHandler.Delete_StockClearLog(30); |
| | | ClearDataHandler.Delete_taskRecord(30); |
| | |
| | | |
| | | this.lbl_msg_mesDataTranffic.Text = showNowTime + SystemWarningMsg.msg_mesDataTranffic; |
| | | this.lbl_msg_mesDataTranffic_V2.Text = showNowTime + SystemWarningMsg.msg_mesDataTranfficForRealMes; |
| | | this.lbl_msg_mesStockDataForRealMes.Text = showNowTime + SystemWarningMsg.mesStockDataForRealMes; |
| | | |
| | | this.lbl_sendTaskForPick_ErrMsg.Text = showNowTime + SystemWarningMsg.Thread_sendTaskForPick_ErrMsg; |
| | | this.lbl_ClearDataMsg.Text = showNowTime + SystemWarningMsg.Thread_lbl_ClearDataMsg; |