Browse Source

添加超时赔付

AddValidOverTime
506583276@qq.com 1 year ago
parent
commit
76f36566db
  1. 16
      BBWY.Client/APIServices/QiKu/PackTaskService.cs
  2. 8
      BBWY.Client/APIServices/QiKu/PackUserService.cs
  3. 4
      BBWY.Client/APIServices/QiKu/PackagingTaskService.cs
  4. 2
      BBWY.Client/App.xaml.cs
  5. 15
      BBWY.Client/GlobalContext.cs
  6. 11
      BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs
  7. 20
      BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerSalaryResponse.cs
  8. 22
      BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerTaskResponse.cs
  9. 16
      BBWY.Client/Models/APIModel/Response/PackagingTask/SearchPackagingTaskListResponse.cs
  10. 19
      BBWY.Client/Models/PackTask/PackTaskModel.cs
  11. 11
      BBWY.Client/Models/PackTask/ShopTotal.cs
  12. 18
      BBWY.Client/Models/PackUser/PackagingStile.cs
  13. 12
      BBWY.Client/Models/PackUser/PackerTaskModel.cs
  14. 8
      BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs
  15. 49
      BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs
  16. 53
      BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs
  17. 15
      BBWY.Client/ViewModels/PackerTask/PackerSalaryViewModel.cs
  18. 39
      BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs
  19. 4
      BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs
  20. 8
      BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs
  21. 53
      BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs
  22. 2
      BBWY.Client/Views/PackTask/PackDetailWindow.xaml
  23. 51
      BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml
  24. 51
      BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml
  25. 34
      BBWY.Client/Views/PackerTask/PackerPackCompletedControl.xaml
  26. 52
      BBWY.Client/Views/PackerTask/PackerSalaryControl.xaml
  27. 34
      BBWY.Client/Views/PackerTask/PackerWaitPackageControl.xaml
  28. 2
      BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs

16
BBWY.Client/APIServices/QiKu/PackTaskService.cs

