change - 修改条码绑定数据库处理

dev
liuwf 1 year ago
parent 03580f1e65
commit 5abc022846

@ -18,16 +18,6 @@ namespace Admin.Core.IRepository
Task<CodeBindingRecord> FirstAsync();
/// <summary>
/// 时间段条件查询
/// </summary>
/// <returns></returns>
Task<List<CodeBindingRecord>> QueryAllByTime(string time1, string time2);
/// <summary>
///查询条码2为null的数据并取最新的一条
/// </summary>
/// <returns></returns>
Task<CodeBindingRecord> QueryByTime();
}
}

@ -27,6 +27,6 @@ namespace Admin.Core.IService
///查询条码2为null的数据并取最新的一条
/// </summary>
/// <returns></returns>
Task<CodeBindingRecord> QueryByTime();
Task<List<CodeBindingRecord>> QueryByTime();
}
}

@ -17,7 +17,7 @@ namespace Admin.Core.Model
/// <summary>
/// 主键
/// </summary>
[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; }
/// <summary>

@ -18,34 +18,7 @@ namespace Admin.Core.Repository
}
/// <summary>
/// 时间段条件查询
/// </summary>
/// <returns></returns>
public async Task<List<CodeBindingRecord>> 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<SugarParameter> parameters = new List<SugarParameter>();
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<CodeBindingRecord>(sql);
}
/// <summary>
/// 查询第一条数据
@ -58,14 +31,6 @@ namespace Admin.Core.Repository
return await Db.Queryable<CodeBindingRecord>().FirstAsync();
}
/// <summary>
///查询条码2为null的数据并取最新的一条
/// </summary>
/// <returns></returns>
public async Task<CodeBindingRecord> QueryByTime()
{
string sql = "select * from CodeBindingRecord where PRODUCT_CODE==null order by RECORD_TIME DESC";
return Db.Ado.SqlQuerySingle<CodeBindingRecord>(sql);
}
}
}

@ -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
/// <returns></returns>
public async Task<List<CodeBindingRecord>> QueryAllByTime(string time1, string time2)
{
return _codeBindingRecordRepository.QueryAllByTime(time1,time2).Result;
try
{
List<CodeBindingRecord> 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;
}
}
/// <summary>
@ -41,15 +74,6 @@ namespace Admin.Core.Service
public async Task<CodeBindingRecord> 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的数据并取最新的一条
/// </summary>
/// <returns></returns>
public async Task<CodeBindingRecord> QueryByTime()
public async Task<List<CodeBindingRecord>> QueryByTime()
{
return _codeBindingRecordRepository.QueryByTime().Result;
return await _codeBindingRecordRepository.QueryAsync(x => x.ProductCode == null, "RECORD_TIME1 DESC");
}
}
}

@ -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<ICodeBindingRecordServices>();
MvCodeHelper.ReceiveCode1Event += receiveCode1;
MvCodeHelper.ReceiveCode2Event += receiveCode2;
// var list = _codeBindingRecordServices.FirstAsync().Result;
// var list = _codeBindingRecordServices.FirstAsync().Result;
LoadData();
// 程序运行 5 秒后添加新数据项
add();
@ -189,7 +190,7 @@ namespace Aucma.Core.CodeBinding.ViewModels
/// 条码绑定,条码1处理
/// </summary>
/// <param name="materialType"></param>
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);
//log.Info("条码1记录更新");
Thread.Sleep(1000);
RefreshCode2(codeRecord);
int a = await _codeBindingRecordServices.AddAsync(codeRecord);
//log.Info("条码1记录更新");
}
/// <summary>
/// 条码绑定,条码2处理
/// </summary>
/// <param name="materialType"></param>
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<CodeBindingRecord> 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放行信号

Loading…
Cancel
Save