From 5c4192f0b813d72a427eaca183d08d42046f1b41 Mon Sep 17 00:00:00 2001
From: jinxin <1013386558@qq.com>
Date: 星期一, 23 六月 2025 14:43:44 +0800
Subject: [PATCH] 11

---
 C#/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs |  251 +++++++++++++++++++++++++++-----------------------
 1 files changed, 135 insertions(+), 116 deletions(-)

diff --git "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs" "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
index f33ec2e..dd506a9 100644
--- "a/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
+++ "b/C\043/HH.WCS.Mobox3.WeiLi/api/ApiHelper.cs"
@@ -71,11 +71,15 @@
                         info.S_ITEM_NAME = a.itemName;
                         info.S_IS_MANAGE = a.isManage;
                         info.S_IS_MANAGEDATE = a.isManageDate;
-                        db.Updateable<TN_Material>(info).UpdateColumns(it => new { it.S_ITEM_NAME, it.S_IS_MANAGE, it.S_IS_MANAGEDATE }).ExecuteCommand();
+                        info.S_UOM = a.unit;
+                        db.Updateable<TN_Material>(info).UpdateColumns(it => new { it.S_ITEM_NAME, it.S_IS_MANAGE, it.S_IS_MANAGEDATE,it.S_UOM }).ExecuteCommand();
+
+
+                        db.Updateable<CntrItemRel>().SetColumns(it => new CntrItemRel() { S_ITEM_NAME = a.itemName , S_UOM = a.unit }).Where(it=>it.S_ITEM_CODE==a.itemCode).ExecuteCommand();
                     }
                     else
                     {
-                        db.Insertable(new TN_Material { S_ITEM_CODE = a.itemCode, S_ITEM_NAME = a.itemName, S_IS_MANAGE = a.isManage, S_IS_MANAGEDATE = a.isManageDate }).ExecuteCommand();
+                        db.Insertable(new TN_Material { S_ITEM_CODE = a.itemCode, S_ITEM_NAME = a.itemName, S_IS_MANAGE = a.isManage, S_IS_MANAGEDATE = a.isManageDate, S_UOM = a.unit }).ExecuteCommand();
                     }
                     //db.Updateable<TN_Material>().SetColumns(it => new TN_Material() { S_ITEM_NAME = a.itemName }).Where(it => it.S_ITEM_CODE == a.itemCode).ExecuteCommand();
                     //db.Updateable<WHInventory>().SetColumns(it => new WHInventory() { S_ITEM_NAME = a.itemName }).Where(it => it.S_ITEM_CODE == a.itemCode).ExecuteCommand();
