From 7dccff98bbdf39624cc9430436833db968f1e80e Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周二, 20 5月 2025 15:41:39 +0800
Subject: [PATCH] 22

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs      |   29 +++++++++++++-
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs |   39 +++++++++++++++++++
 2 files changed, 65 insertions(+), 3 deletions(-)

diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
index f681023..867e94c 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -13,6 +13,7 @@
 using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder;
 using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrderRecord;
 using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
+using CMS.Plugin.PipeLineLems.Domain.WorkTask;
 using CMS.Plugin.ProcessManagement.Abstractions;
 using CMS.Plugin.ProductManagement.Abstractions;
 using CMS.Plugin.TraceManagement.Abstractions;
@@ -563,6 +564,7 @@
 
         var callMaterialOrderRepository = _serviceProvider.GetRequiredService<ICallMaterialOrderRepository>();
         var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+        var workTaskRepository = _serviceProvider.GetRequiredService<IWorkTaskRepository>();
         var callMaterialOrderRecordRepository = _serviceProvider.GetRequiredService<ICallMaterialOrderRecordRepository>();
         var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
 
@@ -633,6 +635,15 @@
         }
         await workPlanRepository.UpdateManyAsync(workPlanList);
 
+        //鏇存柊浣滀笟浠诲姟琛�
+        var workTaskList = await workTaskRepository.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier);
+        foreach (var item in workTaskList)
+        {
+            item.CallMaterialStatus = Domain.Shared.Enums.CallMaterialStatusEnum.鍙枡瀹屾垚;
+            item.LastModifierName = "SuperAdmin";
+        }
+        await workTaskRepository.UpdateManyAsync(workTaskList);
+
         //鏂板鍙枡璁板綍琛�
         var callMaterialOrderRecord = new CallMaterialOrderRecord()
         {
@@ -691,12 +702,17 @@
         VariableService _variableService = _serviceProvider.GetRequiredService<VariableService>();
         var callMaterialOrderRepository = _serviceProvider.GetRequiredService<ICallMaterialOrderRepository>();
         var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+        var workTaskRepository = _serviceProvider.GetRequiredService<IWorkTaskRepository>();
         var callMaterialOrderRecordRepository = _serviceProvider.GetRequiredService<ICallMaterialOrderRecordRepository>();
         var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
         var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>();
 
         // 鏌ユ壘鏁版嵁
-
+        var workTask = await workTaskRepository.GetSingleByFilterAsync(x => x.TaskCode == input.TaskCode);
+        if (workTask == null)
+        {
+            throw new UserFriendlyException($"鎵句笉鍒颁綔涓氳鍒�");
+        }
         var workPlan = await workPlanRepository.GetSingleByFilterAsync(x => x.TaskCode == input.TaskCode);
         if (workPlan == null)
         {
@@ -740,6 +756,7 @@
             //    workPlan.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.宸插畬鎴�;
             //}
             workPlan.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+            workTask.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
 
             await workPlanRepository.UpdateAsync(workPlan);
 
@@ -822,10 +839,17 @@
         var traceProvider = _serviceProvider.GetRequiredService<ITraceProvider>();
         var materialProvider = _serviceProvider.GetRequiredService<IMaterialProvider>();
         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>();
 
         string processName = "";
+        var firstWorkTask = await workTaskAppService.GetSingleByFilterAsync(x => x.PipeSpecCode == input.PipeSpecCode && x.ProcessName == input.ProcessName);
+        if (firstWorkTask == null)
+        {
+            throw new UserFriendlyException($"鎵句笉鍒颁綔涓氳鍒�");
+        }
         //鐗╂枡鍙傛暟鍒楄〃
         var firstWorkPlan = await workPlanAppService.GetSingleByFilterAsync(x => x.PipeSpecCode == input.PipeSpecCode && x.ProcessName == input.ProcessName);
         if (firstWorkPlan == null)
@@ -883,7 +907,8 @@
         {
             #region 鏁版嵁澶勭悊
 
-
+            firstWorkTask.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.宸插畬鎴�;
+            await workTaskRepository.UpdateAsync(firstWorkTask);
 
             firstWorkPlan.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.宸插畬鎴�;
             await workPlanRepository.UpdateAsync(firstWorkPlan);
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
index a15f5b9..6a65e24 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
@@ -24,6 +24,7 @@
 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
 {
@@ -465,7 +466,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();
@@ -492,6 +495,10 @@
                     if (callMaterialOrder == null) return;//缁撴潫
 
 
+                    //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
+                    var workTaskList = await workTaskAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier);
+                    if (workTaskList?.Count == 0) return;//缁撴潫
+                                                         //鏇存柊涓虹敓浜т腑 
 
                     //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
                     var workPlanList = await workPlanAppService.GetListByFilterAsync(x => x.DataIdentifier == callMaterialOrder.DataIdentifier);
@@ -507,6 +514,13 @@
                     };
                     var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
 
+                    //鏇存柊 浠诲姟 涓虹敓浜т腑 
+                    var new_workTaskList = workTaskList.Where(x => x.ProcessRouteNumber == "鍒囧壊").ToList();
+                    foreach (var item in new_workTaskList)
+                    {
+                        item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+                    }
+                    await workTaskRepository.UpdateManyAsync(new_workTaskList);
 
                     //鏇存柊涓虹敓浜т腑 
                     var new_workPlanList = workPlanList.Where(x => x.ProcessRouteNumber == "鍒囧壊").ToList();
@@ -737,7 +751,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();
@@ -763,7 +779,26 @@
                     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);
@@ -778,6 +813,8 @@
                         { "CMS鍙嶉璇锋眰鐢熸垚鍒囧壊浜у搧鐮佷俊鍙风粨鏋�", true},
                     };
                     var ret = _variableService.WriteValueAsync(keyValuePairs_productID);
+
+
 
                     var new_workPlanList = workPlanList.Where(x => x.ProcessRouteNumber == "瑁呴厤").ToList();
                     //鏇存柊涓虹敓浜т腑 
@@ -855,7 +892,7 @@
                     {
                         UserAccount = userName.Content.Value.SafeString().ToString()
                     };
-                    sharedService.CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput() { PipeSpecCode = myPipeSpecCode, ProcessName="瑁呴厤宸ュ簭" }, myCurrentUser);
+                    sharedService.CompleteAssemblyProcess(_serviceProvider, new Application.Contracts.Dtos.WorkPlan.CompleteAssemblyProcessInput() { PipeSpecCode = myPipeSpecCode, ProcessName = "瑁呴厤宸ュ簭" }, myCurrentUser);
 
                 }
                 catch (Exception)

--
Gitblit v1.9.3