From 0e42f871905f207658d822fcbe29aeb57b2156af Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 21 5月 2025 16:18:01 +0800
Subject: [PATCH] 修复查询bug

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs |  470 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 435 insertions(+), 35 deletions(-)

diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
index e390ae1..9e1ae40 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
@@ -21,6 +21,10 @@
 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;
+using CMS.Plugin.PipeLineLems.Domain.WorkTask;
 
 namespace CMS.Plugin.PipeLineLems.ProjectService
 {
@@ -32,7 +36,6 @@
         private IServiceProvider _serviceProvider;
         private readonly ILogger<PipeLineLemsProjectService> _logger;
         private readonly IVariableDataCache _variableDataCache;
-
 
         /// <summary>
         /// 鍙橀噺鏈嶅姟
@@ -87,7 +90,12 @@
             {
                 { "鎵撶爜杩涚珯淇″彿", "鎵撶爜杩涚珯淇″彿(鎻忚堪)" },
                 { "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�", "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�(鎻忚堪)" },
+                { "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�", "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�(鎻忚堪)" },
                 { "鍒囧壊杩涚珯淇″彿", "鍒囧壊杩涚珯淇″彿(鎻忚堪)" },
+
+                { "瑁呴厤瀹屽伐淇″彿", "瑁呴厤瀹屽伐淇″彿(鎻忚堪)" },
+                { "鐒婃帴瀹屽伐淇″彿", "鐒婃帴瀹屽伐淇″彿(鎻忚堪)" },
+                { "娉曞叞鍐茬爜瀹屽伐淇″彿", "娉曞叞鍐茬爜瀹屽伐淇″彿(鎻忚堪)" },
             };
 
             // 鍒涘缓閫氶亾鐩戝惉
@@ -145,7 +153,7 @@
 
                 _logger.LogInformation($"{changed.Name} 鍙橀噺鍊煎彂鐢熷彉鍖栵紝鏃у�納oldValue}=鏂板�納newValue}锛孴raceId={traceId}");
 
-                if (changed.Name == "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�" && changed.New?.Value.SafeString().ToBool() == true)
+                if (changed.Name == "璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙�")
                 {
 
                     // TODO: 澶勭悊鍙橀噺鍊煎彉鍖�
@@ -158,15 +166,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)
@@ -217,6 +231,91 @@
                         // 渚�2锛氳皟鐢ㄥ閮ˋPI
                         //await ExecuteExternalApiAsync();
                     });