@@ -112,7 +116,7 @@
         {
             var result = new WeiLiResult();
             var db = new SqlHelper<object>().GetInstance();
-            var cntrweight = model.cntrWeight == 1 ? 2 : model.cntrWeight == 2 ? 3 : model.cntrWeight == 3 ? 11 : model.cntrWeight == 4 ? 30 : model.cntrWeight == 5 ? 150 : 0;
+            var cntrweight = model.cntrWeight;
             if (!string.IsNullOrEmpty(model.startBit) && !string.IsNullOrEmpty(model.endBit))
             {
                 if (!string.IsNullOrEmpty(model.TaskNo))
@@ -947,135 +951,145 @@
             var db = new SqlHelper<object>().GetInstance();
             var result = new PlcSendTaskres { requestPk = model.requestPk, code = "0" };
             string message = "";
-            if (model.noticeType == "0" || model.noticeType == "ERROR")
+            try
             {
-                //绉伴噸
-                if (model.noticeType == "0")
+                if (model.noticeType == "0" || model.noticeType == "ERROR")
                 {
-                    //澶栧舰妫�祴鎴愬姛 淇敼浠诲姟鍙傛暟
-                    var wcsTask = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == model.contNo && it.N_B_STATE == 2 && it.S_SCHEDULE_TYPE == "NDC").First();
-                    if (wcsTask != null)
+                    //绉伴噸
+                    if (model.noticeType == "0")
                     {
-                        wcsTask.N_ERR = 200;
-                        db.Updateable(wcsTask).UpdateColumns(it => new { it.N_ERR }).ExecuteCommand();
-                    }
-                }
-                else
-                {
-                    //澶栧舰妫�祴澶辫触 淇敼浠诲姟鍙傛暟
-                    var wcsTask = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == model.contNo && it.N_B_STATE == 2 && it.S_SCHEDULE_TYPE == "NDC").First();
-                    if (wcsTask != null)
-                    {
-                        Location endLoc = null;
-                        var Setting = Settings.ConnetAreas.Where(a => a.InLocList.Contains(wcsTask.S_END_LOC)).FirstOrDefault();
-                        if (Setting != null)
+                        //澶栧舰妫�祴鎴愬姛 淇敼浠诲姟鍙傛暟
+                        var wcsTask = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == model.contNo && it.N_B_STATE == 2 && it.S_SCHEDULE_TYPE == "NDC").First();
+                        if (wcsTask != null)
                         {
-                            if (Settings.DBAreas.Contains(wcsTask.S_START_AREA))
+                            wcsTask.N_ERR = 200;
+                            db.Updateable(wcsTask).UpdateColumns(it => new { it.N_ERR }).ExecuteCommand();
+                        }
+                    }
+                    else
+                    {
+                        //澶栧舰妫�祴澶辫触 淇敼浠诲姟鍙傛暟
+                        var wcsTask = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == model.contNo && it.N_B_STATE == 2 && it.S_SCHEDULE_TYPE == "NDC").First();
+                        if (wcsTask != null)
+                        {
+                            Location endLoc = null;
+                            var Setting = Settings.ConnetAreas.Where(a => a.InLocList.Contains(wcsTask.S_END_LOC)).FirstOrDefault();
+                            if (Setting != null)
                             {
-                                endLoc = db.Queryable<Location>().Where(a => a.S_CODE == wcsTask.S_START_LOC).First();
-                            }
-                            else
-                            {
-                                var endArea = Setting.ErrorArea;
-                                endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == endArea && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0).First();
-                            }
-
-                            if (endLoc != null)
-                            {
-                                var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == wcsTask.S_OP_CODE).First();
-                                if (wmsTask != null)
+                                if (Settings.DBAreas.Contains(wcsTask.S_START_AREA))
                                 {
-                                    var PlcTask = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == model.contNo && (it.N_B_STATE == 2 || it.N_B_STATE == 1) && it.S_SCHEDULE_TYPE == "WCS").First();
-                                    if (PlcTask != null)
-                                    {
-                                        TaskProcess.Cancel(PlcTask);
-                                        //鍙栨秷plc浠诲姟
-                                        TaskProcess.OperateStatus(PlcTask, 7);
-                                        WCSHelper.Fail(PlcTask);
-                                    }
-                                    LocationHelper.UnLockLoc(wmsTask.S_END_LOC);
-                                    LocationHelper.LockLoc(endLoc.S_CODE, 1);
-                                    LocationHelper.LockLoc(wcsTask.S_END_LOC, 2);
-                                    wcsTask.S_ERR_LOC = endLoc.S_CODE;
-                                    wcsTask.N_ERR = 500;
-                                    db.Updateable(wcsTask).UpdateColumns(it => new { it.N_ERR, it.S_ERR_LOC }).ExecuteCommand();
+                                    endLoc = db.Queryable<Location>().Where(a => a.S_CODE == wcsTask.S_START_LOC).First();
                                 }
-                            }
-                            else
-                            {
-                                LogHelper.Info($"澶栧舰妫�祴澶辫触 鏈壘鍒伴�璐х粓鐐�);
-                            }
+                                else
+                                {
+                                    var endArea = Setting.ErrorArea;
+                                    endLoc = db.Queryable<Location>().Where(a => a.S_AREA_CODE == endArea && a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0).First();
+                                }
+
+                                if (endLoc != null)
+                                {
+                                    var wmsTask = db.Queryable<WMSTask>().Where(a => a.S_CODE == wcsTask.S_OP_CODE).First();
+                                    if (wmsTask != null)
+                                    {
+                                        var PlcTask = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == model.contNo && (it.N_B_STATE == 2 || it.N_B_STATE == 1) && it.S_SCHEDULE_TYPE == "WCS").First();
+                                        if (PlcTask != null)
+                                        {
+                                            TaskProcess.Cancel(PlcTask);
+                                            //鍙栨秷plc浠诲姟
+                                            TaskProcess.OperateStatus(PlcTask, 7);
+                                            WCSHelper.Fail(PlcTask);
+                                        }
+                                        LocationHelper.UnLockLoc(wmsTask.S_END_LOC);
+                                        LocationHelper.LockLoc(endLoc.S_CODE, 1);
+                                        LocationHelper.LockLoc(wcsTask.S_END_LOC, 2);
+                                        wcsTask.S_ERR_LOC = endLoc.S_CODE;
+                                        wcsTask.N_ERR = 500;
+                                        db.Updateable(wcsTask).UpdateColumns(it => new { it.N_ERR, it.S_ERR_LOC }).ExecuteCommand();
+                                    }
+                                }
+                                else
+                                {
+                                    LogHelper.Info($"澶栧舰妫�祴澶辫触 鏈壘鍒伴�璐х粓鐐�);
+                                }
 
 
+                            }
                         }
                     }
                 }
