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.
AUCMA_SCADA/Admin.Core.Service/Service_New/CodeBindingRecordServices.cs

115 lines
4.3 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Admin.Core.IRepository;
using Admin.Core.IService;
using Admin.Core.Model;
using Admin.Core.Model.Model_New;
using Admin.Core.Model.ViewModels;
using Consul;
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
{
public class CodeBindingRecordServices : BaseServices<CodeBindingRecord>, ICodeBindingRecordServices
{
#region 对象引用
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(CodeBindingRecordServices));
#endregion
private readonly IBaseRepository<CodeBindingRecord> _dal;
private ICodeBindingRecordRepository _codeBindingRecordRepository;
public CodeBindingRecordServices(IBaseRepository<CodeBindingRecord> dal, ICodeBindingRecordRepository codeBindingRecordRepository)
{
this._dal = dal;
base.BaseDal = dal;
_codeBindingRecordRepository = codeBindingRecordRepository;
}
/// <summary>
/// 查询图表信息,扫描产品类型统计
/// </summary>
public async Task<List<CodeBindCharts>> QueryCharts()
{
try
{
List<CodeBindCharts> list = null;
var _db = this.BaseDal.Db;
list = await _db.CopyNew().Ado.SqlQueryAsync<CodeBindCharts>("SELECT BOX_NAME as BoxName,COUNT(*) as Amount FROM CODE_BINDING WHERE PRODUCT_CODE IS NOT NULL GROUP BY BOX_NAME ");
list.OrderBy(x =>x.BoxName);
return list;
}
catch (Exception)
{
return null;
}
}
/// <summary>
/// 时间段条件查询
/// </summary>
/// <returns></returns>
public async Task<List<CodeBindingRecord>> QueryAllByTime(string time1, string time2)
{
try
{
List<CodeBindingRecord> list = null;
// 默认查询最近三天的数据,防止信息过多
if (string.IsNullOrEmpty(time1) && string.IsNullOrEmpty(time2))
{
list = await _codeBindingRecordRepository.QueryAsync(d => d.RecordTime2 >= System.DateTime.Now.AddDays(-1));
}
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.RecordTime2 >= 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.RecordTime2 >= BeginTime && d.RecordTime2 <= EndTime);
}
return list.OrderByDescending(x => x.RecordTime2).ToList();
}
catch (Exception ex)
{
log.Error("时间段条件查询QueryAllByTime()出现异常:" + ex);
return null;
}
}
/// <summary>
/// 查询第一条数据
/// </summary>
/// <returns></returns>
public async Task<CodeBindingRecord> FirstAsync()
{
return await _codeBindingRecordRepository.FirstAsync();
}
/// <summary>
///查询条码2为null的数据并取最新的一条
/// </summary>
/// <returns></returns>
public async Task<List<CodeBindingRecord>> QueryByTime()
{
return await _codeBindingRecordRepository.QueryAsync(x => x.ProductCode == null, "RECORD_TIME1 DESC");
}
}
}