From 570a2d760cc1f2b78922d91d941ef81f01199e4c Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 10 六月 2025 16:43:05 +0800
Subject: [PATCH] 完善ERP下发信息的处理和出库单生成流程

---
 core/WCSCore.cs |   85 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 80 insertions(+), 5 deletions(-)

diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index a9985d1..73363fe 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -88,9 +88,9 @@
                         var nextOutboundTask = Task.Run(() => {
                             UpdateOutboundTaskState(3);
                         });
-                        var pickUpReturnErpTask = Task.Run(() => {
-                            PickUpReturnErp(TN_Task);
-                        });
+                        //var pickUpReturnErpTask = Task.Run(() => {
+                        //    PickUpReturnErp(TN_Task);
+                        //});
                     }
 
                     break;
@@ -110,6 +110,10 @@
                     //    });
                     //}
 
+                    var recordTask = Task.Run(() => {
+                        RecordTaskTable(TN_Task);
+                    });
+
                     break;
                 case 7: // 寮傚父
                     TaskProcess.OperateStatus(TN_Task, 7); // 寮傚父澶勭悊
@@ -124,6 +128,79 @@
             return true;
         }
 
+        private static void RecordTaskTable(TN_Task task) {
+            var db = new SqlHelper<object>().GetInstance();
+            var info = "";
+
+            try {
+                var cgDetail = new TN_CG_Detail(); // 濡傛灉娌℃湁淇℃伅锛岄粯璁ゅ氨鏄┖鍊硷紝鍙互鐩存帴濉叆锛屼笉闇�鍒ゆ柇
+                
+                //var emptyTask = false; // 绌烘墭/绌虹浠诲姟
+                if (task.S_TYPE != TaskName.H濂借繍绠盻绌虹涓婄嚎 && task.S_TYPE != TaskName.H濂借繍绠盻绌虹鍏ュ簱 &&
+                    task.S_TYPE != TaskName.T鎵樼洏_绌烘墭涓婄嚎 && task.S_TYPE != TaskName.T鎵樼洏_绌烘墭鍏ュ簱) {
+                    // 闈炵┖鎵�绌虹浠诲姟锛堢┖鎵�绌虹浠诲姟鏃犳硶鍦–GDetail鏌ュ埌鐗╂枡淇℃伅锛�+                    //emptyTask= true;
+                    cgDetail = db.Queryable<TN_CG_Detail>()
+                        .Where(d => d.S_CNTR_CODE == task.S_CNTR_CODE)
+                        .First();
+
+                    if (cgDetail == null) {
+                        info = $"浠诲姟{task.S_CODE}瀹屾垚锛岃褰曞嚭鍏ュ簱瀛樺湪闂锛氭棤娉曞湪瀹瑰櫒璐у搧鏄庣粏琛ㄤ腑鎵惧埌鎵樼洏{task.S_CNTR_CODE}瀵瑰簲鐨勭墿鏂�;
+                        LogHelper.Info(info);
+                        //return;
+                        cgDetail = new TN_CG_Detail() ;
+                        cgDetail.S_ITEM_CODE = "寮傚父";
+                    }
+                }
+
+                var isInbound = false; // 鍏ュ簱绫诲瀷鐨勪换鍔★紙鍖呮嫭绉诲簱绫讳换鍔★級
+                var inboundTasks = new List<string> {
+                    TaskName.H濂借繍绠盻婊$涓嬬嚎鍏ュ簱, TaskName.H濂借繍绠盻绌虹鍏ュ簱, TaskName.T鎵樼洏_婊℃墭涓嬬嚎鍏ュ簱, TaskName.T鎵樼洏_绌烘墭鍏ュ簱,
+                    TaskName.C鎶芥_鍚堟牸鍥炲簱, TaskName.C鎶芥_涓嶅悎鏍肩Щ搴� TaskName.Y绉诲簱
+                };
+                if (inboundTasks.Contains(task.S_TYPE)) {
+                    isInbound= true;
+                }
+
+                var record = new TN_Record_Table {
+                    S_ITEM_CODE = cgDetail.S_ITEM_CODE,
+                    S_BATCH_NO = cgDetail.S_BATCH_NO,
+                    S_ITEM_NAME = cgDetail.S_ITEM_NAME,
+                    S_LOC_CODE = isInbound ? task.S_END_LOC : task.S_START_LOC, // 鍏ュ簱璁板綍缁堢偣璐т綅锛屽嚭搴撹褰曡捣鐐硅揣浣�+                    S_CNTR_CODE = task.S_CNTR_CODE,
+                    S_ITEM_SPEC = cgDetail.S_ITEM_SPEC,
+                    S_NET_WEIGHT = cgDetail.S_NET_WEIGHT,
+                    S_QUALITY_GRADE = cgDetail.S_QUALITY_GRADE,
+                    S_STANDARD = cgDetail.S_STANDARD,
+                    S_TASK_NO = task.S_CODE,
+                    T_RECORD_TIME = DateTime.Now,
+                    S_TYPE = task.S_TYPE,
+                    S_BS_CODE = task.S_BS_NO, // ERP鍗曞彿锛岄粯璁や负绌�+                    N_QTY = cgDetail.N_ITEM_NUM,
+                    S_NO = task.S_OP_CODE, // 鍑哄簱/鎶芥/绉诲簱鍗�+                };
+
+                // 鏁版嵁搴撴搷浣�+
+                if (db.Insertable<TN_Record_Table>(record).ExecuteCommand() <= 0) {
+                    info = "鎻掑叆鍑哄叆搴撹褰曡〃澶辫触锛� + JsonConvert.SerializeObject(record);
+                    LogHelper.Info(info);
+                    return;
+                }
+
+                info = "鎻掑叆鍑哄叆搴撹褰曡〃鎴愬姛";
+                LogHelper.Info(info);
+            }
+            catch (Exception ex) {
+                LogHelper.InfoEx(ex);
+            }
+        }
+
+        /// <summary>
+        /// AGV浜х嚎瀹夊叏浜や簰閫昏緫瀹炵幇
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) {
             var db = new SqlHelper<object>().GetInstance();
             var info = "";
@@ -291,8 +368,6 @@
             else {
                 LogHelper.Info("鏆傛棤浠诲姟");
             }
-
-
         }
     }
 }

--
Gitblit v1.9.1