分支自 SuZhouGuanHong/TaiYuanTaiZhong

dengjunjie
2024-07-19 7a4c218909936721fe281737491d10efc7378e09
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs
@@ -54,19 +54,28 @@
                    //根据下料口的绑定信息查询对应工单,检测此工单是否已完成  å®Œæˆå³å¯å°†å…¶é€å…¥åº“
                    var work = workinfoRepository.Find(x => x.workOrder == item.Number && x.drawingNo == item.stationType && x.heatID == item.heatNumber && x.processCode == "17").FirstOrDefault();
                    var work = workinfoRepository.Find(x => x.workOrder == item.Number && x.drawingNo == item.stationType && x.heatID == item.heatNumber && x.processCode == "17").OrderByDescending(x => x.CreateTime).FirstOrDefault();
                    if (work == null)
                    {
                        item.remark = "触发入库任务,但未找到工单信息!";
                        item.location_state = LocationStateEnum.Abnormal.ToString();
                        stationinfoRepository.Update(item, true);
                        stationinfoRepository.Update(item, x => new { x.remark, x.location_state }, true);
                        continue;
                    }
                    var geometry = Pipeline.QueryMateriel(work.drawingNo);
                    if (geometry == null)
                    {
                        item.remark = "未找到车轮信息!";
                        item.location_state = LocationStateEnum.Abnormal.ToString();
                        stationinfoRepository.Update(item, x => new { x.remark, x.location_state }, true);
                        continue;
                    }
                    dt_stationinfo TargetLocation = null;
                    string tasktype = "";
                    if (item.quantity == 5)
                    //if (item.quantity == 5)
                    if (item.quantity == geometry.stackNoRange)
                    {
                        if (!string.IsNullOrEmpty(work.area) || item.stationCode.Contains("3"))
                            tasktype = "TaskType_OutsourceInbound";
@@ -74,58 +83,6 @@
                            tasktype = "TaskType_Inbound";
                        AGVTask.AddQueueTask(stationinfoRepository, agvtaskRepository, item, tasktype, work);
                        #region MyRegion
                        //if (/*(mesinfo.quantity <= 50 &&*/ !string.IsNullOrEmpty(work.area) || item.stationCode.Contains("3"))
                        //{
                        //    //todo å¯»æ‰¾å¯æ”¾è´§å¤–协放货台
                        //    tasktype = "TaskType_OutsourceInbound";
                        //    TargetLocation = GetEmptyLocation(stationinfoRepository);
                        //}
                        //else
                        //{
                        //    //todo:  è°ƒç”¨WMS接口创建任务
                        //    tasktype = "TaskType_Inbound";
                        //    TargetLocation = GetLocation.GetEmptyLocation(stationinfoRepository, work, item);
                        //}
                        //if (TargetLocation != null)
                        //{
                        //    dt_agvtask agvtask = new dt_agvtask()
                        //    {
                        //        agv_fromaddress = item.stationCode,
                        //        agv_id = Guid.NewGuid(),
                        //        agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"),
                        //        agv_grade = 1,
                        //        agv_createtime = DateTime.Now,
                        //        agv_taskstate = "Create",
                        //        agv_materielid = item.stationType,
                        //        agv_qty = item.quantity,
                        //        agv_tasktype = tasktype,
                        //        agv_toaddress = TargetLocation.stationCode,
                        //        agv_userid = "系统",
                        //        bindSN = item.bindSN,
                        //        agv_worktype = Convert.ToInt32(work.processCode),
                        //        agv_materbarcode = work.materialCode,
                        //        agv_Traytype = item.tray_type,
                        //        jobID = item.Number,
                        //        agv_TrayStatus = item.tray_status
                        //    };
                        //    agvtaskRepository.Add(agvtask, true);
                        //    item.location_state = LocationStateEnum.InBusy.ToString();
                        //    stationinfoRepository.Update(item, true);
                        //    TargetLocation.location_state = LocationStateEnum.InBusy.ToString();
                        //    TargetLocation.stationType = agvtask.agv_materielid;
                        //    TargetLocation.heatNumber = item.heatNumber;
                        //    TargetLocation.billetID = item.billetID;
                        //    TargetLocation.Number = agvtask.jobID;
                        //    stationinfoRepository.Update(TargetLocation, true);
                        //    WriteDBLog.Success("创建入库任务", $"任务编号:{agvtask.agv_tasknum}", "PCS");
                        //}
                        #endregion
                    }
                }
            }
@@ -408,17 +365,17 @@
            if (!Pipeline_client.IsConnected) throw new Exception("与链条机连接超时!");
            foreach (var item in target)
            {
                TargetLocation = stationinfoRepository.Find(x => x.stationCode == item && x.location_state == "Empty" /*LocationStateEnum.Empty.ToString()*/ && x.enable).FirstOrDefault();
                TargetLocation = stationinfoRepository.Find(x => x.stationCode == item && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).FirstOrDefault();
                var PalletSignal = Pipeline_client.ReadByOrder<Int16>("R_PalletSignal", item);//读取托盘信号:1:有,2无
                var MaterialSignal = Pipeline_client.ReadByOrder<Int16>("R_MaterialSignal", item);//读取货物信号:1:有,2无
                if (TargetLocation != null && PalletSignal == 2 && MaterialSignal == 2) return TargetLocation;
            }
            if (TargetLocation == null)
            {
                throw new Exception("外协入库口已满");
            }
            //if (TargetLocation == null)
            //{
            //    throw new Exception("外协入库口已满");
            //}
            return TargetLocation;
        }
        /// <summary>