From 0fc71730109bb5904ded8e1a14c945e45b289c50 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期四, 03 七月 2025 18:24:05 +0800
Subject: [PATCH] 111

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs |  227 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 138 insertions(+), 89 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
index 9080940..2736558 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ApiHelper.cs
@@ -453,71 +453,94 @@
                         var req = JsonConvert.DeserializeObject<mesInfo>(res);
                         if(req != null)
                         {
-                            var timeCuo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("packingMachineNumber", models.machineNo), "TimeCuoInfoCom");
-                            if (timeCuo == null)
+                            if (req.isSucess)
                             {
-                                MongoDBSingleton.Instance.Insert<TimeCuoInfoCom>(new TimeCuoInfoCom
+                                var mesCodeLen = req.data.mesCode.Length;
+                                var mesCodeTwo = int.Parse(req.data.mesCode.Substring(0, mesCodeLen - 3));
+                                var timeCuo = MongoDBSingleton.Instance.FindOne<TimeCuoInfoCom>(Query.EQ("packingMachineNumber", models.machineNo), "TimeCuoInfoCom");
+                                if (timeCuo == null)
                                 {
-                                    isFold = 1,
-                                    packingMachineNumber = models.machineNo,
-                                    needWeight = (int)req.data.FMustQty,
-                                    realWeight = (int)req.data.FMustQty,
-                                    totalWeight = (int)req.data.FMustQty,
-                                    batchNumber = req.data.Flot,
-                                    productModel = req.data.materialSpec,
-                                    bagNumber_1 = req.data.bagNum,
-                                    totalCount = 1,
-                                    timeStamp = req.data.mesCode,
-                                    photoURL = req.data.barCode,
-                                    ProductionDate = req.data.ywDate,
-                                    // ERP鍙樻洿-鐓х浉鏈烘柊澧炲瓧娈�-                                    materialCode = req.data.FMaterialNumber,
-                                    materialName = req.data.materialName,
-                                    measurementUnit = req.data.FUnit,
-                                    createOrganization = req.data.FPrdOrgNumber,
-                                    WarehouseCode = req.data.FStockNumber,
-                                    workshopCode = req.data.FWorkShopNumber,
-                                    BusinessDate = req.data.ywDate,
-                                    barcode = req.data.barCode,
-
-                                    employeeID1 = req.data.jycjj,
-
-                                    //鍙樻洿娉ㄩ噴
-                                    totalNeedWeight = (int)req.data.FMustQty,
-                                    FEntryID_1 = 0,
-                                });
-                            }
-                            else
-                            {
-                                var query = Query.EQ("packingMachineNumber", models.machineNo);
-                                //鍙樻洿娉ㄩ噴
-                                UpdateBuilder update = Update.Set("isFold", 1).Set("packingMachineNumber",models.machineNo).Set("needWeight", (int)req.data.FMustQty)
-                                    .Set("realWeight", (int)req.data.FMustQty).Set("totalWeight", (int)req.data.FMustQty).Set("batchNumber", req.data.Flot)
-                                    .Set("productModel", req.data.materialSpec).Set("bagNumber_1", req.data.bagNum).Set("totalCount", 1).Set("timeStamp", req.data.mesCode)
-                                    .Set("photoURL", req.data.barCode).Set("ProductionDate", req.data.ywDate).Set("materialCode", req.data.FMaterialNumber)
-                                    .Set("materialName", req.data.materialName).Set("measurementUnit", req.data.FUnit)
-                                    .Set("createOrganization", req.data.FPrdOrgNumber).Set("WarehouseCode", req.data.FStockNumber).Set("workshopCode", req.data.FWorkShopNumber)
-                                    .Set("BusinessDate", req.data.ywDate).Set("barcode", req.data.barCode).Set("employeeID1", req.data.jycjj)
-                                    .Set("totalNeedWeight", (int)req.data.FMustQty).Set("FEntryID_1", 0);
-                                MongoDBSingleton.Instance.Update<TimeCuoInfoCom>(query, update, UpdateFlags.None);
-                            }
-
-                            //鐢熸垚鍒版帴椹冲钩鍙扮殑浠诲姟
-                            string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
-                            string timeCuo2 = req.data.mesCode.ToString();
-                            var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
-                            if (CBInfo != null)
-                            {
-                                AMSHelper.HHAmsExecuteResult amsResult = null;
-                                foreach (var a in CBInfo)
-                                {
-                                    if (!string.IsNullOrEmpty(a.locCode))
+                                    MongoDBSingleton.Instance.Insert<TimeCuoInfoCom>(new TimeCuoInfoCom
                                     {
-                                        //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�-                                        var CBTable = MongoDBSingleton.Instance.FindOne<ConnectingBits>(Query.EQ("Bit", a.locCode), "ConnectingBits");
-                                        if (CBTable != null)
+                                        isFold = 1,
+                                        packingMachineNumber = models.machineNo,
+                                        needWeight = (int)req.data.FMustQty,
+                                        realWeight = (int)req.data.FMustQty,
+                                        totalWeight = (int)req.data.FMustQty,
+                                        batchNumber = req.data.Flot,
+                                        productModel = req.data.materialSpec,
+                                        bagNumber_1 = req.data.bagNum,
+                                        totalCount = 1,
+                                        timeStamp = mesCodeTwo,
+                                        photoURL = req.data.barCode,
+                                        ProductionDate = req.data.ywDate,
+                                        // ERP鍙樻洿-鐓х浉鏈烘柊澧炲瓧娈�+                                        materialCode = req.data.FMaterialNumber,
+                                        materialName = req.data.materialName,
+                                        measurementUnit = req.data.FUnit,
+                                        createOrganization = req.data.FPrdOrgNumber,
+                                        WarehouseCode = req.data.FStockNumber,
+                                        workshopCode = req.data.FWorkShopNumber,
+                                        BusinessDate = req.data.ywDate,
+                                        barcode = req.data.barCode,
+
+                                        employeeID1 = req.data.jycjj,
+
+                                        //鍙樻洿娉ㄩ噴
+                                        totalNeedWeight = (int)req.data.FMustQty,
+                                        FEntryID_1 = 0,
+                                    });
+                                }
+                                else
+                                {
+                                    var query = Query.EQ("packingMachineNumber", models.machineNo);
+                                    //鍙樻洿娉ㄩ噴
+                                    UpdateBuilder update = Update.Set("isFold", 1).Set("packingMachineNumber", models.machineNo).Set("needWeight", (int)req.data.FMustQty)
+                                        .Set("realWeight", (int)req.data.FMustQty).Set("totalWeight", (int)req.data.FMustQty).Set("batchNumber", req.data.Flot)
+                                        .Set("productModel", req.data.materialSpec).Set("bagNumber_1", req.data.bagNum).Set("totalCount", 1).Set("timeStamp", mesCodeTwo)
+                                        .Set("photoURL", req.data.barCode).Set("ProductionDate", req.data.ywDate).Set("materialCode", req.data.FMaterialNumber)
+                                        .Set("materialName", req.data.materialName).Set("measurementUnit", req.data.FUnit)
+                                        .Set("createOrganization", req.data.FPrdOrgNumber).Set("WarehouseCode", req.data.FStockNumber).Set("workshopCode", req.data.FWorkShopNumber)
+                                        .Set("BusinessDate", req.data.ywDate).Set("barcode", req.data.barCode).Set("employeeID1", req.data.jycjj)
+                                        .Set("totalNeedWeight", (int)req.data.FMustQty).Set("FEntryID_1", 0);
+                                    MongoDBSingleton.Instance.Update<TimeCuoInfoCom>(query, update, UpdateFlags.None);
+                                }
+
+                                //鐢熸垚鍒版帴椹冲钩鍙扮殑浠诲姟
+                                string traycode = DateTime.Now.ToString("yyyy-MM-dd").Replace("-", "");
+                                string timeCuo2 = mesCodeTwo.ToString();
+                                var CBInfo = Settings.GetConnectingbitsList().Where(a => a.enable == 1).ToList();
+                                if (CBInfo != null)
+                                {
+                                    AMSHelper.HHAmsExecuteResult amsResult = null;
+                                    foreach (var a in CBInfo)
+                                    {
+                                        if (!string.IsNullOrEmpty(a.locCode))
                                         {
-                                            if (string.IsNullOrEmpty(CBTable.trayCode))
+                                            //鍦ㄤ腑闂磋〃涓煡鎵剧偣浣�+                                            var CBTable = MongoDBSingleton.Instance.FindOne<ConnectingBits>(Query.EQ("Bit", a.locCode), "ConnectingBits");
+                                            if (CBTable != null)
+                                            {
+                                                if (string.IsNullOrEmpty(CBTable.trayCode))
+                                                {
+                                                    //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�+                                                    amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), models.machineNo, a.locCode, "PDA鎵撳寘涓嬬嚎", 0, traycode);
+                                                    if (amsResult.success)
+                                                    {
+                                                        result.success = true;
+                                                        CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API鎴愬姛锛�);
+                                                        MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeCuo2), UpdateFlags.None);
+
+                                                        //涓婃姤鏉$爜琛�+                                                        CMMLog.Info($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')");
+                                                        new SqlHelper<object>().ExecuteSql($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')", false);
+
+                                                        break;
+                                                    }
+                                                    else CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
+                                                }
+                                            }
+                                            else
                                             {
                                                 //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�                                                 amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), models.machineNo, a.locCode, "PDA鎵撳寘涓嬬嚎", 0, traycode);
@@ -525,7 +548,9 @@
                                                 {
                                                     result.success = true;
                                                     CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API鎴愬姛锛�);
-                                                    MongoDBSingleton.Instance.Update<ConnectingBits>(Query.EQ("Bit", a.locCode), Update.Set("trayCode", traycode).Set("timeCuo", timeCuo2), UpdateFlags.None);
+                                                    //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�+
+                                                    MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeCuo2 });
 
                                                     //涓婃姤鏉$爜琛�                                                     CMMLog.Info($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')");
@@ -536,35 +561,20 @@
                                                 else CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
                                             }
                                         }
