generated from wenjy/Sln.Iot
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
137 lines
4.1 KiB
C#
137 lines
4.1 KiB
C#
using Sln.Iot.Repository.dao;
|
|
using Sln.Iot.Serilog;
|
|
using SQLitePCL;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Sln.Iot.Repository.service
|
|
{
|
|
/// <summary>
|
|
/// 托盘绑定服务类
|
|
/// </summary>
|
|
public class TrayBindingService
|
|
{
|
|
private static readonly Lazy<TrayBindingService> lazy = new Lazy<TrayBindingService>(() => new TrayBindingService());
|
|
|
|
public static TrayBindingService Instance
|
|
{
|
|
get
|
|
{
|
|
return lazy.Value;
|
|
}
|
|
}
|
|
|
|
private SQLiteHelper<TrayRfidBinding> _helper = SQLiteHelper<TrayRfidBinding>.Instance;
|
|
|
|
private SerilogHelper _log = SerilogHelper.Instance;
|
|
|
|
/// <summary>
|
|
/// 绑定信息根据托盘号删除
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool TrayCodeDelete(string trayCode)
|
|
{
|
|
try
|
|
{
|
|
int res = _helper.DeleteRange(trayCode);
|
|
return res != 0;
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
_log.Error("托盘码删除错误", ex);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 托盘二维码重新绑定
|
|
/// </summary>
|
|
/// <param name="trayCode">托盘码</param>
|
|
/// <param name="prodCode">产品码</param>
|
|
/// <returns></returns>
|
|
public bool TrayBindingRefresh(string trayCode, string[] prodCode)
|
|
{
|
|
try
|
|
{
|
|
//先删除原来的
|
|
_helper.DeleteRange(trayCode);
|
|
//再绑定(插入)新的
|
|
var entities = new List<TrayRfidBinding>();
|
|
foreach (string code in prodCode)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(code))
|
|
{
|
|
continue;
|
|
}
|
|
TrayRfidBinding entity = new TrayRfidBinding()
|
|
{
|
|
GUID = Guid.NewGuid().ToString("N"),
|
|
TrayCode = trayCode,
|
|
ProductionCode = code
|
|
};
|
|
entities.Add(entity);
|
|
}
|
|
_helper.InsertRange(entities);
|
|
return true;
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
_log.Error("托盘二维码重新绑定错误", ex);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 存储对应托盘码的时间节点
|
|
/// </summary>
|
|
/// <param name="timeString">时间字符串</param>
|
|
/// <param name="trayCode">托盘码</param>
|
|
/// <param name="timeCount">时间参数编号</param>
|
|
/// <returns></returns>
|
|
public bool UpDateTime(string timeString, string trayCode, string timeCount)
|
|
{
|
|
try
|
|
{
|
|
int res = _helper.SqlExcute($"update TrayRfidBinding set time{timeCount} = '{timeString}' where TrayCode = '{trayCode}'");
|
|
if(res <= 0 || res > 6)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_log.Error("时间更新错误", ex);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取一个时间
|
|
/// </summary>
|
|
/// <param name="trayCode"></param>
|
|
/// <returns></returns>
|
|
public string GetTime2ByTrayCode(string trayCode)
|
|
{
|
|
string time2 = string.Empty;
|
|
try
|
|
{
|
|
var res = _helper.Query(t => t.TrayCode == trayCode).FirstOrDefault();
|
|
if (res != null)
|
|
{
|
|
time2 = res.Time2;
|
|
}
|
|
return time2;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_log.Error("根据托盘码获取time2错误", ex);
|
|
return time2;
|
|
}
|
|
}
|
|
}
|
|
}
|