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

---
 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs |  105 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 65 insertions(+), 40 deletions(-)

diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs
index 0b21cea..dbecd46 100644
--- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs
+++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs
@@ -681,49 +681,73 @@
                     if (sendERPTaskInfoList.Count == 5 || timeInfo.dateTime.AddHours(1) < DateTime.Now)
                     {
                         // 鍏堟牴鎹换鍔℃壒娆″彿瀛楁鑾峰彇鏃堕棿鎴充腑闂磋〃-TimeCuoInfoCom 鏁版嵁锛屽苟杩涜鍚庣画璋冪敤锛屽鐞嗘垚鍔熷垹闄ゆ椂闂存埑涓棿琛�TimeCuoInfoCom 鏁版嵁
+                        int count = sendERPTaskInfoList.Where(a => string.IsNullOrEmpty(a.orderCode) || a.orderCode.Length < 2 || a.orderCode.Substring(0, 2) != "MO").ToList().Count();
+                        #region 璁$畻鍗曟嵁缂栧彿
+                        string FBillNO = "";
+                        int num = 0;
+                        string S_NUM = "";
+                        string time = DateTime.Now.ToString("yyMMdd");
+                        CMMLog.Info($"SendERPTaskCompleteFunc time锛歿time}");
+                        var midInfo = db.Queryable<ADDMid>().Where(b => b.time == time).First();
+                        if (midInfo != null)
+                        {
+                            midInfo.num = midInfo.num + 1;
+                            num = midInfo.num;
+                            db.Updateable(midInfo).UpdateColumns(b => new { b.num }).ExecuteCommand();
+                        }
+                        else
+                        {
+                            num = 1;
+                            midInfo = new ADDMid
+                            {
+                                time = DateTime.Now.ToString("yyMMdd"),
+                                num = 1
+                            };
+                            db.Insertable(midInfo).ExecuteCommand();
+                        }
+
+                        CMMLog.Info($"SendERPTaskCompleteFunc num: {num}");
+                        for (int i = num.ToString().Length + 1; i <= 4; i++)
+                        {
+                            S_NUM = S_NUM + "0";
+                        }
+
+                        FBillNO = "ARKD" + DateTime.Now.ToString("yyMMdd") + S_NUM + num.ToString();
+                        CMMLog.Info($"SendERPTaskCompleteFunc: {FBillNO}");
+                        #endregion
 
                         int n = 0; //琛屽彿
+                        int m = 0;
                         sendERPTaskInfoList.ForEach(a =>
                         {
-                            n = n + 1;
-                            #region 璁$畻鍗曟嵁缂栧彿
-                            string FBillNO = "";
-                            int num = 0;
-                            string S_NUM = "";
-                            string time = DateTime.Now.ToString("yyMMdd");
-                            CMMLog.Info($"SendERPTaskCompleteFunc time锛歿time}");
-                            var midInfo = db.Queryable<ADDMid>().Where(b => b.time == time).First();
-                            if (midInfo != null)
-                            {
-                                midInfo.num = midInfo.num + 1;
-                                num = midInfo.num;
-                                db.Updateable(midInfo).UpdateColumns(b => new { b.num }).ExecuteCommand();
-                            }
-                            else
-                            {
-                                num = 1;
-                                midInfo = new ADDMid
-                                {
-                                    time = DateTime.Now.ToString("yyMMdd"),
-                                    num = 1
-                                };
-                                db.Insertable(midInfo).ExecuteCommand();
-                            }
-
-                            CMMLog.Info($"SendERPTaskCompleteFunc num: {num}");
-                            for (int i = num.ToString().Length + 1; i <= 4; i++)
-                            {
-                                S_NUM = S_NUM + "0";
-                            }
-
-                            FBillNO = "ARKD" + DateTime.Now.ToString("yyMMdd") + S_NUM + num.ToString();
-                            CMMLog.Info($"SendERPTaskCompleteFunc: {FBillNO}");
-                            #endregion
-
                             if(!string.IsNullOrEmpty(a.orderCode) && a.orderCode.Length >= 2 && a.orderCode.Substring(0,2) == "MO")
                             {
-                                CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','1','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','1','0')");
-                                string sql = $"INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','1','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','1','0')";
+                                m = m + 1;
+                                if(m > 1)
+                                {
+                                    //2025-07-14 鎻掑叆鏂拌〃鐨勫崟鎹紪鍙凤紝涓�潯涓�釜鍗曟嵁缂栧彿
+                                    #region 璁$畻鍗曟嵁缂栧彿
+                                    S_NUM = "";
+                                    midInfo = db.Queryable<ADDMid>().Where(b => b.time == time).First();
+                                    if (midInfo != null)
+                                    {
+                                        midInfo.num = midInfo.num + 1;
+                                        num = midInfo.num;
+                                        db.Updateable(midInfo).UpdateColumns(b => new { b.num }).ExecuteCommand();
+                                    }
+
+                                    CMMLog.Info($"SendERPTaskCompleteFunc num: {num}");
+                                    for (int i = num.ToString().Length + 1; i <= 4; i++)
+                                    {
+                                        S_NUM = S_NUM + "0";
+                                    }
+
+                                    FBillNO = "ARKD" + DateTime.Now.ToString("yyMMdd") + S_NUM + num.ToString();
+                                    CMMLog.Info($"SendERPTaskCompleteFunc: {FBillNO}");
+                                    #endregion
+                                }
+                                CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','{1}','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','{1}','0')");
+                                string sql = $"INSERT INTO T_JY_PRDINSTOCKOP (FBillNO,FSourceBillNo,FEntryID,FSEQ,FQTY,FStockNumber,FLot,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','{a.orderCode}','{a.FEntryID}','{1}','{a.totalNeedWeight}','CK020','{a.lotCode}','{a.productTime}','{a.invalidationTime}','{a.taskNo}','{1}','0')";
                                 if (new SqlHelper<object>().ExecuteSql(sql, false))
                                 {
                                     #region 鍙嶉淇℃伅缁檓es 瀵规帴鏂囨。 https://365.kdocs.cn/l/cltzoEaznLco
@@ -758,7 +782,7 @@
                                 else
                                 {
                                     //鎻掑叆澶辫触锛屽皢鏁版嵁鎻掑叆鏂拌〃锛屼汉宸ユ墜鍔ㄥ鐞嗭紝閲嶆柊鎻掑叆
-                                    MongoDBSingleton.Instance.Insert<SendErpTaskInfoTableBak>(new SendErpTaskInfoTableBak 
+                                    MongoDBSingleton.Instance.Insert<SendErpTaskInfoTableBak>(new SendErpTaskInfoTableBak
                                     {
                                         orderCode = a.orderCode,
                                         FEntryID = a.FEntryID,
@@ -772,8 +796,9 @@
                             }
                             else
                             {
-                                CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_SPInStockADD (FBillNO,FStockOrgNumber,FPrdOrgNumber,FSeq,FMaterialNumber,Flot,FInStockType,FMustQty,FStockNumber,FWorkShopNumber,FStockStatus,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','02','02','{n}','{a.materiCode}','{a.lotCode}','1','{a.totalWeight}','CK020','BM000161','1','{a.productTime}','{a.invalidationTime}','{a.taskNo}',{sendERPTaskInfoList.Count},'0')");
-                                string sql = $"INSERT INTO T_JY_SPInStockADD (FBillNO,FStockOrgNumber,FPrdOrgNumber,FSeq,FMaterialNumber,Flot,FInStockType,FMustQty,FStockNumber,FWorkShopNumber,FStockStatus,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','02','02','{n}','{a.materiCode}','{a.lotCode}','1','{a.totalWeight}','CK020','BM000161','1','{a.productTime}','{a.invalidationTime}','{a.taskNo}',{sendERPTaskInfoList.Count},'0')";
+                                n = n + 1;
+                                CMMLog.Info($"SendERPTaskCompleteFunc:INSERT INTO T_JY_SPInStockADD (FBillNO,FStockOrgNumber,FPrdOrgNumber,FSeq,FMaterialNumber,Flot,FInStockType,FMustQty,FStockNumber,FWorkShopNumber,FStockStatus,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','02','02','{n}','{a.materiCode}','{a.lotCode}','1','{a.totalWeight}','CK020','BM000161','1','{a.productTime}','{a.invalidationTime}','{a.taskNo}','{count}','0')");
+                                string sql = $"INSERT INTO T_JY_SPInStockADD (FBillNO,FStockOrgNumber,FPrdOrgNumber,FSeq,FMaterialNumber,Flot,FInStockType,FMustQty,FStockNumber,FWorkShopNumber,FStockStatus,FProduceDate ,FExpiryDate,FTaskNumber,FCountEntry,FOpStatus) VALUES ('{FBillNO}','02','02','{n}','{a.materiCode}','{a.lotCode}','1','{a.totalWeight}','CK020','BM000161','1','{a.productTime}','{a.invalidationTime}','{a.taskNo}','{count}','0')";
                                 if(new SqlHelper<object>().ExecuteSql(sql, false))
                                 {
                                 }

--
Gitblit v1.9.1