.gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvTransferListPara.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_MES_Info.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/partial/VV_MES_Info.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/SendEpmtyTask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
代码管理/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.gitignore
@@ -5,3 +5,17 @@ 代ç 管ç/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 代ç 管ç/WMS/WMS_Server/.editorconfig 代ç 管ç/PCS/WCS_Server/.editorconfig 代ç 管ç/PCS/WCS_Server/WIDESEA_System/WIDESEA_System.csproj *.sln 代ç 管ç/PCS/WCS_Server/WIDESEA_WebApi/appsettings.json 代ç 管ç/WMS/WMS_Server/WIDESEA_Comm/StateEnum/LocationStateEnum.cs 代ç 管ç/WMS/WMS_Server/WIDESEA_Entity/DomainModels/System/dt_materielinfo.cs 代ç 管ç/WMS/WMS_Server/WIDESEA_System/WIDESEA_System.csproj 代ç 管ç/WMS/WMS_Server/WIDESEA_WebApi/appsettings.json 代ç 管ç/WMS/WMS_Server/WIDESEA_WMS/WIDESEA_WMS.csproj 代ç 管ç/WMS/WMS_Server/WIDESEA_WMSServe.sln 代ç 管ç/PCS/WCS_Server/WIDESEA_System/WIDESEA_System.csproj 代ç 管ç/PCS/WCS_Server/WIDESEA_System/WIDESEA_System.csproj *.csproj ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/BasicSN.cs
@@ -6,6 +6,9 @@ namespace WIDESEA_Comm.MES_Info { /// <summary> /// ç¨äºä¸ä¼ MESä¿¡æ¯çè½¦è½®ä¿¡æ¯ /// </summary> public class BasicSN { public class detail ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Comm/MES_Info/Request/agvTransferListPara.cs
@@ -6,36 +6,46 @@ namespace WIDESEA_Comm.MES_Info.Request { /// <summary> /// 车轮移åºäº¤æ¥ï¼ç±AGVåºäº¤æ¥ç»æ¯è½®åºæè å ¶ä»åºæ¿ /// </summary> public class agvTransferListPara : BasicSN { /// <summary> /// 转移åå· /// ç§»åºäº¤æ¥åå· /// </summary> public string transferListID { get; set; } /// <summary> /// è½¦è½®ç©æç¼ç /// è½¦è½®ç©æç¼å· /// </summary> public string materialCode { get; set; } /// <summary> /// ææ¯ç¶æ /// </summary> public string drawingNoVer { get; set; } /// <summary> /// æºåºæ¿åç§° /// ååºæ¿åç§° /// </summary> public string fromWarehouse { get; set; } /// <summary> /// ç®æ åºæ¿åç§° /// </summary> public string toWarehouse { get; set; } /// <summary> /// æä½äººå /// </summary> public string Operator { get; set; } /// <summary> /// æä½æ¶é´ /// </summary> public DateTime updateTime { get; set; } public string updateTime { get; set; } /// <summary> /// è½¦è½®ä¿¡æ¯ /// </summary> ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/VV_MES_Info.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,234 @@ using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Entity.DomainModels { public partial class VV_MES_Info { /// <summary> ///ID /// </summary> [Key] [Display(Name = "mes_id")] [Column(TypeName = "uniqueidentifier")] [Required(AllowEmptyStrings = false)] public Guid mes_id { get; set; } /// <summary> ///å·¥ä½ä»¤å· /// </summary> [Display(Name = "å·¥ä½ä»¤å·")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string workOrder { get; set; } /// <summary> ///å·¥åç¼å· /// </summary> [Display(Name = "å·¥åç¼å·")] [MaxLength(40)] [Column(TypeName = "nvarchar(40)")] [Editable(true)] public string jobID { get; set; } /// <summary> ///éæ±åå· /// </summary> [Display(Name = "éæ±åå·")] [MaxLength(40)] [Column(TypeName = "nvarchar(40)")] [Editable(true)] public string reqID { get; set; } /// <summary> ///éæ±åå·è¡å· /// </summary> [Display(Name = "éæ±åå·è¡å·")] [MaxLength(20)] [Column(TypeName = "nvarchar(20)")] [Editable(true)] public string reqIDLineNo { get; set; } /// <summary> ///å·¥åç±»å (17-æºå å·¥ 28-æ£æµçº¿) /// </summary> [Display(Name = "å·¥åç±»å")] [MaxLength(20)] [Column(TypeName = "nvarchar(20)")] [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 = "ç©æç¼ç ")] [MaxLength(20)] [Column(TypeName = "nvarchar(20)")] [Editable(true)] public string materialCode { get; set; } /// <summary> ///å¾å· /// </summary> [Display(Name = "å¾å·")] [MaxLength(20)] [Column(TypeName = "nvarchar(20)")] [Editable(true)] public string drawingNo { get; set; } /// <summary> ///ææ¯ç¶æ /// </summary> [Display(Name = "ææ¯ç¶æ")] [MaxLength(10)] [Column(TypeName = "nvarchar(10)")] [Editable(true)] public string drawingNoVer { get; set; } /// <summary> ///产ååç§° /// </summary> [Display(Name = "产ååç§°")] [MaxLength(40)] [Column(TypeName = "nvarchar(40)")] [Editable(true)] public string productName { get; set; } /// <summary> ///产åæè¿° /// </summary> [Display(Name = "产åæè¿°")] [Column(TypeName = "nvarchar(200)")] [Editable(true)] [MaxLength(200)] public string productDesc { get; set; } /// <summary> ///工忰é /// </summary> [Display(Name = "工忰é")] [Column(TypeName = "int")] [Editable(true)] public int? quantity { get; set; } /// <summary> ///è½®å代ç /// </summary> [Display(Name = "è½®å代ç ")] [MaxLength(20)] [Column(TypeName = "nvarchar(20)")] [Editable(true)] public string typeID { get; set; } /// <summary> ///æå æ°é /// </summary> [Display(Name = "æå æ°é")] [Column(TypeName = "int")] [Editable(true)] public int? stackNoRange { get; set; } /// <summary> ///è½®å¾åå·® /// </summary> [Display(Name = "è½®å¾åå·®")] [Column(TypeName = "nmberic(18,2)")] [Editable(true)] public decimal? maxDiameterDiff { get; set; } /// <summary> ///å·¥åå¼å§æ¶é´ /// </summary> [Display(Name = "å·¥åå¼å§æ¶é´")] [Column(TypeName = "datetime")] public DateTime? expectedStartTime { get; set; } /// <summary> ///å·¥åç»ææ¶é´ /// </summary> [Display(Name = "å·¥åç»ææ¶é´")] [Column(TypeName = "datetime")] public DateTime? expectedFinishTime { get; set; } /// <summary> ///å建æ¶é´ /// </summary> [Display(Name = "å建æ¶é´")] [Column(TypeName = "datetime")] public DateTime CreateTime { get; set; } /// <summary> ///å建è /// </summary> [Display(Name = "å建è ")] [MaxLength(40)] [Column(TypeName = "nvarchar(40)")] public string creator { get; set; } ///// <summary> /////å·¥åæç»ID ///// </summary> //[Key] //[Display(Name = "mes_detail_id")] //[Column(TypeName = "uniqueidentifier")] //[Required(AllowEmptyStrings = false)] //public Guid mes_detail_id { get; set; } ///// <summary> /////å·¥å头表ID ///// </summary> //[Display(Name = "mes_headID")] //[Column(TypeName = "uniqueidentifier")] //[Required(AllowEmptyStrings = false)] //public Guid mes_headID { get; set; } /// <summary> ///çä»£å· /// </summary> [Display(Name = "ç代å·")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string heatID { get; set; } /// <summary> ///é¢å¯å· /// </summary> [Display(Name = "é¢å¯å·")] [Column(TypeName = "int")] [Editable(true)] public int? billetID { get; set; } /// <summary> ///车轮SNå· /// </summary> [Display(Name = "车轮SNå·")] [MaxLength(50)] [Column(TypeName = "nvarchar(50)")] [Editable(true)] public string SN { get; set; } /// <summary> ///çå¤çæ¹æ¬¡ /// </summary> [Display(Name = "çå¤çæ¹æ¬¡")] [MaxLength(30)] [Column(TypeName = "varchar(30)")] [Editable(true)] public string heatBatchID { get; set; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_Entity/DomainModels/ToMES/partial/VV_MES_Info.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_Entity.DomainModels { public partial class VV_MES_Info { } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask_Mes.cs
@@ -102,7 +102,7 @@ fromWarehouse = "AGVåº", toWarehouse = "æ¯è½®åº", Operator = task.agv_userid, updateTime = task.agv_createtime updateTime = task.agv_createtime.ToString(), }; obj = agvTransferListPara; ActionName = "agvTransferList"; ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/OutsourceInbound.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Threading.Tasks; using WIDESEA_Comm; using WIDESEA_Comm.LogInfo; using WIDESEA_Comm.MES_Info; using WIDESEA_Comm.MES_Info.Request; using WIDESEA_Common; using WIDESEA_Core.EFDbContext; using WIDESEA_Core.ManageUser; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.DomainModels.Mes; using WIDESEA_WMS.Common; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; using static WIDESEA_Comm.MES_Info.BasicSN; namespace WIDESEA_WMS { public partial class ToMesServer { /// <summary> /// å¤åå ¥åº(æ£æµä¸æ) /// </summary> /// <param name="saveModel"></param> /// <returns></returns> public WebResponseContent OutsourceInbound(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { string stationNo = saveModel.MainData["stationNo"].ToString(); //ç¼åæ¶ç¼å· string user = saveModel.MainData["creator"].ToString(); string sn = saveModel.MainData["dataSN"].ToString(); //车轮SNå· int i = 1; //车轮æ°é foreach (var item in sn.Split(",")) { if(item!= null) { var info = freeDB.Select<VV_MES_Info>().Where(x => x.SN == item).First(); if (info == null) { return content.Error($"第{i}ä¸ªè½¦è½®æ æ£æµä¸æå·¥åä¿¡æ¯ï¼è¯·æ ¸æ¥å·¥åå卿«æï¼"); } i++; } } dt_agvtask agvtask = new dt_agvtask { agv_barcode = stationNo, agv_code = user, agv_createtime = DateTime.Now, agv_fromaddress = stationNo, agv_qty = i, agv_grade = 1, agv_tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString(), agv_taskstate = AGVTaskStateEnum.Create.ToString(), agv_toaddress = "", }; freeDB.Add(agvtask); return content.OK(); } catch (Exception ex) { return content.Error($"å¼å«AGV失败:{ex.Message}"); } } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/SendEpmtyTask.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,110 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Threading.Tasks; using WIDESEA_Comm; using WIDESEA_Comm.LogInfo; using WIDESEA_Comm.MES_Info; using WIDESEA_Comm.MES_Info.Request; using WIDESEA_Common; using WIDESEA_Core.EFDbContext; using WIDESEA_Core.ManageUser; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.DomainModels.Mes; using WIDESEA_WMS.Common; using WIDESEA_WMS.IRepositories; using WIDESEA_WMS.Repositories; using static WIDESEA_Comm.MES_Info.BasicSN; namespace WIDESEA_WMS { public partial class ToMesServer { /// <summary> /// 空çæä½ (å¤å空çå ¥åºï¼ç©ºçè¡¥é) /// </summary> /// <param name="saveModel"></param> /// <returns></returns> public WebResponseContent SendEpmtyTask(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { string cacheNo = saveModel.MainData["cacheNo"].ToString(); //ç¼åæ¶ç¼å· string user = saveModel.MainData["creator"].ToString(); string type = saveModel.MainData["radio"].ToString(); //1为空çå ¥åº 2为空çåºåº int number = Convert.ToInt32(saveModel.MainData["number"].ToString()); if (type == "1") //空çå ¥åº { //寻æ¾ç©ºçåºä½ dt_stationinfo emptyLocation = GetEmptyLocation(); dt_agvtask agvtask = new dt_agvtask { agv_barcode = cacheNo, agv_code = user, agv_createtime = DateTime.Now, agv_fromaddress = cacheNo, agv_qty = number, agv_grade = 1, agv_tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString(), agv_taskstate = AGVTaskStateEnum.Create.ToString(), agv_toaddress = emptyLocation.stationCode, }; freeDB.Add(agvtask); } else { //æ ¹æ®åºåæ¥è¯¢ç©ºçåºåä¿¡æ¯ dt_inventory inventory = freeDB.Select<dt_inventory>().Where(x => x.area == "11").OrderByDescending(x => x.OnlineTime).First(); //åææçå ¥åºè½¦è½® //æ°éï¼ //var stationinfo = freeDB.Select<dt_stationinfo>().Where(x => x.stationCode == inventory.stationCode).First(); //int num = Convert.ToInt16(stationinfo.quantity); dt_agvtask agvtask = new dt_agvtask { agv_barcode = cacheNo, agv_code = user, agv_createtime = DateTime.Now, agv_fromaddress = inventory.stationCode, agv_qty = 5, //inventory., //åè¯AGVå第å ä¸ªè½¦è½®ï¼ agv_grade = 1, agv_tasktype = AGVTaskTypeEnum.TaskType_Inbound.ToString(), agv_taskstate = AGVTaskStateEnum.Create.ToString(), agv_toaddress = cacheNo, }; freeDB.Add(agvtask); } return content.OK(); } catch (Exception ex) { return content.Error($"å¼å«AGV失败:{ ex.Message}"); } } private dt_stationinfo GetEmptyLocation() { VOLContext context = new VOLContext(); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context); var station = stationinfoRepository.Find(x => x.line == 9 && x.location_state == LocationStateEnum.Empty.ToString() && x.area == "11").FirstOrDefault(); // todoåºå大尿ç if (station != null) { return station; } else { throw new Exception("空çåºä½å·²æ»¡,æ æ³å ¥åº!"); } } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/ToMes/agvTransferList.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Threading.Tasks; using WIDESEA_Comm; using WIDESEA_Comm.LogInfo; using WIDESEA_Comm.MES_Info; using WIDESEA_Comm.MES_Info.Request; using WIDESEA_Common; using WIDESEA_Core.ManageUser; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.DomainModels.Mes; using WIDESEA_WMS.Common; using static WIDESEA_Comm.MES_Info.BasicSN; namespace WIDESEA_WMS { public partial class ToMesServer { /// <summary> /// PDAç§»åºäº¤æ¥ /// </summary> /// <param name="requestTemp"></param> /// <returns></returns> public WebResponseContent agvTransferList(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { string sn = saveModel.MainData["sn"].ToString(); string user = saveModel.MainData["creator"].ToString(); //å·¥åå·çæ string jobID = "TW" + DateTime.Now.ToString("HH-mm-ss-ff"); //æ ¹æ®åºåæ¥è¯¢è½¦è½®ä¿¡æ¯ dt_inventory inventory = freeDB.Select<dt_inventory>().Where(x => x.SN.Contains(sn)).First(); if (inventory == null) { return content.Error($"æ æ¤è½¦è½®{sn}SNå·,è¯·æ ¸æ¥åºåè®°å½!"); } List<detail> list = new List<detail>(); //è½¦è½®ä¿¡æ¯ foreach (var item in inventory.SN.Split(",")) { detail detail = new detail(); detail.sn = item; list.Add(detail); } agvTransferListPara listPara = new agvTransferListPara { details = list, transferListID = jobID, toWarehouse = "æ¯è½®åº", fromWarehouse = "AGVåº", updateTime = DateTime.Now.ToString(), drawingNoVer = "", materialCode = "", Operator = user == null ? "admin" : user }; var postJson = JsonConvert.SerializeObject(listPara); string mesData = Request.RequestData(postJson, MESAPIAddress.IPAddress_MES + "agvTransferList"); var requestMes = JsonConvert.DeserializeObject<MES_Response>(mesData); if (requestMes.code == "200" && requestMes.Type == "success") { return content.OK("ç§»åºäº¤æ¥æåï¼"); //æ¥å¿è®°å½ä¸ä¼ æ°æ®æå } } catch (Exception ex) { content.Error(ex.Message); } return content; } } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/ToWms/ToWMSController.cs
@@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using WIDESEA_Core.Utilities; using WIDESEA_Entity.DomainModels; using WIDESEA_Entity.DomainModels.Mes; using WIDESEA_WMS; @@ -21,5 +22,39 @@ return new ToMesServer().AddToFloat3(request); } /// <summary> /// å¤åç§»åº /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost, Route("agvTransferList")] public WebResponseContent agvTransferList([FromBody] SaveModel saveModel) { return new ToMesServer().agvTransferList(saveModel); } /// <summary> /// å¤åå ¥åº(æ£æµä¸æ) /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost, Route("OutsourceInbound")] public WebResponseContent OutsourceInbound([FromBody] SaveModel saveModel) { return new ToMesServer().OutsourceInbound(saveModel); } /// <summary> /// 空ç /// </summary> /// <param name="request"></param> /// <returns></returns> [HttpPost, Route("SendEpmtyTask")] public WebResponseContent SendEpmtyTask([FromBody] SaveModel saveModel) { return new ToMesServer().SendEpmtyTask(saveModel); } } }