.gitignore
@@ -2,3 +2,6 @@ 代ç 管ç/WMS/WMS_Server/WIDESEA_WebApi/appsettings.json *.json 代ç 管ç/PCS/WCS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs 代ç 管ç/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_materielinfo.cs 代ç 管ç/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs 代ç 管ç/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_materielinfo.cs ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Comm/MES_Info/Response/Mes_WorkInfo.cs
@@ -14,6 +14,16 @@ public string workOrder { get; set; } /// <summary> /// å·¥åç±»å /// </summary> public string processCode { get; set; } /// <summary> /// 宿æ°é /// </summary> public int finishNum { get; set; } /// <summary> /// å·¥åå· /// </summary> public string jobID { get; set; } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,125 @@ /* *代ç ç±æ¡æ¶çæ,任使´æ¹é½å¯è½å¯¼è´è¢«ä»£ç çæå¨è¦ç *å¦ææ°æ®åºå段åçååï¼è¯·å¨ä»£ç çå¨éæ°çææ¤Model */ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Entity.SystemModels; namespace WIDESEA_Entity.DomainModels { [Entity(TableCnName = "åºåæ¥è¯¢", TableName = "dt_inventory")] public partial class dt_inventory : BaseEntity { /// <summary> ///车轮SNå· /// </summary> [Display(Name = "车轮SNå·")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string SN { get; set; } /// <summary> ///产ååç§° /// </summary> [Display(Name = "产ååç§°")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string Name { get; set; } /// <summary> ///产åå¾å· /// </summary> [Display(Name = "产åå¾å·")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string FigureNumber { get; set; } /// <summary> ///çç¼çå· /// </summary> [Display(Name = "çç¼çå·")] [MaxLength(255)] [Column(TypeName = "varchar(255)")] [Editable(true)] public string HearthNumber { get; set; } /// <summary> ///çä»£å· /// </summary> [Display(Name = "ç代å·")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string HeatNumber { get; set; } /// <summary> ///é¢å¯å· /// </summary> [Display(Name = "é¢å¯å·")] [Column(TypeName = "int")] [Editable(true)] public int? BilletNumber { get; set; } /// <summary> ///å ¥åºæ¶é´ /// </summary> [Display(Name = "å ¥åºæ¶é´")] [Column(TypeName = "datetime")] [Editable(true)] public DateTime? OnlineTime { get; set; } /// <summary> ///æä½äººå /// </summary> [Display(Name = "æä½äººå")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string Operator { get; set; } /// <summary> ///æè¿° /// </summary> [Display(Name = "æè¿°")] [Column(TypeName = "nvarchar(max)")] [Editable(true)] public string remark { get; set; } /// <summary> ///ID /// </summary> [Key] [Display(Name = "ID")] [Column(TypeName = "int")] [Editable(true)] [Required(AllowEmptyStrings = false)] public int ID { get; set; } /// <summary> ///è´§ä½ç¼å· /// </summary> [Display(Name = "è´§ä½ç¼å·")] [MaxLength(30)] [Column(TypeName = "nvarchar(30)")] public string stationCode { get; set; } [Display(Name = "åºå代ç ")] [Column(TypeName = "nvarchar(15)")] [Editable(true)] public string area { get; set; } [Display(Name = "å·¥åç¼å·")] [Column(TypeName = "nvarchar(40)")] [Editable(true)] public string jobID { get; set; } } } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/System/partial/dt_inventory.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ /* *代ç ç±æ¡æ¶çæ,任使´æ¹é½å¯è½å¯¼è´è¢«ä»£ç çæå¨è¦ç *å¦ææ°æ®åºå段åçååï¼è¯·å¨ä»£ç çå¨éæ°çææ¤Model */ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Entity.SystemModels; namespace WIDESEA_Entity.DomainModels { public partial class dt_inventory { //æ¤å¤é ç½®åæ®µ(åæ®µé ç½®è§æ¤modelçå¦ä¸ä¸ªpartial),å¦æè¡¨ä¸æ²¡ææ¤å段请å ä¸ [NotMapped]屿§ï¼å¦åä¼å¼å¸¸ } } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_Entity/DomainModels/ToMES/dt_mes_head.cs
@@ -72,6 +72,14 @@ public string processCode { get; set; } /// <summary> ///宿æ°é /// </summary> [Display(Name = "宿æ°é")] [Column(TypeName = "int")] [Editable(true)] public int? finishNum { get; set; } /// <summary> ///ç©æç¼ç /// </summary> [Display(Name = "ç©æç¼ç ")] @@ -117,9 +125,9 @@ public string productDesc { get; set; } /// <summary> ///宿æ°é ///工忰é /// </summary> [Display(Name = "宿æ°é")] [Display(Name = "工忰é")] [Column(TypeName = "int")] [Editable(true)] public int? quantity { get; set; } @@ -177,5 +185,7 @@ [MaxLength(40)] [Column(TypeName = "nvarchar(40)")] public string creator { get; set; } //public string processCode { get; set; } } } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/StationTask.cs
@@ -9,6 +9,7 @@ using WIDESEA_Core.FreeDB; using WIDESEA_Entity.DomainModels; using WIDESEA_Comm; using static System.Collections.Specialized.BitVector32; namespace WIDESEA_WCS.JobsPart.Common { @@ -27,8 +28,9 @@ foreach (var item in stationinfos) { //æ ¹æ®ä¸æå£çç»å®ä¿¡æ¯æ¥è¯¢å¯¹åºå·¥åï¼æ£æµæ¤å·¥åæ¯å¦å·²å®æ 宿å³å¯å°å ¶éå ¥åº dt_Workinfo workinfo = workinfoRepository.FindFirst(x => x.WorkNumber == item.Number); int CompeletedNum = Convert.ToInt32(workinfo.PlannedQuantity) - Convert.ToInt32(workinfo.QuantityCompletion); dt_mes_head mesinfo = freeDB.Select<dt_mes_head>().Where(x => x.jobID == item.Number).First(); int CompeletedNum = Convert.ToInt32(mesinfo.quantity) - Convert.ToInt32(mesinfo.finishNum); //å¤å®ä»»å¡æ¯å¦å·²å建//å¦å·²åå¨ if (freeDB.Select<dt_agvtask>().Where(x => x.agv_fromaddress == item.stationCode).Count() > 0) @@ -36,11 +38,9 @@ if (item.quantity == 5 || CompeletedNum == 0) //循ç¯è¯»å车轮æ°ä¸º5æè 订å已宿æ°éçä¸æå£ âå·¥åäººå·¥å ³éçå·¥å { dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository, workinfo, item); if (TargetLocation != null) if (mesinfo.quantity <= 50) //å°äº50ä»¶ç´æ¥åºåº { //todo: è°ç¨WMSæ¥å£åå»ºä»»å¡ //todo 寻æ¾å¯æ¾è´§å¤åæ¾è´§å° dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = item.stationCode, @@ -49,16 +49,35 @@ agv_barcode = "", agv_createtime = DateTime.Now, agv_taskstate = TaskStatus.Created.ToString(), agv_toaddress = TargetLocation.stationCode, //agv_toaddress = , }; freeDB.Add(agvtask); TargetLocation.location_state = LocationStateEnum.Busy.ToString(); freeDB.Update(TargetLocation); } else { dt_stationinfo TargetLocation = GetEmptyLocation(stationinfoRepository, mesinfo, item); if (TargetLocation != null) { //todo: è°ç¨WMSæ¥å£åå»ºä»»å¡ dt_agvtask agvtask = new dt_agvtask() { agv_fromaddress = item.stationCode, agv_id = Guid.NewGuid(), agv_grade = 0, agv_barcode = "", agv_createtime = DateTime.Now, agv_taskstate = TaskStatus.Created.ToString(), agv_toaddress = TargetLocation.stationCode, }; freeDB.Add(agvtask); TargetLocation.location_state = LocationStateEnum.Busy.ToString(); freeDB.Update(TargetLocation); } } } } } @@ -69,68 +88,67 @@ /// <param name="workinfo">订å</param> /// <param name="stationinfo">䏿å£ä¿¡æ¯</param> /// <returns></returns> private dt_stationinfo GetEmptyLocation(Idt_stationinfoRepository stationinfoRepository, dt_Workinfo workinfo, dt_stationinfo stationinfo) private dt_stationinfo GetEmptyLocation(Idt_stationinfoRepository stationinfoRepository, dt_mes_head mesinfo, dt_stationinfo stationinfo) { //æ¾è´§ä½ dt_stationinfo TargetLocation = null; //æ ¹æ®è®¢åæ°éæ¥å¯»æ¾å¯¹åºåºåºä¸åç©æç±»ååºä½ if (workinfo.PlannedQuantity < 50) //åºåº1 ç©æç±»åå¤ { dt_stationinfo station = stationinfoRepository.Find(x => x.stationType == stationinfo.stationType && x.area == "1").OrderByDescending(x => x.lastUpdateTime).FirstOrDefault(); if (station != null) { //å¦åå¨åç©æç±»åä¸å¨1è¡çåºååæ°å ¥åºçç©ææ¾è³åå ä¸åå¨åå¯»æ¾æ°è¡åºä½ if (station.line == 1) { TargetLocation = stationinfoRepository.Find(x => x.area == station.area && x.location_state == LocationStateEnum.Empty.ToString() && x.column == station.column && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); } TargetLocation = stationinfoRepository.Find(x => x.area == station.area && x.location_state == LocationStateEnum.Empty.ToString() && x.line == 1 && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); } else { TargetLocation = stationinfoRepository.Find(x => x.area == "1" && x.location_state == LocationStateEnum.Empty.ToString() && x.line == 1 && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); } } else { //int quantity = Convert.ToInt32(workinfo.PlannedQuantity); //string area = GetArea(quantity); #region æ ¹æ®è®¢åæ°éæ¥å¯»æ¾å¯¹åºåºåºä¸åç©æç±»ååºä½ //if (workinfo.PlannedQuantity < 50) //åºåº1 ç©æç±»åå¤ //{ // dt_stationinfo station = stationinfoRepository.Find(x => x.stationType == stationinfo.stationType && x.area == "1").OrderByDescending(x => x.lastUpdateTime).FirstOrDefault(); // if (station != null) // { // //å¦åå¨åç©æç±»åä¸å¨1è¡çåºååæ°å ¥åºçç©ææ¾è³åå ä¸åå¨åå¯»æ¾æ°è¡åºä½ // if (station.line == 1) // { // TargetLocation = stationinfoRepository.Find(x => x.area == station.area && x.location_state == LocationStateEnum.Empty.ToString() && x.column == station.column && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); // } // TargetLocation = stationinfoRepository.Find(x => x.area == station.area && x.location_state == LocationStateEnum.Empty.ToString() && x.line == 1 && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); // } // else // { // TargetLocation = stationinfoRepository.Find(x => x.area == "1" && x.location_state == LocationStateEnum.Empty.ToString() && x.line == 1 && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); // } //} //else //{ //int quantity = Convert.ToInt32(workinfo.PlannedQuantity); //string area = GetArea(quantity); dt_materielinfo materielinfo = freeDB.Select<dt_materielinfo>().Where(x => x.materiel_id == stationinfo.stationType).First(); //dt_materielinfo materielinfo = freeDB.Select<dt_materielinfo>().Where(x => x.materiel_id == stationinfo.stationType).First(); if (materielinfo == null) throw new Exception($"æ æ¤ç©æç±»å{stationinfo.stationType}åºåº"); //if (materielinfo == null) // throw new Exception($"æ æ¤ç©æç±»å{stationinfo.stationType}åºåº"); string area = materielinfo.materiel_areaid.ToString(); //string area = materielinfo.materiel_areaid.ToString(); //å¦åå¨åç±»åç©æåæ¾ç½®åè¡åºä½ ä¸åå¨åæ¾ç½®æ°è¡ç第ä¸åä¸ dt_stationinfo station = stationinfoRepository.Find(x => x.stationType == stationinfo.stationType && x.area == area).OrderBy(x => x.lastUpdateTime).FirstOrDefault(); if (station != null) { TargetLocation = stationinfoRepository.Find(x => x.area == station.area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.line == station.line).OrderBy(x => x.column).FirstOrDefault(); if (TargetLocation == null) { TargetLocation = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.column == '1').OrderBy(x => x.line).FirstOrDefault(); } } else { TargetLocation = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.column == '1').OrderBy(x => x.line).FirstOrDefault(); } //å¦åå¨åç±»åç©æåæ¾ç½®åè¡åºä½ ä¸åå¨åæ¾ç½®æ°è¡ç第ä¸åä¸ //dt_stationinfo station = stationinfoRepository.Find(x => x.stationType == stationinfo.stationType && x.area == area).OrderBy(x => x.lastUpdateTime).FirstOrDefault(); //if (station != null) //{ // TargetLocation = stationinfoRepository.Find(x => x.area == station.area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.line == station.line).OrderBy(x => x.column).FirstOrDefault(); // if (TargetLocation == null) // { // TargetLocation = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.column == '1').OrderBy(x => x.line).FirstOrDefault(); // } //} //else //{ // TargetLocation = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.column == '1').OrderBy(x => x.line).FirstOrDefault(); //} //todo å¦ç©æå·²æ»¡åæ¾ç½®å ¶ä»åºåº //if (TargetLocation == null) //{ // stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.column == '1').OrderBy(x => x.line).FirstOrDefault(); //} } if (TargetLocation == null) { throw new Exception("åºä½å·²æ»¡"); } //todo å¦ç©æå·²æ»¡åæ¾ç½®å ¶ä»åºåº //if (TargetLocation == null) //{ // stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable && x.column == '1').OrderBy(x => x.line).FirstOrDefault(); //} //} //if (TargetLocation == null) //{ // throw new Exception("åºä½å·²æ»¡"); //} //else if (workinfo.PlannedQuantity >= 50 && workinfo.PlannedQuantity < 110) //åºåº2 //{ @@ -148,7 +166,30 @@ //else if(workinfo.PlannedQuantity >= 110 && workinfo.PlannedQuantity < 180) //{ //} //} #endregion //æ ¹æ®è®¢åçå·/å·¥åå·/ç±»å if (mesinfo.quantity >= 180) { //æ¥è¯¢åºåè®°å½ä¸æ¯å¦åå¨åç±»å/å·¥å/çå·çè®°å½ å¦æåæ¾ç½®åä¸è¡ï¼æ åå¯»æ¾æ°åºä½ var detail = freeDB.Select<dt_mes_detail>().Where(x => x.jobID == mesinfo.jobID).First(); var inventory = freeDB.Select<dt_inventory>().Where(x => x.HeatNumber == detail.heatID /*&& x.*/).First(); if (inventory != null) { int line = Convert.ToInt16(inventory.stationCode.Split("-")[0]); TargetLocation = stationinfoRepository.Find(x => x.line == line && x.location_state == LocationStateEnum.Empty.ToString() && x.area == inventory.area).FirstOrDefault(); } else { TargetLocation = stationinfoRepository.Find(x => x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.line).ThenBy(x => x.column).FirstOrDefault(); } } if (TargetLocation == null) { throw new Exception("åºä½å·²æ»¡"); } return TargetLocation; } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/ToMES/ToMesServer.cs
@@ -58,7 +58,7 @@ var mesinfo = freeDB.Select<dt_mes_head>().Where(x => x.jobID == workInfo.jobID).First(); if (mesinfo != null) { return content.Error($"å·¥åå·{mesinfo.jobID}å·²åå¨,è¯·æ ¸å®åå¨åéï¼"); return content.Error($"å·¥åå·{mesinfo.jobID}å·²åå¨,è¯·æ ¸å®åéæ°åéï¼"); } Guid head = Guid.NewGuid(); @@ -81,7 +81,9 @@ reqIDLineNo = workInfo.reqIDLineNo, stackNoRange = workInfo.stackNoRange, typeID = workInfo.typeID, workOrder = workInfo.workOrder workOrder = workInfo.workOrder, processCode = workInfo.processCode, finishNum = 0 }; freeDB.Add(mes_Head); @@ -103,7 +105,7 @@ } catch (Exception ex) { return content.Error(ex.Message); return content.Error(ex.Message); } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Comm.MES_Info { public class BasicSN { public class detail { public string sn { get; set; } } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/MES_Response.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Comm.MES_Info { public class MES_Response { /// <summary> /// ç¶æç /// </summary> public string code { get; set; } /// <summary> /// æ¶æ¯ /// </summary> public string message { get; set; } /// <summary> /// ååºæ°æ® /// </summary> public string data { get; set; } /// <summary> /// å æ æ¶æ¯ /// </summary> public string stackMsg { get; set; } /// <summary> /// æ©å± /// </summary> public string Extras { get; set; } /// <summary> /// ç±»å /// </summary> public string Type { get; set; } /// <summary> /// æ¶é´ /// </summary> public DateTime Time { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvInWarehousePara.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Comm.MES_Info.Request { public class agvInWarehousePara:BasicSN { /// <summary> /// å·¥åç¼å· /// </summary> public string JobID { get; set; } /// <summary> /// è½¦è½®ä¿¡æ¯ /// </summary> public List<detail> details { get; set; } /// <summary> /// åºæ¿åç§° /// </summary> public string warehouseName { get; set; } /// <summary> /// åºä½åç§° /// </summary> public string zoneID { get; set; } /// <summary> /// åä½åç§° /// </summary> public string stackID { get; set; } /// <summary> /// å±å· /// </summary> public int? layerNo { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvMoveWarehousePara.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Comm.MES_Info.Request { /// <summary> /// 车轮移åºåæ°(åºå ç§»åº) /// </summary> public class agvMoveWarehousePara : BasicSN { /// <summary> /// 车轮SN /// </summary> public List<detail> details { get; set; } /// <summary> /// æºåºæ¿åç§° /// </summary> public string fromWarehouseName { get; set; } /// <summary> /// æºåºä½åç§° /// </summary> public string fromZoneID { get; set; } /// <summary> /// æºåä½åç§° /// </summary> public string fromStackID { get; set; } /// <summary> /// æºå±å· /// </summary> public string fromLayerNo { get; set; } /// <summary> /// ç®æ åºæ¿åç§° /// </summary> public string toWarehouseName { get; set;} /// <summary> /// ç®æ åºä½åç§° /// </summary> public string toZoneID { get; set;} /// <summary> /// ç®æ åä½åç§° /// </summary> public string toStackID { get; set;} /// <summary> /// ç®æ å±å· /// </summary> public string toLayerNo { get; set;} } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvOutWarehousePara.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Comm.MES_Info { public class agvOutWarehousePara : BasicSN { /// <summary> /// å·¥åå· /// </summary> public string JobID { get; set; } /// <summary> /// 车轮 /// </summary> public List<detail> details { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvTransferListPara.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,27 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Comm.MES_Info.Request { public class agvTransferListPara : BasicSN { public string transferListID { get; set; } public string materialCode { get; set; } public string drawingNoVer { get; set; } public string fromWarehouse { get; set; } public string toWarehouse { get; set; } public string Operator { get; set; } public string updateTime { get; set; } /// <summary> /// è½¦è½®ä¿¡æ¯ /// </summary> public List<detail> details { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Response/Mes_WorkInfo.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,121 @@ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using System.Text; namespace WIDESEA_Common.Response { public class Mes_WorkInfo { /// <summary> /// å·¥ä½ä»¤å· /// </summary> public string workOrder { get; set; } /// <summary> /// å·¥åå· /// </summary> public string jobID { get; set; } /// <summary> /// éæ±åå· /// </summary> public string reqID { get; set; } /// <summary> /// éæ±åå· /// </summary> public string reqIDLineNo { get; set; } /// <summary> /// ç©æç¼ç /// </summary> public string materialCode { get; set; } /// <summary> /// å¾å· /// </summary> public string drawingNo { get; set; } /// <summary> /// ææ¯ç¶æ /// </summary> public string drawingNoVer { get; set; } /// <summary> /// 产åå /// </summary> public string productName { get; set; } /// <summary> /// 产åæè¿° /// </summary> public string productDesc { get; set; } /// <summary> /// è®¡åæ°é /// </summary> public int? quantity { get; set; } /// <summary> /// è½®å代ç /// </summary> //[AllowNull] public string typeID { get; set; } /// <summary> /// æå æ°é /// </summary> public int? stackNoRange { get; set; } /// <summary> /// è½®å¾åå·® /// </summary> public decimal? maxDiameterDiff { get; set; } /// <summary> /// 计åå¼å§æ¶é´ /// </summary> public DateTime? expectedStartTime { get; set; } /// <summary> /// 计åç»ææ¶é´ /// </summary> public DateTime? expectedFinishTime { get; set; } /// <summary> /// 车轮信æ¯éå /// </summary> public List<detail> details { get; set; } } public class detail { /// <summary> /// å·¥åç¼å· /// </summary> public string jobID { get; set; } /// <summary> /// çä»£å· /// </summary> public string heatID { get; set; } /// <summary> ///é¢å¯å· /// </summary> public int? billetID { get; set; } /// <summary> /// 车轮SNå· /// </summary> public string SN { get; set; } /// <summary> /// çå¤çæ¹æ¬¡ /// </summary> public string heatBatchID { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_inventory.cs
@@ -13,105 +13,113 @@ namespace WIDESEA_Entity.DomainModels { [Entity(TableCnName = "åºåæ¥è¯¢",TableName = "dt_inventory")] public partial class dt_inventory:BaseEntity [Entity(TableCnName = "åºåæ¥è¯¢", TableName = "dt_inventory")] public partial class dt_inventory : BaseEntity { /// <summary> ///车轮SNå· /// </summary> [Display(Name ="车轮SNå·")] [MaxLength(255)] [Column(TypeName="nvarchar(255)")] [Editable(true)] public string SN { get; set; } ///车轮SNå· /// </summary> [Display(Name = "车轮SNå·")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string SN { get; set; } /// <summary> ///产ååç§° /// </summary> [Display(Name ="产ååç§°")] [MaxLength(255)] [Column(TypeName="nvarchar(255)")] [Editable(true)] public string Name { get; set; } /// <summary> ///产ååç§° /// </summary> [Display(Name = "产ååç§°")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string Name { get; set; } /// <summary> ///产åå¾å· /// </summary> [Display(Name ="产åå¾å·")] [MaxLength(255)] [Column(TypeName="nvarchar(255)")] [Editable(true)] public string FigureNumber { get; set; } /// <summary> ///产åå¾å· /// </summary> [Display(Name = "产åå¾å·")] [MaxLength(255)] [Column(TypeName = "nvarchar(255)")] [Editable(true)] public string FigureNumber { get; set; } /// <summary> ///çç¼çå· /// </summary> [Display(Name ="çç¼çå·")] [MaxLength(255)] [Column(TypeName="varchar(255)")] [Editable(true)] public string HearthNumber { get; set; } /// <summary> ///çç¼çå· /// </summary> [Display(Name = "çç¼çå·")] [MaxLength(255)] [Column(TypeName = "varchar(255)")] [Editable(true)] public string HearthNumber { get; set; } /// <summary> ///çä»£å· /// </summary> [Display(Name ="ç代å·")] [MaxLength(50)] [Column(TypeName="nvarchar(50)")] [Editable(true)] public string HeatNumber { get; set; } /// <summary> ///çä»£å· /// </summary> [Display(Name = "ç代å·")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string HeatNumber { get; set; } /// <summary> ///é¢å¯å· /// </summary> [Display(Name ="é¢å¯å·")] [Column(TypeName="int")] [Editable(true)] public int? BilletNumber { get; set; } /// <summary> ///é¢å¯å· /// </summary> [Display(Name = "é¢å¯å·")] [Column(TypeName = "int")] [Editable(true)] public int? BilletNumber { get; set; } /// <summary> ///å ¥åºæ¶é´ /// </summary> [Display(Name ="å ¥åºæ¶é´")] [Column(TypeName="datetime")] [Editable(true)] public DateTime? OnlineTime { get; set; } /// <summary> ///å ¥åºæ¶é´ /// </summary> [Display(Name = "å ¥åºæ¶é´")] [Column(TypeName = "datetime")] [Editable(true)] public DateTime? OnlineTime { get; set; } /// <summary> ///æä½äººå /// </summary> [Display(Name ="æä½äººå")] [MaxLength(50)] [Column(TypeName="nvarchar(50)")] [Editable(true)] public string Operator { get; set; } /// <summary> ///æä½äººå /// </summary> [Display(Name = "æä½äººå")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string Operator { get; set; } /// <summary> ///æè¿° /// </summary> [Display(Name ="æè¿°")] [Column(TypeName="nvarchar(max)")] [Editable(true)] public string remark { get; set; } /// <summary> ///æè¿° /// </summary> [Display(Name = "æè¿°")] [Column(TypeName = "nvarchar(max)")] [Editable(true)] public string remark { get; set; } /// <summary> ///ID /// </summary> [Key] [Display(Name ="ID")] [Column(TypeName="int")] [Editable(true)] [Required(AllowEmptyStrings=false)] public int ID { get; set; } /// <summary> ///ID /// </summary> [Key] [Display(Name = "ID")] [Column(TypeName = "int")] [Editable(true)] [Required(AllowEmptyStrings = false)] public int ID { get; set; } /// <summary> ///è´§ä½ç¼å· /// </summary> [Display(Name ="è´§ä½ç¼å·")] [MaxLength(30)] [Column(TypeName="nvarchar(30)")] public string stationCode { get; set; } /// <summary> ///è´§ä½ç¼å· /// </summary> [Display(Name = "è´§ä½ç¼å·")] [MaxLength(30)] [Column(TypeName = "nvarchar(30)")] public string stationCode { get; set; } [Display(Name = "åºå代ç ")] [Column(TypeName = "nvarchar(15)")] [Editable(true)] public string area { get; set; } [Display(Name = "å·¥åç¼å·")] [Column(TypeName = "nvarchar(40)")] [Editable(true)] public string jobID { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/Taskinfo/dt_agvtask.cs
@@ -206,12 +206,12 @@ public DateTime? agv_completeBeginTime { get; set; } /// <summary> /// ///å·¥åå· /// </summary> [Display(Name = "unitag")] [Column(TypeName = "uniqueidentifier")] [Display(Name = "å·¥åå·")] [Column(TypeName = "nvarchar(40)")] [Editable(true)] public Guid? unitag { get; set; } public string jobID { get; set; } /// <summary> ///车轮SNå· ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,94 @@ using Newtonsoft.Json; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using WIDESEA_Comm.MES_Info; using WIDESEA_Comm.MES_Info.Request; using WIDESEA_Common; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.ToAGV; using static WIDESEA_Comm.MES_Info.BasicSN; namespace WIDESEA_WMS.Common.AGVTask { public class HandleTask_Mes { public void UploadMESInfo(dt_agvtask task) { try { object obj = new object(); //ä¸ä¼ MESæ°æ® string ActionName = ""; //è°ç¨MESæ¹æ³å List<detail> list = new List<detail>(); //è½¦è½®ä¿¡æ¯ if (task == null) { throw new Exception("æ 任塿°æ®"); } foreach (var item in task.bindSN.Split(",")) { detail detail = new detail(); detail.sn = item; list.Add(detail); } if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceOutbound.ToString()) { agvOutWarehousePara outWarehousePara = new agvOutWarehousePara() { JobID = task.jobID, details = list }; obj = outWarehousePara; ActionName = "agvOutWarehouse"; } else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Inbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceInbound.ToString()) { agvInWarehousePara inWarehousePara = new agvInWarehousePara() { details = list, JobID = task.jobID, layerNo = 1, stackID = task.agv_barcode, warehouseName = "Agvåº", zoneID = task.agv_toaddress, }; obj = inWarehousePara; ActionName = "agvInWarehouse"; } else if (task.agv_tasktype == "Transfer") //ç§»åºåºå åºå ç§»åº/å¤åç§»åº { agvMoveWarehousePara moveWarehousePara = new agvMoveWarehousePara() { details = list, fromLayerNo = "1", fromStackID = "", fromWarehouseName = "Agvåº", fromZoneID = task.agv_fromaddress, toLayerNo = "1", toStackID = "", toWarehouseName = "Agvåº", toZoneID = task.agv_toaddress, }; obj = moveWarehousePara; ActionName = "agvMoveWarehouse"; } //else if (task.agv_tasktype == "Transfer") //{ //} var postJson = JsonConvert.SerializeObject(obj); string mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + ActionName); var requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData); if (requestMes.code == "200" && requestMes.Type == "success") { //æ¥å¿è®°å½ä¸ä¼ æ°æ®æå } } catch (Exception ex) { throw new Exception(ex.Message); } } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/UploadMesInfo/MESAPIAddress.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_WMS.Common { public class MESAPIAddress { public const string IPAddress_MES = "http://10.13.3.102:80/api/agv/"; } }