fix .
This commit is contained in:
@@ -78,30 +78,43 @@ public class GainfoService : IGainfoService
|
|||||||
|
|
||||||
var today = DateTime.Today;
|
var today = DateTime.Today;
|
||||||
|
|
||||||
var query = _gainfoStore.Queryable(request.Status)
|
ISugarQueryable<GainfoPageResponse> queryable = request.IsSearchAll
|
||||||
.WhereIF(!request.IsSearchAll && request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == true, where)
|
? _gainfoStore.Queryable(request.Status)
|
||||||
.WhereIF(request.IsSearchAll && request.DepartmentSelections?.Any() == true, where)
|
.WhereIF(request.DepartmentSelections?.Any() == true, where)
|
||||||
.LeftJoin<DepartmentEntity>((gainfo, department) => gainfo.DepartmentNo == department.No)
|
.WhereIF(request.DepartmentSelections?.Any() == false, gainfo => factories.Contains(gainfo.Factory))
|
||||||
.LeftJoin<BasicTypeEntity>((gainfo, department, type) => type.Code == SqlFunc.ToString(gainfo.CardType) && type.Type == "timeperiod")
|
.LeftJoin<DepartmentEntity>((gainfo, department) => gainfo.DepartmentNo == department.No)
|
||||||
.WhereIF(request.IsSearchAll && request.DepartmentSelections?.Any() == false, gainfo => factories.Contains(gainfo.Factory))
|
.LeftJoin<BasicTypeEntity>((gainfo, department, type) => type.Code == SqlFunc.ToString(gainfo.CardType) && type.Type == "timeperiod")
|
||||||
.WhereIF(request.IsSearchAll, gainfo =>
|
.WhereIF(request.Search.IsPresent(), gainfo =>
|
||||||
SqlFunc.Subqueryable<BusinessTripEntity>().Where(p => p.Code == gainfo.Code && factories.Contains(p.Destination) && SqlFunc.DateIsSame(p.BeginDate, today)).Any())
|
gainfo.Name.Contains(request.Search)
|
||||||
.WhereIF(!request.IsSearchAll && request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == false, gainfo => factories.Contains(gainfo.Factory))
|
|| gainfo.Code == request.Search
|
||||||
.WhereIF(!request.IsSearchAll && request.SearchType == GainfoSearchEnumType.Internal, gainfo => SqlFunc.Subqueryable<OutsourceEntity>().Where(p => p.Code == gainfo.Code).NotAny())
|
|| gainfo.IdNo == request.Search)
|
||||||
.WhereIF(!request.IsSearchAll && request.SearchType == GainfoSearchEnumType.Outsource, gainfo => SqlFunc.Subqueryable<OutsourceEntity>().Where(p => p.Code == gainfo.Code).Any())
|
.Select((gainfo, department, type) => new GainfoPageResponse
|
||||||
.WhereIF(!request.IsSearchAll && request.SearchType == GainfoSearchEnumType.BusinessTrip, gainfo =>
|
{
|
||||||
SqlFunc.Subqueryable<BusinessTripEntity>().Where(p => p.Code == gainfo.Code && factories.Contains(p.Destination) && SqlFunc.DateIsSame(p.BeginDate, today)).Any())
|
DepartmentName = department.Name,
|
||||||
.WhereIF(request.Search.IsPresent(), gainfo =>
|
CardType = gainfo.CardType,
|
||||||
gainfo.Name.Contains(request.Search)
|
CardTypeName = type.Display
|
||||||
|| gainfo.Code == request.Search
|
}, true)
|
||||||
|| gainfo.IdNo == request.Search)
|
: _gainfoStore.Queryable(request.Status)
|
||||||
.Select((gainfo, department, type) => new GainfoPageResponse
|
.WhereIF(request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == true, where)
|
||||||
{
|
.LeftJoin<DepartmentEntity>((gainfo, department) => gainfo.DepartmentNo == department.No)
|
||||||
DepartmentName = department.Name,
|
.LeftJoin<BasicTypeEntity>((gainfo, department, type) => type.Code == SqlFunc.ToString(gainfo.CardType) && type.Type == "timeperiod")
|
||||||
CardType = gainfo.CardType,
|
.WhereIF(request.SearchType != GainfoSearchEnumType.BusinessTrip && request.DepartmentSelections?.Any() == false, gainfo => factories.Contains(gainfo.Factory))
|
||||||
CardTypeName = type.Display
|
.WhereIF(request.SearchType == GainfoSearchEnumType.Internal, gainfo => SqlFunc.Subqueryable<OutsourceEntity>().Where(p => p.Code == gainfo.Code).NotAny())
|
||||||
}, true);
|
.WhereIF(request.SearchType == GainfoSearchEnumType.Outsource, gainfo => SqlFunc.Subqueryable<OutsourceEntity>().Where(p => p.Code == gainfo.Code).Any() && today >= gainfo.EntryDate && today <= gainfo.ResignationDate)
|
||||||
var page = await query.ToPageListAsync(request);
|
.WhereIF(request.SearchType == GainfoSearchEnumType.BusinessTrip, gainfo =>
|
||||||
|
SqlFunc.Subqueryable<BusinessTripEntity>().Where(p => p.Code == gainfo.Code && factories.Contains(p.Destination) && SqlFunc.DateIsSame(p.BeginDate, today)).Any())
|
||||||
|
.WhereIF(request.Search.IsPresent(), gainfo =>
|
||||||
|
gainfo.Name.Contains(request.Search)
|
||||||
|
|| gainfo.Code == request.Search
|
||||||
|
|| gainfo.IdNo == request.Search)
|
||||||
|
.Select((gainfo, department, type) => new GainfoPageResponse
|
||||||
|
{
|
||||||
|
DepartmentName = department.Name,
|
||||||
|
CardType = gainfo.CardType,
|
||||||
|
CardTypeName = type.Display
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
var page = await queryable.ToPageListAsync(request);
|
||||||
|
|
||||||
//外包人员部门号处理
|
//外包人员部门号处理
|
||||||
if (request.SearchType == GainfoSearchEnumType.Outsource)
|
if (request.SearchType == GainfoSearchEnumType.Outsource)
|
||||||
|
|||||||
Reference in New Issue
Block a user