From 28a7c0069cb18addcb85d33376e21f25bdb519ce Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 30 11月 2024 14:57:28 +0800
Subject: [PATCH] 2

---
 CC/iWareCC_ASRS/ThreadService/04_BZ21(搬运整垛机器人)/DataProcess_BZ21.cs |  193 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 158 insertions(+), 35 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..6543fb2 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"
@@ -5,8 +5,10 @@
 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 +30,7 @@
                 {
                     if (SystemValue.isStartedModel)
                     {
+                        
                         var rgvLocation = StationLocationEnum.BZ21.ToString();
                         /*
                          * 1銆佷粠鏁版嵁搴撲腑鍒ゆ柇鏄惁榻愬
@@ -61,48 +64,100 @@
                                 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;
-                                cartonwidth = (short)upiObj.Info2;
+                                string upi = "LS070700101B0001GS";
+                                //璋冪敤鍑虹焊鏈烘帴鍙�
+                                var res =new HTTPService("http://172.17.1.22:44374/api/LuLi/").getContent<Respone>("cartons-machine?PackageCode="+upi, 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 = 0;
+                                        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 = 0;
+                                        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.宸插悎鍖�;
+                                }
 
+                                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 +171,53 @@
                                     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;
+                                wmsDB.wms_record_print.Add(print);
+                                wms_record_print printtwo = print;
+                                printtwo.Id= Yitter.IdGenerator.YitIdHelper.NextId();
+                                wmsDB.wms_record_print.Add(printtwo);
 
-                                wmsDB.wms_rbline_task.Add(task);
+                                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 = DataProcess_ValidateQiTao.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)upiObj.Length, (short)upiObj.Width, 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 +233,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 +254,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 +283,7 @@
             /// <summary>
             /// 杩斿洖鐮�
             /// </summary>
-            public string code { get; set; }
+            public int iState { get; set; }
 
             /// <summary>
             /// 杩斿洖娑堟伅
@@ -192,14 +291,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