From 9aeaf9bd0461f19a5cde1095b292c1d2109c8a98 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期四, 19 六月 2025 17:21:07 +0800 Subject: [PATCH] 111 --- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs | 245 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 235 insertions(+), 10 deletions(-) diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs index 810c399..5a261a0 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs @@ -285,9 +285,84 @@ /// </summary> public int FEntryID { get; set; } /// <summary> - /// 鍙嶉mes 1-鍙嶉澶辫触锛屾寔缁弽棣堬紝0-鏈弽棣�+ /// 鍙嶉mes 1- 鏃犻渶鍙嶉锛�-鏈弽棣� /// </summary> public string mesSucess { get; set; } + } + + public class SendErpTaskInfoTableBak + { + public ObjectId _id { get; set; } + /// <summary> + /// 浠诲姟鍙�+ /// </summary> + public string taskNo { get; set; } = ""; + /// <summary> + /// 鐐逛綅 + /// </summary> + public string Bit { get; set; } + /// <summary> + /// 鍖呰鏈哄彿 + /// </summary> + public string packingMachineNumber { get; set; } + /// <summary> + /// 鐗╂枡缂栫爜(鍞竴) + /// </summary> + public string materiCode { get; set; } + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string materiName { get; set; } + /// <summary> + /// 鐗╂枡瑙勬牸 + /// </summary> + public string materialSpec { get; set; } + /// <summary> + /// 鎬绘�閲�+ /// </summary> + public int totalWeight { get; set; } + /// <summary> + /// 鎵规鍙�+ /// </summary> + public string lotCode { get; set; } + /// <summary> + /// 鏃堕棿鎴�瀵瑰簲浠诲姟鏁版嵁 CN_S_BATCH_NO 瀛楁鍊�+ /// </summary> + public string timeStamp { get; set; } + /// <summary> + /// 鐢熶骇鏃ユ湡 + /// </summary> + public DateTime productTime { get; set; } + /// <summary> + /// 澶辨晥鏃ユ湡 + /// </summary> + public DateTime invalidationTime { get; set; } + /// <summary> + /// 鏄惁瀹屾垚 + /// </summary> + public string isFinish { get; set; } = "N"; + public DateTime dateTime { get; set; } + //鍙樻洿娉ㄩ噴 + /// <summary> + /// 鐢熶骇璁㈠崟缂栧彿 + /// </summary> + public string orderCode { get; set; } + /// <summary> + /// 闇�眰鎬婚噸閲�+ /// </summary> + public int totalNeedWeight { get; set; } + /// <summary> + /// 鍙犲寘鍚庢�閲嶉噺锛堝噣閲嶏級 + /// </summary> + public int netWeight { get; set; } + /// <summary> + /// 鍒嗗綍id + /// </summary> + public int FEntryID { get; set; } + /// <summary> + /// 鏄惁涓婃姤 1-闇�涓婃姤锛�-涓嶉渶瑕佷笂鎶�+ /// </summary> + public string needReport { get; set; } = "0"; } @@ -500,10 +575,10 @@ { // 鍏堟牴鎹换鍔℃壒娆″彿瀛楁鑾峰彇鏃堕棿鎴充腑闂磋〃-TimeCuoInfoCom 鏁版嵁锛屽苟杩涜鍚庣画璋冪敤锛屽鐞嗘垚鍔熷垹闄ゆ椂闂存埑涓棿琛�TimeCuoInfoCom 鏁版嵁 - //int n = 0; //琛屽彿 + int n = 0; //琛屽彿 sendERPTaskInfoList.ForEach(a => { - //n = n + 1; + n = n + 1; #region 璁$畻鍗曟嵁缂栧彿 string FBillNO = ""; int num = 0; @@ -538,9 +613,148 @@ 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')"; + if (new SqlHelper<object>().ExecuteSql(sql, false)) + { + #region 鍙嶉淇℃伅缁檓es 瀵规帴鏂囨。 https://365.kdocs.cn/l/cltzoEaznLco + bool result = sendMes(a, true); + + if (!result) + { + //灏嗘暟鎹瓨鍏ヤ腑闂磋〃锛岄噸鏂板彂閫�+ MongoDBSingleton.Instance.Insert<SendMESTaskInfoTable>(new SendMESTaskInfoTable + { + taskNo = a.taskNo, + Bit = a.Bit, + packingMachineNumber = a.packingMachineNumber, + materiCode = a.materiCode, + materiName = a.materiName, + materialSpec = a.materialSpec, + totalWeight = a.totalWeight, + lotCode = a.lotCode, + timeStamp = a.timeStamp, + productTime = a.productTime, + invalidationTime = a.invalidationTime, + isFinish = a.isFinish, + dateTime = a.dateTime, + orderCode = a.orderCode, + totalNeedWeight = a.totalNeedWeight, + netWeight = a.netWeight, + FEntryID = a.FEntryID + }); + } + #endregion + + //鎻掑叆鎴愬姛 娓呴櫎涓棿琛�+ MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None); + } + else + { + //鎻掑叆澶辫触锛屽皢鏁版嵁鎻掑叆鏂拌〃锛屼汉宸ユ墜鍔ㄥ鐞嗭紝閲嶆柊鎻掑叆 + MongoDBSingleton.Instance.Insert<SendErpTaskInfoTableBak>(new SendErpTaskInfoTableBak + { + orderCode = a.orderCode, + FEntryID = a.FEntryID, + totalNeedWeight = a.totalNeedWeight, + lotCode = a.lotCode, + productTime = a.productTime, + invalidationTime = a.invalidationTime, + taskNo = a.taskNo + }, "SendErpTaskInfoTableBak"); + } + } + 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')"; + if(new SqlHelper<object>().ExecuteSql(sql, false)) + { + //鎻掑叆鎴愬姛 娓呴櫎涓棿琛�+ MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None); + } + else + { + //鎻掑叆澶辫触锛屽皢鏁版嵁鎻掑叆鏂拌〃锛屼汉宸ユ墜鍔ㄥ鐞嗭紝閲嶆柊鎻掑叆 + MongoDBSingleton.Instance.Insert<SendErpTaskInfoTableBak>(new SendErpTaskInfoTableBak + { + orderCode = a.orderCode, + FEntryID = a.FEntryID, + totalNeedWeight = a.totalNeedWeight, + lotCode = a.lotCode, + productTime = a.productTime, + invalidationTime = a.invalidationTime, + taskNo = a.taskNo + }, "SendErpTaskInfoTableBak"); + } + } + MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None); + }); + } + } + } + catch(Exception ex) + { + CMMLog.Info("SendERPTaskCompleteFunc err:"+ex.Message); + } + } + + internal static void SendERPTaskCompleteFuncThree() + { + try + { + var db = new SqlHelper<object>().GetInstance(); + var sendERPTaskInfoList = MongoDBSingleton.Instance.Find<SendErpTaskInfoTableBak>(Query.And(Query.EQ("needReport", "1")), "SendErpTaskInfoTableBak"); + //var sendERPTaskInfoList = MongoDBSingleton.Instance.Find<SendErpTaskInfoTable>(Query.EQ("isFinish", "Y"), "SendErpTaskInfoTable"); + if (sendERPTaskInfoList.Count > 0) + { + CMMLog.Info($"SendERPTaskCompleteFunc:{sendERPTaskInfoList.Count}"); + // 鍏堟牴鎹换鍔℃壒娆″彿瀛楁鑾峰彇鏃堕棿鎴充腑闂磋〃-TimeCuoInfoCom 鏁版嵁锛屽苟杩涜鍚庣画璋冪敤锛屽鐞嗘垚鍔熷垹闄ゆ椂闂存埑涓棿琛�TimeCuoInfoCom 鏁版嵁 + int n = 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')"; - if(new SqlHelper<object>().ExecuteSql(sql, false)) + if (new SqlHelper<object>().ExecuteSql(sql, false)) { #region 鍙嶉淇℃伅缁檓es 瀵规帴鏂囨。 https://365.kdocs.cn/l/cltzoEaznLco bool result = sendMes(a, true); @@ -572,16 +786,25 @@ #endregion //鎻掑叆鎴愬姛 娓呴櫎涓棿琛�- MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None); - MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None); + MongoDBSingleton.Instance.Remove<SendErpTaskInfoTableBak>(Query.EQ("_id", a._id), "SendErpTaskInfoTableBak", RemoveFlags.None); } - }); - } + } + 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')"; + if (new SqlHelper<object>().ExecuteSql(sql, false)) + { + //鎻掑叆鎴愬姛 娓呴櫎涓棿琛�+ MongoDBSingleton.Instance.Remove<SendErpTaskInfoTableBak>(Query.EQ("_id", a._id), "SendErpTaskInfoTableBak", RemoveFlags.None); + } + } + }); } } - catch(Exception ex) + catch (Exception ex) { - CMMLog.Info("SendERPTaskCompleteFunc err:"+ex.Message); + CMMLog.Info("SendERPTaskCompleteFunc err:" + ex.Message); } } @@ -1713,6 +1936,8 @@ } + + public class packageInfoModel { public ObjectId _id { get; set; } -- Gitblit v1.9.1