From 4967c641bf731d3fd230cdcb84420f6837a1b7f2 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周日, 18 5月 2025 14:54:15 +0800 Subject: [PATCH] 222 --- PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs | 242 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 216 insertions(+), 26 deletions(-) diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs index ed7599c..a15f5b9 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs @@ -21,6 +21,9 @@ using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder; using System.Collections.Generic; using CMS.Framework.AspNetCore.Users; +using NPOI.SS.Formula.Functions; +using CMS.Plugin.PipeLineLems.Application.Implements; +using CmsQueryExtensions.Entitys; namespace CMS.Plugin.PipeLineLems.ProjectService { @@ -89,6 +92,9 @@ { "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�", "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�(鎻忚堪)" }, { "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�", "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�(鎻忚堪)" }, { "鍒囧壊杩涚珯淇″彿", "鍒囧壊杩涚珯淇″彿(鎻忚堪)" }, + + { "瑁呴厤瀹屽伐淇″彿", "瑁呴厤瀹屽伐淇″彿(鎻忚堪)" }, + { "鐒婃帴瀹屽伐淇″彿", "鐒婃帴瀹屽伐淇″彿(鎻忚堪)" }, }; // 鍒涘缓閫氶亾鐩戝惉 @@ -146,7 +152,7 @@ _logger.LogInformation($"{changed.Name} 鍙橀噺鍊煎彂鐢熷彉鍖栵紝鏃у�納oldValue}=鏂板�納newValue}锛孴raceId={traceId}"); - if (changed.Name == "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�" && changed.New?.Value.SafeString().ToBool() == true) + if (changed.Name == "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�") { // TODO: 澶勭悊鍙橀噺鍊煎彉鍖� @@ -159,15 +165,21 @@ 锛�4锛夊苟鍙戠鐞嗭細 濡傛灉涓氬姟灞傚苟鍙戦噺澶э紝蹇呴』浼樺寲浠g爜璁捐鍜屽疄鏂斤紝浠ュ噺灏戝湪楂樺苟鍙戞儏鍐典笅鐨勭郴缁熻祫婧愭秷鑰楋紝闃叉绯荤粺鎬ц兘闂銆� 锛�5锛変唬鐮佸畨鍏細 瀹夎骞朵娇鐢� CMS.CodeAnalysis 鍒嗘瀽鍣ㄦ潵鍒嗘瀽 IVariableDataCache.TagChanged 鐨勪娇鐢ㄦ儏鍐点�傝宸ュ叿鑳藉湪浣跨敤涓嶅綋鏃舵彁渚涚紪璇戦敊璇紝甯姪鎮ㄦ彁楂樹唬鐮佽川閲忋��*/ - _ = Task.Run(async () => + if (changed.New?.Value.SafeString().ToBool() == true) { - await HanlderForPringBarCodeByCreateProductAsync(); - // 渚�1锛氬悓姝ュ鐞� - //await ProcessAsync(); + _ = Task.Run(async () => + { + await HanlderForPringBarCodeByCreateProductAsync(); + }); + } + else + { - // 渚�2锛氳皟鐢ㄥ閮ˋPI - //await ExecuteExternalApiAsync(); - }); + _ = Task.Run(async () => + { + await HanlderForPringBarCodeByCreateProductWhenFalseAsync(); + }); + } } if (changed.Name == "鎵撶爜杩涚珯淇″彿" && changed.New?.Value.SafeString().ToBool() == true) @@ -221,7 +233,7 @@ } - if (changed.Name == "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�" && changed.New?.Value.SafeString().ToBool() == true) + if (changed.Name == "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�") { // TODO: 澶勭悊鍙橀噺鍊煎彉鍖� @@ -234,15 +246,57 @@ 锛�4锛夊苟鍙戠鐞嗭細 濡傛灉涓氬姟灞傚苟鍙戦噺澶э紝蹇呴』浼樺寲浠g爜璁捐鍜屽疄鏂斤紝浠ュ噺灏戝湪楂樺苟鍙戞儏鍐典笅鐨勭郴缁熻祫婧愭秷鑰楋紝闃叉绯荤粺鎬ц兘闂銆� 锛�5锛変唬鐮佸畨鍏細 瀹夎骞朵娇鐢� CMS.CodeAnalysis 鍒嗘瀽鍣ㄦ潵鍒嗘瀽 IVariableDataCache.TagChanged 鐨勪娇鐢ㄦ儏鍐点�傝宸ュ叿鑳藉湪浣跨敤涓嶅綋鏃舵彁渚涚紪璇戦敊璇紝甯姪鎮ㄦ彁楂樹唬鐮佽川閲忋��*/ - _ = Task.Run(async () => + if (changed.New?.Value.SafeString().ToBool() == true) { - await HanlderForCutByCreateProductAsync(); - // 渚�1锛氬悓姝ュ鐞� - //await ProcessAsync(); + _ = Task.Run(async () => + { + await HanlderForCutByCreateProductAsync(); + }); + } + else + { + _ = Task.Run(async () => + { + await HanlderForCutByCreateProductWhenFlaseAsync(); + }); + } + } - // 渚�2锛氳皟鐢ㄥ閮ˋPI - //await ExecuteExternalApiAsync(); - }); + + if (changed.Name == "瑁呴厤瀹屽伐淇″彿") + { + if (changed.New?.Value.SafeString().ToBool() == true) + { + _ = Task.Run(async () => + { + await HanlderFor瑁呴厤瀹屽伐淇″彿Async(); + }); + } + else + { + _ = Task.Run(async () => + { + await HanlderFor瀹屽伐淇″彿WhenFalseAsync("瑁呴厤"); + }); + } + } + + if (changed.Name == "鐒婃帴瀹屽伐淇″彿") + { + if (changed.New?.Value.SafeString().ToBool() == true) + { + _ = Task.Run(async () => + { + await HanlderFor鐒婃帴瀹屽伐淇″彿Async(); + }); + } + else + { + _ = Task.Run(async () => + { + await HanlderFor瀹屽伐淇″彿WhenFalseAsync("鐒婃帴"); + }); + } } } } @@ -314,13 +368,13 @@ try { //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟 - callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo); + callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.WmsTaskNo == myTaskNo); if (callMaterialOrder == null) return;//缁撴潫 //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝 - var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(callMaterialOrder.DataIdentifier); + var workPlanList = await workPlanAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier); if (workPlanList?.Count == 0) return;//缁撴潫 ////TODO:鏆傛椂鐢熸垚浜у搧ID @@ -365,6 +419,7 @@ pipeSpecCode3 = new_workPlanList[i].PipeSpecCode; } } + Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?> { { "鎵撶爜宸ヤ欢1",code1}, @@ -376,7 +431,8 @@ { "鎵撶爜绠℃缂栫爜", new_workPlanList.First().PipeSpecCode }, { "鎵撶爜绠℃鍚嶇О", new_workPlanList.First().PipeSectionName }, { "鎵撶爜鍘熸枡绠″瀷鍙�", new_workPlanList.First().MaterialMode }, - { "鎵撶爜鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier } + { "鎵撶爜鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier }, + { "鎵撶爜鍘熸枡绠℃壒娆�", callMaterialOrder.MaterialBatch },//鎵规 }; _variableService.WriteValueAsync(keyValuePairs); @@ -432,13 +488,13 @@ try { //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟 - callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo); + callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.WmsTaskNo == myTaskNo); if (callMaterialOrder == null) return;//缁撴潫 //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝 - var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(callMaterialOrder.DataIdentifier); + var workPlanList = await workPlanAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier); if (workPlanList?.Count == 0) return;//缁撴潫 //TODO:鏆傛椂鐢熸垚浜у搧ID @@ -447,6 +503,7 @@ Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?> { { "鎵撶爜_ProductID", productID}, + { "CMS鍙嶉璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙风粨鏋�", true}, }; var ret = _variableService.WriteValueAsync(keyValuePairs_productID); @@ -468,6 +525,19 @@ throw; } } + } + + /// <summary> + /// 璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�(鍊间负false鐨勬椂鍊�) + /// </summary> + /// <returns></returns> + private async Task HanlderForPringBarCodeByCreateProductWhenFalseAsync() + { + Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?> + { + { "CMS鍙嶉璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙风粨鏋�", false}, + }; + var ret = _variableService.WriteValueAsync(keyValuePairs_productID); } @@ -571,13 +641,13 @@ try { //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟 - callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo); + callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.WmsTaskNo == myTaskNo); if (callMaterialOrder == null) return;//缁撴潫 //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝 - var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(callMaterialOrder.DataIdentifier); + var workPlanList = await workPlanAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier); if (workPlanList?.Count == 0) return;//缁撴潫 ////TODO:鏆傛椂鐢熸垚浜у搧ID @@ -633,7 +703,8 @@ { "鍒囧壊绠℃缂栫爜", new_workPlanList.First().PipeSpecCode }, { "鍒囧壊绠℃鍚嶇О", new_workPlanList.First().PipeSectionName }, { "鍒囧壊鍘熸枡绠″瀷鍙�", new_workPlanList.First().MaterialMode }, - { "鍒囧壊鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier } + { "鍒囧壊鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier }, + { "鍒囧壊鍘熸枡绠℃壒娆�", callMaterialOrder.MaterialBatch },//鎵规 }; _variableService.WriteValueAsync(keyValuePairs); @@ -689,13 +760,13 @@ try { //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟 - callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo); + callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.WmsTaskNo == myTaskNo); if (callMaterialOrder == null) return;//缁撴潫 //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝 - var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(callMaterialOrder.DataIdentifier); + var workPlanList = await workPlanAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier); if (workPlanList?.Count == 0) return;//缁撴潫 //TODO:鏆傛椂鐢熸垚浜у搧ID @@ -704,6 +775,7 @@ Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?> { { "鍒囧壊_ProductID", productID}, + { "CMS鍙嶉璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙风粨鏋�", true}, }; var ret = _variableService.WriteValueAsync(keyValuePairs_productID); @@ -734,5 +806,123 @@ } } } + + /// <summary> + /// 璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙凤紙鍊间负false鐨勬椂鍊欙級 + /// </summary> + /// <returns></returns> + private async Task HanlderForCutByCreateProductWhenFlaseAsync() + { + + Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?> + { + { "CMS鍙嶉璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙风粨鏋�", false}, + }; + var ret = _variableService.WriteValueAsync(keyValuePairs_productID); + } + + + + /// <summary> + /// 瑁呴厤瀹屽伐淇″彿=true鏃� + /// </summary> + /// <returns></returns> + private async Task HanlderFor瑁呴厤瀹屽伐淇″彿Async() + { + + var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>(); + var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>(); + var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>(); + + var pipeSpecCode = await _variableService.ReadValueAsync("瑁呴厤绠℃缂栫爜"); + + if (string.IsNullOrEmpty(pipeSpecCode?.Content?.Value.SafeString().ToString())) + { + + } + else + { + + + + var myPipeSpecCode = pipeSpecCode.Content.Value.SafeString().ToString(); + CallMaterialOrder callMaterialOrder = null; + try + { + var sharedService = _serviceProvider.GetRequiredService<SharedService>(); + var userName = await _variableService.ReadValueAsync("瑁呴厤浜�"); + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = userName.Content.Value.SafeString().ToString() + }; + sharedService.CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput() { PipeSpecCode = myPipeSpecCode, ProcessName="瑁呴厤宸ュ簭" }, myCurrentUser); + + } + catch (Exception) + { + + } + } + } + + /// <summary> + /// 鐒婃帴瀹屽伐淇″彿=true鏃� + /// </summary> + /// <returns></returns> + private async Task HanlderFor鐒婃帴瀹屽伐淇″彿Async() + { + + var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>(); + var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>(); + var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>(); + + var pipeSpecCode = await _variableService.ReadValueAsync("鐒婃帴绠℃缂栫爜"); + + if (string.IsNullOrEmpty(pipeSpecCode?.Content?.Value.SafeString().ToString())) + { + + } + else + { + + + + var myPipeSpecCode = pipeSpecCode.Content.Value.SafeString().ToString(); + CallMaterialOrder callMaterialOrder = null; + try + { + var sharedService = _serviceProvider.GetRequiredService<SharedService>(); + var userName = await _variableService.ReadValueAsync("鐒婃帴浜�"); + MyCurrentUser myCurrentUser = new MyCurrentUser() + { + UserAccount = userName.Content.Value.SafeString().ToString() + }; + sharedService.CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput() { PipeSpecCode = myPipeSpecCode, ProcessName = "鐒婃帴宸ュ簭" }, myCurrentUser); + + } + catch (Exception) + { + + } + } + } + + /// <summary> + /// 瀹屽伐淇″彿=false鏃� + /// </summary> + /// <returns></returns> + private async Task HanlderFor瀹屽伐淇″彿WhenFalseAsync(string processName) + { + try + { + var sharedService = _serviceProvider.GetRequiredService<SharedService>(); + await sharedService.CompleteHandleOutStoreFinish(_serviceProvider, processName, false); + } + catch (Exception) + { + + + } + } } } -- Gitblit v1.9.3