|
@@ -12114,7 +12114,7 @@ ORDER by gctggrc.id DESC
|
|
|
#region 下载匹配op行程单
|
|
|
/// <summary>
|
|
|
/// 匹配op行程单
|
|
|
- /// Init
|
|
|
+ /// Init
|
|
|
/// </summary>
|
|
|
/// <param name="dto">团组列表请求dto</param>
|
|
|
/// <returns></returns>
|
|
@@ -12138,6 +12138,7 @@ ORDER by gctggrc.id DESC
|
|
|
}
|
|
|
|
|
|
var country = groupInfos.Select(it => it.VisitCountry).ToList();
|
|
|
+ var diids = groupInfos.Select(it => it.Id).ToList();
|
|
|
List<string> countrys = new List<string>();
|
|
|
foreach (var item in country)
|
|
|
{
|
|
@@ -12157,48 +12158,22 @@ ORDER by gctggrc.id DESC
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ List<string> areaArray = new List<string>(); //GetGroupCityLine
|
|
|
|
|
|
- List<dynamic> countryDatas = new List<dynamic>();
|
|
|
- var countries1 = await _sqlSugar.Queryable<Sys_Countries>().Select(it => new { it.Id, Name = it.Name_CN }).ToListAsync();
|
|
|
-
|
|
|
- List<dynamic> countries = new List<dynamic>();
|
|
|
- foreach (var item in countrys)
|
|
|
- {
|
|
|
- var countryInfo = countries1.Find(it => it.Name.Contains(item));
|
|
|
- if (countryInfo != null)
|
|
|
- {
|
|
|
- countries.Add(countryInfo);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- var teamNames = groupInfos.Select(it => it.TeamName).ToList();
|
|
|
-
|
|
|
- for (int i = 0; i < teamNames.Count; i++)
|
|
|
+ foreach (var item in diids)
|
|
|
{
|
|
|
- string item = teamNames[i];
|
|
|
- if (string.IsNullOrEmpty(item) || item.Contains("-"))
|
|
|
+ string areaStr = GeneralMethod.GetGroupCityLine(item, "-");
|
|
|
+ if (!string.IsNullOrEmpty(areaStr))
|
|
|
{
|
|
|
- teamNames.Remove(item);
|
|
|
- i--;
|
|
|
+ string[] str1 = areaStr.Split("-");
|
|
|
+ if (str1.Length > 0)
|
|
|
+ {
|
|
|
+ areaArray.AddRange(str1);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- stopwatch.Stop();
|
|
|
- return Ok(JsonView(true, $"操作成功,耗时{stopwatch.ElapsedMilliseconds} ms", new { countryDatas = countries, teamNameDatas = teamNames }));
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 匹配op行程单
|
|
|
- /// Init 查询区域数据
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto">团组列表请求dto</param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpPost]
|
|
|
- [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
- public async Task<IActionResult> PostMateOpGroupCountryChangeData(MateOpGroupCountryChangeDataDto dto)
|
|
|
- {
|
|
|
- Stopwatch stopwatch = Stopwatch.StartNew(); // 创建并启动Stopwatch
|
|
|
+ if (areaArray.Count > 0) areaArray = areaArray.Distinct().ToList();
|
|
|
|
|
|
List<Sys_Cities> cityDatas = new List<Sys_Cities>();
|
|
|
string countriesDataStr = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>("CityDatas");//string 取
|
|
@@ -12213,124 +12188,178 @@ ORDER by gctggrc.id DESC
|
|
|
cityDatas = JsonConvert.DeserializeObject<List<Sys_Cities>>(countriesDataStr);
|
|
|
}
|
|
|
|
|
|
+ List<Sys_Cities> existCitys = new List<Sys_Cities>();
|
|
|
+ var existCitys1 = cityDatas.Where(it => areaArray.Contains(it.Name_CN)).Select(it => new { id = it.Id, parentId = it.CountriesId, name = it.Name_CN }).ToList();
|
|
|
|
|
|
+ List<int> countriesIds = existCitys1.Select(it => it.parentId).ToList();
|
|
|
|
|
|
- var provinceData = cityDatas.Where(it => it.CountriesId == dto.CountriesId && it.Level == 1).ToList();
|
|
|
- var citiesData = cityDatas.Where(it => it.CountriesId == dto.CountriesId && it.Level == 2).ToList();
|
|
|
- var countiesData = cityDatas.Where(it => it.CountriesId == dto.CountriesId && it.Level == 3).ToList();
|
|
|
+ var countriesDatas = await _sqlSugar.Queryable<Sys_Countries>()
|
|
|
+ .Where(it => countriesIds.Contains(it.Id))
|
|
|
+ .Select(it => new { it.Id, Name = it.Name_CN })
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
- List<dynamic> childList = new List<dynamic>();
|
|
|
- int parentId = dto.CountriesId;
|
|
|
- if (provinceData.Count > 1)
|
|
|
+ //var countryDatas = countriesDatas.Select(it => new
|
|
|
+ //{
|
|
|
+ // id = it.Id,
|
|
|
+ // name = it.Name,
|
|
|
+ // childList = existCitys.Where(it1 => it1.CountriesId == it.Id).Select(it1 => new { parentId = it1.CountriesId, id = it1.Id, name = it1.Name_CN }).ToList()
|
|
|
+ //}).ToList();
|
|
|
+
|
|
|
+ var teamNames = groupInfos.Select(it => it.TeamName).ToList();
|
|
|
+
|
|
|
+ for (int i = 0; i < teamNames.Count; i++)
|
|
|
{
|
|
|
- foreach (var item1 in provinceData)
|
|
|
+ string item = teamNames[i];
|
|
|
+ if (string.IsNullOrEmpty(item) || item.Contains("-"))
|
|
|
{
|
|
|
- List<dynamic> childList1 = new List<dynamic>();
|
|
|
- var citiesData1 = citiesData.Where(it => it.ParentId == item1.Id).ToList();
|
|
|
- foreach (var item2 in citiesData1)
|
|
|
- {
|
|
|
+ teamNames.Remove(item);
|
|
|
+ i--;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- List<dynamic> childList2 = new List<dynamic>();
|
|
|
+ stopwatch.Stop();
|
|
|
+ return Ok(JsonView(true, $"操作成功,耗时{stopwatch.ElapsedMilliseconds} ms", new { teamNames,countriesDatas, citiesDatas = existCitys1 }));
|
|
|
|
|
|
- var countiesData1 = countiesData.Where(it => it.ParentId == item2.Id).ToList();
|
|
|
- foreach (var item3 in countiesData1)
|
|
|
- {
|
|
|
- childList2.Add(new
|
|
|
- {
|
|
|
+ }
|
|
|
|
|
|
- id = item3.Id,
|
|
|
- parentId = item2.Id,
|
|
|
- level = "district",
|
|
|
- name = item3.Name_CN,
|
|
|
- });
|
|
|
- }
|
|
|
+ ///// <summary>
|
|
|
+ ///// 匹配op行程单
|
|
|
+ ///// Init 查询区域数据
|
|
|
+ ///// </summary>
|
|
|
+ ///// <param name="dto">团组列表请求dto</param>
|
|
|
+ ///// <returns></returns>
|
|
|
+ //[HttpPost]
|
|
|
+ //[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ //public async Task<IActionResult> PostMateOpGroupCountryChangeData(MateOpGroupCountryChangeDataDto dto)
|
|
|
+ //{
|
|
|
+ // Stopwatch stopwatch = Stopwatch.StartNew(); // 创建并启动Stopwatch
|
|
|
|
|
|
- childList1.Add(new
|
|
|
- {
|
|
|
- id = item2.Id,
|
|
|
- parentId = item1.Id,
|
|
|
- level = "city",
|
|
|
- name = item2.Name_CN,
|
|
|
- childList = childList2
|
|
|
- });
|
|
|
+ // List<Sys_Cities> cityDatas = new List<Sys_Cities>();
|
|
|
+ // string countriesDataStr = await RedisRepository.RedisFactory.CreateRedisRepository().StringGetAsync<string>("CityDatas");//string 取
|
|
|
+ // if (string.IsNullOrEmpty(countriesDataStr))
|
|
|
+ // {
|
|
|
+ // cityDatas = await _sqlSugar.Queryable<Sys_Cities>().Where(it => it.IsDel == 0).ToListAsync();
|
|
|
+ // TimeSpan ts = DateTime.Now.AddHours(2).TimeOfDay; //设置redis 过期时间 2
|
|
|
+ // await RedisRepository.RedisFactory.CreateRedisRepository().StringSetAsync<string>("CountriesDatas", JsonConvert.SerializeObject(cityDatas), ts);//string 存
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // cityDatas = JsonConvert.DeserializeObject<List<Sys_Cities>>(countriesDataStr);
|
|
|
+ // }
|
|
|
|
|
|
- }
|
|
|
|
|
|
- childList.Add(new
|
|
|
- {
|
|
|
- id = item1.Id,
|
|
|
- parentId = parentId,
|
|
|
- level = "province",
|
|
|
- name = item1.Name_CN,
|
|
|
- childList = childList1
|
|
|
- });
|
|
|
- }
|
|
|
|
|
|
- //城市
|
|
|
- var citiesData2 = citiesData.Where(it => it.ParentId == 0).ToList();
|
|
|
- foreach (var item2 in citiesData2)
|
|
|
- {
|
|
|
- List<dynamic> childList22 = new List<dynamic>();
|
|
|
+ // var provinceData = cityDatas.Where(it => it.CountriesId == dto.CountriesId && it.Level == 1).ToList();
|
|
|
+ // var citiesData = cityDatas.Where(it => it.CountriesId == dto.CountriesId && it.Level == 2).ToList();
|
|
|
+ // var countiesData = cityDatas.Where(it => it.CountriesId == dto.CountriesId && it.Level == 3).ToList();
|
|
|
|
|
|
- var countiesData1 = countiesData.Where(it => it.ParentId == item2.Id).ToList();
|
|
|
- foreach (var item3 in countiesData1)
|
|
|
- {
|
|
|
- childList22.Add(new
|
|
|
- {
|
|
|
+ // List<dynamic> childList = new List<dynamic>();
|
|
|
+ // int parentId = dto.CountriesId;
|
|
|
+ // if (provinceData.Count > 1)
|
|
|
+ // {
|
|
|
+ // foreach (var item1 in provinceData)
|
|
|
+ // {
|
|
|
+ // List<dynamic> childList1 = new List<dynamic>();
|
|
|
+ // var citiesData1 = citiesData.Where(it => it.ParentId == item1.Id).ToList();
|
|
|
+ // foreach (var item2 in citiesData1)
|
|
|
+ // {
|
|
|
|
|
|
- id = item3.Id,
|
|
|
- parentId = item2.Id,
|
|
|
- level = "district",
|
|
|
- name = item3.Name_CN,
|
|
|
- });
|
|
|
- }
|
|
|
+ // List<dynamic> childList2 = new List<dynamic>();
|
|
|
|
|
|
- childList.Add(new
|
|
|
- {
|
|
|
- id = item2.Id,
|
|
|
- parentId = parentId,
|
|
|
- level = "city",
|
|
|
- name = item2.Name_CN,
|
|
|
- childList = childList22
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- foreach (var item2 in citiesData)
|
|
|
- {
|
|
|
- string cname = item2.Name_CN;
|
|
|
- List<dynamic> childList1 = new List<dynamic>();
|
|
|
- var countiesData1 = countiesData.Where(it => it.ParentId == item2.Id).ToList();
|
|
|
- foreach (var item3 in countiesData1)
|
|
|
- {
|
|
|
- childList1.Add(new
|
|
|
- {
|
|
|
- Id = item3.Id,
|
|
|
- parentId = item2.Id,
|
|
|
- level = "district",
|
|
|
- name = item3.Name_CN
|
|
|
- });
|
|
|
- }
|
|
|
+ // var countiesData1 = countiesData.Where(it => it.ParentId == item2.Id).ToList();
|
|
|
+ // foreach (var item3 in countiesData1)
|
|
|
+ // {
|
|
|
+ // childList2.Add(new
|
|
|
+ // {
|
|
|
|
|
|
- childList.Add(new
|
|
|
- {
|
|
|
- id = item2.Id,
|
|
|
- parentId = parentId,
|
|
|
- level = "city",
|
|
|
- name = item2.Name_CN,
|
|
|
- childList = childList1
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
+ // id = item3.Id,
|
|
|
+ // parentId = item2.Id,
|
|
|
+ // level = "district",
|
|
|
+ // name = item3.Name_CN,
|
|
|
+ // });
|
|
|
+ // }
|
|
|
|
|
|
- stopwatch.Stop();
|
|
|
- return Ok(JsonView(true, $"操作成功,耗时{stopwatch.ElapsedMilliseconds} ms", childList));
|
|
|
+ // childList1.Add(new
|
|
|
+ // {
|
|
|
+ // id = item2.Id,
|
|
|
+ // parentId = item1.Id,
|
|
|
+ // level = "city",
|
|
|
+ // name = item2.Name_CN,
|
|
|
+ // childList = childList2
|
|
|
+ // });
|
|
|
|
|
|
- }
|
|
|
+ // }
|
|
|
|
|
|
+ // childList.Add(new
|
|
|
+ // {
|
|
|
+ // id = item1.Id,
|
|
|
+ // parentId = parentId,
|
|
|
+ // level = "province",
|
|
|
+ // name = item1.Name_CN,
|
|
|
+ // childList = childList1
|
|
|
+ // });
|
|
|
+ // }
|
|
|
|
|
|
+ // //城市
|
|
|
+ // var citiesData2 = citiesData.Where(it => it.ParentId == 0).ToList();
|
|
|
+ // foreach (var item2 in citiesData2)
|
|
|
+ // {
|
|
|
+ // List<dynamic> childList22 = new List<dynamic>();
|
|
|
|
|
|
+ // var countiesData1 = countiesData.Where(it => it.ParentId == item2.Id).ToList();
|
|
|
+ // foreach (var item3 in countiesData1)
|
|
|
+ // {
|
|
|
+ // childList22.Add(new
|
|
|
+ // {
|
|
|
+
|
|
|
+ // id = item3.Id,
|
|
|
+ // parentId = item2.Id,
|
|
|
+ // level = "district",
|
|
|
+ // name = item3.Name_CN,
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+
|
|
|
+ // childList.Add(new
|
|
|
+ // {
|
|
|
+ // id = item2.Id,
|
|
|
+ // parentId = parentId,
|
|
|
+ // level = "city",
|
|
|
+ // name = item2.Name_CN,
|
|
|
+ // childList = childList22
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // foreach (var item2 in citiesData)
|
|
|
+ // {
|
|
|
+ // string cname = item2.Name_CN;
|
|
|
+ // List<dynamic> childList1 = new List<dynamic>();
|
|
|
+ // var countiesData1 = countiesData.Where(it => it.ParentId == item2.Id).ToList();
|
|
|
+ // foreach (var item3 in countiesData1)
|
|
|
+ // {
|
|
|
+ // childList1.Add(new
|
|
|
+ // {
|
|
|
+ // Id = item3.Id,
|
|
|
+ // parentId = item2.Id,
|
|
|
+ // level = "district",
|
|
|
+ // name = item3.Name_CN
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+
|
|
|
+ // childList.Add(new
|
|
|
+ // {
|
|
|
+ // id = item2.Id,
|
|
|
+ // parentId = parentId,
|
|
|
+ // level = "city",
|
|
|
+ // name = item2.Name_CN,
|
|
|
+ // childList = childList1
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // stopwatch.Stop();
|
|
|
+ // return Ok(JsonView(true, $"操作成功,耗时{stopwatch.ElapsedMilliseconds} ms", childList));
|
|
|
+ //}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 匹配op行程单
|
|
@@ -12357,67 +12386,25 @@ ORDER by gctggrc.id DESC
|
|
|
#endregion
|
|
|
if (dto.PortType == 1 || dto.PortType == 2 || dto.PortType == 3) // web/Android
|
|
|
{
|
|
|
+ var _view = await GeneralMethod.MateOpGroupPageListRedis();
|
|
|
string sqlWhere = "";
|
|
|
|
|
|
if (!string.IsNullOrEmpty(dto.Country))
|
|
|
{
|
|
|
- sqlWhere += string.Format(@$" And di.VisitCountry Like '%{dto.Country}%'");
|
|
|
+ _view = _view.Where(x => x.VisitCountry != null && x.VisitCountry.Contains(dto.Country)).ToList();
|
|
|
}
|
|
|
|
|
|
- //TODO: Area 数据源不确定
|
|
|
-
|
|
|
- if (!string.IsNullOrEmpty(dto.TeamName))
|
|
|
+ if (!string.IsNullOrEmpty(dto.Area))
|
|
|
{
|
|
|
- sqlWhere += string.Format(@$" And di.TeamName Like '%{dto.Country}%'");
|
|
|
+ _view = _view.Where(x => x.RouteCity != null && x.RouteCity.Contains(dto.Area)).ToList();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- string sql = string.Format(@$"Select Row_Number,Id,SalesQuoteNo,TourCode,TeamTypeId, TeamType,
|
|
|
- TeamLevId,TeamLev,TeamName,ClientName,ClientUnit,
|
|
|
- VisitDate,VisitDays,VisitPNumber,JietuanOperatorId,
|
|
|
- JietuanOperator,IsSure,CreateTime
|
|
|
- From (
|
|
|
- Select row_number() over(order by gdi.CreateTime Desc) as Row_Number,
|
|
|
- gdi.Id,SalesQuoteNo,TourCode,ssd.Id TeamTypeId, ssd.Name TeamType,
|
|
|
- ssd1.Id TeamLevId,ssd1.Name TeamLev,TeamName,ClientName,ClientUnit,
|
|
|
- VisitDate,VisitDays,VisitPNumber,JietuanOperator JietuanOperatorId,
|
|
|
- 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 {sqlWhere}
|
|
|
- ) temp");
|
|
|
-
|
|
|
- RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
|
|
|
- var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);//ToPageAsync
|
|
|
-
|
|
|
- #region 处理所属部门
|
|
|
- /*
|
|
|
- * 1.sq 和 gyy 等显示 市场部
|
|
|
- * 2.王鸽和主管及张总还有管理员号统一国交部
|
|
|
- * 2-1. 4 管理员 ,21 张海麟
|
|
|
- */
|
|
|
- List<int> userIds = _DelegationList.Select(it => it.JietuanOperatorId).ToList();
|
|
|
- List<int> userIds1 = new List<int>() { 4, 21 };
|
|
|
- var UserDepDatas = _sqlSugar.Queryable<Sys_Users>()
|
|
|
- .LeftJoin<Sys_Department>((u, d) => u.DepId == d.Id)
|
|
|
- .Where(u => u.IsDel == 0 && userIds.Contains(u.Id))
|
|
|
- .Select((u, d) => new { UserId = u.Id, DepName = userIds1.Contains(u.Id) ? "国交部" : d.DepName })
|
|
|
- .ToList();
|
|
|
-
|
|
|
- foreach (var item in _DelegationList)
|
|
|
+ if (!string.IsNullOrEmpty(dto.TeamName))
|
|
|
{
|
|
|
- item.Department = UserDepDatas.Find(it => item.JietuanOperatorId == it.UserId)?.DepName ?? "Unknown";
|
|
|
+ _view = _view.Where(x => x.TeamName != null && x.TeamName.Contains(dto.TeamName)).ToList();
|
|
|
}
|
|
|
- #endregion
|
|
|
|
|
|
- //var _view = new
|
|
|
- //{
|
|
|
- // PageFuncAuth = pageFunAuthView,
|
|
|
- // Data = _DelegationList
|
|
|
- //};
|
|
|
- return Ok(JsonView(true, "查询成功!", _DelegationList, total));
|
|
|
+ return Ok(JsonView(true, "查询成功!", _view.Skip(dto.PageIndex).Take(dto.PageSize).ToList(), _view.Count));
|
|
|
}
|
|
|
else
|
|
|
{
|