Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 3
0
        /// <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);
        }