代码管理/PCS/WCS_Client/src/api/http.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/新文件夹/GetLocation.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Client/src/api/http.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
´úÂë¹ÜÀí/PCS/WCS_Client/src/api/http.js
@@ -12,7 +12,7 @@ let loadingInstance; let loadingStatus = false; if (process.env.NODE_ENV == 'development') { axios.defaults.baseURL = 'http://192.168.12.101:8099/'; axios.defaults.baseURL = 'http://127.0.0.1:8099/'; } else if (process.env.NODE_ENV == 'debug') { axios.defaults.baseURL = 'http://192.168.12.101:8099/'; ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_Mes_Workinfo.cs
@@ -159,6 +159,36 @@ [Editable(true)] public string processCode { get; set; } /// <summary> ///宿æ°é /// </summary> [Display(Name = "宿æ°é")] [Column(TypeName = "int")] [Editable(true)] public int? finishNum { get; set; } /// <summary> ///å建æ¶é´ /// </summary> [Display(Name = "å建æ¶é´")] [Column(TypeName = "datetime")] public DateTime CreateTime { get; set; } /// <summary> ///宿æ¶é´ /// </summary> [Display(Name = "宿æ¶é´")] [Column(TypeName = "datetime")] [Editable(true)] public DateTime? FinishTime { get; set; } /// <summary> ///å·¥åç¶æ /// </summary> [Display(Name = "å·¥åç¶æ")] [MaxLength(20)] [Column(TypeName = "nvarchar(20)")] [Editable(true)] public string Status { get; set; } } } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs
@@ -467,7 +467,11 @@ var AreaNr = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "W_AreaNr").First(), client); if (AreaNr == 0) { client.WriteByOrder("W_Storage_update", true, name);//è´§ä½ç¶ææ´æ° continue; } var areaCode = PipelineJob.area_code(name); //æ ¹æ®ä¸æå£åå åè·ååºå代ç var station = stationinfoRepository.FindFirst(x => x.area == areaCode && x.stationCode.Substring(x.stationCode.Length - 1, 1) == AreaNr.ToString()); @@ -543,6 +547,9 @@ var Request = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Request_Load").First(), client); if (!Request) continue; var Area = client.ReadByOrder<Int16>("W_AreaNr", name);//读åè´§ä½å·ä¿¡æ¯ if (Area != 0) continue; var load_zone = (bool)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_load_zone").First(), client); #region è¯»åæ¡æ¶ä¿¡æ¯ var Wheel_Type = DBExtension.Read(details.Where(x => x.plcdetail_name == "R_Wheel_Type").First(), client);//车轮类å @@ -580,7 +587,7 @@ #endregion var Stations = stationinfoRepository.Find(x => x.area == PipelineJob.area_code(name)); var Stations = stationinfoRepository.Find(x => x.area == PipelineJob.area_code(name)).OrderBy(x => x.lastUpdateTime).ToList(); var NGStation = "X01001003"; if (name == "2åå 䏿åº") NGStation = "X02001003"; @@ -720,6 +727,7 @@ Stationinfo.location_state = LocationStateEnum.Abnormal.ToString(); Stationinfo.remark = "车轮æ°éä¸å çµä¸å¹é "; stationinfoRepository.Update(Stationinfo, true); WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Stationinfo.stationCode}ï¼é误信æ¯ï¼{Stationinfo.remark}", "PCS"); //WriteDBLog.Error(name+"ç³è¯·ä¸æ",$"{Stationinfo.stationCode}çè´§ä½","PCS"); } else if (list.Count < 1 && MaterialSignal == 1) @@ -729,6 +737,7 @@ Stationinfo.location_state = LocationStateEnum.Abnormal.ToString(); Stationinfo.remark = "车轮æ°éä¸å çµä¸å¹é "; stationinfoRepository.Update(Stationinfo, true); WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Stationinfo.stationCode}ï¼é误信æ¯ï¼{Stationinfo.remark}", "PCS"); } #endregion @@ -834,10 +843,30 @@ } #region è´§ä½æ°éä¸å çµä¸å¹é ï¼æ¥è¦ //if (list.Count > 0 && MaterialSignal != 1) // Pipeline_client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ //else if (list.Count < 1 && MaterialSignal == 1) // Pipeline_client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ if (list.Count > 0 && MaterialSignal != 1) { client.WriteByOrder("W_Enabl_Load", false, name);//ä¿¡å·ä¸ºfalseæ¡æ¶åæ¢è¿å ¥ Pipeline_client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ Stationinfo.location_state = LocationStateEnum.Abnormal.ToString(); Stationinfo.remark = "车轮æ°éä¸å çµä¸å¹é "; stationinfoRepository.Update(Stationinfo, true); WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Stationinfo.stationCode}ï¼é误信æ¯ï¼{Stationinfo.remark}", "PCS"); //WriteDBLog.Error(name+"ç³è¯·ä¸æ",$"{Stationinfo.stationCode}çè´§ä½","PCS"); } else if (list.Count < 1 && MaterialSignal == 1) { client.WriteByOrder("W_Enabl_Load", false, name);//ä¿¡å·ä¸ºfalseæ¡æ¶åæ¢è¿å ¥ Pipeline_client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ Stationinfo.location_state = LocationStateEnum.Abnormal.ToString(); Stationinfo.remark = "车轮æ°éä¸å çµä¸å¹é "; stationinfoRepository.Update(Stationinfo, true); WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Stationinfo.stationCode}ï¼é误信æ¯ï¼{Stationinfo.remark}", "PCS"); } #endregion //ç¼åæ¶ä¸è½¦è½®æ°éä¸SNå·æ°éä¸ä¸è´ ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Jobs/Task/AutoTaskJob.cs
@@ -37,8 +37,8 @@ //EmptyTrayTask.task(); StationTask.CreateTask(); //OutboundTask.CreateOutboundTask(); OutboundTask_a.CreateOutboundTask(); OutboundTask.CreateOutboundTask();//ä¼åååºåºé»è¾ //OutboundTask_a.CreateOutboundTask(); ReplaceTray.ReplaceTrayTask(); RestockHCJ.HCJGetBarcode(); EmptyTrayTask.CreateEmptyTrayTask(); ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Jobs/equipment/PipelineJob.cs
@@ -77,7 +77,7 @@ ///æ¥æ¾ä¸æåºçè´§ä½ var Stations = stationinfoRepository.Find(x => x.area == area_code(number)); var Stations = stationinfoRepository.Find(x => x.area == area_code(number)).OrderBy(x => x.lastUpdateTime);//æ ¹æ®æ¶é´å åæåº //ç¼åæ¶æªå¯ç¨ç¦æ¢æ¡æ¶è¿å ¥ //foreach (var station in Stations) //{ @@ -111,20 +111,25 @@ var details = plcRepository.Find(x => x.plcdetail_iotype == plc.plcinfo_iotyep && x.plcdetail_number == Station.stationCode).ToList(); var PalletSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//读åæçä¿¡å·:1:æ,2æ var MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//读åè´§ç©ä¿¡å·:1:æ,2æ var AreaNr = Gantry_client.ReadByOrder<Int16>("W_AreaNr", number);//读åè´§ä½å·ä¿¡æ¯ if (PalletSignal == 1 && MaterialSignal == 1) { var area = Convert.ToInt16(Station.stationCode.Substring(Station.stationCode.Length - 1, 1)); Gantry_client.WriteByOrder("W_AreaNr", (Int16)area, number);//åºåè´§ä½å· Gantry_client.WriteByOrder("W_IndexNr", (Int16)SNS.Length, number);//æçä¸ç第å 个车轮 Gantry_client.WriteByOrder("W_Storage_Type", (Int16)1, number); //æçç±»å1-横æ¾;2-ç«æ¾ Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)Convert.ToInt16(QueryMateriel(Station.stationType) == null ? QueryMateriel1(Station.stationType).TypeId : QueryMateriel(Station.stationType).TypeId), number);//车轮类å Gantry_client.WriteByOrder("W_Wheel_id", SNS[SNS.Length - 1], number);//车轮SNå· Gantry_client.WriteByOrder("W_RequestUnload", true, number); #region æ¥å¿è®°å½ WriteDBLog.Success("䏿åºç³è¯·", $"读åæçå çµä¿¡å·ï¼{PalletSignal}\n读å第ä¸ä¸ªè½¦è½®å çµä¿¡å·ï¼{MaterialSignal}\n\n" + $"åå ¥æ¡æ¶ä¿¡æ¯ï¼\nåºåè´§ä½å·ï¼{area}\næçä¸ç第å 个车轮ï¼{SNS.Length}\næçç±»åï¼{1}\n车轮类åï¼{(QueryMateriel(Station.stationType).TypeId == null ? QueryMateriel1(Station.stationType).TypeId : QueryMateriel(Station.stationType).TypeId)}" + $"\n车轮SNå·ï¼{SNS[SNS.Length - 1]}\nW_RequestUnloadï¼true", "PCS"); #endregion if (AreaNr == 0) { var area = Convert.ToInt16(Station.stationCode.Substring(Station.stationCode.Length - 1, 1)); Gantry_client.WriteByOrder("W_AreaNr", (Int16)area, number);//åºåè´§ä½å· Gantry_client.WriteByOrder("W_IndexNr", (Int16)SNS.Length, number);//æçä¸ç第å 个车轮 Gantry_client.WriteByOrder("W_Storage_Type", (Int16)1, number); //æçç±»å1-横æ¾;2-ç«æ¾ Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)Convert.ToInt16(QueryMateriel(Station.stationType) == null ? QueryMateriel1(Station.stationType).TypeId : QueryMateriel(Station.stationType).TypeId), number);//车轮类å Gantry_client.WriteByOrder("W_Wheel_id", SNS[SNS.Length - 1], number);//车轮SNå· Gantry_client.WriteByOrder("W_RequestUnload", true, number); #region æ¥å¿è®°å½ WriteDBLog.Success("䏿åºç³è¯·", $"读åæçå çµä¿¡å·ï¼{PalletSignal}\n读å第ä¸ä¸ªè½¦è½®å çµä¿¡å·ï¼{MaterialSignal}\n\n" + $"åå ¥æ¡æ¶ä¿¡æ¯ï¼\nåºåè´§ä½å·ï¼{area}\næçä¸ç第å 个车轮ï¼{SNS.Length}\næçç±»åï¼{1}\n车轮类åï¼{(QueryMateriel(Station.stationType).TypeId == null ? QueryMateriel1(Station.stationType).TypeId : QueryMateriel(Station.stationType).TypeId)}" + $"\n车轮SNå·ï¼{SNS[SNS.Length - 1]}\nW_RequestUnloadï¼true", "PCS"); #endregion } } else { @@ -174,10 +179,20 @@ //throw new Exception($"䏿ä½ä¿¡æ¯æ´æ°å¤±è´¥ï¼ä¸æä½ç¼å·ï¼{Station.stationCode}"); return; } #region æ¸ ç©ºä¿¡æ¯ Gantry_client.WriteByOrder("W_AreaNr", (Int16)0, number);//åºåè´§ä½å· Gantry_client.WriteByOrder("W_IndexNr", (Int16)0, number);//æçä¸ç第å 个车轮 Gantry_client.WriteByOrder("W_Storage_Type", (Int16)0, number); //æçç±»å1-横æ¾;2-ç«æ¾ Gantry_client.WriteByOrder("W_Wheel_Type", (Int16)0, number);//车轮类å //Gantry_client.WriteByOrder("W_Wheel_id", SNS[SNS.Length - 1], number);//车轮SNå· #endregion Gantry_client.WriteByOrder("W_Storage_update", true, number);//è´§ä½ç¶ææ´æ° #region æ¥å¿è®°å½ WriteDBLog.Success("åæå®æ", $"åå ¥æ¡æ¶ä¿¡æ¯ï¼\nè´§ä½ç¶ææ´æ°ï¼{true}\nW_RequestUnloadï¼{false}", "PCS"); #endregion PalletSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_PalletSignal").First(), client);//读åæçä¿¡å·:1:æ,2æ MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//读åè´§ç©ä¿¡å·:1:æ,2æ if (Station.quantity > 0 && (PalletSignal != 1 || MaterialSignal != 1)) @@ -186,6 +201,7 @@ Station.remark = "车轮æ°é大äº0ï¼å çµæ£æµæ æçææ è½¦è½®"; stationinfoRepository.Update(Station, true); client.WriteByOrder("W_AlarmSignal", (Int16)2, number);//æ¥è¦ WriteDBLog.Error(number + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Station.stationCode}ï¼é误信æ¯ï¼{Station.remark}", "PCS"); } else if (Station.quantity < 1 && MaterialSignal == 1) { @@ -193,6 +209,7 @@ Station.remark = "车轮æ°éå°äº0ï¼å çµæ£æµæè½¦è½®"; stationinfoRepository.Update(Station, true); client.WriteByOrder("W_AlarmSignal", (Int16)2, number);//æ¥è¦ WriteDBLog.Error(number + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Station.stationCode}ï¼é误信æ¯ï¼{Station.remark}", "PCS"); } } } @@ -336,6 +353,7 @@ Station.remark = "车轮æ°é大äº0ï¼å çµæ£æµæ æçææ è½¦è½®"; stationinfoRepository.Update(Station, true); client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Station.stationCode}ï¼é误信æ¯ï¼{Station.remark}", "PCS"); continue; } if (Station.location_state == LocationStateEnum.Stroge.ToString() && PalletSignal != 1) @@ -344,6 +362,7 @@ Station.remark = "è´§ä½æè´§ï¼å çµæ£æµæ æç"; stationinfoRepository.Update(Station, true); client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Station.stationCode}ï¼é误信æ¯ï¼{Station.remark}", "PCS"); continue; } if (Station.location_state == LocationStateEnum.Empty.ToString() && (PalletSignal == 1 || MaterialSignal == 1))//ç³»ç»è´§ä½ä¸ºç©ºï¼å çµæ£æµææ @@ -352,6 +371,7 @@ Station.remark = "è´§ä½æ è´§ï¼å çµæ£æµææ"; stationinfoRepository.Update(Station, true); client.WriteByOrder("W_AlarmSignal", (Int16)2, name);//æ¥è¦ WriteDBLog.Error(name + "æ¥è¦", $"è´§ä½ç¼å·ï¼{Station.stationCode}ï¼é误信æ¯ï¼{Station.remark}", "PCS"); continue; } //if (Station.quantity < 1 && MaterialSignal == 1)//ç³»ç»è´§ä½æ 车轮ï¼å çµæ£æµæè½¦è½® ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/OutboundTask.cs
@@ -30,27 +30,38 @@ { VOLContext context = new VOLContext(); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); Idt_mes_headRepository mes_HeadRepository = new dt_mes_headRepository(context); Idt_mes_detailRepository mes_DetailRepository = new dt_mes_detailRepository(context); Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context); IVV_Mes_WorkinfoRepository workinfoRepository = new VV_Mes_WorkinfoRepository(context); var mes_heads = mes_HeadRepository.Find(x => x.processCode == "28").OrderBy(x => x.expectedStartTime).ToList(); //var mes_heads = mes_HeadRepository.Find(x => x.processCode == "28").OrderByDescending(x => x.CreateTime).ToList(); foreach (var mes_head in mes_heads) var Mes_Works = workinfoRepository.Find(x => x.processCode == "28").OrderBy(x => x.CreateTime).ToList(); foreach (var Mes_Work in Mes_Works) { #region æ ¹æ®åºåå ¥åºæ¶é´æææ¥è¯¢ var inventory = inventoryRepository.Find(x => x.FigureNumber == mes_head.drawingNo).OrderByDescending(x => x.OnlineTime).FirstOrDefault(); var inventory = inventoryRepository.Find(x => x.SN == Mes_Work.SN).FirstOrDefault(); if (inventory != null) { var Station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault(); var Station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault();//æ¥æ¾åºåè´§ä½ if (Station != null) { #region åå¨å ¥åºä»»å¡ä¸è½åºåº var InTask = stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.location_state == LocationStateEnum.InBusy.ToString()).Any(); if (InTask) continue; dt_stationinfo stationinfo = null; #region åºåºä¸ if (Station.area == "1") { //æ¥æ¾å½åè´§ä½å忝å¦åå¨å ¥åºä»»å¡ if (stationinfoRepository.Find(x => x.column == Station.column && x.area == "1" && x.location_state == LocationStateEnum.InBusy.ToString()).Any()) continue; stationinfo = stationinfoRepository.Find(x => x.column == Station.column && x.enable && x.area == "1" && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderBy(x => x.line).FirstOrDefault(); } #endregion var stationinfo = stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.enable && x.location_state == LocationStateEnum.Stroge.ToString()).OrderByDescending(x => x.column).FirstOrDefault(); else { //æ¥æ¾å½åè´§ä½å忝å¦åå¨å ¥åºä»»å¡ if (stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.location_state == LocationStateEnum.InBusy.ToString()).Any()) continue; stationinfo = stationinfoRepository.Find(x => x.line == Station.line && x.area == Station.area && x.enable && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.column).FirstOrDefault(); } if (stationinfo != null) { if (string.IsNullOrEmpty(stationinfo.bindSN)) @@ -59,10 +70,10 @@ stationinfo.location_state = "Abnormal"; stationinfoRepository.Update(stationinfo, true); continue; //throw new Exception(stationinfo.stationCode + "车轮SNå·ä¿¡æ¯å¼å¸¸!"); } if (agvtaskRepository.Find(x => x.agv_fromaddress == stationinfo.stationCode).Any()) continue; if (agvtaskRepository.Find(x => x.agv_fromaddress == stationinfo.stationCode).Any()) continue; List<string> lists = new List<string>(); var SNS = stationinfo.bindSN.Split(","); foreach (var SN in SNS) @@ -70,196 +81,80 @@ if (!string.IsNullOrEmpty(SN)) lists.Add(SN); } foreach (var item in lists) { //var a = mes_DetailRepository.Find(x => x.jobID == mes_head.jobID /*&& x.SN == item*/).ToList(); //var b = a.Where(x => x.SN == item).FirstOrDefault(); if (mes_DetailRepository.Find(x => x.jobID == mes_head.jobID && x.SN == item).Any()) { dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = stationinfo.stationCode, agv_id = Guid.NewGuid(), agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), agv_grade = 2, agv_createtime = DateTime.Now, agv_taskstate = "Queue", agv_materielid = stationinfo.stationType, agv_qty = stationinfo.quantity, agv_tasktype = "TaskType_Outbound", agv_toaddress = "", agv_userid = "ç³»ç»", bindSN = stationinfo.bindSN, jobID = mes_head.jobID, agv_worktype = Convert.ToInt32(mes_head.processCode), agv_materbarcode = mes_head.materialCode, agv_Traytype = stationinfo.tray_type, agv_TrayStatus = stationinfo.tray_status }; stationinfo.location_state = LocationStateEnum.OutBusy.ToString(); stationinfoRepository.Update(stationinfo, true); agvtaskRepository.Add(agvtask, true); WriteDBLog.Success("å建åºåºä»»å¡", $"ä»»å¡ç¼å·ï¼{agvtask.agv_tasknum}", "PCS"); return; } } } var stationinfos = stationinfoRepository.Find(x => x.stationType == mes_head.drawingNo && x.line != Station.line && x.area == Station.area && x.location_state == "Stroge").OrderBy(x => x.line).ThenByDescending(x => x.column).ToList(); foreach (var item in stationinfos) { if (item != null && stationinfo.enable) #region è´§ä½è½¦è½®å ¨é¨å å«å¨å·¥åå åä¸åä»»å¡ var count = 0; foreach (var SN in lists) { if (item.bindSN == null) { stationinfo.remark = "车轮SNå·ä¿¡æ¯å¼å¸¸"; stationinfo.location_state = "Abnormal"; stationinfoRepository.Update(stationinfo, true); continue; } if (agvtaskRepository.Find(x => x.agv_fromaddress == stationinfo.stationCode).Any()) continue; List<string> lists = new List<string>(); var SNS = stationinfo.bindSN.Split(","); foreach (var SN in SNS) { if (!string.IsNullOrEmpty(SN)) lists.Add(SN); } foreach (var list in lists) { if (mes_DetailRepository.Find(x => x.jobID == mes_head.jobID && x.SN == list).Any()) { dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = stationinfo.stationCode, agv_id = Guid.NewGuid(), agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), agv_grade = 1, agv_createtime = DateTime.Now, agv_taskstate = "Queue", agv_materielid = stationinfo.stationType, agv_qty = stationinfo.quantity, jobID = mes_head.jobID, agv_tasktype = "TaskType_Outbound", agv_toaddress = "", agv_userid = "ç³»ç»", bindSN = stationinfo.bindSN, agv_worktype = Convert.ToInt32(mes_head.processCode), agv_materbarcode = mes_head.materialCode, agv_Traytype = stationinfo.tray_type, agv_TrayStatus = stationinfo.tray_status }; WriteDBLog.Success("å建åºåºä»»å¡", $"ä»»å¡ç¼å·ï¼{agvtask.agv_tasknum}", "PCS"); agvtaskRepository.Add(agvtask, true); return; } } } } //if (!workinfoRepository.Find(x => x.processCode == "28" && x.SN.Contains(SN)).Any()) return; if (workinfoRepository.Find(x => x.processCode == "28" && x.SN.Contains(SN)).Any()) count++; #region MyRegion //if (stationinfo != null && stationinfo.enable) //{ // if (stationinfo.bindSN == null) // throw new Exception(stationinfo.stationCode + "车轮SNå·ä¿¡æ¯å¼å¸¸!"); // List<string> lists = new List<string>(); // var SNS = stationinfo.bindSN.Split(","); // foreach (var SN in SNS) // { // if (!string.IsNullOrEmpty(SN)) // lists.Add(SN); // } // foreach (var item in lists) // { // if (freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mes_head.jobID && x.SN == item).Any()) // { // dt_agvtask agvtask = new dt_agvtask() // { // agv_fromaddress = stationinfo.stationCode, // agv_id = Guid.NewGuid(), // agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), // agv_grade = 1, // agv_createtime = DateTime.Now, // agv_taskstate = "Queue", // agv_materielid = stationinfo.stationType, // agv_qty = stationinfo.quantity, // agv_tasktype = "TaskType_Outbound", // agv_toaddress = "", // agv_userid = "ç³»ç»", // bindSN = stationinfo.bindSN, // agv_worktype = Convert.ToInt32(mes_head.processCode), // agv_materbarcode = mes_head.materialCode, // agv_Traytype = stationinfo.tray_type, // agv_TrayStatus = stationinfo.tray_status // }; // dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository); // if (TargetLocation != null) // { // agvtask.agv_taskstate = "Create"; // agvtask.agv_toaddress = TargetLocation.stationCode; // TargetLocation.location_state = LocationStateEnum.Busy.ToString(); // freeDB.Update(TargetLocation); // } // freeDB.Add(agvtask); // return; // } // } //} #endregion } if (count != lists.Count) continue; dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = stationinfo.stationCode, agv_id = Guid.NewGuid(), agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), agv_grade = 2, agv_createtime = DateTime.Now, agv_taskstate = "Queue", agv_materielid = stationinfo.stationType, agv_qty = stationinfo.quantity, agv_tasktype = "TaskType_Outbound", agv_toaddress = "", agv_userid = "ç³»ç»", bindSN = stationinfo.bindSN, jobID = Mes_Work.jobID, agv_worktype = Convert.ToInt32(Mes_Work.processCode), agv_materbarcode = Mes_Work.materialCode, agv_Traytype = stationinfo.tray_type, agv_TrayStatus = stationinfo.tray_status }; stationinfo.location_state = LocationStateEnum.OutBusy.ToString(); stationinfoRepository.Update(stationinfo, true); agvtaskRepository.Add(agvtask, true); WriteDBLog.Success("å建åºåºä»»å¡", $"ä»»å¡ç¼å·ï¼{agvtask.agv_tasknum}", "PCS"); continue; #endregion #region è´§ä½è½¦è½®æä¸ä¸ªå å«å¨å·¥åå åä¸åä»»å¡ //foreach (var SN in lists) //{ // if (mes_DetailRepository.Find(x => x.jobID == mes_head.jobID && x.SN == SN).Any()) // { // dt_agvtask agvtask = new dt_agvtask() // { // agv_fromaddress = stationinfo.stationCode, // agv_id = Guid.NewGuid(), // agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), // agv_grade = 2, // agv_createtime = DateTime.Now, // agv_taskstate = "Queue", // agv_materielid = stationinfo.stationType, // agv_qty = stationinfo.quantity, // agv_tasktype = "TaskType_Outbound", // agv_toaddress = "", // agv_userid = "ç³»ç»", // bindSN = stationinfo.bindSN, // jobID = mes_head.jobID, // agv_worktype = Convert.ToInt32(mes_head.processCode), // agv_materbarcode = mes_head.materialCode, // agv_Traytype = stationinfo.tray_type, // agv_TrayStatus = stationinfo.tray_status // }; // stationinfo.location_state = LocationStateEnum.OutBusy.ToString(); // stationinfoRepository.Update(stationinfo, true); // agvtaskRepository.Add(agvtask, true); // WriteDBLog.Success("å建åºåºä»»å¡", $"ä»»å¡ç¼å·ï¼{agvtask.agv_tasknum}", "PCS"); // continue; // } //} #endregion } } } #endregion #region MyRegion //var station = stationinfoRepository.Find(x => x.stationType == mes_head.drawingNo && x.line != x.line).OrderBy(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); //bool ok = false; //List<string> list = new List<string>(); //if (station != null && station.location_state == LocationStateEnum.Stroge.ToString() && station.enable) //{ // var SNS = station.bindSN.Split(","); // foreach (var SN in SNS) // { // if (!string.IsNullOrEmpty(SN)) // list.Add(SN); // } //} //foreach (var SN in list) //{ // if (ok = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mes_head.jobID && x.SN == SN).Any()) continue; //} //if (ok) //{ // dt_agvtask agvtask = new dt_agvtask() // { // agv_fromaddress = station.stationCode, // agv_id = Guid.NewGuid(), // agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), // agv_grade = 1, // agv_createtime = DateTime.Now, // agv_taskstate = "Queue", // agv_materielid = station.stationType, // agv_qty = station.quantity, // agv_tasktype = "TaskType_Outbound", // agv_toaddress = "", // agv_userid = "ç³»ç»", // bindSN = station.bindSN, // agv_worktype = Convert.ToInt32(mes_head.processCode), // agv_materbarcode = mes_head.materialCode, // agv_barcode = station.tray_type // }; // dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository); // if (TargetLocation != null) // { // agvtask.agv_taskstate = "Create"; // agvtask.agv_toaddress = TargetLocation.stationCode; // TargetLocation.location_state = LocationStateEnum.Busy.ToString(); // freeDB.Update(TargetLocation); // } // freeDB.Add(agvtask); //} #endregion } } catch (Exception ex) ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/ÐÂÎļþ¼Ð/GetLocation.cs
@@ -66,7 +66,10 @@ var station = stationinfoRepository.FindFirst(x => x.stationCode == inventory.stationCode); if (station.area == "1") { TargetLocation = stationinfoRepository.Find(x => x.column == station.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == inventory.area).OrderByDescending(x => x.line).FirstOrDefault(); //TargetLocation = stationinfoRepository.Find(x => x.column == station.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == inventory.area).OrderByDescending(x => x.line).FirstOrDefault(); TargetLocation = stationinfoRepository.Find(x => x.line == station.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == station.area).OrderBy(x => x.column).FirstOrDefault();//æè¡åæ¾ if (TargetLocation != null) { if (!stationinfoRepository.Find(x => x.column == TargetLocation.column && x.area == TargetLocation.area /*&& x.enable*/ && x.location_state == LocationStateEnum.OutBusy.ToString()).Any()) @@ -92,7 +95,10 @@ { if (TargetLocation.area == "1") { TargetLocation = stationinfoRepository.Find(x => x.column == TargetLocation.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == TargetLocation.area).OrderByDescending(x => x.line).FirstOrDefault(); //TargetLocation = stationinfoRepository.Find(x => x.column == TargetLocation.column && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == TargetLocation.area).OrderByDescending(x => x.line).FirstOrDefault(); TargetLocation = stationinfoRepository.Find(x => x.line == TargetLocation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == TargetLocation.area).OrderBy(x => x.column).FirstOrDefault();//æè¡åæ¾ if (TargetLocation != null) { if (!stationinfoRepository.Find(x => x.column == TargetLocation.column && x.area == TargetLocation.area /*&& x.enable*/ && x.location_state == LocationStateEnum.OutBusy.ToString()).Any()) @@ -111,6 +117,25 @@ } #endregion #region 寻æ¾ç©ºè´§ä½ var TargetLocations = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Empty.ToString() && x.enable && (x.area == "1" || x.area == "2" || x.area == "3" || x.area == "4")).OrderBy(x => x.line).ThenBy(x => x.column).ToList(); foreach (var Location in TargetLocations) { if (Location.area == "1") { if (stationinfoRepository.Find(x => x.column == Location.column && x.area == Location.area && x.stationType == stationinfo.stationType && x.location_state != LocationStateEnum.OutBusy.ToString()).Any()) return Location; } else { if (stationinfoRepository.Find(x => x.line == Location.line && x.area == Location.area && x.stationType == stationinfo.stationType && x.location_state != LocationStateEnum.OutBusy.ToString()).Any()) return Location; } } //if (TargetLocation != null) //{ // if (stationinfoRepository.Find(x => x.line == TargetLocation.line && x.column == 1 && x.stationType == stationinfo.stationType).Any()) return TargetLocation; //} #endregion #region æªæ¾å°åºåæå½ååºåè¡å·²æ»¡,å¯»æ¾æ°çä¸è¡ //var area1 = string.IsNullOrEmpty(mesinfo.area) ? GetArea(mesinfo.quantity, e) : mesinfo.area; //var area = string.IsNullOrEmpty(mesinfo.area) ? GetArea(mesinfo.quantity, stationinfo.tray_type) : mesinfo.area; @@ -126,6 +151,22 @@ if (TargetLocation == null) TargetLocation = stationinfoRepository.Find(x => x.line == 2 && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.area == "1").OrderBy(x => x.column).FirstOrDefault(); } #region æ¥çå½å空货ä½åæ¯å¦å卿æ if (TargetLocation != null) { if (TargetLocation.area == "1") { //第ä¸è¡ä¸ä¸ºç©ºè´§ä½åä¸è½æ¾ç½®ç¬¬äºè¡ if (stationinfoRepository.Find(x => x.column == TargetLocation.column && x.area == TargetLocation.area && x.location_state != LocationStateEnum.Empty.ToString() && x.line == 1).Any()) TargetLocation = null; } else { if (stationinfoRepository.Find(x => x.line == TargetLocation.line && x.area == TargetLocation.area && x.location_state != LocationStateEnum.Empty.ToString()).Any()) TargetLocation = null; } } #endregion #endregion if (TargetLocation == null) throw new Exception("åºä½å·²æ»¡"); ´úÂë¹ÜÀí/WMS/WMS_Client/src/api/http.js
@@ -12,7 +12,7 @@ let loadingInstance; let loadingStatus = false; if (process.env.NODE_ENV == 'development') { axios.defaults.baseURL = 'http://192.168.12.101:8098/'; axios.defaults.baseURL = 'http://127.0.0.1:8098/'; } else if (process.env.NODE_ENV == 'debug') { axios.defaults.baseURL = 'http://192.168.12.101:8098/'; ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs
@@ -171,6 +171,7 @@ station2.stationType = task.agv_materielid; station2.tray_status = task.agv_TrayStatus;//横æ¾/ç«æ¾ station2.tray_type = task.agv_Traytype; station2.lastUpdateTime=DateTime.Now; stationinfoRepository.Update(station2, true); } else if (task.agv_taskstate == AGVTaskStateEnum.Complete.ToString()) @@ -207,6 +208,7 @@ //if (!station1.stationCode.Contains("X") && !station1.stationCode.Contains("S") && !station1.stationCode.Contains("W01001004") && !station1.stationCode.Contains("W01001005")) // station1.tray_type = string.Empty; } station1.lastUpdateTime = DateTime.Now; stationinfoRepository.Update(station1, true); } }