-                                        else
-                                        {
-                                            //鐢熸垚浠诲姟锛屽苟涓斿皢鐐逛綅鍐欏叆涓棿琛�-                                            amsResult = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), models.machineNo, a.locCode, "PDA鎵撳寘涓嬬嚎", 0, traycode);
-                                            if (amsResult.success)
-                                            {
-                                                result.success = true;
-                                                CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API鎴愬姛锛�);
-                                                //鎵撳寘涓嬬嚎浠诲姟鐢熸垚鎴愬姛锛屽悜涓棿琛ㄦ彃鍏ユ暟鎹�-
-                                                MongoDBSingleton.Instance.Insert<ConnectingBits>(new ConnectingBits { Bit = a.locCode, trayCode = traycode, state = "0", timeCuo = timeCuo2 });
-
-                                                //涓婃姤鏉$爜琛�-                                                CMMLog.Info($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')");
-                                                new SqlHelper<object>().ExecuteSql($" INSERT INTO T_JY_BARCODESync (FBarCode, FBarCodeRule,FMaterialNumber,FCreateOrgNumber,FLot,FUnit,FQty,FStockNumber,FDept,FBillDate,F_JY_CZZ,FOpStatus) VALUES ('{req.data.barCode}','01','{req.data.materialName}','02','{req.data.Flot}','{req.data.FUnit}','{req.data.FMustQty}','CK020','BM000161','{req.data.ywDate}','{req.data.jycjj}','0')", false);
-
-                                                break;
-                                            }
-                                            else CMMLog.Debug($"PDA鎵撳寘涓嬬嚎锛欰MS璋冪敤API澶辫触锛屽紑濮嬮噸鏂拌皟鐢紒");
-                                        }
+                                        else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
                                     }
