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, ICodeBindingRecordServices { #region 对象引用 private static readonly log4net.ILog log = LogManager.GetLogger(typeof(CodeBindingRecordServices)); #endregion private readonly IBaseRepository _dal; private ICodeBindingRecordRepository _codeBindingRecordRepository; public CodeBindingRecordServices(IBaseRepository dal, ICodeBindingRecordRepository codeBindingRecordRepository) { this._dal = dal; base.BaseDal = dal; _codeBindingRecordRepository = codeBindingRecordRepository; } /// /// 查询图表信息,扫描产品类型统计 /// public async Task> QueryCharts() { try { List list = null; var _db = this.BaseDal.Db; list = await _db.CopyNew().Ado.SqlQueryAsync("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; } } /// /// 时间段条件查询 /// /// public async Task> QueryAllByTime(string time1, string time2) { try { List 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; } } /// /// 查询第一条数据 /// /// public async Task FirstAsync() { return await _codeBindingRecordRepository.FirstAsync(); } /// ///查询条码2为null的数据,并取最新的一条 /// /// public async Task> QueryByTime() { return await _codeBindingRecordRepository.QueryAsync(x => x.ProductCode == null, "RECORD_TIME1 DESC"); } } }