|
@@ -1419,6 +1419,9 @@ namespace OASystem.API.Controllers
|
|
|
*/
|
|
|
var carFeeItems = await _groupRepository.Query<Sys_SetData>(s => s.STid == 83 && s.IsDel == 0).ToListAsync();
|
|
|
|
|
|
+
|
|
|
+ var initDatas = await _groupRepository.Query<Sys_SetData>(s => s.IsDel == 0).ToListAsync();
|
|
|
+
|
|
|
var cityData = await _groupRepository.Query<Grp_NationalTravelFee>(s => s.IsDel == 0).ToListAsync();
|
|
|
|
|
|
/*
|
|
@@ -1448,6 +1451,10 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
_detail.PriceName = priceModule;
|
|
|
|
|
|
+ _detail.PayType = initDatas.Find(it => it.Id == entity.PayDId)?.Name ?? "-";
|
|
|
+ _detail.CardType = initDatas.Find(it => it.Id == entity.CTDId)?.Name ?? "-";
|
|
|
+
|
|
|
+
|
|
|
/*
|
|
|
* 应付款金额
|
|
|
*/
|
|
@@ -1574,6 +1581,9 @@ namespace OASystem.API.Controllers
|
|
|
var roomData = _HotelReservationsContents1.Find(it => it.PriceType == 1);
|
|
|
if (roomData != null)
|
|
|
{
|
|
|
+ _detail.PayType = initDatas.Find(it => it.Id == roomData.PayDId)?.Name ?? "-";
|
|
|
+ _detail.CardType = initDatas.Find(it => it.Id == roomData.CTDId)?.Name ?? "-";
|
|
|
+
|
|
|
roomBool = roomData.IsOppay == 1 ? "是" : "否";
|
|
|
roomFee = roomData.Price;
|
|
|
var roomCurrData = currencyItems.Find(s => s.Id == roomData.Currency);
|
|
@@ -12016,7 +12026,6 @@ ORDER by gctggrc.id DESC
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
-
|
|
|
#region 酒店询价
|
|
|
/// <summary>
|
|
|
/// 酒店询价
|
|
@@ -12099,6 +12108,199 @@ ORDER by gctggrc.id DESC
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
+
|
|
|
+ #region 下载匹配op行程单
|
|
|
+ /// <summary>
|
|
|
+ /// 匹配op行程单
|
|
|
+ /// Init
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto">团组列表请求dto</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostMateOpGroupInit(MateOpGroupInitDto dto)
|
|
|
+ {
|
|
|
+ if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
|
|
|
+
|
|
|
+ bool isDepStatus = await GeneralMethod.IsMarketingStaff(dto.CurrUserId);
|
|
|
+ List<Grp_DelegationInfo> groupInfos = new List<Grp_DelegationInfo>();
|
|
|
+ if (isDepStatus)
|
|
|
+ {
|
|
|
+ groupInfos = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.JietuanOperator == dto.CurrUserId).OrderByDescending(it => it.CreateUserId).ToListAsync();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ groupInfos = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0).OrderByDescending(it => it.CreateUserId).ToListAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ var country = groupInfos.Select(it => it.VisitCountry).ToList();
|
|
|
+ List<string> countrys = new List<string>();
|
|
|
+ foreach (var item in country)
|
|
|
+ {
|
|
|
+ var data = _groupRepository.FormartTeamName(item);
|
|
|
+ var dataArray = _groupRepository.GroupSplitCountry(data);
|
|
|
+ if (dataArray.Count > 0) countrys.AddRange(dataArray);
|
|
|
+ }
|
|
|
+ countrys = countrys.Distinct().ToList();
|
|
|
+
|
|
|
+ for (int i = 0; i < countrys.Count; i++)
|
|
|
+ {
|
|
|
+ string item = countrys[i];
|
|
|
+ if (string.IsNullOrEmpty(item) || item.Contains("-"))
|
|
|
+ {
|
|
|
+ countrys.Remove(item);
|
|
|
+ i--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var teamNames = groupInfos.Select(it => it.TeamName).ToList();
|
|
|
+
|
|
|
+ for (int i = 0; i < teamNames.Count; i++)
|
|
|
+ {
|
|
|
+ string item = teamNames[i];
|
|
|
+ if (string.IsNullOrEmpty(item) || item.Contains("-"))
|
|
|
+ {
|
|
|
+ teamNames.Remove(item);
|
|
|
+ i--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Ok(JsonView(true, "操作成功", new { countryDatas = countrys, teamNameDatas = teamNames }));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 匹配op行程单
|
|
|
+ /// 接团信息列表 Page
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto">团组列表请求dto</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostMateOpGroupPageList(MateOpGroupPageListDto dto)
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+ if (dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
+ if (dto.PageId < 1) return Ok(JsonView(false, "页面Id为空"));
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+ #region 页面操作权限验证
|
|
|
+ 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
|
|
|
+ {
|
|
|
+ string sqlWhere = "";
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(dto.Country))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@$" And di.VisitCountry Like '%{dto.Country}%'");
|
|
|
+ }
|
|
|
+
|
|
|
+ //TODO: Area 数据源不确定
|
|
|
+
|
|
|
+ if (!string.IsNullOrEmpty(dto.TeamName))
|
|
|
+ {
|
|
|
+ sqlWhere += string.Format(@$" And di.TeamName Like '%{dto.Country}%'");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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)
|
|
|
+ {
|
|
|
+ item.Department = UserDepDatas.Find(it => item.JietuanOperatorId == it.UserId)?.DepName ?? "Unknown";
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ //var _view = new
|
|
|
+ //{
|
|
|
+ // PageFuncAuth = pageFunAuthView,
|
|
|
+ // Data = _DelegationList
|
|
|
+ //};
|
|
|
+ return Ok(JsonView(true, "查询成功!", _DelegationList, total));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "查询失败"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 匹配op行程单
|
|
|
+ /// 行程单下载
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto">团组列表请求dto</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostMateOpGroupDownload(MateOpGroupDownloadDto dto)
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+ if (dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
+ if (dto.PageId < 1) return Ok(JsonView(false, "页面Id为空"));
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+ #region 页面操作权限验证
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
|
|
|
+
|
|
|
+
|
|
|
+ if (pageFunAuthView.FilesDownloadAuth == 0) return Ok(JsonView(false, "您没有文件下载权限"));
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+ if (dto.PortType == 1 || dto.PortType == 2 || dto.PortType == 3) // web/Android
|
|
|
+ {
|
|
|
+ var res = ExportTravel(new InitOpTravelDto() { Diid = dto.diId });
|
|
|
+ return Ok(res.GetType().GetProperty("Value").GetValue(res, null));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "下载失败!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 报批行程初始化
|
|
|
/// </summary>
|