| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /// 报表汇总数据
- class ReportSummary {
- final double totalAmount;
- final int totalCount;
- final int approvedCount;
- final double approvedAmount;
- const ReportSummary({
- this.totalAmount = 0,
- this.totalCount = 0,
- this.approvedCount = 0,
- this.approvedAmount = 0,
- });
- factory ReportSummary.fromJson(Map<String, dynamic> json) {
- return ReportSummary(
- totalAmount: (json['totalAmount'] as num?)?.toDouble() ?? 0,
- totalCount: json['totalCount'] as int? ?? 0,
- approvedCount: json['approvedCount'] as int? ?? 0,
- approvedAmount: (json['approvedAmount'] as num?)?.toDouble() ?? 0,
- );
- }
- }
- /// 月度报表数据
- class ReportMonthlyItem {
- final int month;
- final double amount;
- final double approvedAmount;
- final int count;
- const ReportMonthlyItem({
- this.month = 0,
- this.amount = 0,
- this.approvedAmount = 0,
- this.count = 0,
- });
- factory ReportMonthlyItem.fromJson(Map<String, dynamic> json) {
- return ReportMonthlyItem(
- month: json['month'] as int? ?? 0,
- amount: (json['amount'] as num?)?.toDouble() ?? 0,
- approvedAmount: (json['approvedAmount'] as num?)?.toDouble() ?? 0,
- count: json['count'] as int? ?? 0,
- );
- }
- }
- /// 报表明细项
- class ReportDetailItem {
- final String billNo;
- final String? billDate;
- final double amount;
- final bool isApproved;
- final String reason;
- const ReportDetailItem({
- this.billNo = '',
- this.billDate,
- this.amount = 0,
- this.isApproved = false,
- this.reason = '',
- });
- factory ReportDetailItem.fromJson(Map<String, dynamic> json) {
- return ReportDetailItem(
- billNo: json['billNo'] as String? ?? '',
- billDate: json['billDate'] as String?,
- amount: (json['amount'] as num?)?.toDouble() ?? 0,
- isApproved: json['isApproved'] as bool? ?? false,
- reason: json['reason'] as String? ?? '',
- );
- }
- }
- /// 报表完整数据
- class ReportData {
- final ReportSummary summary;
- final List<ReportMonthlyItem> monthly;
- final List<ReportDetailItem> details;
- const ReportData({
- this.summary = const ReportSummary(),
- this.monthly = const [],
- this.details = const [],
- });
- factory ReportData.fromJson(Map<String, dynamic> json) {
- return ReportData(
- summary: json['summary'] != null
- ? ReportSummary.fromJson(json['summary'] as Map<String, dynamic>)
- : const ReportSummary(),
- monthly: (json['monthly'] as List<dynamic>?)
- ?.map((e) => ReportMonthlyItem.fromJson(e as Map<String, dynamic>))
- .toList() ??
- [],
- details: (json['details'] as List<dynamic>?)
- ?.map((e) => ReportDetailItem.fromJson(e as Map<String, dynamic>))
- .toList() ??
- [],
- );
- }
- }
|