-            }
-            else
-            {
-                var task = WCSHelper.GetTask(model.requestPk);
-                if (task != null)
-                {
-                    //if (!WCSHelper.CheckActionRecordExist(task.S_CODE, int.Parse(model.noticeType)))
-                    //{
-                    switch (model.noticeType)
-                    {
-                        case "1":
-                            //鎵ц鐘舵�
-                            WCSHelper.Begin(task);
-                            if (task.S_TYPE == "鍒嗘嫞鍑�)
-                            {
-                                WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 3);
-                            }
-                            break;
-                        case "5":
-                            //鍙栬揣鏃犺揣(閲婃斁璐т綅)
-                            TaskProcess.OperateStatus(task, 4);
-                            break;
-                        case "2":
-                            if (!WCSHelper.CheckActionRecordExist(task.S_CODE, 5))
-                            {
-                                TaskProcess.OperateStatus(task, 4);
-                            }
-                            //瀹屾垚鐘舵� (鍑哄簱浠诲姟鐢熸垚绗簩娈礱gv浠诲姟) 瑙g粦璧风偣缁堢偣
-                            //if (task.S_B_STATE != "鍙栨秷" && task.S_B_STATE != "瀹屾垚" && task.S_B_STATE != "鍏抽棴" && task.S_B_STATE != "寮哄埗瀹屾垚")
-                            //{
-                            TaskProcess.OperateStatus(task, 6);
-                            if (task.S_OP_NAME == "鍏ュ簱")
-                            {
-                                WMSHelper.AddChange(task);
-                            }
-                            if (task.S_OP_NAME == "鍑哄簱")
-                            {
-                                WMSHelper.DeleteChange(task);
-                            }
-                            if (task.S_TYPE == "鍒嗘嫞鍥�)
-                            {
-                                WMSHelper.PreparationState(task);
-                            }
-                            //TaskProcess.PlcSencondTask(task);
-                            WCSHelper.End(task);
-                            WMSHelper.End(task);
-                            //}
-                            break;
-                        case "8":
-                            //鍙栬揣鏃犺揣(閲婃斁璐т綅)
-                            quhuowuhuo(db, task);
-                            break;
-                        case "9":
-                            //鏀捐揣鏈夎揣 (閲嶅垎璐т綅)
-                            fanghuoyouhuo(db, result, task);
-                            break;
-                    }
-                    WCSHelper.AddActionRecord(task.S_CODE, int.Parse(model.noticeType), "", "");
-                    //}
-                }
                 else
                 {
-                    result.code = "1";
-                    result.msg = "璇ヤ换鍔$紪鍙蜂笉瀛樺湪";
+                    var task = WCSHelper.GetTask(model.requestPk);
+                    if (task != null)
+                    {
+                        //if (!WCSHelper.CheckActionRecordExist(task.S_CODE, int.Parse(model.noticeType)))
+                        //{
+                        switch (model.noticeType)
+                        {
+                            case "1":
+                                //鎵ц鐘舵�
+                                WCSHelper.Begin(task);
+                                if (task.S_TYPE == "鍒嗘嫞鍑�)
+                                {
+                                    WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 3);
+                                }
+                                break;
+                            case "5":
+                                //鍙栬揣鏃犺揣(閲婃斁璐т綅)
+                                TaskProcess.OperateStatus(task, 4);
+                                break;
+                            case "2":
+                                if (!WCSHelper.CheckActionRecordExist(task.S_CODE, 5))
+                                {
+                                    TaskProcess.OperateStatus(task, 4);
+                                }
+                                //瀹屾垚鐘舵� (鍑哄簱浠诲姟鐢熸垚绗簩娈礱gv浠诲姟) 瑙g粦璧风偣缁堢偣
+                                //if (task.S_B_STATE != "鍙栨秷" && task.S_B_STATE != "瀹屾垚" && task.S_B_STATE != "鍏抽棴" && task.S_B_STATE != "寮哄埗瀹屾垚")
+                                //{
+                                TaskProcess.OperateStatus(task, 6);
+                                if (task.S_OP_NAME == "鍏ュ簱")
+                                {
+                                    WMSHelper.AddChange(task);
+                                }
+                                if (task.S_OP_NAME == "鍑哄簱")
+                                {
+                                    WMSHelper.DeleteChange(task);
+                                }
+                                if (task.S_TYPE == "鍒嗘嫞鍥�)
+                                {
+                                    WMSHelper.PreparationState(task);
+                                }
+                                //TaskProcess.PlcSencondTask(task);
+                                WCSHelper.End(task);
+                                WMSHelper.End(task);
+                                //}
+                                break;
+                            case "8":
+                                //鍙栬揣鏃犺揣(閲婃斁璐т綅)
+                                quhuowuhuo(db, task);
+                                break;
+                            case "9":
+                                //鏀捐揣鏈夎揣 (閲嶅垎璐т綅)
+                                fanghuoyouhuo(db, result, task);
+                                break;
+                        }
+                        WCSHelper.AddActionRecord(task.S_CODE, int.Parse(model.noticeType), "", "");
+                        //}
+                    }
+                    else
+                    {
+                        result.code = "1";
+                        result.msg = "璇ヤ换鍔$紪鍙蜂笉瀛樺湪";
+                    }
                 }
             }
+            catch (Exception ex) 
+            {
+                LogHelper.Error($"WCS鍥炴姤浠诲姟澶辫触 寮傚父淇℃伅{ex.Message}", ex);
+                result.code = "1";
+                result.msg = $"WCS鍥炴姤浠诲姟澶辫触 寮傚父淇℃伅{ex.Message}";
+            }
+
             return result;
         }
 
@@ -1423,6 +1437,7 @@
                             S_BATCH_NO = a.batchNo,
                             S_OWNER = a.factoryCode,
                             S_ERP_WH_CODE = a.stockLoc,
+                            S_UOM=itemName.S_UOM,
                             F_QTY = a.qty,
                             S_SUPPLIER_NO = a.vendorCode,
                             S_SERIAL_NO = a.serialNo,
@@ -3156,6 +3171,7 @@
                                             S_ITEM_NAME = itemName.S_ITEM_NAME,
                                             S_ITEM_CODE = a.itemCode,
                                             S_BATCH_NO = a.batchNo,
+                                            S_UOM=itemName.S_UOM,
                                             S_BS_NO=a.inWorkNo,
                                             S_OWNER = a.factoryCode,
                                             S_ERP_WH_CODE = a.stockLocation,
@@ -3361,6 +3377,7 @@
                                         S_CNTR_CODE = model.cntrNo,
                                         S_WU = a.rowID,
                                         S_ITEM_NAME = itemName.S_ITEM_NAME,
+                                        S_UOM = itemName.S_UOM,
                                         S_ITEM_CODE = a.itemCode,
                                         S_BATCH_NO = a.batchNo,
                                         S_OWNER = a.factoryCode,
@@ -3506,6 +3523,7 @@
                                             {
                                                 S_CNTR_CODE = cntr,
                                                 S_ITEM_NAME = itemName.S_ITEM_NAME,
+                                                S_UOM = itemName.S_UOM,
                                                 S_ITEM_CODE = a.itemCode,
                                                 S_BATCH_NO = a.batchNo,
                                                 S_OWNER = a.factoryCode,
@@ -3570,6 +3588,7 @@
                                                 {
                                                     S_CNTR_CODE = cntr,
                                                     S_ITEM_NAME = itemName.S_ITEM_NAME,
+                                                    S_UOM = itemName.S_UOM,
                                                     S_ITEM_CODE = it.itemCode,
                                                     S_BATCH_NO = it.batchNo,
                                                     S_OWNER = it.factoryCode,

--
Gitblit v1.9.1