/// <summary> /// 根据上架单号获取任务单详情 /// </summary> /// <param name="shelfTaskName"></param> /// <returns></returns> public BaseData <AllotShelf> GetAllotShelfTask() { //获取待完成上架工单 BaseData <AllotShelf> baseDataShelfTask = HttpHelper.GetInstance().Get <AllotShelf>(new QueryParam { view_filter = { filter = { //logical_relation = "1 AND 2", logical_relation = "1", expressions = { //new QueryParam.Expressions //{ // field = "Status", // @operator = "==", // operands = {$"'{ HttpUtility.UrlEncode(ShelfTaskStatus.待上架.ToString()) }'" } //}, new QueryParam.Expressions { field = "Operator", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id) }'" } } } } } }); BaseData <AllotShelfCommodity> baseDataShelfTaskCommodityDetail = GetShelfTaskCommodityDetail(baseDataShelfTask); //校验是否含有数据 HttpHelper.GetInstance().ResultCheck(baseDataShelfTaskCommodityDetail, out bool isSuccess); if (isSuccess) { //WARING 这种做法只在单柜下才是完全正确,在多柜中需要修改 string id = ApplicationState.GetAllCabIds().ToList().First(); List <AllotShelf> taskList = new List <AllotShelf>(); var shelfTasks = baseDataShelfTask.body.objects.Where(item => item.Status != ShelfTaskStatus.已完成.ToString() && item.Status != ShelfTaskStatus.异常.ToString()).ToList(); var shelfTaskCommodityDetails = baseDataShelfTaskCommodityDetail.body.objects.Where(item => item.GoodsLocationId == id); shelfTasks.ForEach(it => { it.ShelfNumber = shelfTaskCommodityDetails.Where(sit => sit.AllotShelfId == it.id).Count(); if (it.ShelfNumber != 0) { it.GoodLocationName = ApplicationState.GetCabNameById(id); taskList.Add(it); } }); baseDataShelfTask.body.objects = taskList; } return(baseDataShelfTask); }
/// <summary> /// 根据拣货单号获取任务单详情 /// </summary> /// <param name="pickTaskName"></param> /// <returns></returns> public BaseData <PickTask> GetPickTask() { //获取待完成拣货工单 BaseData <PickTask> baseDataPickTask = HttpHelper.GetInstance().Get <PickTask>(new QueryParam { view_filter = { filter = { logical_relation = "1 AND 2", expressions = { new QueryParam.Expressions { field = "BillStatus", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(PickTaskStatus.待拣货.ToString()) }'" } }, new QueryParam.Expressions { field = "Operator", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetUserInfo().id) }'" } } } } } }); //校验是否含有数据 HttpHelper.GetInstance().ResultCheck(baseDataPickTask, out bool isSuccess0); if (isSuccess0) { BaseData <PickCommodity> baseDataPickTaskCommodityDetail = GetPickTaskCommodityDetail(baseDataPickTask); //校验是否含有数据 HttpHelper.GetInstance().ResultCheck(baseDataPickTaskCommodityDetail, out bool isSuccess); if (isSuccess) { //WARING 这种做法只在单柜下才是完全正确,在多柜中需要修改 string id = ApplicationState.GetAllCabIds().ToList().First(); List <PickTask> taskList = new List <PickTask>(); var pickTasks = baseDataPickTask.body.objects; var pickTaskCommodityDetails = baseDataPickTaskCommodityDetail.body.objects.Where(item => item.GoodsLocationId == id); pickTasks.ForEach(it => { //ids.ForEach(id => { // it.NeedPickTotalNumber = pickTaskCommodityDetails.Where(sit => sit.PickTaskId == it.id && sit.GoodsLocationId == id).GroupBy(sit => new { sit.PickTaskId, sit.GoodsLocationId }).Select(group => group.Sum(sit => (sit.Number - sit.PickNumber))).Single(); // if (it.NeedPickTotalNumber != 0) // { // it.GoodLocationName = ApplicationState.GetCabNameById(id); // taskList.Add(it); // } //}); it.NeedPickTotalNumber = pickTaskCommodityDetails.Where(sit => sit.PickTaskId == it.id).GroupBy(sit => sit.PickTaskId).Select(group => group.Sum(sit => (sit.Number - sit.PickNumber))).FirstOrDefault(); if (it.NeedPickTotalNumber != 0) { it.GoodLocationName = ApplicationState.GetCabNameById(id); taskList.Add(it); } }); baseDataPickTask.body.objects = taskList; } } return(baseDataPickTask); }