private List <CommodityCode> GetCompareSimpleCommodity(HashSet <string> preCommodityEpsCollect, HashSet <string> afterCommodityEpsCollect) { var commodityCodes = new List <CommodityCode>(); foreach (string currentEps in afterCommodityEpsCollect) { if (!preCommodityEpsCollect.Contains(currentEps)) { commodityCodes.Add(new CommodityCode { name = currentEps, //TODO: 需要关联当前本地的设备,货位,库房id EquipmentId = ApplicationState.GetEquipId(), EquipmentName = ApplicationState.GetEquipName(), operate_type = (int)OperateType.入库 }); } } foreach (string currentEps in preCommodityEpsCollect) { if (!afterCommodityEpsCollect.Contains(currentEps)) { commodityCodes.Add(new CommodityCode { name = currentEps, operate_type = (int)OperateType.出库 }); } } return(commodityCodes); }
/// <summary> /// 根据拣货单号获取商品详情 /// </summary> /// <param name="pickTaskName"></param> /// <returns></returns> public BaseData <PickCommodity> GetPickTaskCommodityDetail(BaseData <PickTask> baseDataPickTask) { //校验是否含有数据,如果含有数据,拼接具体字段 BaseData <PickCommodity> baseDataPickTaskCommodityDetail = HttpHelper.GetInstance().ResultCheck((HttpHelper hh) => { //var pickTaskIds = baseDataPickTask.body.objects.Select(it => it.id).ToList(); return(hh.Get <PickCommodity>(new QueryParam { //@in = //{ // field = "PickTaskId", // in_list = BllHelper.ParamUrlEncode(pickTaskIds) //} view_filter = { filter = { //logical_relation = "1 AND 2 AND 3", logical_relation = "1 AND 2", expressions = { //这种写法有问题,暂时把这个条件删除,在后面过滤 //new QueryParam.Expressions //{ // field = "PickTaskId", // @operator = "INRANGE", // operands = BllHelper.OperandsProcess(pickTaskIds) //}, new QueryParam.Expressions { field = "StoreHouseId", @operator = "==", operands ={ $"'{ HttpUtility.UrlEncode(ApplicationState.GetHouseId()) }'" } }, new QueryParam.Expressions { field = "EquipmentId", @operator = "==", operands ={ $"'{ HttpUtility.UrlEncode(ApplicationState.GetEquipId()) }'" } } } } } })); }, baseDataPickTask); //baseDataPickTaskCommodityDetail.body.objects = baseDataPickTaskCommodityDetail.body.objects.Where(it => it.EquipmentId == ApplicationState.GetValue<string>((int)ApplicationKey.EquipId)).ToList(); HttpHelper.GetInstance().ResultCheck(baseDataPickTask, out bool isSuccess); HttpHelper.GetInstance().ResultCheck(baseDataPickTaskCommodityDetail, out bool isSuccess1); if (isSuccess && isSuccess1) { var pickTaskIds = baseDataPickTask.body.objects.Select(it => it.id).ToList(); baseDataPickTaskCommodityDetail.body.objects = baseDataPickTaskCommodityDetail.body.objects.Where(it => pickTaskIds.Contains(it.PickTaskId)).ToList(); } return(baseDataPickTaskCommodityDetail); }
public static HashSet <CommodityEps> GetEpcDataJsonInventory(out bool isGetSuccess) { isGetSuccess = true; string com1 = ApplicationState.GetMRfidCOM(); var ret = new HashSet <CommodityEps>() { new CommodityEps { CommodityCodeName = "RF00000327", EquipmentId = ApplicationState.GetEquipId(), EquipmentName = ApplicationState.GetEquipName(), StoreHouseId = ApplicationState.GetHouseId(), StoreHouseName = ApplicationState.GetHouseName(), GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1), GoodsLocationId = ApplicationState.GetCabIdByRFidCom(com1) }, new CommodityEps { CommodityCodeName = "RF00000333", EquipmentId = ApplicationState.GetEquipId(), EquipmentName = ApplicationState.GetEquipName(), StoreHouseId = ApplicationState.GetHouseId(), StoreHouseName = ApplicationState.GetHouseName(), GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1), GoodsLocationId = ApplicationState.GetCabIdByRFidCom(com1) }, new CommodityEps { CommodityCodeName = "RF00000324", EquipmentId = ApplicationState.GetEquipId(), EquipmentName = ApplicationState.GetEquipName(), StoreHouseId = ApplicationState.GetHouseId(), StoreHouseName = ApplicationState.GetHouseName(), GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1), GoodsLocationId = ApplicationState.GetCabIdByRFidCom(com1) } }; return(ret); }
/// <summary> /// 通过【调拨上架任务】(AllotShelf.id=AllotShelfCommodity.AllotShelfId)从表格 【调拨上架商品明细】中查询获取调拨上架商品的列表信息 /// </summary> /// <param name="allotShelf"></param> /// <returns></returns> public BaseData <AllotShelfCommodity> GetShelfTaskCommodityDetail(AllotShelf allotShelf) { BaseData <AllotShelfCommodity> baseDataAllotShelfCommodity = HttpHelper.GetInstance().Get <AllotShelfCommodity>(new QueryParam { view_filter = { filter = { logical_relation = "1 AND 2 AND 3", expressions = { new QueryParam.Expressions { field = "AllotShelfId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(allotShelf.id) }'" } }, new QueryParam.Expressions { field = "StoreHouseId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetHouseId()) }'" } }, new QueryParam.Expressions { field = "EquipmentId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetEquipId()) }'" } } } } } }); //校验是否含有数据,如果含有数据,拼接具体字段 HttpHelper.GetInstance().ResultCheck(baseDataAllotShelfCommodity, out bool isSuccess); if (isSuccess) { baseDataAllotShelfCommodity.body.objects.ForEach(it => { ///按理说根据该条件查询出来的商品设备名称和库房名称已经固定 ////拼接设备名字 //if (!string.IsNullOrEmpty(it.EquipmentId)) //{ // it.EquipmentName = GetNameById<Equipment>(it.EquipmentId); //} it.EquipmentName = HttpUtility.UrlEncode(ApplicationState.GetEquipName()); ////拼接库房名字 //if (!string.IsNullOrEmpty(it.StoreHouseId)) //{ // it.StoreHouseName = GetNameById<StoreHouse>(it.StoreHouseId); //} it.StoreHouseName = HttpUtility.UrlEncode(ApplicationState.GetHouseName()); //拼接商品码名称 if (!string.IsNullOrEmpty(it.CommodityCodeId)) { it.CommodityCodeName = GetNameById <CommodityCode>(it.CommodityCodeId); } //拼接货位名字 if (!string.IsNullOrEmpty(it.GoodsLocationId)) { it.GoodsLocationName = GetNameById <GoodsLocation>(it.GoodsLocationId); } //拼接商品名字 if (!string.IsNullOrEmpty(it.CommodityId)) { it.CommodityName = GetNameById <Commodity>(it.CommodityId); } }); } return(baseDataAllotShelfCommodity); }
/// <summary> /// 根据eps json获取eps对象数据 /// </summary> /// <param name="isGetSuccess"></param> /// <returns></returns> public static HashSet <CommodityEps> GetEpcDataJson(out bool isGetSuccess) { isGetSuccess = true; //string com1 = "COM1"; string com1 = ApplicationState.GetMRfidCOM(); HashSet <string> com1HashSet = new HashSet <string>(); string log = ""; #if DUALCAB //string com4 = "COM4"; string com4 = ApplicationState.GetSRfidCOM(); HashSet <string> com4HashSet = new HashSet <string>(); #endif HashSet <CommodityEps> currentEpcDataHs = new HashSet <CommodityEps>(); //TODO:需要补充id GClient com1ClientConn = CreateClientConn(com1, "115200", out bool isCom1Connect); if (isCom1Connect) { com1HashSet = DealComData(com1ClientConn, com1, out isGetSuccess); } else { isGetSuccess = false; } #if DUALCAB GClient com4ClientConn = CreateClientConn(com4, "115200", out bool isCom4Connect); if (isCom4Connect) { com4HashSet = DealComData(com4ClientConn, com4, out isGetSuccess); } else { isGetSuccess = false; } #endif WaitHandle.WaitAll(manualEvents.ToArray()); manualEvents.Clear(); //提取com1的标签epc,并组装 foreach (string rfid in com1HashSet) { CommodityEps commodityEps = new CommodityEps { CommodityCodeName = $"RF{rfid.Substring(rfid.Length - 8)}", EquipmentId = ApplicationState.GetEquipId(), EquipmentName = ApplicationState.GetEquipName(), StoreHouseId = ApplicationState.GetHouseId(), StoreHouseName = ApplicationState.GetHouseName(), GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1), GoodsLocationId = ApplicationState.GetCabIdByRFidCom(com1) }; currentEpcDataHs.Add(commodityEps); LogUtils.Debug(commodityEps.CommodityCodeName + commodityEps.CommodityName); log += commodityEps.CommodityCodeName + " "; } #if DUALCAB //提取com4的标签epc,并组装 foreach (string rfid in com4HashSet) { CommodityEps commodityEps = new CommodityEps { CommodityCodeName = $"RF{rfid.Substring(rfid.Length - 8)}", EquipmentId = ApplicationState.GetEquipId(), EquipmentName = ApplicationState.GetEquipName(), StoreHouseId = ApplicationState.GetHouseId(), StoreHouseName = ApplicationState.GetHouseName(), GoodsLocationName = ApplicationState.GetCabNameByRFidCom(com1), GoodsLocationId = ApplicationState.GetCabIdByRFidCom(com1) }; currentEpcDataHs.Add(commodityEps); LogUtils.Debug(commodityEps.CommodityCodeName + commodityEps.CommodityName); log += commodityEps.CommodityCodeName + " "; } #endif Task.Factory.StartNew(a => { LogUtils.Debug(log); }, log); LogUtils.Debug("RFID NUM:" + currentEpcDataHs.Count()); return(currentEpcDataHs); }
/// <summary> /// 检测并变更手术类【有单领用】领用状态,和商品变动状态明细 /// </summary> /// <param name="baseDataCommodityCode"></param> /// <param name="order"></param> /// <param name="operationDetail"></param> /// <returns></returns> public void GetOperationOrderChangeWithOrder(BaseData <CommodityCode> baseDataCommodityCode, ConsumingOrder order, BaseData <ConsumingGoodsDetail> consumingGoodsDetail) { HttpHelper.GetInstance().ResultCheck(consumingGoodsDetail, out bool isSuccess); HttpHelper.GetInstance().ResultCheck(baseDataCommodityCode, out bool isSuccess1); if (isSuccess && isSuccess1) { //手术待领用商品明细 var operationDetails = consumingGoodsDetail.body.objects.Where(item => Convert.ToInt32(item.unusedAmount) != 0); //获取待领用商品CommodityId列表(去重后) var detailCommodityIds = operationDetails.Select(it => it.CommodityId).Distinct().ToList(); //变更后的Id列表 var commodityCodes = baseDataCommodityCode.body.objects; //是否主单异常 var IsException = false; commodityCodes.ForEach(it => { if (it.operate_type == (int)OperateType.入库) { it.AbnormalDisplay = AbnormalDisplay.异常.ToString(); IsException = true; } else { if (detailCommodityIds.Contains(it.CommodityId)) { if (it.QualityStatus == QualityStatusType.过期.ToString() || it.InventoryStatus == CommodityInventoryChangeStatus.待回收.ToString()) { it.AbnormalDisplay = AbnormalDisplay.异常.ToString(); IsException = true; } else { it.AbnormalDisplay = AbnormalDisplay.正常.ToString(); } } else { it.AbnormalDisplay = AbnormalDisplay.异常.ToString(); IsException = true; } } }); if (IsException) { order.Status = ConsumingOrderStatus.异常.ToString(); } else { //变动商品明细CommodityId列表(去重后) var baseDataCommodityIds = commodityCodes.Select(it => it.CommodityId).Distinct().ToList(); //是否名称全部一致 bool isAllContains = detailCommodityIds.All(baseDataCommodityIds.Contains) && baseDataCommodityIds.Count == detailCommodityIds.Count; bool isAllNormal = true; bool isAllSame = true; // foreach (ConsumingGoodsDetail ccd in operationDetails) { //详情对应的Commodity领用数量 var tempCount = commodityCodes.Where(cit => cit.CommodityId == ccd.CommodityId).Count(); //任何一种商品的数量不一致 if (ccd.unusedAmount != null) { if (Convert.ToInt32(ccd.unusedAmount) < tempCount) { isAllNormal = false; break; } if (Convert.ToInt32(ccd.unusedAmount) != tempCount) { isAllSame = false; } } } //只有种类和数量完全一致的情况下,才会修改领用单状态 if (isAllContains && isAllNormal) { if (isAllSame) { BaseData <ConsumingGoodsDetail> bdConsumingGoodsDetail = GetAllOperationOrderGoodsDetail(order); HttpHelper.GetInstance().ResultCheck(bdConsumingGoodsDetail, out bool isSuccess2); if (isSuccess2) { if (bdConsumingGoodsDetail.body.objects.Where(item => Convert.ToInt32(item.unusedAmount) != 0 && item.EquipmentId != ApplicationState.GetEquipId()).Count() == 0) { order.Status = ConsumingOrderStatus.已完成.ToString(); } else { order.Status = ConsumingOrderStatus.领用中.ToString(); } } else { LogUtils.Error("GetOperationOrderChangeWithOrder: GetAllOperationOrderGoodsDetail" + bdConsumingGoodsDetail.message); } } else { order.Status = ConsumingOrderStatus.领用中.ToString(); } } else { order.Status = ConsumingOrderStatus.异常.ToString(); } } } }
public Task Execute(IJobExecutionContext context) { LogUtils.Debug("GetInventoryPlanJoB进入"); var baseDataInventoryPlan = InventoryTaskBll.GetInstance().GetInventoryPlanByEquipmnetNameOrId(ApplicationState.GetEquipId()); //校验是否含有数据,如果含有数据,进行后续操作 HttpHelper.GetInstance().ResultCheck(baseDataInventoryPlan, out bool isSuccess); if (isSuccess) { var inventoryPlans = baseDataInventoryPlan.body.objects; CustomizeScheduler.GetInstance().SchedulerStartOrUpdateOrDeleteByPlans(inventoryPlans).Wait(); //cronStr = "0 44 11 * * ?"; } else { LogUtils.Error($"拉取盘点定时计划失败!"); } return(null); }
/// <summary> /// 来源单据解析为【⼿手术单管理理】(ConsumingOrder.SourceBill.object_name=‘OperationOrder’ ): /// 通过【领⽤单id】(ConsumingGoodsDetail.ConsumingOrderId =ConsumingOrder.Id)从表格 【领⽤单商品明细】中查询获取领⽤商品的列表信息 /// </summary> /// <param name="baseDataConsumingOrder"></param> /// <returns></returns> public BaseData <ConsumingGoodsDetail> GetOperationOrderGoodsDetail(BaseData <ConsumingOrder> baseDataConsumingOrder) { //校验是否含有数据,如果含有数据,拼接具体字段 HttpHelper.GetInstance().ResultCheck(baseDataConsumingOrder, out bool isSuccess); if (!isSuccess) { return(new BaseData <ConsumingGoodsDetail>() { code = (int)ResultCode.Parameter_Exception, message = ResultCode.Parameter_Exception.ToString() }); } if (!"OperationOrder".Equals(baseDataConsumingOrder.body.objects[0].SourceBill.object_name)) { return(new BaseData <ConsumingGoodsDetail>() { code = (Int32)ResultCode.Business_Exception, message = ResultCode.Business_Exception.ToString() }); } //根据领用单ID获取领用上列表信息 BaseData <ConsumingGoodsDetail> baseOperationOrderGoodsDetail = HttpHelper.GetInstance().ResultCheck((HttpHelper hh) => { return(hh.Get <ConsumingGoodsDetail>(new QueryParam { view_filter = { filter = { logical_relation = "1 AND 2", expressions = { new QueryParam.Expressions { field = "ConsumingOrderId", @operator = "==", operands ={ $"'{ HttpUtility.UrlEncode(baseDataConsumingOrder.body.objects[0].id) }'" } }, new QueryParam.Expressions { field = "EquipmentId", @operator = "==", operands ={ $"'{ HttpUtility.UrlEncode(ApplicationState.GetEquipId()) }'" } } } } } })); }, baseDataConsumingOrder); //校验是否含有数据,如果含有数据,拼接具体字段 HttpHelper.GetInstance().ResultCheck(baseOperationOrderGoodsDetail, out bool isSuccess2); if (isSuccess2) { baseOperationOrderGoodsDetail.body.objects.ForEach(it => { //拼接商品码名称 if (!string.IsNullOrEmpty(it.CommodityId)) { it.CommodityName = GetNameById <Commodity>(it.CommodityId); } ; }); } return(baseOperationOrderGoodsDetail); }
/// <summary> /// 【手动盘点】获取盘点任务相关信息 /// 通过【盘点任务名称】从表格InvoentoryTask【盘点任务】中查询获取盘点任务id。 /// 通过【盘点任务单】(InventoryTask.id =InventoryOrder.InventoryTaskId)从表格【盘点单】中查询获得盘点单列列表 /// taskName 盘点任务名称 /// </summary> /// <param name="taskName"></param> /// <returns></returns> public BaseData <InventoryOrder> GetInventoryOrdersByInventoryTaskName(string taskName) { var task = GetInventoryTaskByInventoryTaskName(taskName); //校验是否含有数据,如果含有数据,拼接具体字段 HttpHelper.GetInstance().ResultCheck(task, out bool isSuccess); var orders = new BaseData <InventoryOrder>(); if (isSuccess) { //确认数据只有一条 if (!string.IsNullOrEmpty(task.body.objects[0].id)) //id = AQACQqweJ4wBAAAAXRA4vCD_sxWaDwQA { orders = HttpHelper.GetInstance().Get <InventoryOrder>(new QueryParam { view_filter = { filter = { logical_relation = "1 AND 2 AND 3 AND 4", expressions = { new QueryParam.Expressions { field = "InventoryTaskId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(task.body.objects[0].id) }'" } }, new QueryParam.Expressions { field = "Status", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(InventoryTaskStatus.待盘点.ToString()) }'" } }, new QueryParam.Expressions { field = "StoreHouseId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetHouseId()) }'" } }, new QueryParam.Expressions { field = "EquipmentId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetEquipId()) }'" } } } } } }); //校验是否含有数据,如果含有数据,拼接具体字段 HttpHelper.GetInstance().ResultCheck(orders, out bool isSuccess2); if (isSuccess2) { orders.body.objects.ForEach(order => { //根据所在盘点货位获取所在货位名称 if (!string.IsNullOrEmpty(order.GoodsLocationId)) { order.GoodsLocationName = GetNameById <GoodsLocation>(order.GoodsLocationId); } //根据所在设备编号查询设备名称 if (!string.IsNullOrEmpty(order.EquipmentId)) { order.EquipmentName = GetNameById <Equipment>(order.EquipmentId); } //根据盘点库房编号查询盘点库房名称 if (!string.IsNullOrEmpty(order.StoreHouseId)) { order.StoreHouseName = GetNameById <StoreHouse>(order.StoreHouseId); } }); } } } else { orders.code = task.code; orders.message = task.message; } return(orders); }
/// <summary> /// 【智能柜】 自动盘点更新盘点单管理和其商品明细 ,post请求为admintoken /// </summary> /// <param name="orders"></param> /// <returns></returns> public BasePostData <InventoryDetail> CreateInventoryOrderAndDetail(List <CommodityCode> commodityCodes) { BasePostData <InventoryDetail> inventoryDetailRet; if (null == commodityCodes || commodityCodes.Count <= 0) { inventoryDetailRet = new BasePostData <InventoryDetail>() { code = (int)ResultCode.Parameter_Exception, message = ResultCode.Parameter_Exception.ToString() }; return(inventoryDetailRet); } //创建盘点任务单 var inventoryTasks = HttpHelper.GetInstance().PostByAdminToken(new PostParam <InventoryTask>() { objects = { new InventoryTask { Status = InventoryTaskStatus.待确认.ToString() } } }); HttpHelper.GetInstance().ResultCheck(inventoryTasks, out bool isSuccess); if (isSuccess) { string now = GetDateTimeNow(); List <InventoryOrder> inventoryOrderList = new List <InventoryOrder>(); //分柜创建盘点任务 commodityCodes.Select(it => it.GoodsLocationId).Distinct().ToList().ForEach(goodsLocationId => { inventoryOrderList.Add(new InventoryOrder { ConfirmDate = now, InventoryTaskId = inventoryTasks.body[0].id, Status = InventoryOrderStatus.待盘点.ToString(), //创建盘点单状态为[待盘点] //TODO: 需要当前设备id,货位id和库房id GoodsLocationId = goodsLocationId, EquipmentId = ApplicationState.GetEquipId(), StoreHouseId = ApplicationState.GetHouseId(), Type = "自动创建" }); }); //创建盘点单 var inventoryOrders = HttpHelper.GetInstance().PostByAdminToken(new PostParam <InventoryOrder>() { objects = inventoryOrderList }); inventoryDetailRet = HttpHelper.GetInstance().ResultCheck((HttpHelper hh) => { BaseData <CommodityInventoryDetail> CommodityInventoryDetails = null; if (commodityCodes.Count > 0) { var commodityCodeIds = commodityCodes.Select(it => it.id).Distinct().ToList(); CommodityInventoryDetails = hh.Get <CommodityInventoryDetail>(new QueryParam { @in = { field = "CommodityCodeId", in_list = BllHelper.ParamUrlEncode(commodityCodeIds) } }); } if (CommodityInventoryDetails != null) { hh.ResultCheck(CommodityInventoryDetails, out bool isSuccessq); if (isSuccessq) { commodityCodes.ForEach(it => { it.CommodityInventoryId = CommodityInventoryDetails.body.objects.Where(cit => cit.CommodityCodeId == it.id).First().id; }); } } List <InventoryDetail> inventoryDetailList = new List <InventoryDetail>(); commodityCodes.ForEach(it => { inventoryDetailList.Add(new InventoryDetail { CommodityInventoryId = it.CommodityInventoryId, InventoryOrderId = inventoryOrders.body.Where(iit => iit.GoodsLocationId == it.GoodsLocationId).Select(iit => iit.id).First(), CommodityCodeId = it.id }); }); //创建盘名单明细列表 return(hh.PostByAdminToken(new PostParam <InventoryDetail>() { objects = inventoryDetailList })); }, inventoryOrders); //更新盘点单状态 if (inventoryDetailRet != null) { var orderIds = inventoryDetailRet.body.Select(it => it.InventoryOrderId).Distinct().ToList(); orderIds.ForEach(id => { var temp = inventoryOrders.body.Where(it => it.id.Equals(id)).First(); //temp.Status = InventoryOrderStatus.已完成.ToString(); //执行更新操作,异常状态记录日志,详情见方法体内部 UpdateInventoryOrderStatus(temp); }); } } else { inventoryDetailRet = new BasePostData <InventoryDetail>() { code = (int)ResultCode.Result_Exception, message = ResultCode.Result_Exception.ToString() }; } return(inventoryDetailRet); }
/// <summary> /// 结束操作 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void onEndOperation(object sender, RoutedEventArgs e) { if (isSuccess) { //获取没有上架商品的信息 List <string> codeIds = bdCommodityCode.body.objects.Select(item => item.id).ToList(); List <AllotShelfCommodity> list = bdCommodityDetail.body.objects.Where(item => item.Status == "未上架" || !codeIds.Contains(item.CommodityCodeId)).ToList(); //还有未上架的商品,让用户选择原因 if (list.Count > 0) { normalView.Visibility = Visibility.Hidden; abnormalView.Visibility = Visibility.Visible; } else { BaseData <AllotShelfCommodity> bdAllotShelfCommodity = AllotShelfBll.GetInstance().GetShelfTaskAllCommodityDetail(allotShelf); HttpHelper.GetInstance().ResultCheck(bdCommodityDetail, out bool isSuccess1); if (!isSuccess1) { MessageBox.Show("获取拣货任务单商品明细信息错误!" + bdCommodityDetail.message, "温馨提示", MessageBoxButton.OK); allotShelf.Status = AllotShelfStatusEnum.异常.ToString(); } else { int cnt = bdAllotShelfCommodity.body.objects.Where(item => item.Status == "未上架" && item.EquipmentId != ApplicationState.GetEquipId()).Count(); if (cnt > 0) { allotShelf.Status = AllotShelfStatusEnum.进行中.ToString(); } else { allotShelf.Status = AllotShelfStatusEnum.已完成.ToString(); } } } } bExit = (((Button)sender).Name == "YesAndExitBtn" ? true : false); EndOperation(bExit); }
/// <summary> /// 根据上架单号获取商品详情 /// </summary> /// <param name="shelfTaskName"></param> /// <returns></returns> public BaseData <ShelfTaskCommodityDetail> GetShelfTaskCommodityDetail(ShelfTask shelfTask) { BaseData <ShelfTaskCommodityDetail> baseDataShelfTaskCommodityDetail = HttpHelper.GetInstance().Get <ShelfTaskCommodityDetail>(new QueryParam { view_filter = { filter = { logical_relation = "1 AND 2 AND 3", expressions = { new QueryParam.Expressions { field = "ShelfTaskId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(shelfTask.id) }'" } }, new QueryParam.Expressions { field = "StoreHouseId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetHouseId()) }'" } }, new QueryParam.Expressions { field = "EquipmentId", @operator = "==", operands = { $"'{ HttpUtility.UrlEncode(ApplicationState.GetEquipId()) }'" } } } } } }); //校验是否含有数据,如果含有数据,拼接具体字段 HttpHelper.GetInstance().ResultCheck(baseDataShelfTaskCommodityDetail, out bool isSuccess); if (isSuccess) { baseDataShelfTaskCommodityDetail.body.objects.ForEach(it => { //拼接设备名字 if (!string.IsNullOrEmpty(it.EquipmentId)) { it.EquipmentName = GetNameById <Equipment>(it.EquipmentId); } //拼接库房名字 if (!string.IsNullOrEmpty(it.StoreHouseId)) { it.StoreHouseName = GetNameById <StoreHouse>(it.StoreHouseId); } //拼接货位名字 if (!string.IsNullOrEmpty(it.GoodsLocationId)) { it.GoodsLocationName = GetNameById <GoodsLocation>(it.GoodsLocationId); } //拼接商品名字 if (!string.IsNullOrEmpty(it.CommodityId)) { it.CommodityName = GetNameById <Commodity>(it.CommodityId); } }); } return(baseDataShelfTaskCommodityDetail); }