|
@@ -7431,6 +7431,288 @@ FROM
|
|
|
return Ok(data);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 团组模块 - 出入境费用-移动端 - ParentInfo
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostEnterExitCostMobileParentInfo(EnterExitCostInfobyDiIdDto dto)
|
|
|
+ {
|
|
|
+ if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
|
|
|
+ if (dto.DiId < 1) return Ok(JsonView(false, MsgTips.DiId));
|
|
|
+
|
|
|
+ var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCost>().FirstAsync(it => it.DiId == dto.DiId && it.IsDel == 0);
|
|
|
+
|
|
|
+ var mobileInfo = new EnterExitCostMobileParentInfoView();
|
|
|
+ if (eecInfo == null) return Ok(mobileInfo);
|
|
|
+
|
|
|
+ mobileInfo = _mapper.Map<EnterExitCostMobileParentInfoView>(eecInfo);
|
|
|
+
|
|
|
+ var dayAndCostData = _sqlSugar.Queryable<Grp_DayAndCost>()
|
|
|
+ .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
|
|
|
+ .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId)
|
|
|
+ .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dac.Id,
|
|
|
+ DiId = dac.DiId,
|
|
|
+ Type = dac.Type,
|
|
|
+ Days = dac.Days,
|
|
|
+ NationalTravelFeeId = dac.NationalTravelFeeId,
|
|
|
+ Arae = $"{ntf.Country}-{ntf.City}",
|
|
|
+ Cost = dac.Cost,
|
|
|
+ Currency = dac.Currency,
|
|
|
+ CurrencyName = sd.Name,
|
|
|
+ SubTotal = dac.SubTotal,
|
|
|
+ })
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ mobileInfo.ChoiceOneTotalCost = eecInfo.InsidePay;
|
|
|
+ mobileInfo.ChoiceTwoJJ = eecInfo.SumJJC;
|
|
|
+ mobileInfo.ChoiceTwoGW = eecInfo.SumGWC;
|
|
|
+ mobileInfo.ChoiceTwoTD = eecInfo.SumTDC;
|
|
|
+ mobileInfo.Currencys = (List<CurrencyInfo>?)CommonFun.GetCurrencyChinaToList(eecInfo.CurrencyRemark);
|
|
|
+ mobileInfo.ChoiceThreeTotalCost = dayAndCostData.Where(it => it.Type == 1).Sum(x => x.SubTotal); //住宿费 1
|
|
|
+ mobileInfo.ChoiceFourTotalCost = dayAndCostData.Where(it => it.Type == 2).Sum(x => x.SubTotal); //伙食费 2
|
|
|
+ mobileInfo.ChoiceFiveTotalCost = dayAndCostData.Where(it => it.Type == 3).Sum(x => x.SubTotal); //公杂费 3
|
|
|
+ mobileInfo.ChoiceSixTotalCost = dayAndCostData.Where(it => it.Type == 4).Sum(x => x.SubTotal); //培训费 4
|
|
|
+ //其他款项
|
|
|
+ var otherData = _sqlSugar.Queryable<Grp_DayOtherPrice>()
|
|
|
+ .LeftJoin<Sys_SetData>((dop, sd1) => dop.SetDataId == sd1.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dop, sd1, sd2) => dop.Currency == sd2.Id)
|
|
|
+ .Where((dop, sd1, sd2) => dop.IsDel == 0 && dop.Diid == dto.DiId)
|
|
|
+ .OrderBy((dop, sd1, sd2) => dop.Index)
|
|
|
+ .Select((dop, sd1, sd2) => new DayOtherPriceMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dop.Id,
|
|
|
+ DiId = dop.Diid,
|
|
|
+ Index = dop.Index,
|
|
|
+ SetDataId = dop.SetDataId,
|
|
|
+ SetDataName = sd1.Name,
|
|
|
+ Cost = dop.Cost,
|
|
|
+ Currency = dop.Currency,
|
|
|
+ CurrencyName = sd2.Remark,
|
|
|
+ SubTotal = dop.SubTotal,
|
|
|
+ Remark = dop.Remark,
|
|
|
+ })
|
|
|
+ .ToArray();
|
|
|
+ mobileInfo.OtherExpensesTotalCost = otherData.Sum(x => x.SubTotal);
|
|
|
+
|
|
|
+ return Ok(mobileInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 团组模块 - 出入境费用-移动端 - SubInfo
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostEnterExitCostMobileSubInfo(PostEnterExitCostMobileSubInfoDto dto)
|
|
|
+ {
|
|
|
+ if (!_portTypeData.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
|
|
|
+ if (dto.DiId < 1) return Ok(JsonView(false, MsgTips.DiId));
|
|
|
+
|
|
|
+ var subTypes = new List<int>() { 1, 2, 3, 4, 5, 6, 7 };
|
|
|
+ if (!subTypes.Contains(dto.SubType)) return Ok(JsonView(false, $"请传入有效的subTypeId!"));
|
|
|
+
|
|
|
+ var eecInfo = await _sqlSugar.Queryable<Grp_EnterExitCost>().FirstAsync(it => it.DiId == dto.DiId && it.IsDel == 0);
|
|
|
+
|
|
|
+ if (eecInfo == null) return Ok(JsonView(false, $"出入境费用明细未录入!"));
|
|
|
+ var subType = dto.SubType;
|
|
|
+
|
|
|
+ if (subType == 1) //1:境内费用
|
|
|
+ {
|
|
|
+ var oneData = new ChoiceOneMobileSubInfoView()
|
|
|
+ {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ ChoiceOne = eecInfo.ChoiceOne,
|
|
|
+ ChoiceOneTotalCost = eecInfo.InsidePay,
|
|
|
+ Visa = eecInfo.Visa,
|
|
|
+ VisaRemark = eecInfo.VisaRemark,
|
|
|
+ YiMiao = eecInfo.YiMiao,
|
|
|
+ HeSuan = eecInfo.HeSuan,
|
|
|
+ Service = eecInfo.Service,
|
|
|
+ Ticket = eecInfo.Ticket,
|
|
|
+ Safe = eecInfo.Safe,
|
|
|
+ };
|
|
|
+ return Ok(JsonView(oneData));
|
|
|
+ }
|
|
|
+ else if (subType == 2) //2:国际旅费
|
|
|
+ {
|
|
|
+ var twoData = new ChoiceTwoMobileSubInfoView() {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ ChoiceTwoJJ = eecInfo.SumJJC,
|
|
|
+ OutsideJJPay = eecInfo.OutsideJJPay,
|
|
|
+ ChoiceTwoGW = eecInfo.SumGWC,
|
|
|
+ OutsideGWPay = eecInfo.OutsideGWPay,
|
|
|
+ ChoiceTwoTD = eecInfo.SumTDC,
|
|
|
+ OutsideTDPay = eecInfo.OutsideTDPay,
|
|
|
+ AirJJ = eecInfo.AirJJ,
|
|
|
+ AirGW = eecInfo.AirGW,
|
|
|
+ AirTD = eecInfo.AirTD,
|
|
|
+ CityTranffic = eecInfo.CityTranffic
|
|
|
+
|
|
|
+ };
|
|
|
+ return Ok(JsonView(twoData));
|
|
|
+ }
|
|
|
+ else if (subType == 3) //3:住宿费
|
|
|
+ {
|
|
|
+ var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
|
|
|
+ .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
|
|
|
+ .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 1)
|
|
|
+ .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dac.Id,
|
|
|
+ DiId = dac.DiId,
|
|
|
+ Type = dac.Type,
|
|
|
+ Days = dac.Days,
|
|
|
+ NationalTravelFeeId = dac.NationalTravelFeeId,
|
|
|
+ Arae = $"{ntf.Country}-{ntf.City}",
|
|
|
+ Cost = dac.Cost,
|
|
|
+ Currency = dac.Currency,
|
|
|
+ CurrencyName = sd.Name,
|
|
|
+ SubTotal = dac.SubTotal,
|
|
|
+ })
|
|
|
+ .ToArray();
|
|
|
+
|
|
|
+ var data = new ChoiceThreeMobileSubInfoView() {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ ChoiceThree = eecInfo.ChoiceThree,
|
|
|
+ ChoiceThreeTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
|
|
|
+ Details = dayAndCostDatas
|
|
|
+
|
|
|
+ };
|
|
|
+ return Ok(JsonView(data));
|
|
|
+ }
|
|
|
+ else if (subType == 4) //4:伙食费
|
|
|
+ {
|
|
|
+ var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
|
|
|
+ .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
|
|
|
+ .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 2)
|
|
|
+ .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dac.Id,
|
|
|
+ DiId = dac.DiId,
|
|
|
+ Type = dac.Type,
|
|
|
+ Days = dac.Days,
|
|
|
+ NationalTravelFeeId = dac.NationalTravelFeeId,
|
|
|
+ Arae = $"{ntf.Country}-{ntf.City}",
|
|
|
+ Cost = dac.Cost,
|
|
|
+ Currency = dac.Currency,
|
|
|
+ CurrencyName = sd.Name,
|
|
|
+ SubTotal = dac.SubTotal,
|
|
|
+ })
|
|
|
+ .ToArray();
|
|
|
+
|
|
|
+ var data = new ChoiceFourMobileSubInfoView()
|
|
|
+ {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ ChoiceFour = eecInfo.ChoiceFour,
|
|
|
+ ChoiceFourTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
|
|
|
+ Details = dayAndCostDatas
|
|
|
+ };
|
|
|
+ return Ok(JsonView(data));
|
|
|
+ }
|
|
|
+ else if (subType == 5) //5:公杂费
|
|
|
+ {
|
|
|
+ var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
|
|
|
+ .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
|
|
|
+ .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 3)
|
|
|
+ .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dac.Id,
|
|
|
+ DiId = dac.DiId,
|
|
|
+ Type = dac.Type,
|
|
|
+ Days = dac.Days,
|
|
|
+ NationalTravelFeeId = dac.NationalTravelFeeId,
|
|
|
+ Arae = $"{ntf.Country}-{ntf.City}",
|
|
|
+ Cost = dac.Cost,
|
|
|
+ Currency = dac.Currency,
|
|
|
+ CurrencyName = sd.Name,
|
|
|
+ SubTotal = dac.SubTotal,
|
|
|
+ })
|
|
|
+ .ToArray();
|
|
|
+
|
|
|
+ var data = new ChoiceFiveMobileSubInfoView()
|
|
|
+ {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ ChoiceFive = eecInfo.ChoiceFive,
|
|
|
+ ChoiceFiveTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
|
|
|
+ Details = dayAndCostDatas
|
|
|
+ };
|
|
|
+ return Ok(JsonView(data));
|
|
|
+ }
|
|
|
+ else if (subType == 6) //6:培训费
|
|
|
+ {
|
|
|
+ var dayAndCostDatas = _sqlSugar.Queryable<Grp_DayAndCost>()
|
|
|
+ .LeftJoin<Grp_NationalTravelFee>((dac, ntf) => dac.NationalTravelFeeId == ntf.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dac, ntf, sd) => dac.Currency == sd.Id)
|
|
|
+ .Where((dac, ntf, sd) => dac.IsDel == 0 && dac.DiId == dto.DiId && dac.Type == 4)
|
|
|
+ .Select((dac, ntf, sd) => new DayAndCostMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dac.Id,
|
|
|
+ DiId = dac.DiId,
|
|
|
+ Type = dac.Type,
|
|
|
+ Days = dac.Days,
|
|
|
+ NationalTravelFeeId = dac.NationalTravelFeeId,
|
|
|
+ Arae = $"{ntf.Country}-{ntf.City}",
|
|
|
+ Cost = dac.Cost,
|
|
|
+ Currency = dac.Currency,
|
|
|
+ CurrencyName = sd.Name,
|
|
|
+ SubTotal = dac.SubTotal,
|
|
|
+ })
|
|
|
+ .ToArray();
|
|
|
+
|
|
|
+ var data = new ChoiceSixMobileSubInfoView()
|
|
|
+ {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ ChoiceSix = eecInfo.ChoiceSix,
|
|
|
+ ChoiceSixTotalCost = dayAndCostDatas.Sum(x => x.SubTotal),
|
|
|
+ Details = dayAndCostDatas
|
|
|
+ };
|
|
|
+ return Ok(JsonView(data));
|
|
|
+ }
|
|
|
+ else if (subType == 7) //7:其他
|
|
|
+ {
|
|
|
+ //其他款项
|
|
|
+ var otherData = _sqlSugar.Queryable<Grp_DayOtherPrice>()
|
|
|
+ .LeftJoin<Sys_SetData>((dop, sd1) => dop.SetDataId == sd1.Id)
|
|
|
+ .LeftJoin<Sys_SetData>((dop, sd1, sd2) => dop.Currency == sd2.Id)
|
|
|
+ .Where((dop, sd1, sd2) => dop.IsDel == 0 && dop.Diid == dto.DiId)
|
|
|
+ .OrderBy((dop, sd1, sd2) => dop.Index)
|
|
|
+ .Select((dop, sd1, sd2) => new DayOtherPriceMobileInfoView
|
|
|
+ {
|
|
|
+ Id = dop.Id,
|
|
|
+ DiId = dop.Diid,
|
|
|
+ Index = dop.Index,
|
|
|
+ SetDataId = dop.SetDataId,
|
|
|
+ SetDataName = sd1.Name,
|
|
|
+ Cost = dop.Cost,
|
|
|
+ Currency = dop.Currency,
|
|
|
+ CurrencyName = sd2.Remark,
|
|
|
+ SubTotal = dop.SubTotal,
|
|
|
+ Remark = dop.Remark,
|
|
|
+ })
|
|
|
+ .ToArray();
|
|
|
+
|
|
|
+ var data = new ChoiceSevenMobileSubInfoView()
|
|
|
+ {
|
|
|
+ Id = eecInfo.Id,
|
|
|
+ OtherExpenses_Checked = eecInfo.OtherExpenses_Checked,
|
|
|
+ OtherExpensesTotalCost = otherData.Sum(x => x.SubTotal),
|
|
|
+ Details = otherData
|
|
|
+ };
|
|
|
+
|
|
|
+ return Ok(JsonView(data));
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(false));
|
|
|
+ }
|
|
|
+
|
|
|
#region op
|
|
|
|
|
|
/// <summary>
|
|
@@ -7639,6 +7921,7 @@ FROM
|
|
|
|
|
|
var info = _mapper.Map<Grp_EnterExitCost>(dto);
|
|
|
info.InsidePay = dto.Visa + dto.Service + dto.Safe + dto.Ticket + dto.HeSuan + dto.YiMiao;
|
|
|
+ info.ChoiceOne = dto.IsSelected;
|
|
|
|
|
|
int id = dto.Id;
|
|
|
if (id <= 0) //add
|