diff --git a/Aucma.Scada.Business/OutStoreBusiness.cs b/Aucma.Scada.Business/OutStoreBusiness.cs index db452434..1e139433 100644 --- a/Aucma.Scada.Business/OutStoreBusiness.cs +++ b/Aucma.Scada.Business/OutStoreBusiness.cs @@ -67,6 +67,8 @@ namespace Aucma.Scada.Business private IRecordOutStoreService _recordOutStoreService; private IRecordProductfinishService _recordProductfinishService; + + private ICodeBindingRecordServices _codeBindingRecordServices; #endregion #region 委托事件 @@ -111,7 +113,7 @@ namespace Aucma.Scada.Business _productPlanInfoService = registerServices.GetService(); _recordOutStoreService = registerServices.GetService(); _recordProductfinishService = registerServices.GetService(); - + _codeBindingRecordServices = registerServices.GetService(); assemblyPlanBusiness.NextPassExecutePlanInfoEvent += PlanHandle; taskHandleBusiness.OutStoreAnswerEvent += OutStoreAnswer; taskHandleBusiness.OutStoreFinsihEvent += OutStoreFinish; @@ -138,9 +140,14 @@ namespace Aucma.Scada.Business for (int i = 0; i < planInfo.planAmount - planInfo.completeAmount; i++) { string taskCode = System.Guid.NewGuid().ToString("N").Substring(0,10); - OutStore(appConfig.shellStoreCode, shellBomInfo, planInfo.executePlanCode, taskCode); + RealTaskInfo shellTask = OutStore(appConfig.shellStoreCode, shellBomInfo, planInfo.executePlanCode, taskCode); Thread.Sleep(500); - OutStore(appConfig.linerStoreCode, linerBomInfo, planInfo.executePlanCode, taskCode); + RealTaskInfo linerTask = OutStore(appConfig.linerStoreCode, linerBomInfo, planInfo.executePlanCode, taskCode); + // 条码绑定表,绑定箱壳和内胆码 shellTask.materialCode,linerTask.materialCode + if (shellTask != null && linerTask != null) + { + _codeBindingRecordServices.BindingCode(shellTask.materialCode, linerTask.materialCode); + } Thread.Sleep(500); } @@ -162,7 +169,7 @@ namespace Aucma.Scada.Business /// /// /// - private void OutStore(string storeCode, BaseBomInfo bomInfo, string planCode, string taskCode) + private RealTaskInfo OutStore(string storeCode, BaseBomInfo bomInfo, string planCode, string taskCode) { try { @@ -175,18 +182,21 @@ namespace Aucma.Scada.Business { PrintLogInfoMessage($"匹配货道:{spaceInfo.spaceName}"); // RefreshScanMateriaCodeEvent?.Invoke(materiaclCode, materialType, spaceInfo.spaceName, storeCode); //刷新界面扫码信息 - bool result = CreateOutStoreTask(spaceInfo, planCode, taskCode); //创建出库任务 - if (result) + RealTaskInfo task = CreateOutStoreTask(spaceInfo, planCode, taskCode); //创建出库任务 + if (task!=null) { PrintLogInfoMessage("出库任务创建成功"); + return task; } else { PrintLogInfoMessage("出库任务创建失败"); + return null; } } else { + return null; //报警停线 PrintLogInfoMessage($"{storeCode};仓库内未获取到{bomInfo.materialCode}相匹配的物料及货道"); } @@ -194,6 +204,7 @@ namespace Aucma.Scada.Business catch (Exception ex) { PrintLogErrorMessage("出库业务异常", ex); + return null; } } @@ -201,7 +212,7 @@ namespace Aucma.Scada.Business /// 创建出库任务 /// /// - private bool CreateOutStoreTask(BaseSpaceInfo spaceInfo, string planCode, string taksCode, int taskModel = 0) + private RealTaskInfo CreateOutStoreTask(BaseSpaceInfo spaceInfo, string planCode, string taksCode, int taskModel = 0) { bool result = false; try @@ -210,7 +221,6 @@ namespace Aucma.Scada.Business BaseSpaceDetail spaceDetail = GetSpaceDetailFirstOrderByCreatTime(spaceInfo); if (spaceDetail != null) { - #region 出库任务赋值 RealTaskInfo realTaskInfo = new RealTaskInfo(); realTaskInfo.planCode = planCode; @@ -235,6 +245,7 @@ namespace Aucma.Scada.Business RefreshOutStoreTaskEvent?.Invoke(realTaskInfo); UpdateSpaceAndDetial(spaceInfo, spaceDetail); + return realTaskInfo; } else { @@ -246,7 +257,7 @@ namespace Aucma.Scada.Business { PrintLogErrorMessage("出库任务创建异常", ex); } - return result; + return null; } /// @@ -788,7 +799,9 @@ namespace Aucma.Scada.Business BaseSpaceInfo spaceInfo = _spaceInfoService.GetSpaceInfoBySpaceCode(storeCode, spaceCode); if (spaceInfo.spaceStock > 0) { - result = this.CreateOutStoreTask(spaceInfo, System.Guid.NewGuid().ToString("N"), DateTime.Now.ToString("HH:mm:ss"), 1); + RealTaskInfo task = this.CreateOutStoreTask(spaceInfo, System.Guid.NewGuid().ToString("N"), DateTime.Now.ToString("HH:mm:ss"), 1); + if (task != null) + result = true; } else { diff --git a/Aucma.Scada.Business/RegisterServices.cs b/Aucma.Scada.Business/RegisterServices.cs index 22765bb9..0e1d7964 100644 --- a/Aucma.Scada.Business/RegisterServices.cs +++ b/Aucma.Scada.Business/RegisterServices.cs @@ -62,7 +62,7 @@ namespace Aucma.Scada.Business services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); - + services.AddSingleton(); } public T GetService() diff --git a/Aucma.Scada.Model/Aucma.Scada.Model.csproj b/Aucma.Scada.Model/Aucma.Scada.Model.csproj index bdb4140f..42213d38 100644 --- a/Aucma.Scada.Model/Aucma.Scada.Model.csproj +++ b/Aucma.Scada.Model/Aucma.Scada.Model.csproj @@ -47,6 +47,7 @@ + diff --git a/Aucma.Scada.Model/domain/CodeBindingRecord.cs b/Aucma.Scada.Model/domain/CodeBindingRecord.cs new file mode 100644 index 00000000..8cf9ad20 --- /dev/null +++ b/Aucma.Scada.Model/domain/CodeBindingRecord.cs @@ -0,0 +1,63 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Principal; +using System.Text; +using System.Threading.Tasks; + +namespace Aucma.Scada.Model.domain +{ /// + /// 条码绑定记录 + /// + [SugarTable("CODE_BINDING", "AUCMA_SCADA")] + public class CodeBindingRecord + { + /// + /// 主键 + /// + [SugarColumn(ColumnName = "OBJ_ID", IsIdentity = true, IsPrimaryKey = true, OracleSequenceName = "SEQ_CODE_BINDING")] + public int ObjId { get; set; } + + /// + /// 箱体条码 + /// + [SugarColumn(ColumnName = "BOX_Code")] + public string BoxCode { get; set; } + /// + /// 箱体名称 + /// + [SugarColumn(ColumnName = "BOX_Name")] + public string BoxName { get; set; } + /// + /// 成品码 + /// + [SugarColumn(ColumnName = "PRODUCT_CODE")] + public string ProductCode { get; set; } + /// + /// 绑定结果 + /// + [SugarColumn(ColumnName = "BINDING_RESULT")] + public string BindingResult { get; set; } + /// + /// 条码1记录时间 + /// + [SugarColumn(ColumnName = "RECORD_TIME1")] + public DateTime? RecordTime1{ get; set; } + /// + /// 条码2记录时间 + /// + [SugarColumn(ColumnName = "RECORD_TIME2")] + public DateTime? RecordTime2 { get; set; } + /// + /// 内胆码 + /// + [SugarColumn(ColumnName = "LINER_CODE")] + public string LinerCode { get; set; } + /// + /// plc放行标志,2为放行通过,1为pda提示需要放行记录 + /// + [SugarColumn(ColumnName = "IS_PASS")] + public int isPlcPass { get; set; } + } +} diff --git a/Aucma.Scada.UI/MainWindow.xaml b/Aucma.Scada.UI/MainWindow.xaml index d43a26f1..87b39fcd 100644 --- a/Aucma.Scada.UI/MainWindow.xaml +++ b/Aucma.Scada.UI/MainWindow.xaml @@ -6,11 +6,11 @@ xmlns:local="clr-namespace:Aucma.Scada.UI" mc:Ignorable="d" Title="SCADA" Height="1080" Width="1920" Icon="Icon.png" - WindowState="Maximized" WindowStyle="None" ResizeMode="NoResize" Topmost="True"> + WindowState="Maximized" WindowStyle="None" ResizeMode="NoResize"> - + @@ -48,7 +48,7 @@ --> - + @@ -83,7 +83,7 @@