+                }
+
+
+                if (changed.Name == "璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�")
+                {
+
+                    // TODO: 澶勭悊鍙橀噺鍊煎彉鍖�
+                    // Tips锛歨ttps://cms-docs.shengyc.com/cms/api/%E5%90%8E%E7%AB%AF#3-%E5%8F%98%E9%87%8F%E6%A8%A1%E5%9D%97
+                    /* 璇存槑锛氶�氳繃璁㈤槄 IVariableDataCache.TagChanged 浜嬩欢锛屾偍鍙互瀹炴椂鐩戞帶鍙橀噺鐨勫彉鍖栥�傛浜嬩欢浼氫紶閫掓墍鏈夊彉閲忚嚦浜嬩欢澶勭悊鍑芥暟锛屽洜姝わ紝涓氬姟灞傞渶鍦ㄥ嚱鏁颁腑绛涢�夊叧娉ㄧ殑鍙橀噺銆�
+                        娉ㄦ剰浜嬮」锛�
+                        锛�1锛夋�ц兘褰卞搷锛� 鍙戝竷浜嬩欢鏃讹紝浜嬩欢鐨勫彂閫佽�呭皢闃诲娴佺▼銆傚洜姝わ紝寮虹儓寤鸿閬垮厤鍦ㄤ簨浠跺鐞嗗嚱鏁颁腑鎵ц I/ O 鎿嶄綔銆丠TTP 鎺ュ彛璁块棶鎴栧叾浠栬�楁椂鎿嶄綔锛屼互闃叉瀵圭郴缁熸�ц兘浜х敓涓ラ噸褰卞搷锛屽鑷存暣涓郴缁熷搷搴斿欢杩熴��
+                        锛�2锛夐珮棰戠巼瑙﹀彂锛� 鐢变簬浜嬩欢璁㈤槄浜嗗叏閲忓彉閲忥紝瑙﹀彂棰戠巼鍙兘闈炲父楂樸��
+                        锛�3锛夊紓姝ュ鐞嗭細 閴翠簬浜嬩欢瑙﹀彂棰戠巼寰堥珮锛屽缓璁笟鍔″眰鍦ㄧ瓫閫夊叧娉ㄥ彉閲忓悗锛屼娇鐢� Task 鍚姩鏂扮嚎绋嬪鐞嗕笟鍔¢�昏緫锛屼互閬垮厤闃诲鏍稿績鐨勫彉閲忕洃鍚姛鑳斤紝瀹炵幇涓氬姟灞備笌骞冲彴鍩哄骇鐨勮В鑰︺��
+                        锛�4锛夊苟鍙戠鐞嗭細 濡傛灉涓氬姟灞傚苟鍙戦噺澶э紝蹇呴』浼樺寲浠g爜璁捐鍜屽疄鏂斤紝浠ュ噺灏戝湪楂樺苟鍙戞儏鍐典笅鐨勭郴缁熻祫婧愭秷鑰楋紝闃叉绯荤粺鎬ц兘闂銆�
+                        锛�5锛変唬鐮佸畨鍏細 瀹夎骞朵娇鐢� CMS.CodeAnalysis 鍒嗘瀽鍣ㄦ潵鍒嗘瀽 IVariableDataCache.TagChanged 鐨勪娇鐢ㄦ儏鍐点�傝宸ュ叿鑳藉湪浣跨敤涓嶅綋鏃舵彁渚涚紪璇戦敊璇紝甯姪鎮ㄦ彁楂樹唬鐮佽川閲忋��*/
+
+                    if (changed.New?.Value.SafeString().ToBool() == true)
+                    {
+                        _ = Task.Run(async () =>
+                        {
+                            await HanlderForCutByCreateProductAsync();
+                        });
+                    }
+                    else
+                    {
+                        _ = Task.Run(async () =>
+                        {
+                            await HanlderForCutByCreateProductWhenFlaseAsync();
+                        });
+                    }
+                }
+
+
+                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("鐒婃帴");
+                        });
+                    }
+                }
+
+                if (changed.Name == "娉曞叞鍐茬爜瀹屽伐淇″彿")
+                {
+                    if (changed.New?.Value.SafeString().ToBool() == true)
+                    {
+                        _ = Task.Run(async () =>
+                        {
+                            await HanlderFor娉曞叞鍐茬爜瀹屽伐淇″彿Async();
+                        });
+                    }
+                    else
+                    {
+                        _ = Task.Run(async () =>
+                        {
+                            await HanlderFor瀹屽伐淇″彿WhenFalseAsync("娉曞叞鍐茬爜");
+                        });
+                    }
                 }
             }
         }
@@ -288,13 +387,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
@@ -339,6 +438,7 @@
                             pipeSpecCode3 = new_workPlanList[i].PipeSpecCode;
                         }
                     }
+
                     Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
                     {
                         { "鎵撶爜宸ヤ欢1",code1},
@@ -350,7 +450,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);
 
@@ -383,7 +484,9 @@
         {
 
             var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
+            var workTaskAppService = _serviceProvider.GetRequiredService<IWorkTaskAppService>();
             var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+            var workTaskRepository = _serviceProvider.GetRequiredService<IWorkTaskRepository>();
             var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>();
 
             using var scope = _serviceProvider.CreateScope();
@@ -406,30 +509,44 @@
                 try
                 {
                     //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟
-                    callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo);
+                    callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.WmsTaskNo == myTaskNo);
                     if (callMaterialOrder == null) return;//缁撴潫
 
 
+                    //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
+                    var workTaskList = await workTaskAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier);
+                    if (workTaskList?.Count == 0) 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
                     //var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
-                    var productID = workPlanList.First().PipeSpecCode;
+                    var productID = callMaterialOrder.DataIdentifier;
                     Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
                     {
                         { "鎵撶爜_ProductID", productID},
+                        { "CMS鍙嶉璇锋眰鐢熸垚鎵撶爜浜у搧鐮佷俊鍙风粨鏋�", true},
                     };
                     var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
 
-                    //鏇存柊涓虹敓浜т腑 
-                    foreach (var item in workPlanList)
+                    //鏇存柊 浠诲姟 涓虹敓浜т腑 
+                    var new_workTaskList = workTaskList.Where(x => x.ProcessRouteNumber == "鍒囧壊").ToList();
+                    foreach (var item in new_workTaskList)
                     {
                         item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
                     }
