|
@@ -4214,6 +4214,8 @@ ORDER BY
|
|
|
opInfos[i].City = city;
|
|
|
}
|
|
|
|
|
|
+ var opParentFeeData = new StatisticsOP()._OPParentFeeInfo;
|
|
|
+
|
|
|
if (_dto.Type == 1)
|
|
|
{
|
|
|
//同比增长率=(本期数-同期数)/ 同期数
|
|
@@ -4247,6 +4249,27 @@ ORDER BY
|
|
|
))
|
|
|
.OrderBy(x => x.FeeId)
|
|
|
.ToList();
|
|
|
+
|
|
|
+
|
|
|
+ var opParentYearIds = yearData.Select(x => x.FeeId).ToList();
|
|
|
+ var opParentYearDataSelector = opParentFeeData.Where(x => !opParentYearIds.Contains(x.Id)).ToList();
|
|
|
+
|
|
|
+ if (opParentYearDataSelector.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var item in opParentYearDataSelector)
|
|
|
+ {
|
|
|
+ yearData.Add(
|
|
|
+ new StatisticsOPYOY(feeId: item.Id,
|
|
|
+ feeName: item.Name,
|
|
|
+ currPeriodFee: 0.00M,
|
|
|
+ samePeriodFee: 0.00M,
|
|
|
+ currPeriodGroupTotal: 0,
|
|
|
+ samePeriodGroupTotal: 0,
|
|
|
+ subFeeData: new StatisticsOPSubFeeYOY[] { }
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ yearData = yearData.OrderBy(x => x.FeeId).ToList();
|
|
|
+ }
|
|
|
return Ok(JsonView(true, "操作成功!", yearData));
|
|
|
}
|
|
|
else if (_dto.Type == 2)
|
|
@@ -4286,8 +4309,51 @@ ORDER BY
|
|
|
))
|
|
|
.ToArray()
|
|
|
))
|
|
|
- .OrderBy(x => x.MonthId)
|
|
|
+ //.OrderBy(x => x.MonthId)
|
|
|
.ToList();
|
|
|
+ //1、月份是否足够十二月
|
|
|
+ var monthIds = new int[] {1,2,3,4,5,6,7,8,9,10,11,12 };
|
|
|
+ var monthDataIds = monthData.Select(x => x.MonthId).ToArray();
|
|
|
+ var newMonthIds = monthIds.Where(x => !monthDataIds.Contains(x)).ToList();
|
|
|
+ if (newMonthIds.Count > 0)
|
|
|
+ {
|
|
|
+ foreach (var item in newMonthIds)
|
|
|
+ {
|
|
|
+ monthData.Add(new StatisticsOPMonthYOY(
|
|
|
+ monthId: item,
|
|
|
+ monthName: Enum.IsDefined(typeof(MonthEnum), (int)item) ? ((MonthEnum)(int)item).GetEnumDescription() : "",
|
|
|
+ feeDatas: Array.Empty<StatisticsOPYOY>()
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ monthData = monthData.OrderBy(x => x.MonthId).ToList();
|
|
|
+ }
|
|
|
+ //2、费用父类是否足够
|
|
|
+ for (int i = 0; i < monthData.Count; i++)
|
|
|
+ {
|
|
|
+ var month = monthData[i];
|
|
|
+ var opParentFeeIds = month.FeeDatas.Select(x => x.FeeId).ToList();
|
|
|
+ var opParentFeeDataSelector = opParentFeeData.Where(x => !opParentFeeIds.Contains(x.Id)).ToList();
|
|
|
+ if (opParentFeeDataSelector.Count > 0)
|
|
|
+ {
|
|
|
+ var feeDatas = month.FeeDatas.ToList();
|
|
|
+ foreach (var item in opParentFeeDataSelector)
|
|
|
+ {
|
|
|
+ feeDatas.Add(new StatisticsOPYOY(
|
|
|
+ feeId: item.Id,
|
|
|
+ feeName: item.Name,
|
|
|
+ currPeriodFee: 0.00M,
|
|
|
+ samePeriodFee: 0.00M,
|
|
|
+ currPeriodGroupTotal: 0,
|
|
|
+ samePeriodGroupTotal: 0,
|
|
|
+ subFeeData: Array.Empty<StatisticsOPSubFeeYOY>()
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ feeDatas = feeDatas.OrderBy(x => x.FeeId).ToList();
|
|
|
+ monthData[i].FeeDatas = feeDatas.ToArray();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //3、费用子类是否足够
|
|
|
+
|
|
|
return Ok(JsonView(true, "操作成功!", monthData));
|
|
|
}
|
|
|
return Ok(JsonView(false, "操作失败!"));
|