|
|
@@ -6518,65 +6518,102 @@ FROM
|
|
|
/// 费用审核
|
|
|
/// 团组列表 Page
|
|
|
/// </summary>
|
|
|
- /// <param name="_dto">团组列表请求dto</param>
|
|
|
+ /// <param name="dto">团组列表请求dto</param>
|
|
|
/// <returns></returns>
|
|
|
[HttpPost]
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
- public async Task<IActionResult> PostExpenseAuditGroupPageItems(ExpenseAuditGroupPageItemsDto _dto)
|
|
|
+ public async Task<IActionResult> PostExpenseAuditGroupPageItems(ExpenseAuditGroupPageItemsDto dto)
|
|
|
{
|
|
|
#region 参数验证
|
|
|
- if (_dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
- if (_dto.PageId < 1) return Ok(JsonView(false, "页面Id为空"));
|
|
|
+ if (dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
+ if (dto.PageId < 1) return Ok(JsonView(false, "页面Id为空"));
|
|
|
|
|
|
#region 页面操作权限验证
|
|
|
- var pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
|
|
|
+ var pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
|
|
|
|
|
|
if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限"));
|
|
|
#endregion
|
|
|
|
|
|
#endregion
|
|
|
- if (_dto.PortType == 1 || _dto.PortType == 2 || _dto.PortType == 3) // web/Android/IOS
|
|
|
+
|
|
|
+ if (dto.PortType == 1 || dto.PortType == 2 || dto.PortType == 3) // web/Android/IOS
|
|
|
{
|
|
|
- string sqlWhere = string.Empty;
|
|
|
- if (_dto.IsSure == 0) //未完成
|
|
|
+ string sqlWhere = "WHERE gdi.IsDel = 0";
|
|
|
+ var parameters = new List<SugarParameter>();
|
|
|
+
|
|
|
+ // 状态条件(保持不变)
|
|
|
+ if (dto.IsSure >= 0)
|
|
|
{
|
|
|
- sqlWhere += string.Format(@" And IsSure = 0");
|
|
|
+ sqlWhere += $" AND IsSure = {dto.IsSure}";
|
|
|
}
|
|
|
- else if (_dto.IsSure == 1) //已完成
|
|
|
+
|
|
|
+ // 搜索条件
|
|
|
+ if (!string.IsNullOrEmpty(dto.SearchCriteria))
|
|
|
{
|
|
|
- sqlWhere += string.Format(@" And IsSure = 1");
|
|
|
- }
|
|
|
+ var searchFields = new List<string>
|
|
|
+ {
|
|
|
+ "ssd.Name",
|
|
|
+ "TeamName",
|
|
|
+ "ClientName",
|
|
|
+ "su.CnName"
|
|
|
+ };
|
|
|
|
|
|
- if (!string.IsNullOrEmpty(_dto.SearchCriteria))
|
|
|
- {
|
|
|
- string tj = _dto.SearchCriteria;
|
|
|
- sqlWhere += string.Format(@"And (ssd.Name Like '%{0}%' Or TeamName Like '%{1}%' Or ClientName Like '%{2}%' Or su.CnName Like '%{3}%')",
|
|
|
- tj, tj, tj, tj);
|
|
|
- }
|
|
|
+ // 使用更宽松的配置
|
|
|
+ var config = new SearchConfig
|
|
|
+ {
|
|
|
+ EnableSmartSplitting = true,
|
|
|
+ RequireAllWordsForSplit = false,
|
|
|
+ MinSplitLength = 4
|
|
|
+ };
|
|
|
|
|
|
- string sql = string.Format(@"Select Row_Number,Id,SalesQuoteNo,TourCode,TeamTypeId, TeamType,
|
|
|
- TeamName,ClientName,ClientUnit, TeamLevId,TeamLev,VisitDate,
|
|
|
- VisitDays,VisitPNumber,JietuanOperator,IsSure,CreateTime
|
|
|
- From (
|
|
|
- Select row_number() over(order by gdi.VisitDate Desc) as Row_Number,
|
|
|
- gdi.Id,SalesQuoteNo,TourCode,ssd1.Id TeamLevId,ssd1.Name TeamLev,TeamName,
|
|
|
- ClientName,ClientUnit,ssd.Id TeamTypeId, ssd.Name TeamType,VisitDate,
|
|
|
- VisitDays,VisitPNumber,su.CnName JietuanOperator,IsSure,gdi.CreateTime
|
|
|
- From Grp_DelegationInfo gdi
|
|
|
- Left Join Sys_SetData ssd On gdi.TeamDid = ssd.Id
|
|
|
- Left Join Sys_SetData ssd1 On gdi.TeamLevSId = ssd1.Id
|
|
|
- Left Join Sys_Users su On gdi.JietuanOperator = su.Id
|
|
|
- Where gdi.IsDel = 0 {0}
|
|
|
- ) temp ", sqlWhere);
|
|
|
+ // 使用智能混合模式
|
|
|
+ var (searchCondition, searchParams) = AdvancedSearchHelper.BuildEnhancedSearchCondition(
|
|
|
+ dto.SearchCriteria,
|
|
|
+ searchFields,
|
|
|
+ "search_groupFee_",
|
|
|
+ SearchMode.AutoDetect,
|
|
|
+ CombinationMode.SmartMix,
|
|
|
+ config // 传入配置
|
|
|
+ );
|
|
|
|
|
|
- RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
|
|
|
- var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToPageListAsync(_dto.PageIndex, _dto.PageSize, total);//ToPageAsync
|
|
|
+ if (!string.IsNullOrEmpty(searchCondition))
|
|
|
+ {
|
|
|
+ sqlWhere += $" AND ({searchCondition})";
|
|
|
+ parameters.AddRange(searchParams);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 基础查询sql
|
|
|
+ string sql = $@"
|
|
|
+ SELECT Row_Number, Id, SalesQuoteNo, TourCode, TeamTypeId, TeamType,
|
|
|
+ TeamName, ClientName, ClientUnit, TeamLevId, TeamLev, VisitDate,
|
|
|
+ VisitDays, VisitPNumber, JietuanOperator, IsSure, CreateTime
|
|
|
+ FROM (
|
|
|
+ SELECT ROW_NUMBER() OVER (ORDER BY gdi.VisitDate DESC) AS Row_Number,
|
|
|
+ gdi.Id, gdi.SalesQuoteNo, gdi.TourCode,
|
|
|
+ ssd1.Id AS TeamLevId, ssd1.Name AS TeamLev,
|
|
|
+ gdi.TeamName, gdi.ClientName, gdi.ClientUnit,
|
|
|
+ ssd.Id AS TeamTypeId, ssd.Name AS TeamType,
|
|
|
+ gdi.VisitDate, gdi.VisitDays, gdi.VisitPNumber,
|
|
|
+ su.CnName AS JietuanOperator, gdi.IsSure, gdi.CreateTime
|
|
|
+ FROM Grp_DelegationInfo gdi
|
|
|
+ LEFT JOIN Sys_SetData ssd ON gdi.TeamDid = ssd.Id
|
|
|
+ LEFT JOIN Sys_SetData ssd1 ON gdi.TeamLevSId = ssd1.Id
|
|
|
+ LEFT JOIN Sys_Users su ON gdi.JietuanOperator = su.Id
|
|
|
+ {sqlWhere}
|
|
|
+ ) AS temp";
|
|
|
+
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql)
|
|
|
+ .AddParameters(parameters.ToArray())
|
|
|
+ .ToPageListAsync(dto.PageIndex, dto.PageSize, total);
|
|
|
|
|
|
var _view = new
|
|
|
{
|
|
|
PageFuncAuth = pageFunAuthView,
|
|
|
Data = _DelegationList
|
|
|
};
|
|
|
+
|
|
|
return Ok(JsonView(true, "查询成功!", _view, total));
|
|
|
|
|
|
}
|