-                    await workPlanRepository.UpdateManyAsync(workPlanList);
+                    await workTaskRepository.UpdateManyAsync(new_workTaskList);
+
+                    //鏇存柊涓虹敓浜т腑 
+                    var new_workPlanList = workPlanList.Where(x => x.ProcessRouteNumber == "鍒囧壊").ToList();
+                    foreach (var item in new_workPlanList)
+                    {
+                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+                    }
+                    await workPlanRepository.UpdateManyAsync(new_workPlanList);
 
 
                     uow.CompleteAsync();
@@ -440,6 +557,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);
         }
 
 
@@ -543,49 +673,55 @@
                 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
-                    //var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
-                    var productID = workPlanList.First().PipeSpecCode;
-                    Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
-                    {
-                        { "鍒囧壊_ProductID", productID},
-                    };
-                    var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
+                    ////TODO:鏆傛椂鐢熸垚浜у搧ID
+                    ////var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
+                    //var productID = workPlanList.First().PipeSpecCode;
+                    //Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
+                    //{
+                    //    { "鍒囧壊_ProductID", productID},
+                    //};
+                    //var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
 
-                    //鏇存柊涓虹敓浜т腑 
-                    foreach (var item in workPlanList)
-                    {
-                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
-                    }
-                    await workPlanRepository.UpdateManyAsync(workPlanList);
+                    ////鏇存柊涓虹敓浜т腑 
+                    //foreach (var item in workPlanList)
+                    //{
+                    //    item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+                    //}
+                    //await workPlanRepository.UpdateManyAsync(workPlanList);
 
                     //寰楀埌鐮佸��
                     decimal code1 = 0;
                     decimal code2 = 0;
                     decimal code3 = 0;
+                    var pipeSpecCode1 = "";
+                    var pipeSpecCode2 = "";
+                    var pipeSpecCode3 = "";
                     var new_workPlanList = workPlanList.Where(x => x.ProcessRouteNumber == "瑁呴厤").ToList();
                     for (int i = 0; i < new_workPlanList.Count; i++)
                     {
                         if (i == 0)
                         {
                             code1 = new_workPlanList[i].CuttingPosition;
+                            pipeSpecCode1 = new_workPlanList[i].PipeSpecCode;
                         }
                         if (i == 1)
                         {
                             code2 = new_workPlanList[i].CuttingPosition;
+                            pipeSpecCode2 = new_workPlanList[i].PipeSpecCode;
                         }
                         if (i == 2)
                         {
                             code3 = new_workPlanList[i].CuttingPosition;
+                            pipeSpecCode3 = new_workPlanList[i].PipeSpecCode;
                         }
                     }
                     Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
@@ -593,10 +729,14 @@
                         { "鍒囧壊浣嶇疆1",code1},
                         { "鍒囧壊浣嶇疆2", code2},
                         { "鍒囧壊浣嶇疆3", code3 },
+                        { "鍒囧壊绠℃缂栫爜1",pipeSpecCode1},
+                        { "鍒囧壊绠℃缂栫爜2", pipeSpecCode2},
+                        { "鍒囧壊绠℃缂栫爜3", pipeSpecCode3 },
                         { "鍒囧壊绠℃缂栫爜", 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);
 
@@ -620,5 +760,265 @@
                 }
             }
         }
