From 7e469b73ac4f022cb78689c6d2b0c4ddee26d18c Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 02 12月 2024 15:37:34 +0800 Subject: [PATCH] 优化 --- CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/DataProcess_BZ21.cs | 218 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 184 insertions(+), 34 deletions(-) diff --git "a/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs" "b/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs" index 9f681ac..77a06ef 100644 --- "a/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs" +++ "b/CC/iWareCC_ASRS/ThreadService/04_BZ21\357\274\210\346\220\254\350\277\220\346\225\264\345\236\233\346\234\272\345\231\250\344\272\272\357\274\211/DataProcess_BZ21.cs" @@ -1,12 +1,15 @@ 锘縰sing Admin.NET.Application; +using iWareCC.Common.Helper; using iWareCC.StationService; using iWareCommon.Common.Globle; using iWareCommon.Utils; using iWareModel; using iWareSql.DataAccess; using iWareSql.WmsDBModel; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading; @@ -28,6 +31,7 @@ { if (SystemValue.isStartedModel) { + var rgvLocation = StationLocationEnum.BZ21.ToString(); /* * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬 @@ -61,48 +65,118 @@ SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-璇锋眰浜嗚В鐮侊紝浣嗘槸缁撴灉鏄┖鐨�,姝ゆ寰幆缁撴潫"; continue; } - var upiCode = result.Replace("/r", ""); ; - short cartonwidth = 0;//鏄惁鏈澘 - short cartonhigh = 0;//鏄惁鏃嬭浆 - short placeX = 0; - short placeY = 0; - short placeZ = 0; - string place = ""; + short cartonwidth = 0;//绾哥瀹� + short cartonhigh = 0;//绾哥楂� + string place = "22"; using (WmsDBModel wmsDB = new WmsDBModel()) { //瑕佹槸鏈夊凡涓嬪彂鐨勪换鍔★紝灏变笉瑕佹墽琛� - var isValidate = TaskHandler.ValidateIssueTaskForBZ21(wmsDB,result); + var isValidate = TaskHandler.ValidateIssueTaskForBZ21(wmsDB, result); if (!isValidate) { SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()}-鏈夆�樺凡涓嬪彂鈥欑殑浠诲姟锛屼笉鑳藉鐞�,姝ゆ寰幆缁撴潫"; continue; } - var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == upiCode).FirstOrDefault(); + var upiObj = wmsDB.mes_batchOrderUPI_new.Where(x => x.UPI == result).FirstOrDefault(); if (upiObj == null) { - SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()},鏍规嵁UPI:{upiCode}娌℃湁鎵惧埌瀵硅薄 "; + SystemWarningMsg._lbl_alert_DataProcess_BZ21 = $"{rgvLocation.ToString()},鏍规嵁UPI:{result}娌℃湁鎵惧埌瀵硅薄 "; continue; } - placeX = (short)upiObj.MachineXCenter; - placeY = (short)upiObj.MachineYCenter; - placeZ = (short)upiObj.MachineZCenter; - cartonhigh = (short)upiObj.Info1; + //string upi = "LS070700101B0001GS"; + //璋冪敤鍑虹焊鏈烘帴鍙� + var res = new HTTPService("http://172.17.1.22:44374/api/LuLi/").getContent<Respone>("cartons-machine?PackageCode=" + upiObj.PackageCode, Guid.NewGuid(), 10000); + if (res.iState == 0) + { + /* + var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault(); + if (papertable != null) + { + papertable.PushStatus = (int)PushStatusEnum.PushSuccess; + papertable.ApiMessage = res.message; + papertable.PushNum++; + } + else + { + var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); + papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + papercut.ApiMessage = res.message; + papercut.PushNum = 1; + papercut.PushStatus = (int)PushStatusEnum.PushSuccess; + wmsDB.mes_push_papercut.Add(papercut); + } + //*/ + var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); + papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + papercut.ApiMessage = res.message; + papercut.PushNum = 1; + papercut.PushStatus = (int)PushStatusEnum.PushSuccess; + wmsDB.mes_push_papercut.Add(papercut); + } + else + { + /* + var papertable = wmsDB.mes_push_papercut.Where(x => x.PackageCode == upiObj.PackageCode).OrderByDescending(x => x.Id).FirstOrDefault(); + if (papertable != null) + { + papertable.PushStatus = (int)PushStatusEnum.PushFail; + papertable.ApiMessage = res.message; + papertable.PushNum++; + } + else + { + var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); + papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + papercut.ApiMessage = res.message; + papercut.PushNum = 1; + papercut.PushStatus = (int)PushStatusEnum.PushFail; + wmsDB.mes_push_papercut.Add(papercut); + } + //*/ + var papercut = ClassHelper.RotationMapping<mes_push_papercut, mes_batchOrderUPI_new>(upiObj); + papercut.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + papercut.ApiMessage = res.message; + papercut.PushNum = 1; + papercut.PushStatus = (int)PushStatusEnum.PushFail; + wmsDB.mes_push_papercut.Add(papercut); + continue; + } + //鏇存柊琛� + var mesgather = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); + if (mesgather != null) + { + mesgather.AreaCode = (int)AreaCodeEnum.鍚堝寘瑁佸垏鍖�; + mesgather.UpiStatus = (int)UpiStatusEnum.宸插悎鍖�; + } + var upilist = wmsDB.mes_batchOrderUPI_new.Where(x => x.PackageCode == upiObj.PackageCode).ToList(); + var upilength = upilist.Max(x => x.Length); + var upiwidth = upilist.Max(x => x.Width); + cartonhigh = (short)upiObj.Info3; cartonwidth = (short)upiObj.Info2; - + upiObj.UpiStatus = (int)UpiStatusEnum.宸插悎鍖�; + upiObj.AreaCode = (int)AreaCodeEnum.鍚堝寘瑁佸垏鍖�; //璁板綍浠诲姟 var _id = Yitter.IdGenerator.YitIdHelper.NextId(); + var putpakegecodeid = Yitter.IdGenerator.YitIdHelper.NextId(); var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask(); + //鏂板琛� + var mesinequeue = ClassHelper.RotationMapping<mes_package_linequeue, mes_batchOrderUPI_new>(upiObj); + mesinequeue.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + //鏂板mes鎺ㄩ�佽〃 var putpakegecode = new mes_push_packagecode() { - Id = _id, - PackageCode=upiObj.PackageCode, - PushStatus=0, - PushNum=0, + Id = putpakegecodeid, + PackageCode = upiObj.PackageCode, + PushStatus = 0, + PushNum = 0, + ApiMessage = "寰呮帹閫�", CreateTime = DateTime.Now, CreateUserName = "CC", UpdateTime = DateTime.Now, UpdateUserName = "CC", + CreateOrgName = "11" }; + //鏂板浠诲姟琛� var task = new wms_rbline_task() { Id = _id, @@ -116,27 +190,61 @@ OrderId = upiObj.OrderId, PackageCode = upiObj.PackageCode, RbTaskType = (int)RbTaskTypeEnum.澶规澘浠诲姟, - RbTaskTypeEnumName = RbTaskTypeEnum.鐮佹澘浠诲姟.ToString(), + RbTaskTypeEnumName = RbTaskTypeEnum.澶规澘浠诲姟.ToString(), TaskStatus = (int)TaskStatusEnum.宸蹭笅鍙�, TaskStatusName = TaskStatusEnum.宸蹭笅鍙�.ToString(), - TaskMsg = "鐮佹澘", + TaskMsg = "澶规澘", CreateTime = DateTime.Now, CreateUserName = "CC", UpdateTime = DateTime.Now, UpdateUserName = "CC", PlaceCode = place }; + //鏂板鎵撳嵃琛� + var printid = Yitter.IdGenerator.YitIdHelper.NextId(); + var print = ClassHelper.RotationMapping<wms_record_print, mes_batchOrderUPI_new>(upiObj); + print.Id = printid; + print.PrintType = (int)PrintTypeEnum.鍖呰鏉$爜; + print.PrintSource = (int)PrintSourceEnum.鍖呰鏉$爜鎵撳嵃; + print.PrintSheetNum = 1; + print.PrintNum = 0; + print.PrintStatus = (int)PrintStatuEnum.鏈墦鍗�; + print.IsAllowPrint = true; + print.CreateTime = print.UpdateTime = DateTime.Now; + wmsDB.wms_record_print.Add(print); + var printtwo = ClassHelper.RotationMapping<wms_record_print, mes_batchOrderUPI_new>(upiObj); + printtwo.PrintType = (int)PrintTypeEnum.鍖呰鏉$爜; + printtwo.PrintSource = (int)PrintSourceEnum.鍖呰鏉$爜鎵撳嵃; + printtwo.PrintSheetNum = 1; + printtwo.PrintNum = 0; + printtwo.PrintStatus = (int)PrintStatuEnum.鏈墦鍗�; + printtwo.IsAllowPrint = true; + printtwo.CreateTime = print.UpdateTime = DateTime.Now; + printtwo.Id = Yitter.IdGenerator.YitIdHelper.NextId(); + wmsDB.wms_record_print.Add(printtwo); + wmsDB.mes_package_linequeue.Add(mesinequeue); wmsDB.wms_rbline_task.Add(task); wmsDB.mes_push_packagecode.Add(putpakegecode); + + //澶勭悊琛� mes_order_gather + var errmsg = ""; + var package = wmsDB.mes_package_gather.Where(x => x.PackageCode == upiObj.PackageCode).FirstOrDefault(); + var resultAlert = MyExtendHelper.HandlerOrderGather(wmsDB, package, "", "", out errmsg); + if (resultAlert == false) + { + SystemWarningMsg._lbl_alert_DataProcess_BZ21 = errmsg; + continue; + } + using (StationServiceClient client = new StationServiceClient()) { - var res = client.WriteSurroundTaskInfo((int)EDevice.Station, rgvLocation, Convert.ToInt32(task.TaskNo), - (short)upiObj.Info1, (short)upiObj.Info2,cartonhigh,cartonwidth,placeX,placeY); - if (!res.result) + var plcres = client.WriteSurroundTaskInfo((int)EDevice.Station, rgvLocation, short.Parse(task.TaskNo), + (short)upilength, (short)upiwidth, cartonhigh, cartonwidth, 0, 0); + if (!plcres.result) { - SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,WriteInStoreTaskInfoAsync 杩斿洖:{res.resMsg}"; + SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()}-涓嬪彂鍏ュ簱浠诲姟 澶辫触,WriteInStoreTaskInfoAsync 杩斿洖:{plcres.resMsg}"; continue; } else @@ -152,11 +260,14 @@ } catch (Exception ex) { - SystemWarningMsg._lbl_alert_DataProcess_BZ39 += " 鍑虹幇寮傚父:" + ex.Message + SysGloble.SPLIT_STR; + SystemWarningMsg._lbl_alert_DataProcess_BZ21 += " 鍑虹幇寮傚父:" + ex.Message + SysGloble.SPLIT_STR; Log4NetHelper.WriteErrorLog(logType, " 鍑虹幇寮傚父锛�" + ex.Message, ex); } } } + /// <summary> + /// 鍚憁es鎺ㄩ�佸寘瑁呭畬鎴� + /// </summary> public static void PushPackageCode() { while (true) @@ -170,7 +281,22 @@ PushPackageCodeInput input = new PushPackageCodeInput(); input.PackageCode = value.PackageCode; var res = HttpHelper.GetHttpResponse<PushPackageCodeInput, Respone>(" ", input, 10000); - + if (res.iState == 0) + { + value.PushStatus = (int)PushStatusEnum.PushSuccess; + value.ApiMessage = res.message; + } + else + { + value.PushStatus = (int)PushStatusEnum.Pushing; + value.PushNum++; + value.ApiMessage += res.message; + if (value.PushNum == 3) + { + value.PushStatus = (int)PushStatusEnum.PushFail; + } + } + edm.SaveChanges(); } } } @@ -184,7 +310,7 @@ /// <summary> /// 杩斿洖鐮� /// </summary> - public string code { get; set; } + public int iState { get; set; } /// <summary> /// 杩斿洖娑堟伅 @@ -192,14 +318,38 @@ public string message { get; set; } /// <summary> - /// 璇锋眰缂栧彿 - /// </summary> - public string reqCode { get; set; } - - /// <summary> - /// 鑷畾涔夎繑鍥烇紙杩斿洖浠诲姟鍗曞彿锛� + /// 鑷畾涔夎繑鍥� /// </summary> public string data { get; set; } } + /// <summary> + /// 鎺ㄩ�佺姸鎬� + /// </summary> + public enum PushStatusEnum + { + /// <summary> + /// 鏈帹閫� + /// </summary> + [Description("鏈帹閫�")] + NotPush = 0, + + /// <summary> + /// 鎺ㄩ�佷腑 + /// </summary> + [Description("鎺ㄩ�佷腑")] + Pushing = 1, + + /// <summary> + /// 鎺ㄩ�佹垚鍔� + /// </summary> + [Description("鎺ㄩ�佹垚鍔�")] + PushSuccess = 2, + + /// <summary> + /// 鎺ㄩ�佸け璐� + /// </summary> + [Description("鎺ㄩ�佸け璐�")] + PushFail = 3, + } } } -- Gitblit v1.9.3