From 882473a24298ed650512a1d9b5366b0e93c50e51 Mon Sep 17 00:00:00 2001 From: liuwf Date: Sat, 12 Oct 2024 10:43:17 +0800 Subject: [PATCH] =?UTF-8?q?change-=E6=BE=B3=E6=9F=AF=E7=8E=9B=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repository_New/BaseOrderInfoRepository.cs | 2 +- .../Aucma.Core.CodeBinding.csproj | 2 +- .../ViewModels/IndexPageViewModel.cs | 56 ++++++++----- .../ViewModels/LoginPageViewModel.cs | 2 +- .../ViewModels/StatisticsPageViewModel.cs | 39 +++++++++ .../Views/StatisticsPageView.xaml | 8 +- Aucma.Core.CodeBinding/appsettings.json | 3 +- .../Models/OldBoxFoamTypeModel.cs | 2 +- .../ViewModels/RoadKindPageViewModel.cs | 39 +++++---- .../Business/InstoreBusiness.cs | 19 +++-- .../Business/InstoreBusiness.cs | 3 +- .../ViewModels/IndexPageViewModel.cs | 14 ++++ .../AucamTemperatureMeasurementService.cs | 81 +++++++++---------- 13 files changed, 177 insertions(+), 93 deletions(-) diff --git a/Admin.Core.Repository/Repository_New/BaseOrderInfoRepository.cs b/Admin.Core.Repository/Repository_New/BaseOrderInfoRepository.cs index 30d3e676..42ec4855 100644 --- a/Admin.Core.Repository/Repository_New/BaseOrderInfoRepository.cs +++ b/Admin.Core.Repository/Repository_New/BaseOrderInfoRepository.cs @@ -31,7 +31,7 @@ namespace Admin.Core.Repository string sql = @$"WITH T AS( select DISTINCT o.* from (select r.* from (select r.*,BP.PRODUCT_LINE_NAME from BASE_ORDERINFO r LEFT JOIN BASE_PRODUCTLINE BP on r.WORK_CENTER_CODE = BP.WORK_CENTER_CODE) r left join BASE_MATERIALINFO m on r.MATERIAL_CODE=m.MATERIAL_CODE where MATERIAL_SUBCLASS='100') o left join BASE_BOMINFO b on o.MATERIAL_CODE=b.PARENT_ID - WHERE SUBSTR(o.ORDER_STATUS, 0, 4)!='CLSD' and SUBSTR(o.ORDER_STATUS, 0, 4)!='TECO' and PRODUCT_LINE_NAME!='一线' + WHERE SUBSTR(o.ORDER_STATUS, 0, 4)!='CLSD' and SUBSTR(o.ORDER_STATUS, 0, 4)!='TECO' and PRODUCT_LINE_NAME!='二线' ), K AS( select *from C##AUCMA_SCADA.PRINT_BARCODE diff --git a/Aucma.Core.CodeBinding/Aucma.Core.CodeBinding.csproj b/Aucma.Core.CodeBinding/Aucma.Core.CodeBinding.csproj index b549e7fd..0c619653 100644 --- a/Aucma.Core.CodeBinding/Aucma.Core.CodeBinding.csproj +++ b/Aucma.Core.CodeBinding/Aucma.Core.CodeBinding.csproj @@ -1,7 +1,7 @@  - WinExe + Exe net6.0-windows enable true diff --git a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs index e5a5845f..e108e708 100644 --- a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs @@ -114,8 +114,8 @@ namespace Aucma.Core.CodeBinding.ViewModels //实时绑定条码和实时下发plc放行信号 realBindingAndSendPlc(); - - + + } catch (Exception ex) @@ -124,17 +124,31 @@ namespace Aucma.Core.CodeBinding.ViewModels } } - public async void RefreshCharts() + /// + /// IsvoiceAmount报数提示 + /// + /// + public async void RefreshCharts(bool IsVoiceAmount =false) { - await Task.Run(() => + try { - List list = LoadData(); - if (list != null) + await Task.Run(() => { - LoadCharts(list); - } + List list = LoadData(); + if (list != null) + { + if (IsVoiceAmount) + { + speechStr.SpeakAsync($"{list.Count}"); + } + LoadCharts(list); + } - }); + }); + }catch (Exception ex) + { + log.Error("刷新图表出错"); + } } /// @@ -239,9 +253,7 @@ namespace Aucma.Core.CodeBinding.ViewModels { try { - // LoadCharts(); - List records = null; records = _codeBindingRecordServices.QueryCharts(appConfig.ProductlineCode,appConfig.TeamName); // records = _codeBindingRecordServices.QueryAsync(x => x.Position2==1 && x.BoxCode != null && x.RecordTime2 >= DateTime.Today && x.RecordTime2 < DateTime.Today.AddDays(1)).Result; @@ -702,16 +714,16 @@ namespace Aucma.Core.CodeBinding.ViewModels } #endregion - #region 型号校验 - bool checkFlag = CheckModel(code1,code2); - if (!checkFlag) - { - speechStr.SpeakAsync("型号校验失败,请检查成品码是否一致"); - RefreshAndWriteLog($"箱体码:{code1},成品码:{code2},型号校验失败,请检查箱体码与成品码是否一致"); - SendPlcStop(); - return; - } - #endregion + //#region 型号校验 + //bool checkFlag = CheckModel(code1,code2); + //if (!checkFlag) + //{ + // speechStr.SpeakAsync("型号校验失败,请检查成品码是否一致"); + // RefreshAndWriteLog($"箱体码:{code1},成品码:{code2},型号校验失败,请检查箱体码与成品码是否一致"); + // SendPlcStop(); + // return; + //} + //#endregion RefreshAndWriteLog("开始绑定MES条码:" + code1 + " SN条码:" + code2); // 1.数据库查询各个工序质检结果,不合格报警 @@ -780,7 +792,7 @@ namespace Aucma.Core.CodeBinding.ViewModels SendPlcPass(); //刷新页面 - RefreshCharts(); + RefreshCharts(true); } else { diff --git a/Aucma.Core.CodeBinding/ViewModels/LoginPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/LoginPageViewModel.cs index 098585af..aa998125 100644 --- a/Aucma.Core.CodeBinding/ViewModels/LoginPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/LoginPageViewModel.cs @@ -32,7 +32,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// /// 图表刷新 /// - public delegate void RefreshCharts(); + public delegate void RefreshCharts(bool voiceAmount = false); public static event RefreshCharts? RefreshChartsEvent; public LoginPageViewModel() { diff --git a/Aucma.Core.CodeBinding/ViewModels/StatisticsPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/StatisticsPageViewModel.cs index 60acd088..4d599853 100644 --- a/Aucma.Core.CodeBinding/ViewModels/StatisticsPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/StatisticsPageViewModel.cs @@ -13,6 +13,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; +using System.Windows.Documents; using System.Xml.Linq; namespace Aucma.Core.CodeBinding.ViewModels @@ -126,6 +127,44 @@ namespace Aucma.Core.CodeBinding.ViewModels Console.WriteLine(ex.ToString()); } } + + + /// + /// 条码查询 + /// + /// + /// + [RelayCommand] + private async Task CodeQueryAsync(object obj) + { + try + { + if (obj == null) return; + string code = (string)obj; + CodeBindingRecord record = await _codeBindingRecordServices.FirstAsync(x => x.BoxCode == code || x.ProductCode == code); + if (record != null) + { + System.Windows.Application.Current.Dispatcher.Invoke((Action)(async () => + { + ListItems.Clear(); + + ListItems.Add(new ReaderInfo() { No = ListItems.Count + 1, BoxCode = record.BoxCode, ProductCode = record.ProductCode, BoxName = record.BoxName, BindingResult = record.BindingResult, IsPass = record.IsPass == 1 ? "自动" : "手动", RecordTime = record.RecordTime2.ToString() }); + + })); + + } + + }catch(Exception ex) + { + log.Error($"CodeQueryAsync异常:{ex.ToString()}"); + } + + + } + + + + #endregion } } diff --git a/Aucma.Core.CodeBinding/Views/StatisticsPageView.xaml b/Aucma.Core.CodeBinding/Views/StatisticsPageView.xaml index 3804bedc..38eb109d 100644 --- a/Aucma.Core.CodeBinding/Views/StatisticsPageView.xaml +++ b/Aucma.Core.CodeBinding/Views/StatisticsPageView.xaml @@ -7,7 +7,7 @@ xmlns:local="clr-namespace:Aucma.Core.CodeBinding.Views" xmlns:cvt="clr-namespace:Aucma.Core.CodeBinding.ConvertTo" mc:Ignorable="d" Background="#1152AC" FontFamily="Microsoft YaHei" - d:DesignHeight="450" d:DesignWidth="800"> + d:DesignHeight="1080" d:DesignWidth="1920"> @@ -134,6 +134,12 @@ + + + 15) { - result = false; - return; + log.Error($"等待plc允许下发信号超时,plc不允许下发"); + Console.WriteLine($"======>等待plc允许下发信号超时, plc不允许下发"); + msg = $"等待plc允许下发信号超时,plc不允许下发,找到待下发货道号:{spaceinfo.SpaceArea},{spaceinfo.SpaceCode}"; + RefreshMsgEvent?.Invoke(msg); + isFlag = false; + } bool answerFlag = false; if (spaceinfo.SpaceArea == "A") { answerFlag = _plc.ReadBool("B1000"); + Console.WriteLine($"B1000:{answerFlag}"); } else if (spaceinfo.SpaceArea == "B") { answerFlag = _plc.ReadBool("B1010"); + Console.WriteLine($"B1010:{answerFlag}"); } if (answerFlag) { isFlag = false; } - + Task.Delay(500).Wait(); } @@ -464,7 +470,7 @@ namespace Aucma.Core.Palletiz.Business } _plc.WriteInt16("B1001", "1");//发送完成信号 - + result = true; } else if (spaceinfo.SpaceArea == "B") @@ -479,7 +485,8 @@ namespace Aucma.Core.Palletiz.Business throw new ArgumentException($"货道号下发至PLC失败"); } - _plc.WriteInt16("B1002", "1");//发送完成信号 + // _plc.WriteInt16("B1002", "1");//发送完成信号 + _plc.WriteInt16("B1102", "1");//发送完成信号 result = true; } diff --git a/Aucma.Core.PalletizCX1/Business/InstoreBusiness.cs b/Aucma.Core.PalletizCX1/Business/InstoreBusiness.cs index 21107396..9168d90f 100644 --- a/Aucma.Core.PalletizCX1/Business/InstoreBusiness.cs +++ b/Aucma.Core.PalletizCX1/Business/InstoreBusiness.cs @@ -553,7 +553,8 @@ namespace Aucma.Core.PalletizCX1.Business throw new ArgumentException($"C区域货道号下发至PLC失败"); } - _plc.WriteInt16("B1103", "1");//发送完成信号 + // _plc.WriteInt16("B1103", "1");//发送完成信号 + _plc.WriteInt16("B1303", "1");//发送完成信号 result = true; } diff --git a/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs b/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs index c958e0d9..8dd8b5e0 100644 --- a/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.PrintTo/ViewModels/IndexPageViewModel.cs @@ -197,6 +197,8 @@ namespace Aucma.Core.PrintTo.ViewModels [RelayCommand] private async void Print(string obj) { + + if (string.IsNullOrEmpty(obj)) { MessageBox.Show("请选中需要打印的产品!", "系统提醒"); @@ -219,6 +221,7 @@ namespace Aucma.Core.PrintTo.ViewModels MessageBox.Show("请选择打印类型!", "系统提醒"); return; } + //if (SelectedCells.PlanAmount > PrintAmount) @@ -261,8 +264,19 @@ namespace Aucma.Core.PrintTo.ViewModels } } + //更新打印名称 var baseOrder = _baseOrderInfoServices.FirstAsync(d => d.OrderCode == order_code).Result; + + + //更新打印名称 + + + + //#region 打印名称校验 + //if (baseOrder.MaterialName) + // #endregion + if (string.IsNullOrEmpty(baseOrder.PrintName)) { baseOrder.PrintName = printName; diff --git a/Aucma.Core.TemperatureTask/AucamTemperatureMeasurementService.cs b/Aucma.Core.TemperatureTask/AucamTemperatureMeasurementService.cs index 2321de89..74a83447 100644 --- a/Aucma.Core.TemperatureTask/AucamTemperatureMeasurementService.cs +++ b/Aucma.Core.TemperatureTask/AucamTemperatureMeasurementService.cs @@ -38,6 +38,7 @@ namespace Aucma.Core.TemperatureTask _materialCompletionServices = materialCompletionServices; _printBarCodeServices = printBarCodeServices; _reportQualityInspectionServices = reportQualityInspectionServices; + PushQualityInspectionData(); } public void Execute() @@ -48,6 +49,24 @@ namespace Aucma.Core.TemperatureTask timer1.Start();//timer.Start()的内部原理还是设置timer.Enabled = true; } + /// + /// 推送质检数据 + /// + private void PushQualityInspectionData() + { + Task.Run(() => + { + while(true){ + + ToMes(); + Thread.Sleep(100); + } + }); + } + + + + #region 采集任务处理 /// /// 采集任务处理 @@ -112,7 +131,7 @@ namespace Aucma.Core.TemperatureTask if (r > 0) { InsertToCompleteAndCheck(query);//保存过点数据 - ToMes();//更新测温质检数据 + Console.WriteLine($"【{DateTime.Now}】保存测温数据成功!保存数量:{query.Count}"); } } @@ -182,51 +201,26 @@ namespace Aucma.Core.TemperatureTask /// /// /// - public void ToMes() + public async void ToMes() { try { - var list = _temperatureHistoryServices.QueryAsync(d => d.IsFlag == 0).Result; - if (list == null || list.Count == 0) return; + + + + var pageList = await _temperatureHistoryServices.QueryPageAsync(d => d.IsFlag == 0,1, 5); + if (pageList == null || pageList.data == null || pageList.data.Count == 0) + { + Thread.Sleep(1000 * 10); + return; + } + var list = pageList.data; Console.WriteLine($"【{DateTime.Now}】开始向质检发送测温数据"); foreach (var temperatureHistory in list) { - //var r= _reportQualityInspectionServices.FirstAsync(d => d.BarCode == temperatureHistory.CpNo && d.TreatmentMeasure == "3"&& d.StationCode=="2009").Result; - //if (r != null) - //{ - // var checkList = _temperatureHistoryServices.GetAllIsFlag(temperatureHistory.ObjId).Result; - // if (checkList != null) - // { - // var check = checkList.First(); - // r.FinishTime = check.FinishTime; - // r.BarCode = check.BarCode; - // r.MaterialName = check.MaterialName; - // r.ProcessCode = check.ProcessCode; - // r.TestItemCode = check.TestItemCode; - // r.QualityDefectCode = check.QualityDefectCode; - // r.QualityDefectName = check.QualityDefectName; - // r.TreatmentMeasure = check.TreatmentMeasure; - // r.ProcessResult = check.ProcessResult; - // r.GroupCode = check.GroupCode; - // r.InspectorCode = check.InspectorCode; - // r.InspectorTime = check.InspectorTime; - // r.ReworkNumber = check.ReworkNumber; - // r.IsFlag = check.IsFlag; - // r.StationCode = check.StationCode; - // r.UpdatedTime = check.UpdateTime; - - // bool reportResult = _reportQualityInspectionServices.UpdateAsync(r).Result; - // if (reportResult) - // { - // temperatureHistory.IsFlag = 1; - // _ = _temperatureHistoryServices.UpdateAsync(temperatureHistory).Result; - // } - // } - //} - //else - { + var checkList = _temperatureHistoryServices.GetAllIsFlag(temperatureHistory.ObjId).Result; - if (checkList != null) + if (checkList != null && checkList.Count > 0) { var check = checkList.First(); ReportQualityInsPection report = new ReportQualityInsPection(); @@ -240,7 +234,6 @@ namespace Aucma.Core.TemperatureTask //report.FinishTime = check.FinishTime; report.UpdatedTime = null; } - report.BarCode = check.BarCode; report.MaterialName = check.MaterialName; report.ProcessCode = check.ProcessCode; @@ -262,8 +255,14 @@ namespace Aucma.Core.TemperatureTask temperatureHistory.IsFlag = 1; _ = _temperatureHistoryServices.UpdateAsync(temperatureHistory).Result; } - } } + else + { + // 箱体码扫错,推送标识改成2,不再推送 + temperatureHistory.IsFlag = 2; + _ = _temperatureHistoryServices.UpdateAsync(temperatureHistory).Result; + } + } Console.WriteLine($"【{DateTime.Now}】更新测温质检数据成功!"); }