From c8ff461116306749ed4135fbb1e32a7d6777d5f0 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期二, 03 六月 2025 17:13:53 +0800 Subject: [PATCH] ERP --- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs | 31 +++++- ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json | 65 +++++++++++++ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json | 4 .vs/VSWorkspaceState.json | 2 ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs | 74 ++++++++------ ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/FileContentIndex/bf82eed7-d03a-4773-8615-e25b89253835.vsidx | 0 .vs/荆门格林美南区/v17/DocumentLayout.backup.json | 65 +++++++++++++ .vs/荆门格林美南区/v17/.wsuo | 0 8 files changed, 203 insertions(+), 38 deletions(-) diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json index 65d226f..cec1377 100644 --- a/.vs/VSWorkspaceState.json +++ b/.vs/VSWorkspaceState.json @@ -2,6 +2,6 @@ "ExpandedNodes": [ "" ], - "SelectedNode": "\\C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A", + "SelectedNode": "\\Hanhe.iWCS.JingmenGEMTwoProtocol.sln", "PreviewInSolutionExplorer": false } \ No newline at end of file diff --git "a/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/.wsuo" "b/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/.wsuo" index 51134c6..8da6754 100644 --- "a/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/.wsuo" +++ "b/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/.wsuo" Binary files differ diff --git "a/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/DocumentLayout.backup.json" "b/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/DocumentLayout.backup.json" new file mode 100644 index 0000000..e1adfe1 --- /dev/null +++ "b/.vs/\350\215\206\351\227\250\346\240\274\346\236\227\347\276\216\345\215\227\345\214\272/v17/DocumentLayout.backup.json" @@ -0,0 +1,65 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 16, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + } + ] + }, + { + "DockedWidth": 18, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/FileContentIndex/bf82eed7-d03a-4773-8615-e25b89253835.vsidx b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/FileContentIndex/bf82eed7-d03a-4773-8615-e25b89253835.vsidx new file mode 100644 index 0000000..01d4249 --- /dev/null +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/FileContentIndex/bf82eed7-d03a-4773-8615-e25b89253835.vsidx Binary files differ diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..3042840 --- /dev/null +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.backup.json @@ -0,0 +1,65 @@ +{ + "Version": 1, + "WorkspaceRootPath": "C:\\software\\A-\u5DE5\u4F5C\\\u6E90\u7801\\GIT\\\u8346\u95E8\u683C\u6797\u7F8E\u5357\u533A\\ams\\Hanhe.iWCS.JingmenGEMTwoProtocol\\", + "Documents": [], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 16, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{eefa5220-e298-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{3ae79031-e1bc-11d0-8f78-00a0c9110057}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:128:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}" + }, + { + "$type": "Bookmark", + "Name": "ST:129:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" + } + ] + }, + { + "DockedWidth": 18, + "SelectedChildIndex": -1, + "Children": [ + { + "$type": "Bookmark", + "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}" + }, + { + "$type": "Bookmark", + "Name": "ST:1:0:{e8034f19-ab72-4f06-83fd-f6832b41aa63}" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json index 3499677..3042840 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/.vs/Hanhe.iWCS.JingmenGEMTwoProtocol/v17/DocumentLayout.json @@ -8,7 +8,7 @@ "VerticalTabListWidth": 256, "DocumentGroups": [ { - "DockedWidth": 200, + "DockedWidth": 16, "SelectedChildIndex": -1, "Children": [ { @@ -42,7 +42,7 @@ ] }, { - "DockedWidth": 22, + "DockedWidth": 18, "SelectedChildIndex": -1, "Children": [ { diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs index 810c399..aa98c83 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ERPService.cs @@ -500,10 +500,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,43 +538,57 @@ 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)) + if(!string.IsNullOrEmpty(a.orderCode) && a.orderCode.Length >= 2 && a.orderCode.Substring(0,2) == "MO") { - #region 鍙嶉淇℃伅缁檓es 瀵规帴鏂囨。 https://365.kdocs.cn/l/cltzoEaznLco - bool result = sendMes(a, true); - - if (!result) + 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)) { - //灏嗘暟鎹瓨鍏ヤ腑闂磋〃锛岄噸鏂板彂閫�- MongoDBSingleton.Instance.Insert<SendMESTaskInfoTable>(new SendMESTaskInfoTable + #region 鍙嶉淇℃伅缁檓es 瀵规帴鏂囨。 https://365.kdocs.cn/l/cltzoEaznLco + bool result = sendMes(a, true); + + if (!result) { - 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 - }); + //灏嗘暟鎹瓨鍏ヤ腑闂磋〃锛岄噸鏂板彂閫�+ 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); + MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None); } - #endregion + } + 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')"; + new SqlHelper<object>().ExecuteSql(sql, false); //鎻掑叆鎴愬姛 娓呴櫎涓棿琛� 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); } + }); } } diff --git a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs index b6de37b..cced9a5 100644 --- a/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs +++ b/ams/Hanhe.iWCS.JingmenGEMTwoProtocol/PLCControl.cs @@ -128,7 +128,8 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 80) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 10銆�1銆�2鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result); + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result); var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null && tray.addState == 0) { @@ -182,7 +183,16 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 95) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 11銆�2銆�3鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result, false, "1"); + + string flLoc = ""; + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result, false, "1"); + if (pmInfo.location.Contains("FLZT")) + { + flLoc = pmInfo.location; + pmInfo.location = location; + } + var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null) { @@ -219,6 +229,7 @@ { CMMLog.Info($"鐗╂枡缂栫爜锛歿tray.materialCode}锛屾壒娆″彿锛歿tray.lotNo}"); string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1); + pmInfo.location = !string.IsNullOrEmpty(flLoc) ? flLoc : pmInfo.location; HHAmsExecuteResult req = AMSHelper.CreateTask(DateTime.Now.Ticks.ToString(), pmInfo.location, PlcBit02, "3妤煎寘瑁呭彇鏂�, 0, tray.trayCode, timeStamp); ProcessHelper.deleteInfo(pmInfo.location + "-鍖呰涓嬬嚎"); //鍖呰鍙栨枡鍗歌揣瀹屾垚锛岃澶囩敓浜ф暟閲忓姞涓�@@ -378,7 +389,8 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 80) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 10銆�1銆�2鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result); + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result); var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null && tray.addState == 0) { @@ -432,7 +444,14 @@ if (trayCode.errCode == 0 && trayCode.result.Length == 95) { //鑾峰彇鎵樼洏鐮佺瓑淇℃伅 璇诲彇閫氶亾 11銆�2銆�3鐨勬暟鎹綔涓烘墭鐩樼爜 璇诲彇鍏跺畠閫氶亾 閲嶉噺 鍙犲寘绛変俊鎭�鎵�湁鏁版嵁瀛樺叆MachineInfo琛�- GetMachineData(pmInfo, trayCode.result, false, "2"); + string flLoc = ""; + string location = ""; + GetMachineData(pmInfo,ref location, trayCode.result, false, "2"); + if (pmInfo.location.Contains("FLZT")) + { + flLoc = pmInfo.location; + pmInfo.location = location; + } var tray = MongoDBSingleton.Instance.FindOne<MachineInfo>(Query.EQ("machineNo", pmInfo.location), "MachineInfo"); if (tray != null) { @@ -468,6 +487,7 @@ { CMMLog.Info($"鐗╂枡缂栫爜锛歿tray.materialCode}锛屾壒娆″彿锛歿tray.lotNo}"); string timeStamp = ProcessHelper.GetTimeStamp(31, 1, 1); + pmInfo.location = !string.IsNullOrEmpty(flLoc) ? flLoc : pmInfo.location; HHAmsExecuteResult req; if (pmInfo.deviceType == "22") { @@ -2747,7 +2767,7 @@ /// <param name="info"></param> /// <param name="result"></param> /// <param name="noPack">true : MES浜や簰鏂瑰紡 false : 鏃燤ES浜や簰鏂瑰紡</param> - private static void GetMachineData(Settings.PlcInfo pmInfo,int[] result ,bool noPack = true,string isOne = "") + private static void GetMachineData(Settings.PlcInfo pmInfo, ref string loc, int[] result ,bool noPack = true,string isOne = "") { //Console.WriteLine($"杩涘叆鏁版嵁澶勭悊娴佺▼锛�); CMMLog.Info($"杩涘叆鏁版嵁澶勭悊娴佺▼锛�); @@ -2755,6 +2775,7 @@ string empCode = RemoveNull(GetTrayCode(result.Take(5).ToArray()));//鍛樺伐缂栫爜 string trayCode = RemoveNull(GetTrayCode(result.Skip(5).Take(3).ToArray()));//鎵樼洏鐮� string location = RemoveNull(GetTrayCode(result.Skip(8).Take(1).ToArray()));//璁惧璐т綅缂栫爜 + loc = location; #region 2024-12-30 鍙樻洿 鍔犲叆mes鐢熶骇璁㈠崟缂栧彿 鍒嗗綍ID 鍙樻洿娉ㄩ噴 string orderCode = ""; //鐢熶骇璁㈠崟缂栧彿 int fEntryID = 0; //鍒嗗綍ID -- Gitblit v1.9.1