-                                    else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鐐逛綅鏈厤缃�);
+                                    if (amsResult == null || amsResult.success == false)
+                                    {
+                                        result.errMsg = "浠诲姟鐢熸垚澶辫触锛屾帴椹充綅鏈変换鍔″崰鐢�;
+                                    }
                                 }
-                                if(amsResult == null || amsResult.success == false)
-                                {
-                                    result.errMsg = "浠诲姟鐢熸垚澶辫触锛屾帴椹充綅鏈変换鍔″崰鐢�;
-                                }
+                                else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鏈厤缃�);
                             }
-                            else CMMLog.Debug("鎵撳寘涓嬬嚎鍙f帴椹充綅鏈厤缃�);
+                            else
+                            {
+                                result.errMsg = req.msg;
+                            }
+                            
                         }
                         else
                         {
@@ -585,6 +595,37 @@
             {
                 result.errMsg = "鍙傛暟杈撳叆閿欒";
             }
+            return result;
+        }
+
+        /// <summary>
+        /// 鐢甸挻杞﹂棿鍖呰涓嬬嚎鑾峰彇wms浼犲叆鐨勬墭鐩�+        /// </summary>
+        /// <param name="trayCode"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        internal static SimpleResult DGPackingLineFull(string trayCode)
+        {
+            SimpleResult result = new SimpleResult() { success = false,errCode = -1 };
+
+            if (!string.IsNullOrEmpty(trayCode)){
+                var DGInfo = MongoDBSingleton.Instance.FindOne<DGPackingLineFullModel>(Query.EQ("trayCode", trayCode), "DGPackingLineFullModel");
+                if (DGInfo == null)
+                {
+                    MongoDBSingleton.Instance.Insert<DGPackingLineFullModel>(new DGPackingLineFullModel() { trayCode = trayCode, createTime = DateTime.Now }, "DGPackingLineFullModel");
+                    result.success = true;
+                    result.errCode = 0;
+                }
+                else
+                {
+                    result.errMsg = $"褰撳墠鎵樼洏鍙凤紝宸插瓨鍦ㄤ簬ams涓棿琛ㄤ腑锛屾墭鐩樺彿锛歿trayCode}";
+                }
+            }
+            else
+            {
+                result.errMsg = $"褰撳墠鎵樼洏鍙蜂负绌�;
+            }
+            
             return result;
         }
 
@@ -657,7 +698,7 @@
             /// <summary>
             /// 鍞竴鐮�             /// </summary>
-            public int mesCode { get; set; }
+            public string mesCode { get; set; }
             /// <summary>
             /// 瀹屾暣鏉$爜
             /// </summary>
@@ -728,6 +769,14 @@
             public int haveItem { get; set; }
         }
 
+        public class DGPackingLineFullModel
+        {
+            public ObjectId _id { get; set; }
+            public string trayCode { get; set; }
+            public string isUse { get; set; } = "0";
+            public DateTime createTime { get; set; }
+        }
+
         public class secondResultCache
         {
             /// <summary>

--
Gitblit v1.9.1