From 0fe4b7c74e1999c8b0454a8ef81e4fbaf8c4a966 Mon Sep 17 00:00:00 2001 From: sunzy Date: Wed, 27 Mar 2024 13:47:31 +0800 Subject: [PATCH] wpf1 --- .../Interface/IWcsTaskApplication.cs | 11 ++ .../WcsTaskApplication.cs | 16 +++ src/Khd.Core.Wcs/Wcs/FirstFloor.cs | 95 ++++++++------ src/Khd.Core.Wpf/Form/FormBoardT.xaml | 124 +++++++++++++++++- src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs | 72 +++++----- src/Khd.Core.Wpf/appsettings.json | 4 +- 6 files changed, 244 insertions(+), 78 deletions(-) diff --git a/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs b/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs index d8f4f32..190bede 100644 --- a/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs +++ b/src/Khd.Core.Application/Interface/IWcsTaskApplication.cs @@ -13,6 +13,17 @@ namespace Khd.Core.Application.Interface ReponseagvCallbackDto AgvCallback(agvCallbackDto agvCallbackDto); + /// + /// 入库完成 + /// + /// + string InWare(long taskId); + /// + /// 出库完成 + /// + /// + string OutWare(long taskId); + } } \ No newline at end of file diff --git a/src/Khd.Core.Application/WcsTaskApplication.cs b/src/Khd.Core.Application/WcsTaskApplication.cs index 4170dbb..f2d9bec 100644 --- a/src/Khd.Core.Application/WcsTaskApplication.cs +++ b/src/Khd.Core.Application/WcsTaskApplication.cs @@ -102,5 +102,21 @@ namespace Khd.Core.Application return reponseagvCallbackDto; } + /// + /// 入库完成 + /// + /// + public string InWare(long taskId) + { + return ""; + } + /// + /// 出库完成 + /// + /// + public string OutWare(long taskId) + { + return ""; + } } } \ No newline at end of file diff --git a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs index e07a664..a7daa51 100644 --- a/src/Khd.Core.Wcs/Wcs/FirstFloor.cs +++ b/src/Khd.Core.Wcs/Wcs/FirstFloor.cs @@ -222,51 +222,70 @@ namespace Khd.Core.Wcs.Wcs var task = dbContext.WcsTask.Where(t => t.containerNo == RFID001Value.ToString() && t.taskStatus < 1).FirstOrDefault(); if (task == null) { - //根据托盘号获取物料码 - var material = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == RFID001Value.ToString()).FirstOrDefault(); - if (material != null) + List Itpyes=new List(); + Itpyes.Add(1); + Itpyes.Add(3); + Itpyes.Add(5); + Itpyes.Add(7); + //入库 + if (Itpyes.Contains(task.taskType)) { - var warehouseId = dbContext.WmsWarehouseMaterial.Where(t => t.storageType == "1" && t.storageId == material.materialId).FirstOrDefault()?.warehouseId; - if (warehouseId != null) + //根据托盘号获取物料码 + var material = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == RFID001Value.ToString()).FirstOrDefault(); + if (material != null) { - var TargetFloor = dbContext.WmsBaseWarehouse.Where(t => t.warehouseId == warehouseId).FirstOrDefault(); - if (TargetFloor != null) + var warehouseId = dbContext.WmsWarehouseMaterial.Where(t => t.storageType == "1" && t.storageId == material.materialId).FirstOrDefault()?.warehouseId; + if (warehouseId != null) { - //插入task表 - IWcsTaskApplication wcsTaskApplication=new WcsTaskApplication(scope.ServiceProvider); - Jc.SnowId.JcSnowId id = new Jc.SnowId.JcSnowId(1, 1); - var dic = StaticData.BaseDictionary.Where(t => t.dicKey == "TaskType" && t.ud1 == "I" && t.dicField == TargetFloor.warehouseInstockType).FirstOrDefault(); - - WcsTask newTask = new WcsTask() + var TargetFloor = dbContext.WmsBaseWarehouse.Where(t => t.warehouseId == warehouseId).FirstOrDefault(); + if (TargetFloor != null) { - objid = id.NextId(), - serialNo = Convert.ToInt32(serialno01Value), - equipmentNo = "F01", - taskType = Convert.ToInt32(dic.dicValue), - taskStatus = 0, - containerNo = RFID001Value.ToString(), - materialNo = material.materialCode, - materialId = material.materialId, - qty = Convert.ToInt32(material.bindAmount), - startPointId = F01, - startPointNo = "F01", - currPointId = F01, - currPointNo = "F01", - nextPointId = T01, - nextPointNo = "T01", - endPointId= warehouseId, - floorNo=1, - useFlag=1, - createBy= "一楼接驳位", - createTime =DateTime.Now, - remark="一楼创建入库任务" - }; - wcsTaskApplication.Add(newTask); - //下发去向 - this._plc.Write(this.wcsrun01.plcpointAddress, 1); + //插入task表 + IWcsTaskApplication wcsTaskApplication = new WcsTaskApplication(scope.ServiceProvider); + Jc.SnowId.JcSnowId id = new Jc.SnowId.JcSnowId(1, 1); + var dic = StaticData.BaseDictionary.Where(t => t.dicKey == "TaskType" && t.ud1 == "I" && t.dicField == TargetFloor.warehouseInstockType).FirstOrDefault(); + + WcsTask newTask = new WcsTask() + { + objid = id.NextId(), + serialNo = Convert.ToInt32(serialno01Value), + equipmentNo = "F01", + taskType = Convert.ToInt32(dic.dicValue), + taskStatus = 0, + containerNo = RFID001Value.ToString(), + materialNo = material.materialCode, + materialId = material.materialId, + qty = Convert.ToInt32(material.bindAmount), + startPointId = F01, + startPointNo = "F01", + currPointId = F01, + currPointNo = "F01", + nextPointId = T01, + nextPointNo = "T01", + endPointId = warehouseId, + floorNo = 1, + useFlag = 1, + createBy = "一楼接驳位", + createTime = DateTime.Now, + remark = "一楼创建入库任务" + }; + wcsTaskApplication.Add(newTask); + //下发去向 + this._plc.Write(this.wcsrun01.plcpointAddress, 1); + } } } } + //出库 + { + //清空托盘绑定 + var material = dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == RFID001Value.ToString()).FirstOrDefault(); + if (material != null) + { + dbContext.MesBasePalletInfo.Where(t => t.palletInfoCode == RFID001Value.ToString()).Delete(); + dbContext.SaveChanges(); + } + } } } } diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml b/src/Khd.Core.Wpf/Form/FormBoardT.xaml index 8337750..3bceed6 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml @@ -343,6 +343,7 @@ + @@ -381,7 +382,50 @@ > - + + + + + @@ -711,6 +785,10 @@ + + + + diff --git a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs index ab51b01..1d69cab 100644 --- a/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs +++ b/src/Khd.Core.Wpf/Form/FormBoardT.xaml.cs @@ -79,41 +79,41 @@ namespace Khd.Core.Wpf.Form //加载dategrid信息 //LoadMaterial_GetMessage(""); //连接PLC判断 - var plc = new Khd.Core.Plc.S7.Plc((CpuType)PlcConfig.CpuType, PlcConfig.IP, PlcConfig.Port, - PlcConfig.Rack, PlcConfig.Slot); - //plc.Open(); - //if (!plc.IsConnected) - //{ - // MessageBox.Show("PLC连接失败,重新连接"); - //} - //else - //{ - // this._plc = plc; - //} + // var plc = new Khd.Core.Plc.S7.Plc((CpuType)PlcConfig.CpuType, PlcConfig.IP, PlcConfig.Port, + // PlcConfig.Rack, PlcConfig.Slot); + // //plc.Open(); + // //if (!plc.IsConnected) + // //{ + // // MessageBox.Show("PLC连接失败,重新连接"); + // //} + // //else + // //{ + // // this._plc = plc; + // //} - using var scope = _host.Services.CreateScope(); - using var dbContext = scope.ServiceProvider.GetRequiredService(); - basePlcpoints = dbContext.BasePlcpoint.Where(t => t.isDelete == 0).ToList(); - //var baseMaterials = dbContext.BaseMaterial.Where(t => t.IsDelete == 0).ToList(); - // + // using var scope = _host.Services.CreateScope(); + // using var dbContext = scope.ServiceProvider.GetRequiredService(); + // basePlcpoints = dbContext.BasePlcpoint.Where(t => t.isDelete == 0).ToList(); + // //var baseMaterials = dbContext.BaseMaterial.Where(t => t.IsDelete == 0).ToList(); + //// - PLCMessage = new DispatcherTimer(); - PLCMessage.Tick += new EventHandler(PLCmessage); //委托获取点位方法 - PLCMessage.Interval = new TimeSpan(0, 0, 0, 0, 1000); - PLCMessage.Start(); + // PLCMessage = new DispatcherTimer(); + // PLCMessage.Tick += new EventHandler(PLCmessage); //委托获取点位方法 + // PLCMessage.Interval = new TimeSpan(0, 0, 0, 0, 1000); + // PLCMessage.Start(); - UPMessageTimer = new DispatcherTimer(); - UPMessageTimer.Tick += new EventHandler(UpMessage); //委托刷新上件记录 - UPMessageTimer.Interval = new TimeSpan(0, 0, 0, 0, 2000); - UPMessageTimer.Start(); - Button_Click_1(null, null); - SetTime(); - List list = new List - { - "101上件点", - "102上件点", - "103上件点" - }; + // UPMessageTimer = new DispatcherTimer(); + // UPMessageTimer.Tick += new EventHandler(UpMessage); //委托刷新上件记录 + // UPMessageTimer.Interval = new TimeSpan(0, 0, 0, 0, 2000); + // UPMessageTimer.Start(); + // Button_Click_1(null, null); + // SetTime(); + // List list = new List + // { + // "101上件点", + // "102上件点", + // "103上件点" + // }; } catch (Exception ex) @@ -637,7 +637,13 @@ namespace Khd.Core.Wpf.Form private void Button_Click(object sender, RoutedEventArgs e) { - // + using var scope = _host.Services.CreateScope(); + using var dbContext = scope.ServiceProvider.GetRequiredService(); + var data = dbContext.WcsTask.Where(t => t.useFlag == 0).ToList(); + this.LoadMaterial0.ItemsSource = null; + this.LoadMaterial0.ItemsSource = data; + this.LoadMaterial0.Items.Refresh(); + //MessageBox.Show("查询"); } } diff --git a/src/Khd.Core.Wpf/appsettings.json b/src/Khd.Core.Wpf/appsettings.json index 2c45796..ea9158a 100644 --- a/src/Khd.Core.Wpf/appsettings.json +++ b/src/Khd.Core.Wpf/appsettings.json @@ -1,9 +1,9 @@ { "ConnectionStrings": { //mysql 本地 - "DefaultConnection": "server=localhost;port=3306;database=khd_jyhb;uid=root;pwd=root;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True" + //"DefaultConnection": "server=106.12.13.113;port=3306;database=khd_jyhb;uid=root;pwd=root;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True" //khd服务器 - // "DefaultConnection": "server=106.12.13.113;port=3336;database=khd_suspension_chain;uid=khd;pwd=khd@123;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True" + "DefaultConnection": "server=106.12.13.113;port=3336;database=khd_jyhb;uid=khd;pwd=khd@123;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True" //雅迪数据库 //"DefaultConnection": "server=localhost;port=3306;database=khd_suspension_chain;uid=root;pwd=123456;charset='utf8';persistsecurityinfo=True;SslMode=none;Allow User Variables=True" },