using BBWY.Client.APIServices; using BBWY.Client.APIServices.QiKu; using BBWY.Client.Models.APIModel; using BBWY.Common.Models; using BBWY.Controls; using GalaSoft.MvvmLight.Command; using Microsoft.Win32; using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Input; namespace BBWY.Client.ViewModels.PackerTask { public class PackerSalaryViewModel:BaseVM,IDenpendency { public PackUserService packUserService; public PackTaskService packTaskService; private bool isLoading; private DateTime startTime; private DateTime endTime; private int pageIndex = 1; private int pageSize = 20; private int orderCount; private List packUserSalaryList; private string searchUserName; /// /// 总工资 /// public decimal totalSalary; /// /// 总任务数 /// public int totalTaskCount; /// /// 总件数 /// public int totalSkuItemCount; public int TotalTaskCount { get => totalTaskCount; set { Set(ref totalTaskCount, value); } } public int TotalSkuItemCount { get => totalSkuItemCount; set { Set(ref totalSkuItemCount, value); } } public decimal TotalSalary { get => totalSalary; set { Set(ref totalSalary, value); } } public string SearchUserName { get => searchUserName; set { Set(ref searchUserName, value); } } public List PackUserSalaryList { get => packUserSalaryList; set { Set(ref packUserSalaryList, value); } } public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } public DateTime StartTime { get => startTime; set { Set(ref startTime, value); } } public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } } public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } } public int PageSize { get => pageSize; set { Set(ref pageSize, value); } } public int OrderCount { get => orderCount; set { Set(ref orderCount, value); } } public ICommand SearchPackUserSalaryCommand { get; set; } public ICommand ExportCommand { get; set; } public ICommand OrderPageIndexChangedCommand { get; set; } public ICommand SetSearchDateCommand { get; set; } public PackerSalaryViewModel(PackTaskService packTaskService, PackUserService packUserService) { this.packTaskService = packTaskService; OrderPageIndexChangedCommand = new RelayCommand(p => { LoadOrder(p.PageIndex); }); SearchPackUserSalaryCommand = new RelayCommand(SearchPackUserSalary); StartTime = DateTime.Now; EndTime = DateTime.Now; SearchPackUserSalary(); SetSearchDateCommand = new RelayCommand(d => { EndTime = d == 1 ? DateTime.Now.Date.AddDays(-1) : DateTime.Now; StartTime = DateTime.Now.Date.AddDays(d * -1); PageIndex = 1; Task.Factory.StartNew(() => LoadOrder(1)); //点击日期查询订单 }); ExportCommand = new RelayCommand(Export); this.packUserService = packUserService; LoadOrder(1); } private void LoadOrder(int pageIndex) { PageIndex = pageIndex; SearchPackUserSalary(); } private void SearchPackUserSalary() { PackUserSalaryList = new List (); Task.Factory.StartNew(() => { IsLoading = true; try { var res = packUserService.SearchPackerSalary(StartTime.Date, EndTime.Date, PageIndex, PageSize); if (res != null && res.Success) { OrderCount = res.Data.TotalCount; TotalSalary = res.Data.TotalSalary; TotalSkuItemCount = res.Data.TotalSkuItemCount; TotalTaskCount = res.Data.TotalTaskCount; App.Current.Dispatcher.Invoke(() => { PackUserSalaryList = res.Data.PackerDaySalaries; }); //foreach (var packUserSalary in res.Data.PackUserSalaries) //{ // App.Current.Dispatcher.Invoke(() => // { // PackUserSalaryList.Add(packUserSalary); // }); //} } else { App.Current.Dispatcher.Invoke(() => { PackUserSalaryList = new List(); }); } } catch (Exception ex) { MessageBox.Show(ex.Message); } IsLoading = false; }); } private void Export() { SaveFileDialog save = new SaveFileDialog(); save.Filter = "csv files(*.csv)|*.csv"; var result = save.ShowDialog(); if (result == null || !result.Value) { return; } string fileName = save.FileName; Task.Factory.StartNew(() => { IsLoading = true; var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 if (res.Success) { //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; List exportList = new List(); string title = "日期,花名,总收益"; if (res.Data.TotalCount > 0) { foreach (var item in res.Data.PackUserSalaries[0].IncomeItems) { title += $",{item.Name}"; } exportList.Add(title); foreach (var packUserSalary in res.Data.PackUserSalaries) { List rowList = new List(); rowList.Add(packUserSalary.Date.ToString("yyyy-MM-dd")); rowList.Add(packUserSalary.PackUserName); rowList.Add(packUserSalary.TotalIncome.ToString("0.00")); foreach (var incomeItem in packUserSalary.IncomeItems) { rowList.Add(incomeItem.TotalPrice.ToString()); } exportList.Add(string.Join(",", rowList)); } } //var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList(); //excelList.Insert(0, title); System.IO.File.WriteAllLines(fileName, exportList, Encoding.UTF8); } IsLoading = false; }); } } }