using cylsg.Model.ECTEModel; using ECTESTOA; using EzCoreNet.Redis; using Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static SKIT.FlurlHttpClient.Wechat.Api.Models.ProductOfflineGetSameCityTemplateResponse.Types.Template.Types; namespace cylsg.Application.CyOS { /// /// 川印通用信息获取 /// [Authorize] [ApiDescriptionSettings("CYOA")] public class CYOSSettingController : IDynamicApiController { private readonly ISqlSugarClient _client; private readonly IOAServices _oAServices; private readonly IEzCoreNetRedisService _eZCoreNetRedisService; public CYOSSettingController(ISqlSugarClient client, IOAServices oAServices, IEzCoreNetRedisService netRedisService) { _client = client.AsTenant().GetConnection("ECTESTOADB"); _oAServices = oAServices; _eZCoreNetRedisService = netRedisService; } /// /// 获取部门列表 /// /// [HttpGet] public async Task> GetDepartLstt() { return await _client.Queryable().Where(x => x.Status == "启用" && x.FirmId == _oAServices.firmId).Select(x => new OaDepartment { Name = x.Name, Keyid = x.Keyid, Remark = x.Remark, }).WithCache(60).ToListAsync(); } /// /// 获取科目列表 /// /// [HttpGet] public async Task> getKeMuList() { return await _client.Queryable().Where(x => x.Status == true && x.FirmId == _oAServices.firmId && x.SubjectType == "贷").Select(x => new OaSubjectSet { SubjectName = x.SubjectName, Keyid = x.Keyid, Remark = x.Remark, }).WithCache(60).ToListAsync(); } /// /// 获取流水号 /// /// [HttpGet] [AllowAnonymous] public string GetShowID() { return _eZCoreNetRedisService.GetYYYMMddAnd4sn(); } /// /// 获取客户列表 /// /// [HttpGet] [AllowAnonymous] public async Task GeCorporateClients() { return await _client.Queryable() .LeftJoin((Co,Cu)=>Co.Keyid==Cu.Keyid) .Where((Co, Cu) => Co.Shifouwanjie != 1 && Co.FirmId == _oAServices.firmId).Select((Co, Cu) => new { Co.Keyid, Co.CompanyName, adder=Cu.Province+Cu.City+Cu.County+Cu.DetailedAddress, Cu.CompanyPhone, Cu.BusinessManagers, }).MergeTable().OrderBy(Co => Co.CompanyName).WithCache(1800).ToListAsync(); } /// /// 获取司机列表 /// /// [HttpGet] public async Task> Getdrivers() { return await _client.Queryable().Where(x => x.Status == "在职" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff { Name = x.Name, MemberId = x.MemberId, Keyid = x.Keyid, }).WithCache(60).ToListAsync(); } /// /// 获取7天内司机列表 /// /// [HttpGet] [AllowAnonymous] public async Task> GetDriversOfWithin7days() { var list = await _client.Queryable().Where(x =>( x.DeliverTime.Value.Date < DateTime.Now.AddDays(8).Date) && (x.DeliverTime.Value.Date >= DateTime.Now.Date)).Select(x => x.DriverId).ToListAsync(); return await _client.Queryable().Where(x=>list.Contains(x.Keyid)).Where(x => x.Status == "在职" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff { Name = x.Name, MemberId = x.MemberId, Keyid = x.Keyid, }).WithCache(60).ToListAsync(); //// return await _client.Queryable() ////.LeftJoin((dp, os) => dp.DriverId == os.Keyid) ////.Where((dp, os) => SqlFunc.ToDate(dp.DeliverTime) < DateTime.Now.AddDays(8).Date //// && SqlFunc.ToDate(dp.DeliverTime) >= DateTime.Now.Date //// && os.Status == "在职" //// && os.FirmId == _oAServices.firmId //// ) ////.GroupBy((dp, os) => dp.DriverId) ////.Select((dp, os) => new OaStaff ////{ //// Name = SqlFunc.AggregateMax(os.Name), //// MemberId = SqlFunc.AggregateMax(os.MemberId), //// Keyid = SqlFunc.AggregateMax(os.Keyid), ////}) ////.WithCache(1800) ////.ToListAsync(); } } }