diff --git a/Admin.Core.IRepository/IRepository_New/ICodeBindingRecordRepository.cs b/Admin.Core.IRepository/IRepository_New/ICodeBindingRecordRepository.cs index bc09c651..22c2e90c 100644 --- a/Admin.Core.IRepository/IRepository_New/ICodeBindingRecordRepository.cs +++ b/Admin.Core.IRepository/IRepository_New/ICodeBindingRecordRepository.cs @@ -18,16 +18,6 @@ namespace Admin.Core.IRepository Task FirstAsync(); - /// - /// 时间段条件查询 - /// - /// - Task> QueryAllByTime(string time1, string time2); - - /// - ///查询条码2为null的数据,并取最新的一条 - /// - /// - Task QueryByTime(); + } } \ No newline at end of file diff --git a/Admin.Core.IService/IService_New/ICodeBindingRecordServices.cs b/Admin.Core.IService/IService_New/ICodeBindingRecordServices.cs index ac83e76c..554c0f63 100644 --- a/Admin.Core.IService/IService_New/ICodeBindingRecordServices.cs +++ b/Admin.Core.IService/IService_New/ICodeBindingRecordServices.cs @@ -27,6 +27,6 @@ namespace Admin.Core.IService ///查询条码2为null的数据,并取最新的一条 /// /// - Task QueryByTime(); + Task> QueryByTime(); } } \ No newline at end of file diff --git a/Admin.Core.Model/Model_New/CodeBindingRecord.cs b/Admin.Core.Model/Model_New/CodeBindingRecord.cs index c52eb20b..db188920 100644 --- a/Admin.Core.Model/Model_New/CodeBindingRecord.cs +++ b/Admin.Core.Model/Model_New/CodeBindingRecord.cs @@ -17,7 +17,7 @@ namespace Admin.Core.Model /// /// 主键 /// - [SugarColumn(ColumnName = "OBJ_ID", IsIdentity = true, IsPrimaryKey = true)] + [SugarColumn(ColumnName = "OBJ_ID", IsIdentity = true, IsPrimaryKey = true, OracleSequenceName = "SEQ_CODE_BINDING")] public int ObjId { get; set; } /// diff --git a/Admin.Core.Repository/Repository_New/CodeBindingRecordRepository.cs b/Admin.Core.Repository/Repository_New/CodeBindingRecordRepository.cs index 62882650..8726b842 100644 --- a/Admin.Core.Repository/Repository_New/CodeBindingRecordRepository.cs +++ b/Admin.Core.Repository/Repository_New/CodeBindingRecordRepository.cs @@ -18,34 +18,7 @@ namespace Admin.Core.Repository } - /// - /// 时间段条件查询 - /// - /// - public async Task> QueryAllByTime(string time1, string time2) - { - // DateTime BeginTime = Convert.ToDateTime(time1); - DateTime BeginTime = Convert.ToDateTime(Convert.ToDateTime(time1).ToString("yyyy-MM-dd")); - DateTime EndTime = Convert.ToDateTime(Convert.ToDateTime(time2).ToString("yyyy-MM-dd")); - // DateTime EndTime = DateTime.ParseExact(time2, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); - // DateTime EndTime = Convert.ToDateTime(time2); - string sql = ""; - List parameters = new List(); - if (time1 == null && time2 == null) - { - sql = "select * from CODE_BINDING order by RECORD_TIME2 DESC "; - }else if (time1 != null && time2 != null) - { - sql = $"select * from CODE_BINDING where DATE(RECORD_TIME2) BETWEEN '{BeginTime}' and '{EndTime}' order by RECORD_TIME2 DESC "; - } - else if(time1 ==null){ - - }else if(time2 ==null) - { - - } - return await Db.Ado.SqlQueryAsync(sql); - } + /// /// 查询第一条数据 @@ -58,14 +31,6 @@ namespace Admin.Core.Repository return await Db.Queryable().FirstAsync(); } - /// - ///查询条码2为null的数据,并取最新的一条 - /// - /// - public async Task QueryByTime() - { - string sql = "select * from CodeBindingRecord where PRODUCT_CODE==null order by RECORD_TIME DESC"; - return Db.Ado.SqlQuerySingle(sql); - } + } } diff --git a/Admin.Core.Service/Service_New/CodeBindingRecordServices.cs b/Admin.Core.Service/Service_New/CodeBindingRecordServices.cs index d7f9f3cc..b57b0514 100644 --- a/Admin.Core.Service/Service_New/CodeBindingRecordServices.cs +++ b/Admin.Core.Service/Service_New/CodeBindingRecordServices.cs @@ -3,7 +3,10 @@ using Admin.Core.IService; using Admin.Core.Model; using log4net; using Microsoft.IdentityModel.Logging; +using SqlSugar; +using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; namespace Admin.Core.Service @@ -31,7 +34,37 @@ namespace Admin.Core.Service /// public async Task> QueryAllByTime(string time1, string time2) { - return _codeBindingRecordRepository.QueryAllByTime(time1,time2).Result; + try + { + List list = null; + if (string.IsNullOrEmpty(time1) && string.IsNullOrEmpty(time2)) + { + list = await _codeBindingRecordRepository.QueryAsync(); + } + else if (!string.IsNullOrEmpty(time1) && string.IsNullOrEmpty(time2)) + { + DateTime BeginTime = Convert.ToDateTime(Convert.ToDateTime(time1).ToString("yyyy-MM-dd")); + list = await _codeBindingRecordRepository.QueryAsync(d => d.RecordTime1 >= BeginTime); + } + else if (string.IsNullOrEmpty(time1) && !string.IsNullOrEmpty(time2)) + { + DateTime EndTime = Convert.ToDateTime(Convert.ToDateTime(time2).ToString("yyyy-MM-dd")); + list = await _codeBindingRecordRepository.QueryAsync(d => d.RecordTime2 <= EndTime); + } + else if (!string.IsNullOrEmpty(time1) && !string.IsNullOrEmpty(time2)) + { + DateTime BeginTime = Convert.ToDateTime(Convert.ToDateTime(time1).ToString("yyyy-MM-dd")); + DateTime EndTime = Convert.ToDateTime(Convert.ToDateTime(time2).ToString("yyyy-MM-dd")); + list = await _codeBindingRecordRepository.QueryAsync(d => d.RecordTime1 >= BeginTime && d.RecordTime2 <= EndTime); + } + return list; + } + catch (Exception ex) + { + log.Error("时间段条件查询QueryAllByTime()出现异常:" + ex); + return null; + } + } /// @@ -40,16 +73,7 @@ namespace Admin.Core.Service /// public async Task FirstAsync() { - - // return new CodeBindingRecord - //{ - // ObjId = 111, - // BoxCode = "1234567890", - // BoxName = "苏打水", - // ProductCode = "0987654321", - // BindingResult = "成功", - // RecordTime1 = System.DateTime.Now - //}; + return _codeBindingRecordRepository.FirstAsync().Result; } @@ -57,9 +81,11 @@ namespace Admin.Core.Service ///查询条码2为null的数据,并取最新的一条 /// /// - public async Task QueryByTime() + public async Task> QueryByTime() { - return _codeBindingRecordRepository.QueryByTime().Result; + return await _codeBindingRecordRepository.QueryAsync(x => x.ProductCode == null, "RECORD_TIME1 DESC"); } + + } } diff --git a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs index a782280e..6bc5df8a 100644 --- a/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs +++ b/Aucma.Core.CodeBinding/ViewModels/IndexPageViewModel.cs @@ -4,7 +4,6 @@ using System.Collections.ObjectModel; using log4net; using Aucma.Core.CodeBinding.Common; using LiveCharts; -using System.Collections.Generic; using Admin.Core.Model; using Admin.Core.Service; using LiveCharts.Wpf; @@ -23,6 +22,8 @@ using System.Windows.Data; using System.Windows; using System.Linq; using Aucma.Core.Scanner; +using System.Collections.Generic; +using NPOI.HSSF.Record; /* * 首页信息 */ @@ -37,8 +38,8 @@ namespace Aucma.Core.CodeBinding.ViewModels _codeBindingRecordServices = App.ServiceProvider.GetService(); MvCodeHelper.ReceiveCode1Event += receiveCode1; MvCodeHelper.ReceiveCode2Event += receiveCode2; + // var list = _codeBindingRecordServices.FirstAsync().Result; - LoadData(); // 程序运行 5 秒后添加新数据项 add(); @@ -189,7 +190,7 @@ namespace Aucma.Core.CodeBinding.ViewModels /// 条码绑定,条码1处理 /// /// - private void receiveCode1(string code1) + private async void receiveCode1(string code1) { log.Info("进入条码1处理函数receiveCode1,code1:" + code1); DateTime time = System.DateTime.Now; @@ -199,37 +200,35 @@ namespace Aucma.Core.CodeBinding.ViewModels // 2.创建任务更新数据库条码1 CodeBindingRecord codeRecord = new CodeBindingRecord(); codeRecord.BoxCode = code1; - codeRecord.BoxName = "去数据库查询"; + codeRecord.BoxName = "去别的数据库查询"; codeRecord.RecordTime1 = time; - codeRecord.RecordTime2 = time; - codeRecord.ProductCode = "扫码枪扫描"; - codeRecord.BindingResult = "成功"; - Thread.Sleep(10000); - - // _codeBindingRecordServices.AddAsync(codeRecord); + + Thread.Sleep(1000); + + int a = await _codeBindingRecordServices.AddAsync(codeRecord); //log.Info("条码1记录更新"); - - RefreshCode2(codeRecord); } /// /// 条码绑定,条码2处理 /// /// - private void receiveCode2(string code2) + private async void receiveCode2(string code2) { log.Info("进入条码2处理函数receiveCode1,code2:" + code2); - // 1.刷新界面信息 - - // 2.数据库匹配条码1并绑定 + // 1.数据库匹配条码1并绑定 - CodeBindingRecord record = _codeBindingRecordServices.QueryByTime().Result; + // 查询条码2为null的最新记录 + List list = await _codeBindingRecordServices.QueryByTime(); + CodeBindingRecord record = list.FirstOrDefault(); record.ProductCode = code2; record.RecordTime2 = System.DateTime.Now; + record.BindingResult = "成功"; + await _codeBindingRecordServices.UpdateAsync(record); + // 2.刷新界面信息 + RefreshCode2(record); - // 产品入库? - - + // 产品入库 // 3.下发plc放行信号