public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DistributeReqTypes reqTypes = (DistributeReqTypes)value; switch (reqTypes) { case DistributeReqTypes.PickAreaInit: return("拣料区铺线"); case DistributeReqTypes.ProductAreaInit: return("生产线边铺线"); case DistributeReqTypes.PickAreaDistribute: return("拣料区配送"); case DistributeReqTypes.MaterialMarketDistribute: return("物料超市配送"); case DistributeReqTypes.NullCartAreaDistribute: return("空料架缓冲区配送"); case DistributeReqTypes.ProductCartSwitch: return("生产线边料架转换"); case DistributeReqTypes.ProductNullCartBack: return("生产线边空料架返回"); case DistributeReqTypes.ProductOutToIn: return("生产线边外侧到里侧"); case DistributeReqTypes.ProductInToOut: return("生产线边里侧到外侧"); case DistributeReqTypes.BindPod: return("绑定货架"); case DistributeReqTypes.UnBindPod: return("解绑货架"); case DistributeReqTypes.PointToPointDistribute: return("点对点配送"); default: return(reqTypes.ToString()); } }
void DoSearch() { using (GeelyPtlEntities dbContext = new GeelyPtlEntities()) { DateTime minTime = this.datePickerMin.Value ?? DateTime.Today; DateTime maxTime = this.datePickerMax.Value ?? DateTime.Today.AddHours(23).AddMinutes(59).AddSeconds(59); IQueryable <DST_DistributeTask> queryable = dbContext.DST_DistributeTasks.Where(lt => lt.reqTime > minTime && lt.reqTime < maxTime); string sReqType = this.cmbReqType.Text; if (!string.IsNullOrEmpty(sReqType)) { DistributeReqTypes distributeReqTypes = ReqTextToTypeConvert(sReqType); queryable = queryable.Where(lt => lt.DistributeReqTypes == distributeReqTypes); } string sResponse = this.cmbIsResponse.Text; if (!string.IsNullOrEmpty(sResponse)) { bool IsResponse = false; if (sResponse.Equals("是")) { IsResponse = true; } else if (sResponse.Equals("否")) { IsResponse = false; } queryable = queryable.Where(lt => lt.isResponse == IsResponse); } string sArrive = this.cmbIsArrive.Text; if (!string.IsNullOrEmpty(sArrive)) { if (sArrive.Equals("是")) { queryable = queryable.Where(lt => lt.arriveTime != null); } else if (sArrive.Equals("否")) { queryable = queryable.Where(lt => lt.arriveTime == null); } } string sSendType = this.cmbSendType.Text; if (!string.IsNullOrEmpty(sSendType)) { queryable = queryable.Where(lt => lt.podDir.Equals(sSendType)); } List <DistributeTaskModel> distributeTaskModels = new List <DistributeTaskModel>(); foreach (DST_DistributeTask dstDistributeTask in queryable) { DistributeTaskModel distributeTaskModel = new DistributeTaskModel(); distributeTaskModel.ID = dstDistributeTask.ID; distributeTaskModel.reqCode = dstDistributeTask.reqCode; distributeTaskModel.reqTime = dstDistributeTask.reqTime; distributeTaskModel.clientCode = dstDistributeTask.clientCode; distributeTaskModel.tokenCode = dstDistributeTask.tokenCode; distributeTaskModel.taskTyp = dstDistributeTask.taskTyp; distributeTaskModel.userCallCode = dstDistributeTask.userCallCode; distributeTaskModel.taskGroupCode = dstDistributeTask.taskGroupCode; distributeTaskModel.startPosition = dstDistributeTask.startPosition; distributeTaskModel.endPosition = dstDistributeTask.endPosition; distributeTaskModel.podCode = dstDistributeTask.podCode; distributeTaskModel.podDir = dstDistributeTask.podDir; distributeTaskModel.priority = dstDistributeTask.priority; distributeTaskModel.robotCode = dstDistributeTask.robotCode; distributeTaskModel.taskCode = dstDistributeTask.taskCode; distributeTaskModel.data = dstDistributeTask.data; distributeTaskModel.DistributeReqTypes = dstDistributeTask.DistributeReqTypes; distributeTaskModel.isResponse = dstDistributeTask.isResponse; distributeTaskModel.arriveTime = dstDistributeTask.arriveTime; distributeTaskModel.sendErrorCount = dstDistributeTask.sendErrorCount; distributeTaskModel.IsChecked = false; distributeTaskModels.Add(distributeTaskModel); } //this.dataGrid.ItemsSource = queryable.ToList(); this.dataGrid.ItemsSource = distributeTaskModels; } }
/// <summary> /// 发送铺线任务 /// </summary> /// <returns></returns> public bool SendInitDistributeTask() { bool isSuccess = false; try { using (GeelyPtlEntities dbContext = new GeelyPtlEntities()) { List <DST_DistributeTask> distributeTasks = null; DistributeReqTypes distributeReqType = DistributeReqTypes.PickAreaInit; //获取未响应的铺线任务 if (distributeReqType == DistributeReqTypes.PickAreaInit) //拣料区铺线 { distributeTasks = dbContext.DST_DistributeTasks. Where(t => !t.isResponse && t.DistributeReqTypes == DistributeReqTypes.PickAreaInit && t.sendErrorCount < 5). OrderBy(t => t.reqTime).ToList(); } //if (distributeTasks.Count == 0) //{ // distributeReqType = DistributeReqTypes.ProductAreaInit; // if (distributeReqType == DistributeReqTypes.ProductAreaInit) //生产线边铺线 // { // distributeTasks = dbContext.DST_DistributeTasks. // Where(t => !t.isResponse && t.DistributeReqTypes == DistributeReqTypes.ProductAreaInit && t.sendErrorCount < 5). // OrderBy(t => t.reqTime).ToList(); // } //} if (distributeTasks.Count == 0) { return(false); } //已经设置成运输开始的寻车任务ID集合 //List<long> listNeedBlinkFndTask = new List<long>(); //发送信息 string sendInfo = ""; //AGV服务地址 string sURL = ptlToAgvServiceUrl + "/genAgvSchedulingTask"; //HTTP响应结果 string result = ""; foreach (DST_DistributeTask distributeTask in distributeTasks) { //绑定配送任务 DST_DistributeTaskDto distributeTaskDto = new DST_DistributeTaskDto(); distributeTaskDto.reqCode = distributeTask.reqCode; distributeTaskDto.reqTime = distributeTask.reqTime.ToString("yyyy-MM-dd HH:mm:ss"); distributeTaskDto.clientCode = distributeTask.clientCode; distributeTaskDto.tokenCode = distributeTask.tokenCode; distributeTaskDto.taskTyp = distributeTask.taskTyp; distributeTaskDto.userCallCode = distributeTask.userCallCode; distributeTaskDto.userCallCodePath = new List <string>(); distributeTaskDto.userCallCodePath.AddRange(new string[] { distributeTask.startPosition, distributeTask.endPosition }); distributeTaskDto.podCode = distributeTask.podCode; distributeTaskDto.robotCode = distributeTask.robotCode; distributeTaskDto.taskCode = distributeTask.taskCode; distributeTaskDto.data = distributeTask.data; //发送信息 sendInfo = JsonConvert.SerializeObject(distributeTaskDto); //发送HTTP请求,并返回响应结果 result = HttpService.HttpPost(sURL, sendInfo); if (string.IsNullOrEmpty(result)) { isSuccess = false; distributeTask.sendErrorCount = distributeTask.sendErrorCount + 1; } else { //实例化HTTP响应结果 DST_DistributeTaskResultDto distributeTaskResultDto = JsonConvert.DeserializeObject <DST_DistributeTaskResultDto>(result); if (distributeTaskResultDto == null) { isSuccess = false; distributeTask.sendErrorCount = distributeTask.sendErrorCount + 1; } else { //新增配送任务结果 DST_DistributeTaskResult distributeTaskResult = new DST_DistributeTaskResult(); distributeTaskResult.code = distributeTaskResultDto.code; distributeTaskResult.message = distributeTaskResultDto.message; distributeTaskResult.reqCode = distributeTaskResultDto.reqCode; distributeTaskResult.data = distributeTaskResultDto.data; distributeTaskResult.receiveTime = DateTime.Now; dbContext.DST_DistributeTaskResults.Add(distributeTaskResult); //更新配送任务响应值 if (distributeTaskResultDto.code.Equals("0")) { distributeTask.isResponse = true; //if (distributeTask.DistributeReqTypes == DistributeReqTypes.ProductAreaInit) //{ // string sWorkStationCode = distributeTask.startPosition; // FND_Task fndTask = dbContext.FND_Tasks.Where(t => t.CFG_WorkStation.Code.Equals(sWorkStationCode) // && (t.FindingStatus == FindingStatus.New || t.FindingStatus == FindingStatus.NeedDisplay || t.FindingStatus == FindingStatus.Displaying) // && (t.CFG_Cart.CartStatus == CartStatus.NeedToWorkStation || t.CFG_Cart.CartStatus == CartStatus.WaitingToWorkStation) // && !listNeedBlinkFndTask.Contains(t.Id)). // OrderBy(t => t.BatchCode).ThenByDescending(t => t.FindingStatus).FirstOrDefault(); // if (fndTask != null) // { // if (fndTask.FindingStatus == FindingStatus.New) // { // fndTask.CFG_EmployeeId = 1; // fndTask.DisplayTime = DateTime.Now; // fndTask.CFG_Cart.CartStatus = CartStatus.WaitingToWorkStation; // } // fndTask.FindingStatus = FindingStatus.NeedBlink; // fndTask.CFG_Cart.CartStatus = CartStatus.InCarriageToWorkStation; // listNeedBlinkFndTask.Add(fndTask.Id); // } //} } else { distributeTask.sendErrorCount = distributeTask.sendErrorCount + 1; } } } } //更新数据库 isSuccess = dbContext.SaveChanges() > 0 ? true : false; } } catch (Exception) { isSuccess = false; } return(isSuccess); }