|  |  | 
 |  |  |  | 
 |  |  |                     //æ ¹æ®ä¸æå£çç»å®ä¿¡æ¯æ¥è¯¢å¯¹åºå·¥åï¼æ£æµæ¤å·¥åæ¯å¦å·²å®æ  å®æå³å¯å°å
¶éå
¥åº | 
 |  |  |  | 
 |  |  |                     var work = workinfoRepository.Find(x => x.workOrder == item.Number && x.drawingNo == x.drawingNo && 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 /*|| CompeletedNum == 0*/) | 
 |  |  |  | 
 |  |  |                     //if (item.quantity == 5) | 
 |  |  |                     if (item.quantity == geometry.stackNoRange) | 
 |  |  |                     { | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                         if (/*(mesinfo.quantity <= 50 &&*/ !string.IsNullOrEmpty(work.area) || item.stationCode.Contains("3")) | 
 |  |  |                         { | 
 |  |  |                             //todo å¯»æ¾å¯æ¾è´§å¤åæ¾è´§å° | 
 |  |  |                         if (!string.IsNullOrEmpty(work.area) || item.stationCode.Contains("3")) | 
 |  |  |                             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"); | 
 |  |  |                         } | 
 |  |  |                         AGVTask.AddQueueTask(stationinfoRepository, agvtaskRepository, item, tasktype, work); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  | 
 |  |  |             { | 
 |  |  |                 WriteDBLog.Error("å建å
¥åºä»»å¡", $"é误信æ¯ï¼ {ex.Message}", "PCS"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  | 
 |  |  |             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æ  |