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
|
{
|
/// <summary>
|
/// 川印通用信息获取
|
/// </summary>
|
[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;
|
}
|
|
/// <summary>
|
/// 获取部门列表
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
public async Task<List<OaDepartment>> GetDepartLstt()
|
{
|
return await _client.Queryable<OaDepartment>().Where(x => x.Status == "启用" && x.FirmId == _oAServices.firmId).Select(x => new OaDepartment
|
{
|
Name = x.Name,
|
Keyid = x.Keyid,
|
Remark = x.Remark,
|
}).WithCache(60).ToListAsync();
|
}
|
/// <summary>
|
/// 获取科目列表
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
[AllowAnonymous]
|
public async Task<List<OaSubjectSet>> getKeMuList()
|
{
|
return await _client.Queryable<OaSubjectSet>().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();
|
}
|
/// <summary>
|
/// 获取流水号
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
[AllowAnonymous]
|
public string GetShowID()
|
{
|
return _eZCoreNetRedisService.GetYYYMMddAnd4sn();
|
}
|
/// <summary>
|
/// 获取客户列表
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
//[AllowAnonymous]
|
public async Task<object> GeCorporateClients()
|
{
|
return await _client.Queryable<OA_CorporateClients>()
|
.LeftJoin<OA_CustomerCommunications>((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();
|
}
|
/// <summary>
|
/// 获取司机列表
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
[AllowAnonymous]
|
public async Task<List<OaStaff>> Getdrivers()
|
{
|
return await _client.Queryable<OaStaff>().Includes(x=>x.Car).Where(x => x.Status == "在职" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff
|
{
|
Name = x.Name,
|
MemberId = x.MemberId,
|
Keyid = x.Keyid,
|
Car=x.Car
|
|
}).ToListAsync();
|
}
|
|
|
/// <summary>
|
/// 获取7天内司机列表
|
/// </summary>
|
/// <returns></returns>
|
[HttpGet]
|
[AllowAnonymous]
|
public async Task<List<OaStaff>> GetDriversOfWithin7days()
|
{
|
|
var list = await _client.Queryable<OA_DeliverPlanPaiche>().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<OaStaff>().Includes(x=>x.Car).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,
|
Car=x.Car
|
|
})/*.WithCache(30)*/.ToListAsync(); //Includes(x => x.Car)加缓存会报错
|
//// return await _client.Queryable<OA_DeliverPlan>()
|
////.LeftJoin<OaStaff>((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();
|
}
|
|
|
|
|
|
}
|
}
|