+
+        /// <summary>
+        /// 璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙�
+        /// </summary>
+        /// <returns></returns>
+        private async Task HanlderForCutByCreateProductAsync()
+        {
+
+            var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
+            var workTaskAppService = _serviceProvider.GetRequiredService<IWorkTaskAppService>();
+            var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+            var workTaskRepository = _serviceProvider.GetRequiredService<IWorkTaskRepository>();
+            var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>();
+
+            using var scope = _serviceProvider.CreateScope();
+            var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
+            using var uow = unitOfWorkManager.Begin(requiresNew: true);
+
+            var plcTaskNo = await _variableService.ReadValueAsync("鍒囧壊杩涚珯PLC浠诲姟鍙�");
+
+            if (string.IsNullOrEmpty(plcTaskNo?.Content?.Value.SafeString().ToString()))
+            {
+
+            }
+            else
+            {
+
+
+
+                var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString();
+                CallMaterialOrder callMaterialOrder = null;
+                try
+                {
+                    //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟
+                    callMaterialOrder = await callMaterialOrderAppService.GetSingleByFilterAsync(x => x.WmsTaskNo == myTaskNo);
+                    if (callMaterialOrder == null) return;//缁撴潫
+
+                    //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
+                    var workTaskList = await workTaskAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier);
+                    if (workTaskList?.Count == 0) return;//缁撴潫
+
+                    var new_workTaskList = workTaskList.Where(x => x.ProcessName == "鍒囧壊宸ュ簭").ToList();
+                    //鏇存柊涓虹敓浜т腑 
+                    foreach (var item in new_workTaskList)
+                    {
+                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+                        item.Remark = "鏇存柊鐢熶骇涓�";
+                    }
+                    await workTaskRepository.UpdateManyAsync(new_workTaskList);
+
+                    var new_workTaskList_printCode = workTaskList.Where(x => x.ProcessName == "鎵撶爜宸ュ簭").ToList();
+                    foreach (var item in new_workTaskList_printCode)
+                    {
+                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.宸插畬鎴�;
+                        item.Remark = "鏇存柊宸插畬鎴�";
+                    }
+                    await workTaskRepository.UpdateManyAsync(new_workTaskList_printCode);
+
+                    //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
+                    var workPlanList = await workPlanAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier);
+                    if (workPlanList?.Count == 0) return;//缁撴潫
+
+                    //TODO:鏆傛椂鐢熸垚浜у搧ID
+                    //var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
+                    var productID = callMaterialOrder.DataIdentifier;
+                    Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?>
+                    {
+                        { "鍒囧壊_ProductID", productID},
+                        { "CMS鍙嶉璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙风粨鏋�", true},
+                    };
+                    var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
+
+
+
+                    var new_workPlanList = workPlanList.Where(x => x.ProcessRouteNumber == "瑁呴厤").ToList();
+                    //鏇存柊涓虹敓浜т腑 
+                    foreach (var item in new_workPlanList)
+                    {
+                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+                        item.Remark = "鏇存柊鐢熶骇涓�";
+                    }
+                    await workPlanRepository.UpdateManyAsync(new_workPlanList);
+
+                    var new_workPlanList_printCode = workPlanList.Where(x => x.ProcessRouteNumber == "鍒囧壊").ToList();
+                    foreach (var item in new_workPlanList_printCode)
+                    {
+                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.宸插畬鎴�;
+                        item.Remark = "鏇存柊宸插畬鎴�";
+                    }
+                    await workPlanRepository.UpdateManyAsync(new_workPlanList_printCode);
+
+
+                    uow.CompleteAsync();
+                }
+                catch (Exception)
+                {
+                    uow.RollbackAsync();
+                    throw;
+                }
+            }
+        }
+
+        /// <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()
+                    };
+                    await sharedService.CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput() { PipeSpecCode = myPipeSpecCode, ProcessName = "瑁呴厤宸ュ簭" }, myCurrentUser);
+
+                }
+                catch (Exception ex)
+                {
+                    _logger.LogException(ex, LogLevel.Error);
+                }
+            }
+        }
+
+        /// <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()
+                    };
+                    await sharedService.CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput() { PipeSpecCode = myPipeSpecCode, ProcessName = "鐒婃帴宸ュ簭" }, myCurrentUser);
+
+                }
+                catch (Exception ex)
+                {
+                    _logger.LogException(ex, LogLevel.Error);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 娉曞叞鍐茬爜瀹屽伐淇″彿=true鏃�
+        /// </summary>
+        /// <returns></returns>
+        private async Task HanlderFor娉曞叞鍐茬爜瀹屽伐淇″彿Async()
+        {
+
+            var txt = "娉曞叞鍐茬爜";
+            var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
+            var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+            var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>();
+
+            var pipeSpecCode = await _variableService.ReadValueAsync($"{txt}绠℃缂栫爜");
+
+            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($"{txt}浜�");
+                    MyCurrentUser myCurrentUser = new MyCurrentUser()
+                    {
+                        UserAccount = userName.Content.Value.SafeString().ToString()
+                    };
+                    await sharedService.SendFlangeCode_CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput()
+                    { PipeSpecCode = myPipeSpecCode, ProcessName = $"{txt}宸ュ簭" }, myCurrentUser);
+
+                }
+                catch (Exception ex)
+                {
+                    _logger.LogException(ex, LogLevel.Error);
+                }
+            }
+        }
+
+        /// <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