|
@@ -0,0 +1,406 @@
|
|
|
|
+
|
|
|
|
+using AutoMapper;
|
|
|
|
+using OASystem.Domain;
|
|
|
|
+using OASystem.Domain.Dtos.Financial;
|
|
|
|
+using OASystem.Domain.Dtos.Groups;
|
|
|
|
+using OASystem.Domain.Entities.Financial;
|
|
|
|
+using OASystem.Domain.Entities.Groups;
|
|
|
|
+using OASystem.Domain.ViewModels.Financial;
|
|
|
|
+using OASystem.Domain.ViewModels.Groups;
|
|
|
|
+using OASystem.Infrastructure.Repositories.System;
|
|
|
|
+using Org.BouncyCastle.Asn1.Cms;
|
|
|
|
+using System;
|
|
|
|
+using System.Collections.Generic;
|
|
|
|
+using System.Linq;
|
|
|
|
+using System.Security.Cryptography;
|
|
|
|
+using System.Text;
|
|
|
|
+using System.Threading.Tasks;
|
|
|
|
+
|
|
|
|
+namespace OASystem.Infrastructure.Repositories.Groups
|
|
|
|
+{
|
|
|
|
+ public class VisaPriceRepository : BaseRepository<Grp_VisaInfo, VisaPriceDto>
|
|
|
|
+ {
|
|
|
|
+ private readonly IMapper _mapper;
|
|
|
|
+
|
|
|
|
+ public VisaPriceRepository(SqlSugarClient sqlSugar,IMapper mapper)
|
|
|
|
+ : base(sqlSugar)
|
|
|
|
+ {
|
|
|
|
+ _mapper=mapper;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 根据diid查询签证费用列表
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<Result> PostVisaByDiId(VisaPriceDto dto)
|
|
|
|
+ {
|
|
|
|
+ Result result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ string sqlWhere = string.Empty;
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(dto.VisaClient))
|
|
|
|
+ {
|
|
|
|
+ sqlWhere += string.Format(@" And v.VisaClient like '%{0}%'", dto.VisaClient);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sqlWhere += string.Format(@"And v.DIId={0} and v.isdel={1}", dto.DiID, 0);
|
|
|
|
+ string UserId = "";
|
|
|
|
+ List<Grp_GroupsTaskAssignment> gtaUIdList = _sqlSugar.Queryable<Grp_GroupsTaskAssignment>().Where(a => a.DIId == dto.DiID && a.IsDel == 0 && a.CTId == 80).ToList();
|
|
|
|
+ foreach (Grp_GroupsTaskAssignment gta in gtaUIdList)
|
|
|
|
+ UserId += gta.UId + ",";
|
|
|
|
+
|
|
|
|
+ if (!string.IsNullOrWhiteSpace(UserId))
|
|
|
|
+ {
|
|
|
|
+ UserId = UserId.Substring(0, UserId.Length - 1);
|
|
|
|
+ }
|
|
|
|
+ sqlWhere += string.Format(@" And v.CreateUserId in ({0})", UserId);
|
|
|
|
+ if (!string.IsNullOrEmpty(sqlWhere.Trim()))
|
|
|
|
+ {
|
|
|
|
+ Regex r = new Regex("And");
|
|
|
|
+ sqlWhere = r.Replace(sqlWhere, "Where", 1);
|
|
|
|
+ }
|
|
|
|
+ string sql = string.Format(@"select *,(select IsAuditGM from Grp_CreditCardPayment where CTable=80 and CId=v.Id) IsAuditGM,(select Name from Sys_SetData where isdel=0 and v.VisaCurrency=Id) VisaCurrencyStr from Grp_VisaInfo v {0} order by CreateTime desc", sqlWhere);
|
|
|
|
+ List<VisaInfoView> infoViews = _sqlSugar.SqlQueryable<VisaInfoView>(sql).ToList();
|
|
|
|
+ if (infoViews.Count != 0)
|
|
|
|
+ {
|
|
|
|
+ if (dto.PageIndex != 0 && dto.PageSize != 0)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ int count = infoViews.Count;
|
|
|
|
+ float totalPage = (float)count / dto.PageSize;//总页数
|
|
|
|
+ if (totalPage == 0) totalPage = 1;
|
|
|
|
+ else totalPage = (int)Math.Ceiling((double)totalPage);
|
|
|
|
+
|
|
|
|
+ List<VisaInfoView> visaInfosPage = new List<VisaInfoView>();
|
|
|
|
+ for (int i = 0; i < dto.PageSize; i++)
|
|
|
|
+ {
|
|
|
|
+ var RowIndex = i + (dto.PageIndex - 1) * dto.PageSize;
|
|
|
|
+ if (RowIndex < infoViews.Count)
|
|
|
|
+ {
|
|
|
|
+ visaInfosPage.Add(infoViews[RowIndex]);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ListViewBase<VisaInfoView> rst = new ListViewBase<VisaInfoView>();
|
|
|
|
+ rst.DataList = visaInfosPage;
|
|
|
|
+ rst.DataCount = count;
|
|
|
|
+ rst.CurrPageIndex = dto.PageIndex;
|
|
|
|
+ rst.CurrPageSize = dto.PageSize;
|
|
|
|
+ return result = new Result() { Code = 0, Msg = "查询成功!", Data = rst };
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ return result = new Result() { Code = 0, Msg = "查询成功!", Data = infoViews };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ if (dto.PageIndex != 0 && dto.PageSize != 0)
|
|
|
|
+ {
|
|
|
|
+ ListViewBase<VisaInfoView> rst = new ListViewBase<VisaInfoView>();
|
|
|
|
+ rst.DataList = infoViews;
|
|
|
|
+ rst.DataCount = infoViews.Count;
|
|
|
|
+ rst.CurrPageIndex = dto.PageIndex;
|
|
|
|
+ rst.CurrPageSize = dto.PageSize;
|
|
|
|
+ return result = new Result() { Code = 0, Msg = "暂无数据!", Data = rst };
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ return result = new Result() { Code = 0, Msg = "暂无数据!", Data = infoViews };
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ catch (Exception)
|
|
|
|
+ {
|
|
|
|
+ return result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
+ throw;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 根据签证费用Id查询单条数据及c表数据
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<Result> PostVisaById(PostVisaByIdDto dto)
|
|
|
|
+ {
|
|
|
|
+ Result result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ Grp_VisaInfo _VisaInfo = _sqlSugar.Queryable<Grp_VisaInfo>().First(a => a.Id == dto.Id && a.IsDel==0);
|
|
|
|
+ Grp_CreditCardPayment _CreditCardPayment = _sqlSugar.Queryable<Grp_CreditCardPayment>().First(a=>a.CId==dto.Id && a.IsDel==0 && a.CTable==80);
|
|
|
|
+ var data = new
|
|
|
|
+ {
|
|
|
|
+ _VisaInfo = _VisaInfo,
|
|
|
|
+ _CreditCardPayment = _CreditCardPayment
|
|
|
|
+ };
|
|
|
|
+ return result = new Result() { Code = 0, Msg = "暂无数据!", Data = data };
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ return result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 签证费用录入操作(Status:1.新增,2.修改)
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public async Task<Result> OpVisaPrice(OpVisaPriceDto dto)
|
|
|
|
+ {
|
|
|
|
+ Result result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
+ BeginTran();
|
|
|
|
+ try
|
|
|
|
+ {
|
|
|
|
+ int id = 0;
|
|
|
|
+ Grp_VisaInfo grp_Visa1 = _mapper.Map<Grp_VisaInfo>(dto);
|
|
|
|
+ Grp_CreditCardPayment c = _mapper.Map<Grp_CreditCardPayment>(dto);
|
|
|
|
+ c.PayMoney = grp_Visa1.VisaPrice;
|
|
|
|
+ Grp_TeamRate _TeamRate = _sqlSugar.Queryable<Grp_TeamRate>().First(a => a.DiId == dto.DiId && a.IsDel == 0 && a.CTable == 80);
|
|
|
|
+ if (_TeamRate != null)
|
|
|
|
+ {
|
|
|
|
+ int OtherRateId = 0;
|
|
|
|
+ Sys_SetData setData = _sqlSugar.Queryable<Sys_SetData>().First(a => a.IsDel == 0 && a.Id == _TeamRate.OtherRateId);
|
|
|
|
+ if (setData != null)
|
|
|
|
+ {
|
|
|
|
+ OtherRateId = setData.Id;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ #region 汇率换算
|
|
|
|
+
|
|
|
|
+ if (grp_Visa1.VisaCurrency == 49)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateU;
|
|
|
|
+ c.DayRate = _TeamRate.RateU;
|
|
|
|
+ }
|
|
|
|
+ else if (OtherRateId == grp_Visa1.VisaCurrency)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.OtherPrice;
|
|
|
|
+ c.DayRate = _TeamRate.OtherPrice;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 51)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateE;
|
|
|
|
+ c.DayRate = _TeamRate.RateE;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 50)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateJ;
|
|
|
|
+ c.DayRate = _TeamRate.RateJ;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 55)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateH;
|
|
|
|
+ c.DayRate = _TeamRate.RateH;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 56)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateN;
|
|
|
|
+ c.DayRate = _TeamRate.RateN;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 65)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateS;
|
|
|
|
+ c.DayRate = _TeamRate.RateS;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 54)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateA;
|
|
|
|
+ c.DayRate = _TeamRate.RateA;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 53)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateC;
|
|
|
|
+ c.DayRate = _TeamRate.RateC;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 63)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateT;
|
|
|
|
+ c.DayRate = _TeamRate.RateT;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 68)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateBL;
|
|
|
|
+ c.DayRate = _TeamRate.RateBL;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 69)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateHB;
|
|
|
|
+ c.DayRate = _TeamRate.RateHB;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 336)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateFJD;
|
|
|
|
+ c.DayRate = _TeamRate.RateFJD;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 337)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateTL;
|
|
|
|
+ c.DayRate = _TeamRate.RateTL;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 338)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateRP;
|
|
|
|
+ c.DayRate = _TeamRate.RateRP;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 341)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RatePeso;
|
|
|
|
+ c.DayRate = _TeamRate.RatePeso;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 342)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateMYR;
|
|
|
|
+ c.DayRate = _TeamRate.RateMYR;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 344)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateCZK;
|
|
|
|
+ c.DayRate = _TeamRate.RateCZK;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 345)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateMXN;
|
|
|
|
+ c.DayRate = _TeamRate.RateMXN;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 354)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateMOP;
|
|
|
|
+ c.DayRate = _TeamRate.RateMOP;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 359)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateARS;
|
|
|
|
+ c.DayRate = _TeamRate.RateARS;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 361)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateHUF;
|
|
|
|
+ c.DayRate = _TeamRate.RateHUF;
|
|
|
|
+ }
|
|
|
|
+ else if (grp_Visa1.VisaCurrency == 362)
|
|
|
|
+ {
|
|
|
|
+ c.RMBPrice = c.PayMoney * _TeamRate.RateRUB;
|
|
|
|
+ c.DayRate = _TeamRate.RateRUB;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ c.DayRate = 1;
|
|
|
|
+ c.RMBPrice = c.PayMoney;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ c.DayRate = 1;
|
|
|
|
+ c.RMBPrice = c.PayMoney;
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+ if (dto.Status==1)//添加
|
|
|
|
+ {
|
|
|
|
+ Grp_VisaInfo grp_Visa =_sqlSugar.Queryable<Grp_VisaInfo>().First(a=>a.IsDel==0 && a.VisaCurrency==dto.VisaCurrency && a.VisaPrice==dto.VisaPrice && a.VisaClient==dto.VisaClient);
|
|
|
|
+ if (grp_Visa!=null)
|
|
|
|
+ {
|
|
|
|
+ return result = new Result() { Code = -1, Msg = "该笔费用已存在,请勿重复添加!" };
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ id = await AddAsyncReturnId(grp_Visa1);
|
|
|
|
+ if (id!=0)
|
|
|
|
+ {
|
|
|
|
+ c.PayMoney = dto.VisaPrice;
|
|
|
|
+ c.PaymentCurrency = dto.VisaCurrency;
|
|
|
|
+ c.Remark = dto.CRemark;
|
|
|
|
+ c.PayPercentage = 100;
|
|
|
|
+ c.CTable = 80;
|
|
|
|
+ c.CId=id;
|
|
|
|
+ c.IsAuditGM = 0;
|
|
|
|
+ if (c.PayDId == 72)
|
|
|
|
+ {
|
|
|
|
+ c.IsPay = 1;
|
|
|
|
+ }
|
|
|
|
+ int cId = await _sqlSugar.Insertable(c).ExecuteReturnIdentityAsync();
|
|
|
|
+ if (cId != 0)
|
|
|
|
+ {
|
|
|
|
+ result = new Result() { Code = 0, Msg = "添加成功!" };
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ RollbackTran();
|
|
|
|
+ result = new Result() { Code = -1, Msg = "添加失败!" };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ RollbackTran();
|
|
|
|
+ result = new Result() { Code = -1, Msg = "添加失败,请稍后重试!" };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else if (dto.Status==2)//修改
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ bool res = await UpdateAsync(a => a.Id == dto.Id, a => new Grp_VisaInfo
|
|
|
|
+ {
|
|
|
|
+ VisaClient = grp_Visa1.VisaClient,
|
|
|
|
+ VisaPrice = grp_Visa1.VisaPrice,
|
|
|
|
+ VisaCurrency = grp_Visa1.VisaCurrency,
|
|
|
|
+ IsThird = grp_Visa1.IsThird,
|
|
|
|
+ PassengerType = grp_Visa1.PassengerType,
|
|
|
|
+ VisaNumber = grp_Visa1.VisaNumber,
|
|
|
|
+ VisaFreeNumber = grp_Visa1.VisaFreeNumber,
|
|
|
|
+ Remark = dto.Remark,
|
|
|
|
+ });
|
|
|
|
+ if (res)
|
|
|
|
+ {
|
|
|
|
+ c.PayMoney = dto.VisaPrice;
|
|
|
|
+ c.PaymentCurrency = dto.VisaCurrency;
|
|
|
|
+ c.Remark = dto.CRemark;
|
|
|
|
+ c.PayPercentage = 100;
|
|
|
|
+ c.CTable = 80;
|
|
|
|
+ int CTable = await _sqlSugar.Updateable<Grp_CreditCardPayment>().Where(a => a.CId == grp_Visa1.Id && a.CTable==80).SetColumns(a => new Grp_CreditCardPayment
|
|
|
|
+ {
|
|
|
|
+ PayDId = dto.PayDId,
|
|
|
|
+ PayMoney = c.PayMoney,
|
|
|
|
+ PaymentCurrency = c.PaymentCurrency,
|
|
|
|
+ Payee = c.Payee,
|
|
|
|
+ OrbitalPrivateTransfer = c.OrbitalPrivateTransfer,
|
|
|
|
+ DayRate = c.DayRate,
|
|
|
|
+ RMBPrice = c.RMBPrice,
|
|
|
|
+ ConsumptionPatterns = c.ConsumptionPatterns,
|
|
|
|
+ ConsumptionDate = c.ConsumptionDate,
|
|
|
|
+ CTDId = c.CTDId,
|
|
|
|
+ CompanyBankNo = c.CompanyBankNo,
|
|
|
|
+ OtherBankName = c.OtherBankName,
|
|
|
|
+ OtherSideNo = c.OtherSideNo,
|
|
|
|
+ OtherSideName = c.OtherSideName,
|
|
|
|
+ BankNo = c.BankNo,
|
|
|
|
+ CardholderName = c.CardholderName,
|
|
|
|
+ Remark = c.Remark,
|
|
|
|
+
|
|
|
|
+ }).ExecuteCommandAsync();
|
|
|
|
+
|
|
|
|
+ result = new Result() { Code = 0, Msg = "修改成功!" };
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ RollbackTran();
|
|
|
|
+ result = new Result() { Code = -1, Msg = "修改失败,请稍后重试!" };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ CommitTran();
|
|
|
|
+ }
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ result = new Result() { Code = -2, Msg = "未知错误" };
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|