@ -25,7 +25,7 @@ namespace BBWY.Client.APIServices
public ApiResponse<SearchTaskListResponse> SearchTaskList(string skuId = null, string taskId = null public ApiResponse<SearchTaskListResponse> SearchTaskListV2(string skuId = null, string taskId = null
, string spuId = null, string orderSn = null, , string spuId = null, string orderSn = null,
TaskState? TaskState = null, TaskState? TaskState = null,
int pageIndex = 1, int pageIndex = 1,
@ -35,7 +35,7 @@ namespace BBWY.Client.APIServices
{ {
return SendRequest<SearchTaskListResponse>(globalContext.QKApiHost, "api/PackTask/SearchTaskList", new return SendRequest<SearchTaskListResponse>(globalContext.QKApiHost, "api/PackTask/SearchTaskListV2", new
{ {
orderSn, orderSn,
@ -49,7 +49,7 @@ namespace BBWY.Client.APIServices
}, null, HttpMethod.Post); }, null, HttpMethod.Post);
} }
public ApiResponse<SearchTaskListResponse> SearchTaskList(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, public ApiResponse<SearchTaskListResponse> SearchTaskListV2(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null,
string spuId = null, string orderSn = null, string spuId = null, string orderSn = null,
TaskState? TaskState = null, TaskState? TaskState = null,
string ShopName = null, string ShopName = null,
@ -61,7 +61,7 @@ namespace BBWY.Client.APIServices
) )
{ {
return SendRequest<SearchTaskListResponse>(globalContext.QKApiHost, "api/PackTask/SearchTaskList", new return SendRequest<SearchTaskListResponse>(globalContext.QKApiHost, "api/PackTask/SearchTaskListV2", new
{ {
SkuTitle, SkuTitle,
SpuTitle, SpuTitle,
@ -212,7 +212,7 @@ namespace BBWY.Client.APIServices
//} //}
public ApiResponse<ShopTotalResponse> ShopTotalV2(string skuId, public ApiResponse<ShopTotalResponse> ShopTotalV3(string skuId,
string taskId, string taskId,
string shopId, string shopId,
DateTime? startTime, DateTime? startTime,
@ -223,7 +223,7 @@ namespace BBWY.Client.APIServices
int pageSize = 10 int pageSize = 10
) )
{ {
return SendRequest<ShopTotalResponse>(globalContext.QKApiHost, "api/PackTask/ShopTotalV2", new return SendRequest<ShopTotalResponse>(globalContext.QKApiHost, "api/PackTask/ShopTotalV3", new
{ {
shopId, shopId,
skuId, skuId,
@ -273,10 +273,10 @@ namespace BBWY.Client.APIServices
/// </summary> /// </summary>
/// <param name="orderId"></param> /// <param name="orderId"></param>
/// <returns></returns> /// <returns></returns>
public ApiResponse<TotalPackUserSalaryResponse> TotalPackUserSalary(string PackUserName = null, DateTime? StartTime = null, DateTime? EndTime = null, int PageIndex = 1 public ApiResponse<TotalPackUserSalaryResponse> TotalPackUserSalaryV1(string PackUserName = null, DateTime? StartTime = null, DateTime? EndTime = null, int PageIndex = 1
, int PageSize = 10) , int PageSize = 10)
{ {
return SendRequest<TotalPackUserSalaryResponse>(globalContext.QKApiHost, "api/PackTask/TotalPackUserSalary", new return SendRequest<TotalPackUserSalaryResponse>(globalContext.QKApiHost, "api/PackTask/TotalPackUserSalaryV1", new
{ {
PackUserName, PackUserName,
StartTime, StartTime,

8
BBWY.Client/APIServices/QiKu/PackUserService.cs

@ -18,7 +18,7 @@ namespace BBWY.Client.APIServices.QiKu
} }
public ApiResponse<SearchPackerTaskResponse> SearchPackerTask(PackTaskState? PackTaskState, string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, public ApiResponse<SearchPackerTaskResponse> SearchPackerTaskV2(PackTaskState? PackTaskState, string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null,
string spuId = null, string orderSn = null, string spuId = null, string orderSn = null,
string ShopName = null, string ShopName = null,
@ -29,7 +29,7 @@ namespace BBWY.Client.APIServices.QiKu
PackagingTaskExceptionState? PackagingTaskExceptionState =null PackagingTaskExceptionState? PackagingTaskExceptionState =null
) )
{ {
return SendRequest<SearchPackerTaskResponse>(globalContext.QKApiHost, $"api/PackUser/SearchPackerTask", return SendRequest<SearchPackerTaskResponse>(globalContext.QKApiHost, $"api/PackUser/SearchPackerTaskV2",
new new
{ {
PackTaskState, PackTaskState,
@ -64,10 +64,10 @@ namespace BBWY.Client.APIServices.QiKu
} }
public ApiResponse<SearchPackerSalaryResponse> SearchPackerSalary(DateTime? StartTime, DateTime? EndTime, int pageIndex = 1, public ApiResponse<SearchPackerSalaryResponse> SearchPackerSalaryV2(DateTime? StartTime, DateTime? EndTime, int pageIndex = 1,
int pageSize = 10) int pageSize = 10)
{ {
return SendRequest<SearchPackerSalaryResponse>(globalContext.QKApiHost, $"api/PackUser/SearchPackerSalary", return SendRequest<SearchPackerSalaryResponse>(globalContext.QKApiHost, $"api/PackUser/SearchPackerSalaryV2",
new new
{ {
UserId = globalContext.User.Id.ToString(), UserId = globalContext.User.Id.ToString(),

4
BBWY.Client/APIServices/QiKu/PackagingTaskService.cs

@ -16,7 +16,7 @@ namespace BBWY.Client.APIServices.QiKu
} }
public ApiResponse<SearchPackagingTaskListResponse> SearchPackagingTaskList(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null, public ApiResponse<SearchPackagingTaskListResponse> SearchPackagingTaskListV2(string WayBillNo = null, string SourceExpressName = null, string departmentName = null, string skuId = null, string taskId = null,
string spuId = null, string orderSn = null, string spuId = null, string orderSn = null,
PackagingTaskExceptionState? PackagingTaskExceptionState = null, PackagingTaskExceptionState? PackagingTaskExceptionState = null,
string ShopName = null, string ShopName = null,
@ -29,7 +29,7 @@ namespace BBWY.Client.APIServices.QiKu
) )
{ {
return SendRequest<SearchPackagingTaskListResponse>(globalContext.QKApiHost, "api/PackagingTask/SearchPackagingTaskList", new return SendRequest<SearchPackagingTaskListResponse>(globalContext.QKApiHost, "api/PackagingTask/SearchPackagingTaskListV2", new
{ {
SkuTitle, SkuTitle,
SpuTitle, SpuTitle,

2
BBWY.Client/App.xaml.cs

@ -75,7 +75,7 @@ namespace BBWY.Client
//userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjY4NDI2OTQyNTY0NTM2MzIwIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNzE4NTQxMDYzMzk3ODM4ODQ4LDE1MTY3MTUzNzI0NDU3MDAwOTYiLCJleHAiOjE3MzAyODcxNjh9.6vXadZWQfhnxbR3320RloKv3LqqbNdZ7wDDfO3tY_5U"; //userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjY4NDI2OTQyNTY0NTM2MzIwIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNzE4NTQxMDYzMzk3ODM4ODQ4LDE1MTY3MTUzNzI0NDU3MDAwOTYiLCJleHAiOjE3MzAyODcxNjh9.6vXadZWQfhnxbR3320RloKv3LqqbNdZ7wDDfO3tY_5U";
//齐越季夏 //齐越季夏
// userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjIyNzY3NTkzODM0MTU2MDMyIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNTE2NzE1MzcyNDQ1NzAwMDk2LDE3MTg1NDEwNjMzOTc4Mzg4NDgiLCJleHAiOjE3MzAyODcxNjh9.ZGBU0MoJbKdkgqe9x2e3l6q-AVZwfAkUwa3oB47PWhY"; //userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNjIyNzY3NTkzODM0MTU2MDMyIiwidGVhbUlkIjoiMTUxNjcxNTM3MjQ0NTcwMDA5NiIsInNvblRlYW1JZHMiOiIxNTE2NzE1MzcyNDQ1NzAwMDk2LDE3MTg1NDEwNjMzOTc4Mzg4NDgiLCJleHAiOjE3MzAyODcxNjh9.ZGBU0MoJbKdkgqe9x2e3l6q-AVZwfAkUwa3oB47PWhY";
//店铺自打包 //店铺自打包
// userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNzE5Nzc5OTU4MTYwNjI1NjY0IiwidGVhbUlkIjoiMTU0MDg4NTU3MDYyNzA0NzQyNCIsInNvblRlYW1JZHMiOiIxNzE4NTQxMDYzMzk3ODM4ODQ4IiwiZXhwIjoxNzMxNzI1NDA2fQ.VV6k8nDqTtQOY6_ma6QcX6geMU_kaswl16BGXF89so8"; // userToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxNzE5Nzc5OTU4MTYwNjI1NjY0IiwidGVhbUlkIjoiMTU0MDg4NTU3MDYyNzA0NzQyNCIsInNvblRlYW1JZHMiOiIxNzE4NTQxMDYzMzk3ODM4ODQ4IiwiZXhwIjoxNzMxNzI1NDA2fQ.VV6k8nDqTtQOY6_ma6QcX6geMU_kaswl16BGXF89so8";

15
BBWY.Client/GlobalContext.cs

@ -1,4 +1,5 @@
using BBWY.Client.Models; using BBWY.Client.Models;
using BBWY.Client.Models.PackUser;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Collections.Generic; using System.Collections.Generic;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
@ -19,7 +20,7 @@ namespace BBWY.Client
private string title; private string title;
public string Title { get=> title; set { Set(ref title, value); } } public string Title { get => title; set { Set(ref title, value); } }
@ -44,6 +45,18 @@ namespace BBWY.Client
/// </summary> /// </summary>
public List<string> ExpressNameList { get; set; } public List<string> ExpressNameList { get; set; }
/// <summary>
/// 打包赔付系数列表
/// </summary>
public List<PackagingStile> PackagingStileList { get; set; } = new List<PackagingStile>() {
new PackagingStile(){ MinNumber=0,MaxNumber=4,DisCount=0.1M},// 0<x<=4
new PackagingStile(){ MinNumber=4,MaxNumber=24,DisCount=0.15M},// 4<x<=8
new PackagingStile(){ MinNumber=24,MaxNumber=48,DisCount=0.2M},
new PackagingStile(){ MinNumber=48,MaxNumber=72,DisCount=0.3M},
new PackagingStile(){ MinNumber=72,MaxNumber=2147483647,DisCount=0.5M},
};
/// <summary> /// <summary>
/// JD客户端 /// JD客户端
/// </summary> /// </summary>

11
BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs

@ -139,6 +139,17 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask
/// 工序套餐任务量 /// 工序套餐任务量
/// </summary> /// </summary>
public int ProcessComboTaskCount { get; set; } public int ProcessComboTaskCount { get; set; }
/// <summary>
/// 赔付费用
/// </summary>
public decimal? CompensateFees { get; set; }
/// <summary>
/// 实际打包费用
/// </summary>
public decimal? ActualPackFees { get; set; }
} }
public class PackItemResponse public class PackItemResponse

20
BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerSalaryResponse.cs

@ -65,6 +65,16 @@ namespace BBWY.Client.Models.APIModel
/// 当日总日新 /// 当日总日新
/// </summary> /// </summary>
public decimal DaySalary { get; set; } public decimal DaySalary { get; set; }
/// <summary>
/// 超时赔付金额
/// </summary>
public decimal DayOverTimeCompensateFees { get; set; }
/// <summary>
/// 实际收益
/// </summary>
public decimal DayActualSalary { get; set; }
/// <summary> /// <summary>
/// 当日任务量 /// 当日任务量
/// </summary> /// </summary>
@ -95,5 +105,15 @@ namespace BBWY.Client.Models.APIModel
/// 任务件数 /// 任务件数
/// </summary> /// </summary>
public int TaskSkuItemCount { get; set; } public int TaskSkuItemCount { get; set; }
/// <summary>
/// 超时赔付金额
/// </summary>
public decimal OverTimeCompensateFees { get; set; }
/// <summary>
/// 实际收益
/// </summary>
public decimal ActualSalary { get; set; }
} }
} }

22
BBWY.Client/Models/APIModel/Response/PackUser/SearchPackerTaskResponse.cs

@ -179,6 +179,28 @@ namespace BBWY.Client.Models.APIModel
/// </summary> /// </summary>
public Models.PackagingTaskExceptionState PackagingTaskExceptionState { get; set; } public Models.PackagingTaskExceptionState PackagingTaskExceptionState { get; set; }
/// <summary>
/// 包装是否超时
/// </summary>
public bool IsPackOverTime { get; set; }
/// <summary>
/// 实际收益
/// </summary>
public decimal ActualIncome { get; set; }
/// <summary>
/// 赔付金额
/// </summary>
public string CompensationFee { get; set; }
/// <summary>
/// 打包任务耗时时长
/// </summary>
public string PackTaskDurationTime { get; set; }
} }
public class MarkMessageModel public class MarkMessageModel

16
BBWY.Client/Models/APIModel/Response/PackagingTask/SearchPackagingTaskListResponse.cs

@ -249,5 +249,21 @@ namespace BBWY.Client.Models.APIModel
public string AbortRemark { get; set; } public string AbortRemark { get; set; }
public string OrderId { get; set; } public string OrderId { get; set; }
/// <summary>
/// 实际收益
/// </summary>
public decimal ActualIncome { get; set; }
/// <summary>
/// 赔付金额
/// </summary>
public string CompensationFee { get; set; }
/// <summary>
/// 是否打包超时
/// </summary>
public bool IsPackOverTime { get; set; }
} }
} }

19
BBWY.Client/Models/PackTask/PackTaskModel.cs

@ -560,10 +560,12 @@ namespace BBWY.Client.Models
public decimal ConsumableFees { get; set; } public decimal ConsumableFees { get; set; }
private decimal packTotalFees;
/// <summary> /// <summary>
/// 总计 /// 总计
/// </summary> /// </summary>
public decimal PackTotalFees { get; set; } public decimal PackTotalFees { get => packTotalFees; set { Set(ref packTotalFees, value); } }
@ -602,6 +604,21 @@ namespace BBWY.Client.Models
/// </summary> /// </summary>
public string PackRemainTime { get => packRemainTime; set { Set(ref packRemainTime, value); } } public string PackRemainTime { get => packRemainTime; set { Set(ref packRemainTime, value); } }
private decimal actualIncome;
/// <summary>
/// 预估收益
/// </summary>
public decimal ActualIncome { get => actualIncome; set { Set(ref actualIncome, value); } }
private string compensationFee;
/// <summary>
/// 赔付金额
/// </summary>
public string CompensationFee { get => compensationFee; set { Set(ref compensationFee, value); } }
/// <summary> /// <summary>
/// 打包完成时间(超时时间) /// 打包完成时间(超时时间)
/// </summary> /// </summary>

11
BBWY.Client/Models/PackTask/ShopTotal.cs

@ -75,6 +75,17 @@ namespace BBWY.Client.Models.PackTask
/// 打包费用折扣价 /// 打包费用折扣价
/// </summary> /// </summary>
public decimal? PackDisCountFees { get; set; } public decimal? PackDisCountFees { get; set; }
/// <summary>
/// 赔付费用
/// </summary>
public decimal? CompensateFees { get; set; }
/// <summary>
/// 实际打包费用
/// </summary>
public decimal? ActualPackFees { get; set; }
///// <summary> ///// <summary>
///// 折扣类型 ///// 折扣类型
///// </summary> ///// </summary>

18
BBWY.Client/Models/PackUser/PackagingStile.cs

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace BBWY.Client.Models.PackUser
{
/// <summary>
/// 打包超时赔付系数
/// </summary>
public class PackagingStile
{
public int MinNumber { get; set; }
public int MaxNumber { get; set; }
public decimal DisCount { get; set; }
}
}

12
BBWY.Client/Models/PackUser/PackerTaskModel.cs

@ -46,6 +46,18 @@ namespace BBWY.Client.Models.PackUser
private decimal actualIncome ;
/// <summary>
/// 实际收益
/// </summary>
public decimal ActualIncome { get => actualIncome; set { Set(ref actualIncome, value); } }
private string compensationFee;
/// <summary>
/// 赔付金额
/// </summary>
public string CompensationFee { get => compensationFee; set { Set(ref compensationFee, value); } }
} }

8
BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs

@ -143,7 +143,7 @@ namespace BBWY.Client.ViewModels.PackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName, var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName,
SearchDepartment, 0, 0);//获取全部数据 SearchDepartment, 0, 0);//获取全部数据
if (res.Success) if (res.Success)
{ {
@ -219,7 +219,7 @@ namespace BBWY.Client.ViewModels.PackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName, var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, null, StartDate, EndDate, SearchShopName,
SearchDepartment, PageIndex, PageSize); SearchDepartment, PageIndex, PageSize);
if (res != null && res.Success) if (res != null && res.Success)
{ {
@ -241,7 +241,9 @@ namespace BBWY.Client.ViewModels.PackTask
ConsumableList = shopTotal.ConsumableList, ConsumableList = shopTotal.ConsumableList,
ProcessComboPrice = shopTotal.ProcessComboPrice, ProcessComboPrice = shopTotal.ProcessComboPrice,
ProcessComboTaskCount = shopTotal.ProcessComboTaskCount, ProcessComboTaskCount = shopTotal.ProcessComboTaskCount,
DiscountFoctor = shopTotal.DiscountFactor DiscountFoctor = shopTotal.DiscountFactor,
ActualPackFees=shopTotal.ActualPackFees,
CompensateFees=shopTotal.CompensateFees,
}; };
App.Current.Dispatcher.Invoke(() => App.Current.Dispatcher.Invoke(() =>

49
BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs

@ -974,7 +974,7 @@ namespace BBWY.Client.ViewModels.PackTask
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsQualityOverTime = false; item.IsQualityOverTime = false;
@ -1012,7 +1012,7 @@ namespace BBWY.Client.ViewModels.PackTask
//TimeSpan datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value); //TimeSpan datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsQualityOverTime = false; item.IsQualityOverTime = false;
@ -1072,7 +1072,7 @@ namespace BBWY.Client.ViewModels.PackTask
else if (TaskState == Models.TaskState.) else if (TaskState == Models.TaskState.)
{ {
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据 PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
var datas = packagingTaskService.SearchPackagingTaskList(skuId: SearchSkuId, taskId: SearchTaskId, spuId: SearchSpuId, orderSn: SearchOrderSn, PackagingTaskExceptionState: this.PackagingTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(), var datas = packagingTaskService.SearchPackagingTaskListV2(skuId: SearchSkuId, taskId: SearchTaskId, spuId: SearchSpuId, orderSn: SearchOrderSn, PackagingTaskExceptionState: this.PackagingTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(),
pageIndex: PageIndex, pageSize: PageSize); pageIndex: PageIndex, pageSize: PageSize);
@ -1145,7 +1145,7 @@ namespace BBWY.Client.ViewModels.PackTask
//var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now); //var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsPackOverTime = false; item.IsPackOverTime = false;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
@ -1154,6 +1154,20 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
item.IsPackOverTime = true; item.IsPackOverTime = true;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
//获取 datetime 的小时数 的绝对值
var hours = Math.Abs(datetime.TotalHours);
var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数
var discount = packagingStile?.DisCount ?? 0;
//赔付费用
var compensationFee = Math.Round(item.PackageFees * discount, 2);
item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}";
//实际收益
item.ActualIncome = item.PackageFees - compensationFee;
item.PackTotalFees = item.ActualIncome + item.ConsumableFees;
} }
} }
@ -1184,7 +1198,7 @@ namespace BBWY.Client.ViewModels.PackTask
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value);
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsPackOverTime = false; item.IsPackOverTime = false;
@ -1192,6 +1206,20 @@ namespace BBWY.Client.ViewModels.PackTask
else else
{ {
item.IsPackOverTime = true; item.IsPackOverTime = true;
//获取 datetime 的小时数 的绝对值
var hours = Math.Abs(datetime.TotalHours);
var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数
var discount = packagingStile?.DisCount ?? 0;
//赔付费用
var compensationFee = Math.Round(item.PackageFees * discount, 2);
item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}";
//实际收益
item.ActualIncome = item.PackageFees - compensationFee;
item.PackTotalFees = item.ActualIncome + item.ConsumableFees;
} }
} }
@ -1218,6 +1246,7 @@ namespace BBWY.Client.ViewModels.PackTask
}); });
item.ExpressOrderList = expressData.Data; item.ExpressOrderList = expressData.Data;
})); }));
@ -1239,7 +1268,7 @@ namespace BBWY.Client.ViewModels.PackTask
else else
{ {
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据 PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
var datas = packTaskService.SearchTaskList(SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, var datas = packTaskService.SearchTaskListV2(SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState,
PageIndex, PageSize); PageIndex, PageSize);
if (datas != null && datas.Data != null && datas.Success) if (datas != null && datas.Data != null && datas.Success)
{ {
@ -1335,7 +1364,7 @@ namespace BBWY.Client.ViewModels.PackTask
//var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now); //var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsScheduleOverTime = false; item.IsScheduleOverTime = false;
item.ScheduleRemainTime = OverTimeHelper.GetTimeString(datetime); item.ScheduleRemainTime = OverTimeHelper.GetTimeString(datetime);
@ -1488,7 +1517,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value);
//var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now); //var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsSealBoxOverTime = false; item.IsSealBoxOverTime = false;
item.SealBoxRemainTime = $"{datetime.Hours}小时{datetime.Minutes}分"; item.SealBoxRemainTime = $"{datetime.Hours}小时{datetime.Minutes}分";
@ -1576,7 +1605,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
//var datetime = item.SetPurchaseOrderOverTime.Value.Subtract(DateTime.Now); //var datetime = item.SetPurchaseOrderOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetPurchaseOrderOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetPurchaseOrderOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsFallWareOverTime = false; item.IsFallWareOverTime = false;
item.FallWareRemainTime = $"{datetime.Hours}小时{datetime.Minutes}分"; item.FallWareRemainTime = $"{datetime.Hours}小时{datetime.Minutes}分";
@ -1740,7 +1769,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
// var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now); // var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsWaitTransportOverTime = false; item.IsWaitTransportOverTime = false;
item.WaitTransportRemainTime = OverTimeHelper.GetTimeString(datetime); item.WaitTransportRemainTime = OverTimeHelper.GetTimeString(datetime);

53
BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs

@ -2101,7 +2101,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
// var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now); // var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsWaitTransportOverTime = false; item.IsWaitTransportOverTime = false;
item.WaitTransportRemainTime = OverTimeHelper.GetTimeString(datetime); item.WaitTransportRemainTime = OverTimeHelper.GetTimeString(datetime);
@ -2191,7 +2191,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
// var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now); // var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetWaybillNoOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetWaybillNoOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsSetWaybillNoOverTime = false; item.IsSetWaybillNoOverTime = false;
item.SetWaybillNoRemainTime = OverTimeHelper.GetTimeString(datetime); item.SetWaybillNoRemainTime = OverTimeHelper.GetTimeString(datetime);
@ -2269,7 +2269,7 @@ namespace BBWY.Client.ViewModels.PackTask
//var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now); //var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsSealBoxOverTime = false; item.IsSealBoxOverTime = false;
item.SealBoxRemainTime = OverTimeHelper.GetTimeString(datetime); item.SealBoxRemainTime = OverTimeHelper.GetTimeString(datetime);
@ -2436,7 +2436,7 @@ namespace BBWY.Client.ViewModels.PackTask
//else //else
// datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now); // datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now);
//item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); //item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
//if (datetime.TotalMilliseconds > 0) //if (datetime.TotalMilliseconds >= 0)
//{ //{
// item.IsQualityOverTime = false; // item.IsQualityOverTime = false;
@ -2449,7 +2449,7 @@ namespace BBWY.Client.ViewModels.PackTask
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsQualityOverTime = false; item.IsQualityOverTime = false;
@ -2488,7 +2488,7 @@ namespace BBWY.Client.ViewModels.PackTask
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value);
//datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value); //datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsQualityOverTime = false; item.IsQualityOverTime = false;
@ -2549,7 +2549,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据 PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
var datas = packagingTaskService.SearchPackagingTaskList(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.PackagingTaskExceptionState, SearchShopName, var datas = packagingTaskService.SearchPackagingTaskListV2(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.PackagingTaskExceptionState, SearchShopName,
PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, SearchPackUserName); PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, SearchPackUserName);
if (datas != null && datas.Data != null && datas.Success) if (datas != null && datas.Data != null && datas.Success)
@ -2594,6 +2594,8 @@ namespace BBWY.Client.ViewModels.PackTask
data.PackUser = string.Join("\r\n", item.PackUserName); data.PackUser = string.Join("\r\n", item.PackUserName);
} }
App.Current.Dispatcher.Invoke(new Action(() => App.Current.Dispatcher.Invoke(new Action(() =>
{ {
PackTaskList.Add(data); PackTaskList.Add(data);
@ -2620,7 +2622,7 @@ namespace BBWY.Client.ViewModels.PackTask
//var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now); //var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsPackOverTime = false; item.IsPackOverTime = false;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
@ -2629,6 +2631,21 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
item.IsPackOverTime = true; item.IsPackOverTime = true;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
//获取 datetime 的小时数 的绝对值
var hours = Math.Abs(datetime.TotalHours);
var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数
var discount = packagingStile?.DisCount ?? 0;
//赔付费用
var compensationFee = Math.Round(item.PackageFees * discount, 2);
item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}";
//实际收益
item.ActualIncome = item.PackageFees - compensationFee;
item.PackTotalFees = item.ActualIncome + item.ConsumableFees;
} }
} }
@ -2659,7 +2676,7 @@ namespace BBWY.Client.ViewModels.PackTask
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value);
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsPackOverTime = false; item.IsPackOverTime = false;
@ -2667,6 +2684,20 @@ namespace BBWY.Client.ViewModels.PackTask
else else
{ {
item.IsPackOverTime = true; item.IsPackOverTime = true;
//获取 datetime 的小时数 的绝对值
var hours = Math.Abs(datetime.TotalHours);
var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数
var discount = packagingStile?.DisCount ?? 0;
//赔付费用
var compensationFee = Math.Round(item.PackageFees * discount, 2);
item.CompensationFee = $"{Math.Round(item.PackageFees, 2)}*{discount}={compensationFee}";
//实际收益
item.ActualIncome = item.PackageFees - compensationFee;
item.PackTotalFees = item.ActualIncome + item.ConsumableFees;
} }
} }
@ -2719,7 +2750,7 @@ namespace BBWY.Client.ViewModels.PackTask
else else
{ {
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据 PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
var datas = packTaskService.SearchTaskList(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, SearchShopName, var datas = packTaskService.SearchTaskListV2(SearchWayBillNo, SearchExpressName, SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, SearchShopName,
PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, SearchPackUserName); PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, SearchPackUserName);
if (datas != null && datas.Data != null && datas.Success) if (datas != null && datas.Data != null && datas.Success)
@ -2801,7 +2832,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
//var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now); //var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsScheduleOverTime = false; item.IsScheduleOverTime = false;
item.ScheduleRemainTime = OverTimeHelper.GetTimeString(datetime); item.ScheduleRemainTime = OverTimeHelper.GetTimeString(datetime);

15
BBWY.Client/ViewModels/PackerTask/PackerSalaryViewModel.cs

@ -56,6 +56,15 @@ namespace BBWY.Client.ViewModels.PackerTask
public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } } public DateTime EndTime { get => endTime; set { Set(ref endTime, value); } }
//统计开始日期
public DateTime totalStartDate;
public DateTime TotalStartDate { get => totalStartDate; set { Set(ref totalStartDate, value); } }
//统计结束日期
public DateTime totalEndDate;
public DateTime TotalEndDate { get => totalEndDate; set { Set(ref totalEndDate, value); } }
public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } } public int PageIndex { get => pageIndex; set { Set(ref pageIndex, value); } }
public int PageSize { get => pageSize; set { Set(ref pageSize, value); } } public int PageSize { get => pageSize; set { Set(ref pageSize, value); } }
@ -109,13 +118,15 @@ namespace BBWY.Client.ViewModels.PackerTask
IsLoading = true; IsLoading = true;
try try
{ {
var res = packUserService.SearchPackerSalary(StartTime.Date, EndTime.Date, PageIndex, PageSize); var res = packUserService.SearchPackerSalaryV2(StartTime.Date, EndTime.Date, PageIndex, PageSize);
if (res != null && res.Success) if (res != null && res.Success)
{ {
OrderCount = res.Data.TotalCount; OrderCount = res.Data.TotalCount;
TotalSalary = res.Data.TotalSalary; TotalSalary = res.Data.TotalSalary;
TotalSkuItemCount = res.Data.TotalSkuItemCount; TotalSkuItemCount = res.Data.TotalSkuItemCount;
TotalTaskCount = res.Data.TotalTaskCount; TotalTaskCount = res.Data.TotalTaskCount;
TotalEndDate = EndTime.Date;
TotalStartDate = StartTime.Date;
App.Current.Dispatcher.Invoke(() => App.Current.Dispatcher.Invoke(() =>
{ {
PackUserSalaryList = res.Data.PackerDaySalaries; PackUserSalaryList = res.Data.PackerDaySalaries;
@ -169,7 +180,7 @@ namespace BBWY.Client.ViewModels.PackerTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 var res = packTaskService.TotalPackUserSalaryV1(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据
if (res.Success) if (res.Success)
{ {
//string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注";

39
BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs

@ -644,7 +644,7 @@ namespace BBWY.Client.ViewModels.PackerTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
var res = packUserService.SearchPackerTask(PackTaskState: PackTaskState, WayBillNo: SearchWayBillNo, SourceExpressName: SearchExpressName, var res = packUserService.SearchPackerTaskV2(PackTaskState: PackTaskState, WayBillNo: SearchWayBillNo, SourceExpressName: SearchExpressName,
departmentName: SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, SearchShopName, PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle, departmentName: SearchDepartment, SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, SearchShopName, PageIndex, PageSize, SearchSkuTitle, SearchSpuTitle,
PackagingTaskExceptionState PackagingTaskExceptionState
); );
@ -663,16 +663,15 @@ namespace BBWY.Client.ViewModels.PackerTask
if (PackTaskState == Models.PackTaskState.) if (PackTaskState == Models.PackTaskState.)
{ {
if (item.PackCompletionOverTime < item.PackCompletionTime)//超时 if (item.PackCompletionOverTime < item.PackCompletionTime)//超时
{ {
data.IsPackOverTime = true; data.IsPackOverTime = true;
data.PackRemainTime = OverTimeHelper.GetTimeString(item.PackCompletionTime.Value.Subtract(item.PackCompletionOverTime.Value)); data.PackRemainTime = OverTimeHelper.GetTimeString(PackTaskTimerHelper.AccountEffectiveRemainDuration(item.PackCompletionOverTime.Value, item.PackCompletionTime.Value));
} }
else else
{ {
data.IsPackOverTime = false; data.IsPackOverTime = false;
data.PackRemainTime = OverTimeHelper.GetTimeString(item.PackCompletionTime.Value.Subtract(item.SetPackUserTaskTime.Value)); data.PackRemainTime = data.PackTaskDurationTime;// OverTimeHelper.GetTimeString(PackTaskTimerHelper.AccountEffectiveRemainDuration(item.SetPackUserTaskTime.Value, item.PackCompletionTime.Value));
} }
} }
@ -690,11 +689,6 @@ namespace BBWY.Client.ViewModels.PackerTask
if (PackTaskState == Models.PackTaskState.) if (PackTaskState == Models.PackTaskState.)
{ {
if (PackagingTaskExceptionState == Models.PackagingTaskExceptionState.) if (PackagingTaskExceptionState == Models.PackagingTaskExceptionState.)
{ {
var packCompletedTasks = PackerTaskModelList.Where(p => p.TaskState == Models.TaskState. && p.PackCompletionOverTime != null && p.TaskAbortTime == null).ToList(); var packCompletedTasks = PackerTaskModelList.Where(p => p.TaskState == Models.TaskState. && p.PackCompletionOverTime != null && p.TaskAbortTime == null).ToList();
@ -710,16 +704,37 @@ namespace BBWY.Client.ViewModels.PackerTask
{ {
foreach (var item in packCompletedTasks) foreach (var item in packCompletedTasks)
{ {
var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now); var datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds >= 0)
{ {
item.IsPackOverTime = false; item.IsPackOverTime = false;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
//todo:超时赔付 包装超时赔付系数
}
else else
{ {
item.IsPackOverTime = true; item.IsPackOverTime = true;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
//获取 datetime 的小时数 的绝对值
var hours = Math.Abs(datetime.TotalHours);
var packagingStile = globalContext.PackagingStileList.SingleOrDefault(p => p.MinNumber < hours && p.MaxNumber >= hours);//获取折扣系数
var discount = packagingStile?.DisCount ?? 0;
//赔付费用
var compensationFee = Math.Round( item.PackerFee * discount,2);
item.CompensationFee = $"{Math.Round(item.PackerFee, 2)}*{discount}={compensationFee}";
//实际收益
item.ActualIncome = item.PackerFee - compensationFee;
} }
} }

4
BBWY.Client/ViewModels/TotalPackTask/PackUserSalaryViewModel.cs

@ -92,7 +92,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.TotalPackUserSalary(searchUserName, StartTime, EndTime, PageIndex, PageSize); var res = packTaskService.TotalPackUserSalaryV1(searchUserName, StartTime, EndTime, PageIndex, PageSize);
if (res != null && res.Success) if (res != null && res.Success)
{ {
OrderCount = res.Data.TotalCount; OrderCount = res.Data.TotalCount;
@ -142,7 +142,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.TotalPackUserSalary(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据 var res = packTaskService.TotalPackUserSalaryV1(SearchUserName, StartTime, EndTime, 0, 0);//获取全部数据
if (res.Success) if (res.Success)
{ {
//string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注";

8
BBWY.Client/ViewModels/TotalPackTask/ShopPackTaskTotalViewModel.cs

@ -129,7 +129,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null, var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null,
null, 0, 0);//获取全部数据 null, 0, 0);//获取全部数据
if (res.Success) if (res.Success)
{ {
@ -154,7 +154,7 @@ namespace BBWY.Client.ViewModels.TotalPackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
IsLoading = true; IsLoading = true;
var res = packTaskService.ShopTotalV2(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null, var res = packTaskService.ShopTotalV3(SearchSkuId, SearchTaskId, globalContext.User.Shop.ShopId.ToString(), StartDate, EndDate, null,
null, PageIndex, PageSize); null, PageIndex, PageSize);
if (res != null && res.Success) if (res != null && res.Success)
{ {
@ -176,7 +176,9 @@ namespace BBWY.Client.ViewModels.TotalPackTask
ConsumableList = shopTotal.ConsumableList, ConsumableList = shopTotal.ConsumableList,
ProcessComboPrice = shopTotal.ProcessComboPrice, ProcessComboPrice = shopTotal.ProcessComboPrice,
ProcessComboTaskCount = shopTotal.ProcessComboTaskCount, ProcessComboTaskCount = shopTotal.ProcessComboTaskCount,
DiscountFoctor = shopTotal.DiscountFactor DiscountFoctor = shopTotal.DiscountFactor,
ActualPackFees = shopTotal.ActualPackFees,
CompensateFees = shopTotal.CompensateFees,
}; };
App.Current.Dispatcher.Invoke(() => App.Current.Dispatcher.Invoke(() =>

53
BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs

@ -76,6 +76,12 @@ namespace BBWY.Client.Views.PackTask
string xaml = @" <Grid xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""> string xaml = @" <Grid xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
<Grid.ColumnDefinitions > <Grid.ColumnDefinitions >
<ColumnDefinition [:IsShopTotal:] /> <ColumnDefinition [:IsShopTotal:] />
<ColumnDefinition Width=""120""/>
<ColumnDefinition Width=""120""/>
<ColumnDefinition Width=""120""/>
<ColumnDefinition Width=""120""/>
<ColumnDefinition Width=""120""/>
<ColumnDefinition Width=""120""/>
[:Columns:] [:Columns:]
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
@ -145,13 +151,33 @@ namespace BBWY.Client.Views.PackTask
<RowDefinition Height=""*""/> <RowDefinition Height=""*""/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Border Width=""1"" HorizontalAlignment=""Left"" BorderBrush=""#D7D7D7"" Grid.RowSpan=""2"" BorderThickness=""0,0,1,0""/> <Border Width=""1"" HorizontalAlignment=""Left"" BorderBrush=""#D7D7D7"" Grid.RowSpan=""2"" BorderThickness=""0,0,1,0""/>
<TextBlock Text="""" Grid.Row=""0"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/> <TextBlock Text="""" Grid.Row=""0"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock Text=""[:PackFees:]"" Grid.Row=""1"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/> <TextBlock Text=""[:PackFees:]"" Grid.Row=""1"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
</Grid>"; </Grid>";
//赔付金额
string compensationFeesStr = @" <Grid Grid.Column=""5"" MinWidth=""84"" Grid.Row=""1"" Grid.RowSpan=""3"" >
<Grid.RowDefinitions>
<RowDefinition Height=""2*""/>
<RowDefinition Height=""*""/>
</Grid.RowDefinitions>
<Border Width=""1"" HorizontalAlignment=""Left"" BorderBrush=""#D7D7D7"" Grid.RowSpan=""2"" BorderThickness=""0,0,1,0""/>
<TextBlock Text="""" Grid.Row=""0"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock Text=""[:CompensationFees:]"" Grid.Row=""1"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
</Grid>";
//实际收益
string actualIncomeStr = @" <Grid Grid.Column=""6"" MinWidth=""84"" Grid.Row=""1"" Grid.RowSpan=""3"" >
<Grid.RowDefinitions>
<RowDefinition Height=""2*""/>
<RowDefinition Height=""*""/>
</Grid.RowDefinitions>
<Border Width=""1"" HorizontalAlignment=""Left"" BorderBrush=""#D7D7D7"" Grid.RowSpan=""2"" BorderThickness=""0,0,1,0""/>
<TextBlock Text="""" Grid.Row=""0"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock Text=""[:ActualIncome:]"" Grid.Row=""1"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
</Grid>";
string columnStr = "<ColumnDefinition Width=\"[:Width:]\"/>"; string columnStr = "<ColumnDefinition Width=\"[:Width:]\"/>";
string workProcess = "<TextBlock Text=\"包装服务\" Grid.Column=\"1\" Grid.ColumnSpan=\"[:ProcessCount:]\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"/>\r\n <Border Width=\"1\" HorizontalAlignment=\"Left\" BorderBrush=\"#D7D7D7\" Grid.Column=\"[:1+ProcessCount:]\" Grid.Row=\"0\" Grid.RowSpan=\"4\" BorderThickness=\"1,0,0,0\"/>\r\n "; string workProcess = "<TextBlock Text=\"包装服务\" Grid.Column=\"1\" Grid.ColumnSpan=\"[:ProcessCount:]\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"/>\r\n <Border Width=\"1\" HorizontalAlignment=\"Left\" BorderBrush=\"#D7D7D7\" Grid.Column=\"[:1+ProcessCount:]\" Grid.Row=\"0\" Grid.RowSpan=\"6\" BorderThickness=\"1,0,0,0\"/>\r\n ";
string consumableService = "<TextBlock Text=\"包装耗材\" Grid.Column=\"[:1+ProcessCount:]\" Grid.ColumnSpan=\"[:ConsumableCount:]\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"/>\r\n <Border Width=\"1\" HorizontalAlignment=\"Left\" BorderBrush=\"#D7D7D7\" Grid.Column=\"[:1+ProcessCount:+ConsumableCount]\" Grid.Row=\"0\" Grid.RowSpan=\"4\" BorderThickness=\"1,0,0,0\"/>\r\n "; string consumableService = "<TextBlock Text=\"包装耗材\" Grid.Column=\"[:1+ProcessCount:]\" Grid.ColumnSpan=\"[:ConsumableCount:]\" VerticalAlignment=\"Center\" HorizontalAlignment=\"Center\"/>\r\n <Border Width=\"1\" HorizontalAlignment=\"Left\" BorderBrush=\"#D7D7D7\" Grid.Column=\"[:1+ProcessCount:+ConsumableCount]\" Grid.Row=\"0\" Grid.RowSpan=\"4\" BorderThickness=\"1,0,0,0\"/>\r\n ";
@ -197,20 +223,32 @@ namespace BBWY.Client.Views.PackTask
var consumableList = FeesItem.ConsumableList; var consumableList = FeesItem.ConsumableList;
var processCount = 4; var processCount = 6;
var consumableCount = consumableList.Count(); var consumableCount = consumableList.Count();
if (consumableCount > 0) if (consumableCount > 0)
{ {
consumableCount++; consumableCount++;
} }
columnStr = columnStr.Replace("[:Width:]", "*"); columnStr = columnStr.Replace("[:Width:]", "*");
var columnCount = consumableCount + processCount + 2;
var columnCount = consumableCount + 2;
StringBuilder columns = new StringBuilder(); StringBuilder columns = new StringBuilder();
for (int i = 1; i < columnCount; i++) for (int i = 1; i < columnCount; i++)
{ {
columns.AppendLine(columnStr); columns.AppendLine(columnStr);
} }
columnCount += processCount;
StringBuilder serviceData = new StringBuilder(); StringBuilder serviceData = new StringBuilder();
int allCount = consumableCount + processCount; int allCount = consumableCount + processCount;
@ -226,8 +264,13 @@ namespace BBWY.Client.Views.PackTask
serviceData.AppendLine(discountFactorStr.Replace("[:DiscountFactor:]", FeesItem.DiscountFoctor?.ToString())); serviceData.AppendLine(discountFactorStr.Replace("[:DiscountFactor:]", FeesItem.DiscountFoctor?.ToString()));
serviceData.AppendLine(processFeesStr.Replace("[:PackFees:]", FeesItem.PackFees.ToString("0.00"))); serviceData.AppendLine(processFeesStr.Replace("[:PackFees:]", FeesItem.PackFees.ToString("0.00")));
//赔付金额
serviceData.AppendLine(compensationFeesStr.Replace("[:CompensationFees:]", FeesItem.CompensateFees?.ToString("0.00")));
//实际收益
serviceData.AppendLine(actualIncomeStr.Replace("[:ActualIncome:]", FeesItem.ActualPackFees?.ToString("0.00")));
int rowIndex = 4; int rowIndex = 6;
if (consumableList.Count > 0) if (consumableList.Count > 0)
{ {

2
BBWY.Client/Views/PackTask/PackDetailWindow.xaml

@ -612,7 +612,7 @@
<ColumnDefinition/> <ColumnDefinition/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Margin="0 0 0 0" FontSize="15" FontWeight="Bold"> <TextBlock Margin="0 0 0 0" FontSize="15" FontWeight="Bold" TextWrapping="Wrap">
<Run Text="包装员:"/> <Run Text="包装员:"/>
<Run Text="{Binding PackUserName}"/> <Run Text="{Binding PackUserName}"/>
</TextBlock> </TextBlock>

51
BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml

@ -391,10 +391,53 @@
</Grid> </Grid>
<StackPanel Orientation="Vertical" Grid.Column="8" VerticalAlignment="Center"> <StackPanel Orientation="Vertical" Grid.Column="8" VerticalAlignment="Center">
<TextBlock Style="{StaticResource middleTextBlock}">
<Run Text="人工:"/> <StackPanel Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Collapsed:Visible}">
<Run Text="{Binding PackageFees,StringFormat=0.00}"/> <TextBlock Style="{StaticResource middleTextBlock}">
</TextBlock> <Run Text="人工:"/>
<Run Text="{Binding PackageFees,StringFormat=0.00}"/>
</TextBlock>
</StackPanel>
<StackPanel Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}" Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock Style="{StaticResource middleTextBlock}">
<Run Text="人工:"/>
<Run Text="{Binding ActualIncome,StringFormat=0.00}"/>
</TextBlock>
<Path x:Name="path_fees_name"
Style="{StaticResource path_question}"
Width="14" Margin="0,0,0,0" Fill="{StaticResource Text.Pink}"
ToolTipService.InitialShowDelay="0" ToolTipService.ShowDuration="20000"
>
<!--Visibility="{Binding FeesItemResponse,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible }"-->
<Path.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<Grid>
<StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}">
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="原收益:"/>
<TextBlock Text="{Binding PackageFees,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="超时赔付:"/>
<TextBlock Text="{Binding CompensationFee,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="预估收益:"/>
<TextBlock Text="{Binding ActualIncome,StringFormat=0.00}"/>
</StackPanel>
</StackPanel>
</Grid>
</ToolTip>
</Path.ToolTip>
</Path>
</StackPanel>
<TextBlock Style="{StaticResource middleTextBlock}" Margin="0 8 0 8"> <TextBlock Style="{StaticResource middleTextBlock}" Margin="0 8 0 8">
<Run Text="耗材:"/> <Run Text="耗材:"/>
<Run Text="{Binding ConsumableFees,StringFormat=0.00}"/> <Run Text="{Binding ConsumableFees,StringFormat=0.00}"/>

51
BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml

@ -425,10 +425,53 @@ Command="{Binding DataContext. UpdateShelvesNumberCommand,RelativeSource={Relati
</Grid> </Grid>
<StackPanel Orientation="Vertical" Grid.Column="8" VerticalAlignment="Center"> <StackPanel Orientation="Vertical" Grid.Column="8" VerticalAlignment="Center">
<TextBlock Style="{StaticResource middleTextBlock}">
<Run Text="人工:"/> <StackPanel Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Collapsed:Visible}">
<Run Text="{Binding PackageFees,StringFormat=0.00}"/> <TextBlock Style="{StaticResource middleTextBlock}">
</TextBlock> <Run Text="人工:"/>
<Run Text="{Binding PackageFees,StringFormat=0.00}"/>
</TextBlock>
</StackPanel>
<StackPanel Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}" Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock Style="{StaticResource middleTextBlock}">
<Run Text="人工:"/>
<Run Text="{Binding ActualIncome,StringFormat=0.00}"/>
</TextBlock>
<Path x:Name="path_fees_name"
Style="{StaticResource path_question}"
Width="14" Margin="0,0,0,0" Fill="{StaticResource Text.Pink}"
ToolTipService.InitialShowDelay="0" ToolTipService.ShowDuration="20000"
>
<!--Visibility="{Binding FeesItemResponse,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible }"-->
<Path.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<Grid>
<StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}">
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="原收益:"/>
<TextBlock Text="{Binding PackageFees,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="超时赔付:"/>
<TextBlock Text="{Binding CompensationFee,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="预估收益:"/>
<TextBlock Text="{Binding ActualIncome,StringFormat=0.00}"/>
</StackPanel>
</StackPanel>
</Grid>
</ToolTip>
</Path.ToolTip>
</Path>
</StackPanel>
<TextBlock Style="{StaticResource middleTextBlock}" Margin="0 8 0 8"> <TextBlock Style="{StaticResource middleTextBlock}" Margin="0 8 0 8">
<Run Text="耗材:"/> <Run Text="耗材:"/>
<Run Text="{Binding ConsumableFees,StringFormat=0.00}"/> <Run Text="{Binding ConsumableFees,StringFormat=0.00}"/>

34
BBWY.Client/Views/PackerTask/PackerPackCompletedControl.xaml

@ -170,7 +170,7 @@
<ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="200"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="200"/> <ColumnDefinition Width="200"/>
<ColumnDefinition MinWidth="100"/> <ColumnDefinition MinWidth="100"/>
@ -228,7 +228,7 @@
<ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140"/>
<ColumnDefinition MinWidth="100"/> <ColumnDefinition MinWidth="200"/>
<ColumnDefinition Width="150"/> <ColumnDefinition Width="150"/>
<ColumnDefinition MinWidth="200"/> <ColumnDefinition MinWidth="200"/>
<ColumnDefinition Width="0"/> <ColumnDefinition Width="0"/>
@ -259,7 +259,7 @@
<ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="200"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="200"/> <ColumnDefinition Width="200"/>
<ColumnDefinition MinWidth="100"/> <ColumnDefinition MinWidth="100"/>
@ -373,10 +373,30 @@
</Grid> </Grid>
<Grid Grid.Column="3" > <Grid Grid.Column="3" >
<TextBlock Style="{StaticResource middleTextBlock}"
Text="{Binding PackerFee,StringFormat=0.00}" <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Collapsed:Visible}">
TextWrapping="Wrap" <StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" >
/> <TextBlock Text="实际收益:"/>
<TextBlock Text="{Binding PackerFee,StringFormat=0.00}"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}">
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="原收益:"/>
<TextBlock Text="{Binding PackerFee,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="超时赔付:"/>
<TextBlock Text="{Binding CompensationFee,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="实际收益:"/>
<TextBlock Text="{Binding ActualIncome,StringFormat=0.00}"/>
</StackPanel>
</StackPanel>
</Grid> </Grid>
<Grid Grid.Column="4" > <Grid Grid.Column="4" >

52
BBWY.Client/Views/PackerTask/PackerSalaryControl.xaml

@ -113,9 +113,9 @@
</StackPanel> </StackPanel>
<TextBlock HorizontalAlignment="Left" Foreground="White" Grid.Row="1" Grid.ColumnSpan="3" Margin="20 0 0 0"> <TextBlock HorizontalAlignment="Left" Foreground="White" Grid.Row="1" Grid.ColumnSpan="3" Margin="20 0 0 0">
<Run Text="统计区间:"/> <Run Text="统计区间:"/>
<Run Text="{Binding StartTime,StringFormat=yyyy-MM-dd}"/> <Run Text="{Binding TotalStartDate,StringFormat=yyyy-MM-dd}"/>
<Run Text="至"/> <Run Text="至"/>
<Run Text="{Binding EndTime,StringFormat=yyyy-MM-dd}"/> <Run Text="{Binding TotalEndDate,StringFormat=yyyy-MM-dd}"/>
</TextBlock> </TextBlock>
</Grid> </Grid>
@ -125,7 +125,7 @@
<Grid Grid.Row="1" Width="555" HorizontalAlignment="Left"> <Grid Grid.Row="1" Width="770" HorizontalAlignment="Left">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="35"/> <RowDefinition Height="35"/>
<RowDefinition Height="*"/> <RowDefinition Height="*"/>
@ -139,14 +139,18 @@
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="日期" Grid.Column="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="日期" Grid.Column="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="花名" Grid.Column="2" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="花名" Grid.Column="2" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="收益" Grid.Column="3" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="原收益" Grid.Column="3" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="任务数" Grid.Column="4" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="超时赔付金额" Grid.Column="4" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="件数" Grid.Column="5" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="实际收益" Grid.Column="5" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="任务数" Grid.Column="6" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="件数" Grid.Column="7" Style="{StaticResource middleTextBlock}"/>
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="0" /> <Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="0" />
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="1" /> <Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="1" />
@ -154,8 +158,9 @@
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="3" /> <Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="3" />
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="4" /> <Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="4" />
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="5" /> <Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="5" />
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5" /> <Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="6" />
<Border Width="1" HorizontalAlignment="Left" Background="{StaticResource Border.Brush}" Grid.Column="7" />
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7" />
<Border Height="1" VerticalAlignment="Top" Grid.ColumnSpan="18" Background="{StaticResource Border.Brush}" Grid.Row="0"/> <Border Height="1" VerticalAlignment="Top" Grid.ColumnSpan="18" Background="{StaticResource Border.Brush}" Grid.Row="0"/>
<Border Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="18" Background="{StaticResource Border.Brush}" Grid.Row="0"/> <Border Height="1" VerticalAlignment="Bottom" Grid.ColumnSpan="18" Background="{StaticResource Border.Brush}" Grid.Row="0"/>
</Grid> </Grid>
@ -184,25 +189,33 @@
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<c:BButton Grid.Column="0" Panel.ZIndex="100" Background="Transparent" HorizontalAlignment="Stretch" BorderThickness="0" Grid.ColumnSpan="6" Command="{Binding HideCommand}" CommandParameter="{Binding}"/> <c:BButton Grid.Column="0" Panel.ZIndex="100" Background="Transparent" HorizontalAlignment="Stretch" BorderThickness="0" Grid.ColumnSpan="8" Command="{Binding HideCommand}" CommandParameter="{Binding}"/>
<Border Margin="8" Grid.Row="1" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" > <Border Margin="8" Grid.Row="1" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" >
<c:BButton HorizontalAlignment="Center" Grid.Column="0" Content="{Binding IsHide ,Converter={StaticResource objConverter},ConverterParameter=True:+:-}" Style="{StaticResource LinkButton}" Foreground="{StaticResource Border.Brush}" HorizontalContentAlignment="Center" /> <c:BButton HorizontalAlignment="Center" Grid.Column="0" Content="{Binding IsHide ,Converter={StaticResource objConverter},ConverterParameter=True:+:-}" Style="{StaticResource LinkButton}" Foreground="{StaticResource Border.Brush}" HorizontalContentAlignment="Center" />
</Border> </Border>
<TextBlock Text="{Binding Date,StringFormat=yyyy-MM-dd}" Grid.Column="1" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="{Binding Date,StringFormat=yyyy-MM-dd}" Grid.Column="1" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding UserName}" Grid.Column="2" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="{Binding UserName}" Grid.Column="2" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding DaySalary}" Grid.Column="3" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="{Binding DaySalary,StringFormat=0.00}" Grid.Column="3" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding DayTaskCount}" Grid.Column="4" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="{Binding DayOverTimeCompensateFees,StringFormat=0.00}" Grid.Column="4" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding DayTaskSkuItemCount}" Grid.Column="5" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="{Binding DayActualSalary,StringFormat=0.00}" Grid.Column="5" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding DayTaskCount}" Grid.Column="6" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding DayTaskSkuItemCount}" Grid.Column="7" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="0" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="0" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="1" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="7" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="8" Grid.Row="0"/>
</Grid> </Grid>
<Border Height="1" VerticalAlignment="Bottom" Background="{StaticResource Border.Brush}" Grid.Column="4" Grid.Row="0"/> <Border Height="1" VerticalAlignment="Bottom" Background="{StaticResource Border.Brush}" Grid.Column="6" Grid.Row="0"/>
<ListBox Name="listbox_orerSku" Grid.Row="1" Visibility="{Binding IsHide ,Converter={StaticResource objConverter},ConverterParameter=True:Collapsed:Visible}" <ListBox Name="listbox_orerSku" Grid.Row="1" Visibility="{Binding IsHide ,Converter={StaticResource objConverter},ConverterParameter=True:Collapsed:Visible}"
ItemsSource="{Binding PackerTaskSalaries}" ItemsSource="{Binding PackerTaskSalaries}"
@ -222,6 +235,8 @@ Foreground="{StaticResource Text.Color}"
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
@ -229,12 +244,15 @@ Foreground="{StaticResource Text.Color}"
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="2" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="3" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4" Grid.Row="0"/> <Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="4" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="5" Grid.Row="0"/>
<Border Width="1" HorizontalAlignment="Right" Background="{StaticResource Border.Brush}" Grid.Column="6" Grid.Row="0"/>
<TextBlock Text="{Binding TaskSalary,StringFormat=0.00}" Grid.Column="3" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding OverTimeCompensateFees,StringFormat=0.00}" Grid.Column="4" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding ActualSalary,StringFormat=0.00}" Grid.Column="5" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="{Binding TaskSalary}" Grid.Column="3" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <StackPanel Orientation="Horizontal" Grid.Column="6" Grid.Row="1" HorizontalAlignment="Center">
<StackPanel Orientation="Horizontal" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Center">
<TextBlock VerticalAlignment="Center" Text="ID:" Margin="16,0,0,0" /> <TextBlock VerticalAlignment="Center" Text="ID:" Margin="16,0,0,0" />
<c:BButton Content="{Binding TaskIdRemark}" Style="{StaticResource LinkButton}" HorizontalAlignment="Left" VerticalAlignment="Center" <c:BButton Content="{Binding TaskIdRemark}" Style="{StaticResource LinkButton}" HorizontalAlignment="Left" VerticalAlignment="Center"
Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" Command="{Binding DataContext.CopyTextCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
@ -243,7 +261,7 @@ Foreground="{StaticResource Text.Color}"
</StackPanel> </StackPanel>
<TextBlock Text="{Binding TaskSkuItemCount}" Grid.Column="5" Grid.Row="1" Style="{StaticResource middleTextBlock}"/> <TextBlock Text="{Binding TaskSkuItemCount}" Grid.Column="7" Grid.Row="1" Style="{StaticResource middleTextBlock}"/>
</Grid> </Grid>

34
BBWY.Client/Views/PackerTask/PackerWaitPackageControl.xaml

@ -171,7 +171,7 @@
<ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="200"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="200"/> <ColumnDefinition Width="200"/>
<ColumnDefinition MinWidth="100"/> <ColumnDefinition MinWidth="100"/>
@ -229,7 +229,7 @@
<ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="150"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="200"/> <ColumnDefinition Width="200"/>
<ColumnDefinition MinWidth="100"/> <ColumnDefinition MinWidth="100"/>
@ -261,7 +261,7 @@
<ColumnDefinition Width="300"/> <ColumnDefinition Width="300"/>
<ColumnDefinition Width="90"/> <ColumnDefinition Width="90"/>
<ColumnDefinition Width="140"/> <ColumnDefinition Width="140"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="200"/>
<ColumnDefinition Width="120"/> <ColumnDefinition Width="120"/>
<ColumnDefinition Width="200"/> <ColumnDefinition Width="200"/>
<ColumnDefinition MinWidth="100"/> <ColumnDefinition MinWidth="100"/>
@ -379,10 +379,30 @@
</Grid> </Grid>
<Grid Grid.Column="3" > <Grid Grid.Column="3" >
<TextBlock Style="{StaticResource middleTextBlock}"
Text="{Binding PackerFee,StringFormat=0.00}" <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Collapsed:Visible}">
TextWrapping="Wrap" <StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" >
/> <TextBlock Text="预估收益:"/>
<TextBlock Text="{Binding PackerFee,StringFormat=0.00}"/>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left" Visibility="{Binding IsPackOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}">
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="原收益:"/>
<TextBlock Text="{Binding PackerFee,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="超时赔付:"/>
<TextBlock Text="{Binding CompensationFee,StringFormat=0.00}"/>
</StackPanel>
<StackPanel Margin="20,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="预估收益:"/>
<TextBlock Text="{Binding ActualIncome,StringFormat=0.00}"/>
</StackPanel>
</StackPanel>
</Grid> </Grid>
<Grid Grid.Column="4" > <Grid Grid.Column="4" >

2
BBWY.Client/Views/TotalPackTask/PackUserSalaryControl.xaml.cs

@ -186,7 +186,7 @@ namespace BBWY.Client.Views.TotalPackTask
for (int j = 0; j < PackUserSalaries[i].IncomeItems.Count; j++) for (int j = 0; j < PackUserSalaries[i].IncomeItems.Count; j++)
{ {
var columnIndex = 4 + j;//[:HeaderPriceList:] var columnIndex = 4 + j;//[:HeaderPriceList:]
headerPriceListSB.AppendLine(serviceText.Replace("[:ServicePrice:]", PackUserSalaries[i].IncomeItems[j].TotalPrice.ToString()) headerPriceListSB.AppendLine(serviceText.Replace("[:ServicePrice:]", PackUserSalaries[i].IncomeItems[j].TotalPrice.ToString("0.00"))
.Replace("[:ColumnIndex:]", columnIndex.ToString()) .Replace("[:ColumnIndex:]", columnIndex.ToString())
.Replace("[:RowIndex:]", rowIndex.ToString())); .Replace("[:RowIndex:]", rowIndex.ToString()));

Loading…
Cancel
Save