|
@@ -7531,7 +7531,7 @@ FROM
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
public async Task<IActionResult> EnterExitCostDraftVisaTips(EnterExitCostDraftVisaTipsDto dto)
|
|
|
{
|
|
|
- if (dto.DraftId < 1) return Ok(JsonView(false,MsgTips.Id));
|
|
|
+ //if (dto.DraftId < 1) return Ok(JsonView(false,MsgTips.Id));
|
|
|
|
|
|
var cityIds = await _sqlSugar.Queryable<Grp_DayAndCostDraft>()
|
|
|
.Where(x => x.IsDel == 0 && x.ParentId == dto.DraftId)
|
|
@@ -7539,14 +7539,14 @@ FROM
|
|
|
.Distinct()
|
|
|
.ToListAsync();
|
|
|
|
|
|
- if (!cityIds.Any()) return Ok(JsonView(false, "请先录入出入境费用明细!"));
|
|
|
+ //if (!cityIds.Any()) return Ok(JsonView(false, "请先录入出入境费用明细!"));
|
|
|
|
|
|
var countrys = await _sqlSugar.Queryable<Grp_NationalTravelFee>()
|
|
|
.Where(x => x.IsDel == 0 && cityIds.Contains(x.Id))
|
|
|
.Select(x => x.Country)
|
|
|
.Distinct()
|
|
|
.ToArrayAsync();
|
|
|
- if (!countrys.Any()) return Ok(JsonView(false, "请先录入出入境费用明细!"));
|
|
|
+ //if (!countrys.Any()) return Ok(JsonView(false, "请先录入出入境费用明细!"));
|
|
|
|
|
|
(decimal totalAmt, string remark) = await _visaFeeInfoRep.EnterExitCostDraftVisaTips(countrys);
|
|
|
|
|
@@ -10497,41 +10497,34 @@ WHERE
|
|
|
|
|
|
if (dto.TipsType == 1)
|
|
|
{
|
|
|
- //默认币种显示
|
|
|
- var _currencyInfos = _currencyInit;
|
|
|
-
|
|
|
- var _currencyRate = await _juHeApi.PostItemRateAsync(_currencyInfos.Select(it => it.CurrencyCode!).ToArray());
|
|
|
- List<dynamic> reteInfos = new List<dynamic>();
|
|
|
- if (_currencyRate.Count > 0)
|
|
|
- {
|
|
|
- foreach (var item in _currencyInfos)
|
|
|
- {
|
|
|
- var rateInfo = _currencyRate.Where(it => it.Name.Equals(item.CurrencyName)).FirstOrDefault();
|
|
|
- if (rateInfo != null)
|
|
|
- {
|
|
|
- item.Rate = Convert.ToDecimal((Convert.ToDecimal(rateInfo.FSellPri == null ? 0.00M : rateInfo.FSellPri) / 100.00M).ToString("#0.0000"));
|
|
|
+ return Ok(JsonView(true, "查询成功!", await GeneralMethod.EnterExitCostLiveRate()));
|
|
|
+ }
|
|
|
+ else if (dto.TipsType == 2)
|
|
|
+ {
|
|
|
+ //if (dto.DraftId < 1) return Ok(JsonView(false,MsgTips.Id));
|
|
|
|
|
|
- decimal rate1 = item.Rate;
|
|
|
- rate1 *= 1.03M;
|
|
|
+ var cityIds = await _sqlSugar.Queryable<Grp_DayAndCostDraft>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.ParentId == dto.DraftId)
|
|
|
+ .Select(x => x.NationalTravelFeeId)
|
|
|
+ .Distinct()
|
|
|
+ .ToListAsync();
|
|
|
|
|
|
- decimal rate2 = Convert.ToDecimal(rate1.ToString("#0.00")) + 0.01M;
|
|
|
+ //if (!cityIds.Any()) return Ok(JsonView(false, "请先录入出入境费用明细!"));
|
|
|
|
|
|
- reteInfos.Add(new
|
|
|
- {
|
|
|
- currCode = item.CurrencyCode,
|
|
|
- currName = item.CurrencyName,
|
|
|
- rate = rate2,
|
|
|
- lastUpdateDt = rateInfo.Date + " " + rateInfo.Time
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ var countrys = await _sqlSugar.Queryable<Grp_NationalTravelFee>()
|
|
|
+ .Where(x => x.IsDel == 0 && cityIds.Contains(x.Id))
|
|
|
+ .Select(x => x.Country)
|
|
|
+ .Distinct()
|
|
|
+ .ToArrayAsync();
|
|
|
+ //if (!countrys.Any()) return Ok(JsonView(false, "请先录入出入境费用明细!"));
|
|
|
|
|
|
- return Ok(JsonView(true, "查询成功!", reteInfos));
|
|
|
- }
|
|
|
- else if (dto.TipsType == 2)
|
|
|
- {
|
|
|
+ (decimal totalAmt, string remark) = await _visaFeeInfoRep.EnterExitCostDraftVisaTips(countrys);
|
|
|
|
|
|
+ return Ok(JsonView(true, "查询成功!", new
|
|
|
+ {
|
|
|
+ totalAmt = totalAmt,
|
|
|
+ remark = remark
|
|
|
+ }));
|
|
|
|
|
|
}
|
|
|
else if (dto.TipsType == 3)
|
|
@@ -10541,6 +10534,53 @@ WHERE
|
|
|
return Ok(JsonView(false));
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 团组模块 - 出入境费用-草稿-移动端 - 创建
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> EnterExitCostDraftMobileCreate(EnterExitCostDraftMobileCreateDto dto)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dto.DraftName)) return Ok(JsonView(false, "草稿名称为空!"));
|
|
|
+ if (dto.CurrUserId < 1) return Ok(JsonView(false, MsgTips.UserId));
|
|
|
+
|
|
|
+ var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().OrderByDescending(x => x.CreateTime).FirstAsync(it => it.DraftName.Equals(dto.DraftName) && it.IsDel == 0);
|
|
|
+ if (eecInfo != null) return Ok(JsonView(false, "草稿名称重复!"));
|
|
|
+
|
|
|
+ var rateInfos = await EnterExitCostMobileGetCurrencyInit();
|
|
|
+
|
|
|
+ var info = new Grp_EnterExitCostDraft() {
|
|
|
+ DraftName = dto.DraftName,
|
|
|
+ CurrencyRemark = CommonFun.GetCurrencyChinaToString(rateInfos),
|
|
|
+ CreateUserId = dto.CurrUserId
|
|
|
+ };
|
|
|
+
|
|
|
+ _sqlSugar.BeginTran();
|
|
|
+ var draftId = await _sqlSugar.Insertable(info).ExecuteReturnIdentityAsync();
|
|
|
+ if (draftId < 1) {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ return Ok(JsonView(false, "草稿创建失败!"));
|
|
|
+ }
|
|
|
+ //添加默认权限
|
|
|
+ await _enterExitCostDraftRep.InitPerm(draftId,dto.CurrUserId);
|
|
|
+ _sqlSugar.CommitTran();
|
|
|
+
|
|
|
+ (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(draftId, dto.CurrUserId);
|
|
|
+ var mobileInfo = new EnterExitCostDraftMobileParentInfoView();
|
|
|
+ mobileInfo.Id = draftId;
|
|
|
+ mobileInfo.DraftName = dto.DraftName;
|
|
|
+ mobileInfo.Currencys = rateInfos;
|
|
|
+ mobileInfo.IsAssignPerm = assignPerm;
|
|
|
+
|
|
|
+ return Ok(JsonView(mobileInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 出入境费用-草稿-移动端 查看编辑提示消息
|
|
|
+ /// </summary>
|
|
|
+ private static string _viewPermStr = $"未分配查看权限,如要查看,请联系市场部或国交部负责人!";
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 团组模块 - 出入境费用-草稿-移动端 - ParentInfo
|
|
|
/// </summary>
|
|
@@ -10556,14 +10596,14 @@ WHERE
|
|
|
|
|
|
var mobileInfo = new EnterExitCostDraftMobileParentInfoView();
|
|
|
mobileInfo.Currencys = await EnterExitCostMobileGetCurrencyInit();
|
|
|
- if (eecInfo == null) return Ok(mobileInfo);
|
|
|
+ if (eecInfo == null) return Ok(JsonView(mobileInfo));
|
|
|
|
|
|
- //验证查看权限
|
|
|
- (bool isView, string msg) = await _enterExitCostDraftRep.MobilePermissionsValidationAsync(dto.DraftId, dto.CurrUserId);
|
|
|
- if (!isView) return Ok(JsonView(false, msg));
|
|
|
+ //验证查看编辑权限
|
|
|
+ (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
|
|
|
+ if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
|
|
|
|
|
|
mobileInfo = _mapper.Map<EnterExitCostDraftMobileParentInfoView>(eecInfo);
|
|
|
-
|
|
|
+ mobileInfo.IsAssignPerm = assignPerm;
|
|
|
var dayAndCostData = _sqlSugar.Queryable<Grp_DayAndCostDraft>()
|
|
|
.LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
|
|
|
.LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
|
|
@@ -10632,9 +10672,9 @@ WHERE
|
|
|
var subTypes = new List<int>() { 1, 2, 3, 4, 5, 6, 7 };
|
|
|
if (!subTypes.Contains(dto.SubType)) return Ok(JsonView(false, $"请传入有效的subTypeId!"));
|
|
|
|
|
|
- //验证查看权限
|
|
|
- (bool isView, string msg) = await _enterExitCostDraftRep.MobilePermissionsValidationAsync(dto.DraftId, dto.CurrUserId);
|
|
|
- if (!isView) return Ok(JsonView(false, msg));
|
|
|
+ //验证查看编辑权限
|
|
|
+ (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
|
|
|
+ if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
|
|
|
|
|
|
var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCostDraft>().OrderByDescending(x => x.CreateTime).FirstAsync(it => it.Id == dto.DraftId && it.IsDel == 0);
|
|
|
|
|
@@ -10838,7 +10878,6 @@ WHERE
|
|
|
|
|
|
#region op
|
|
|
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 移动端更新费用消息通知
|
|
|
/// </summary>
|
|
@@ -10909,9 +10948,9 @@ WHERE
|
|
|
if (dto.DraftId < 1) return Ok(JsonView(false, MsgTips.Id));
|
|
|
if (dto.UserIds.Length < 1) return Ok(JsonView(false, "请传入有效的userId;"));
|
|
|
|
|
|
- //验证编辑权限
|
|
|
- (bool isEdit, string msg) = await _enterExitCostDraftRep.MobilePermissionsValidationAsync(dto.DraftId, dto.CurrUserId, 2);
|
|
|
- if (!isEdit) return Ok(JsonView(false, msg));
|
|
|
+ //验证查看编辑权限
|
|
|
+ (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
|
|
|
+ if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
|
|
|
|
|
|
var permissions = new List<Grp_EnterExitCostDraftPermission>();
|
|
|
foreach (var userId in dto.UserIds)
|
|
@@ -10968,9 +11007,9 @@ WHERE
|
|
|
}
|
|
|
else //update
|
|
|
{
|
|
|
- //验证编辑权限
|
|
|
- (bool isEdit, string msg) = await _enterExitCostDraftRep.MobilePermissionsValidationAsync(dto.DraftId, dto.CurrUserId, 2);
|
|
|
- if (!isEdit) return Ok(JsonView(false, msg));
|
|
|
+ //验证查看编辑权限
|
|
|
+ (bool viewPerm, bool assignPerm) = await _enterExitCostDraftRep.PermissionValidationAsync(dto.DraftId, dto.CurrUserId);
|
|
|
+ if (!viewPerm) return Ok(JsonView(false, _viewPermStr));
|
|
|
|
|
|
var upd = await _sqlSugar.Updateable<Grp_EnterExitCostDraft>().SetColumns(x => new Grp_EnterExitCostDraft() { CurrencyRemark = currencyStr }).Where(x => x.Id == dto.DraftId).ExecuteCommandAsync();
|
|
|
if (upd < 1) return Ok(JsonView(false));
|