代码管理/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/GetStation.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
项目资料/技术协议/信息化部分.docx | 补丁 | 查看 | 原始文档 | blame | 历史 | |
项目资料/技术协议/方案介绍.pptx | 补丁 | 查看 | 原始文档 | blame | 历史 |
´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/RestockHCJ.cs
@@ -36,7 +36,7 @@ { if (task.agv_tasktype == "TaskType_EmptyPallet")//空æä»»å¡ { if (task.agv_fromaddress == "") if (task.agv_fromaddress == "" && DateTime.Now - task.agv_createtime >= TimeSpan.FromMinutes(5)) { var Pipeline_client = PLCClient.Clients.FirstOrDefault(t => t.PLCName == "龿¡æº"); if (Pipeline_client == null) throw new Exception("龿¡æºè°åº¦æå¡æªå¼å¯ï¼"); ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs
@@ -67,7 +67,18 @@ /// <param name="task"></param> public static void Updateinventory(dt_agvtask task) { if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) VOLContext context = new VOLContext(); Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString()) { var inventorys = inventoryRepository.Find(x => x.stationCode == task.agv_fromaddress).ToList(); foreach (var inventory in inventorys) { inventory.stationCode = task.agv_toaddress; inventoryRepository.Update(inventory, true); } } else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString()) { string[] bindSNs = task.bindSN.Split(","); int count = 0; ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/GetStation.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core.EFDbContext; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; namespace WIDESEA_WMS { public partial class ToMesServer { /// <summary> /// éè¿SNå·è·åè´§ä½ /// </summary> /// <param name="saveModel"></param> /// <returns></returns> public WebResponseContent GetStation(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); VOLContext context = new VOLContext(); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context); Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); try { string sn = saveModel.MainData["from_address"].ToString(); dt_inventory inventory = inventoryRepository.Find(x => x.SN.Contains(sn)).FirstOrDefault(); if (inventory == null) { return content.Error($"æªæ¾å°{sn}åºåä¿¡æ¯,è¯·æ ¸æ¥åºåè®°å½!"); } var station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault(); if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_toaddress == station.stationCode).Any()) return content.Error($"åºä½{station.stationCode}åå¨AGVä»»å¡ï¼è¯·æ ¸å®ï¼"); content.Code = station.stationCode; content.OK(); } catch (Exception ex) { } return content; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs
@@ -54,8 +54,8 @@ return content.Error($"æ æ¤è½¦è½®{sn}SNå·,è¯·æ ¸æ¥åºåè®°å½!"); } var station = stationinfoRepository.Find(x => x.stationCode == inventory.stationCode).FirstOrDefault(); if (!station.enable) return content.Error($"åºä½{station.stationCode}æªå¯ç¨ï¼è¯·æ ¸å®ï¼"); if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode).Any()) //if (!station.enable) return content.Error($"åºä½{station.stationCode}æªå¯ç¨ï¼è¯·æ ¸å®ï¼"); if (agvtaskRepository.Find(x => x.agv_fromaddress == station.stationCode || x.agv_toaddress == station.stationCode).Any()) return content.Error($"åºä½{station.stationCode}åå¨AGVä»»å¡ï¼è¯·æ ¸å®ï¼"); List<detail> list = new List<detail>(); //è½¦è½®ä¿¡æ¯ foreach (var item in station.bindSN.Split(",")) ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/shiftingparking.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,107 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Comm; using WIDESEA_Comm.TaskNo; using WIDESEA_Common; using WIDESEA_Core.EFDbContext; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; using static FreeSql.Internal.GlobalFilter; using static System.Collections.Specialized.BitVector32; namespace WIDESEA_WMS { public partial class ToMesServer { /// <summary> /// åºå ç§»åº /// </summary> /// <param name="saveModel"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public WebResponseContent shiftingparking(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); VOLContext context = new VOLContext(); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(context); Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context); try { string user = saveModel.MainData["creator"].ToString(); string from_address = saveModel.MainData["from_address"].ToString(); string to_address = saveModel.MainData["to_address"].ToString(); var station1 = stationinfoRepository.Find(t => t.stationCode == from_address).FirstOrDefault(); if (station1 == null) return content.Error("请è¾å ¥æ£ç¡®çèµ·ç¹å°åï¼"); var station2 = stationinfoRepository.Find(t => t.stationCode == to_address).FirstOrDefault(); if (station2 == null) return content.Error("请è¾å ¥æ£ç¡®çèµ·ç¹å°åï¼"); if (!station1.tray_type.Contains("Small") && station2.area != "4") throw new Exception($"大æçåªè½åæ¾å¨åºåº4ï¼"); if (agvtaskRepository.Find(x => x.agv_fromaddress.Contains(from_address) || x.agv_toaddress.Contains(from_address)).Any()) throw new Exception($"èµ·ç¹{from_address}å·²åå¨ä»»å¡ï¼"); if (agvtaskRepository.Find(x => x.agv_fromaddress.Contains(to_address) || x.agv_toaddress.Contains(to_address)).Any()) throw new Exception($"ç»ç¹{to_address}å·²åå¨ä»»å¡ï¼"); if (station1.location_state != LocationStateEnum.Stroge.ToString()) throw new Exception($"èµ·ç¹{from_address}䏿¯æè´§ï¼"); if (station2.location_state != LocationStateEnum.Empty.ToString()) throw new Exception($"ç»ç¹{to_address}䏿¯ç©ºè´§ä½ï¼"); if (string.IsNullOrEmpty(station1.stationType)) throw new Exception($"èµ·ç¹{from_address}æªç»å®ç©æç±»åï¼"); if (station2.area == "1") { if (stationinfoRepository.Find(x => x.area == station2.area && x.column == station2.column && x.location_state != LocationStateEnum.Empty.ToString() && x.stationType != station1.stationType).Any()) throw new Exception($"ç»ç¹{to_address}åååå¨ä¸èµ·ç¹ç©æç±»åä¸å¹é ï¼"); } else { if (stationinfoRepository.Find(x => x.area == station2.area && x.line == station2.line && x.location_state != LocationStateEnum.Empty.ToString() && x.stationType != station1.stationType).Any()) throw new Exception($"ç»ç¹{to_address}åè¡åå¨ä¸èµ·ç¹ç©æç±»åä¸å¹é ï¼"); } var inventory = inventoryRepository.Find(x => x.stationCode == station1.stationCode).FirstOrDefault(); if (inventory == null) throw new Exception($"èµ·ç¹{from_address}æªæ¾å°åºåä¿¡æ¯ï¼"); dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = station1.stationCode, agv_id = Guid.NewGuid(), agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), agv_grade = 1, agv_createtime = DateTime.Now, agv_taskstate = "Create", agv_materielid = station1.stationType, agv_qty = station1.quantity, agv_tasktype = AGVTaskTypeEnum.TaskType_Carry.ToString(), agv_toaddress = station2.stationCode, agv_userid = user,//"ç³»ç»", jobID = station1.Number,// mes_head.jobID, bindSN = station1.bindSN, agv_worktype = 0, //Convert.ToInt32(mes_head.processCode), agv_materbarcode = inventory.materialCode, agv_Traytype = station1.tray_type, agv_TrayStatus = station1.tray_status }; agvtaskRepository.Add(agvtask, true); station1.location_state = LocationStateEnum.OutBusy.ToString(); stationinfoRepository.Update(station1, true); station2.location_state = LocationStateEnum.InBusy.ToString(); station2.heatNumber = station1.heatNumber; station2.Number = station1.Number; station2.stationType = station1.stationType; stationinfoRepository.Update(station2, true); content.OK(); } catch (Exception ex) { content.Error($"å¼å«AGV失败:{ex.Message}"); } return content; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobTask.cs
@@ -12,7 +12,7 @@ [Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 5, /*IsEnabled = true,*/ SkipWhileExecuting = true)] public void TaskTime() { AGVServer.SendAgvTask(); //AGVServer.SendAgvTask(); } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs
@@ -12,7 +12,9 @@ public class ToWMSController : ControllerBase { private static readonly object OutsourceInboundobj = new object(); private static readonly object agvTransferListbj = new object(); private static readonly object agvTransferListobj = new object(); private static readonly object shiftingparkingobj = new object(); private static readonly object GetStationobj = new object(); /// <summary> /// ç§»åºï¼æå¨ï¼ä¸´æ¶ï¼ /// </summary> @@ -24,22 +26,49 @@ return new ToMesServer().AddToFloat3(request); } /// <summary> /// å¤åç§»åº /// ç§»åºå¤å /// </summary> /// <param name="request"></param> /// <param name="saveModel"></param> /// <returns></returns> [HttpPost, Route("agvTransferList")] public WebResponseContent agvTransferList([FromBody] SaveModel saveModel) { lock (agvTransferListbj) lock (agvTransferListobj) { return new ToMesServer().agvTransferList(saveModel); } } /// <summary> /// è·åè´§ä½ /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost, Route("GetStation")] public WebResponseContent GetStation([FromBody] SaveModel saveModel) { lock (GetStationobj) { return new ToMesServer().GetStation(saveModel); } } /// <summary> /// åºå ç§»åº /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost, Route("shiftingparking")] public WebResponseContent shiftingparking([FromBody] SaveModel saveModel) { lock (shiftingparkingobj) { return new ToMesServer().shiftingparking(saveModel); } } /// <summary> /// å¤ååºåº(æ£æµä¸æ) /// </summary> /// <param name="request"></param> ÏîÄ¿×ÊÁÏ/¼¼ÊõÐÒé/ÐÅÏ¢»¯²¿·Ö.docxBinary files differ
ÏîÄ¿×ÊÁÏ/¼¼ÊõÐÒé/·½°¸½éÉÜ.pptxBinary files differ