From 463e3bda9ce68cc9d6ec233c9300f52396d9d204 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周日, 11 5月 2025 17:41:31 +0800
Subject: [PATCH] 222
---
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/IWorkPlanAppService.cs | 44 ++++++----
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain.Shared/Enums/WorkPlanStatusEnum.cs | 12 +-
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs | 2
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/CMS.Plugin.PipeLineLems.Application.Contracts.csproj | 1
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs | 35 ++++----
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs | 6 +
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs | 11 ++
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs | 13 ++
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs | 5 +
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs | 99 ++++++++++++++++++++----
10 files changed, 165 insertions(+), 63 deletions(-)
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/CMS.Plugin.PipeLineLems.Application.Contracts.csproj b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/CMS.Plugin.PipeLineLems.Application.Contracts.csproj
index 3445a59..d283d5f 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/CMS.Plugin.PipeLineLems.Application.Contracts.csproj
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/CMS.Plugin.PipeLineLems.Application.Contracts.csproj
@@ -16,6 +16,7 @@
<ItemGroup>
<ProjectReference Include="..\CMS.Plugin.PipeLineLems.Domain.Shared\CMS.Plugin.PipeLineLems.Domain.Shared.csproj" />
+ <ProjectReference Include="..\CMS.Plugin.PipeLineLems.Domain\CMS.Plugin.PipeLineLems.Domain.csproj" />
</ItemGroup>
<ItemGroup>
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs
index 17a352b..706f0ba 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs
@@ -1,20 +1,21 @@
-using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder;
-using Volo.Abp.Application.Services;
-
-namespace CMS.Plugin.PipeLineLems.Application.Contracts.Services;
-
+using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder;
+using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder;
+using Volo.Abp.Application.Services;
+
+namespace CMS.Plugin.PipeLineLems.Application.Contracts.Services;
+
/// <summary>
/// 鍙枡鍗曡〃搴旂敤鏈嶅姟鎺ュ彛
/// </summary>
-public interface ICallMaterialOrderAppService : ICrudAppService<CallMaterialOrderDto, Guid, GetCallMaterialOrderInput, CallMaterialOrderCreateDto, CallMaterialOrderUpdateDto>
-{
+public interface ICallMaterialOrderAppService : ICrudAppService<CallMaterialOrderDto, Guid, GetCallMaterialOrderInput, CallMaterialOrderCreateDto, CallMaterialOrderUpdateDto>
+{
/// <summary>
/// 鍏嬮殕鍙枡鍗曡〃
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
- Task<List<CallMaterialOrderDto>> CloneAsync(IEnumerable<Guid> ids);
-
+ Task<List<CallMaterialOrderDto>> CloneAsync(IEnumerable<Guid> ids);
+
/// <summary>
/// 鍒犻櫎鍙枡鍗曡〃
/// </summary>
@@ -22,8 +23,10 @@
/// <returns></returns>
Task DeleteManyAsync(IEnumerable<Guid> ids);
+ Task<CallMaterialOrder> FindByWmsTaskNoAsync(string wmsTaskNo);
- Task CallMaterialByDataIdentifier(Guid id);
+
+ Task CallMaterialByDataIdentifier(Guid id);
/// <summary>
/// 璋冩暣鎺掑簭鍙枡鍗曡〃
@@ -31,19 +34,19 @@
/// <param name="id"></param>
/// <param name="sort"></param>
/// <returns></returns>
- Task AdjustSortAsync(Guid id, int sort);
-
+ Task AdjustSortAsync(Guid id, int sort);
+
/// <summary>
/// 瀵煎叆鍙枡鍗曡〃
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
- Task ImportAsync(CallMaterialOrdersImportModel input);
-
+ Task ImportAsync(CallMaterialOrdersImportModel input);
+
/// <summary>
/// 瀵煎嚭鍙枡鍗曡〃
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
- Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetCallMaterialOrderInput input);
-}
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetCallMaterialOrderInput input);
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/IWorkPlanAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/IWorkPlanAppService.cs
index ce9762c..c836361 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/IWorkPlanAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/IWorkPlanAppService.cs
@@ -1,46 +1,56 @@
-using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
-using Volo.Abp.Application.Services;
-
-namespace CMS.Plugin.PipeLineLems.Application.Contracts.Services;
-
+using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan;
+using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
+using Volo.Abp.Application.Services;
+
+namespace CMS.Plugin.PipeLineLems.Application.Contracts.Services;
+
/// <summary>
/// 浣滀笟璁″垝琛ㄥ簲鐢ㄦ湇鍔℃帴鍙�
/// </summary>
-public interface IWorkPlanAppService : ICrudAppService<WorkPlanDto, Guid, GetWorkPlanInput, WorkPlanCreateDto, WorkPlanUpdateDto>
-{
+public interface IWorkPlanAppService : ICrudAppService<WorkPlanDto, Guid, GetWorkPlanInput, WorkPlanCreateDto, WorkPlanUpdateDto>
+{
/// <summary>
/// 鍏嬮殕浣滀笟璁″垝琛�
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
- Task<List<WorkPlanDto>> CloneAsync(IEnumerable<Guid> ids);
-
+ Task<List<WorkPlanDto>> CloneAsync(IEnumerable<Guid> ids);
+
+
+ /// <summary>
+ /// 鎸夌収 鍘熸枡鏍囪 鏌ユ壘浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ Task<List<WorkPlan>> FindByDataIdentifierAsync(string dataIdentifier);
+
/// <summary>
/// 鍒犻櫎浣滀笟璁″垝琛�
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
- Task DeleteManyAsync(IEnumerable<Guid> ids);
-
+ Task DeleteManyAsync(IEnumerable<Guid> ids);
+
/// <summary>
/// 璋冩暣鎺掑簭浣滀笟璁″垝琛�
/// </summary>
/// <param name="id"></param>
/// <param name="sort"></param>
/// <returns></returns>
- Task AdjustSortAsync(Guid id, int sort);
-
+ Task AdjustSortAsync(Guid id, int sort);
+
/// <summary>
/// 瀵煎叆浣滀笟璁″垝琛�
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
- Task ImportAsync(WorkPlansImportModel input);
-
+ Task ImportAsync(WorkPlansImportModel input);
+
/// <summary>
/// 瀵煎嚭浣滀笟璁″垝琛�
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
- Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWorkPlanInput input);
-}
+ Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWorkPlanInput input);
+}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs
index ed7b19f..0ca282e 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs
@@ -47,6 +47,11 @@
await _sharedService.CallMaterialByDataIdentifier(id, _serviceProvider);
}
+ public virtual async Task<CallMaterialOrder> FindByWmsTaskNoAsync(string wmsTaskNo)
+ {
+ return await callMaterialOrderRepository.FindByWmsTaskNoAsync(wmsTaskNo);
+ }
+
/// <summary>
/// 鍒嗛〉鑾峰彇鍙枡鍗曡〃
/// </summary>
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 e8fe2be..738d1b9 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
@@ -191,7 +191,7 @@
var insertObj = ObjectMapper.Map<WorkPlanInput, WorkPlanCreateDto>(item);
//insertObj.OrgMaterialCode = "1111";
insertObj.CallMaterialStatus = Domain.Shared.Enums.CallMaterialStatusEnum.鏈墽琛�;
- insertObj.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鏈墽琛�;
+ insertObj.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鏈敓浜�;
insertObj.Sort = 1;
await workPlanAppService.CreateAsync(insertObj);
}
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
index f9c257a..285fecf 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
@@ -43,6 +43,17 @@
}
/// <summary>
+ /// 鎸夌収 鍘熸枡鏍囪 鏌ユ壘浣滀笟璁″垝琛�
+ /// </summary>
+ /// <param name="name"></param>
+ /// <param name="cancellationToken"></param>
+ /// <returns></returns>
+ public virtual async Task<List<WorkPlan>> FindByDataIdentifierAsync(string dataIdentifier)
+ {
+ return await workPlanRepository.FindByDataIdentifierAsync(dataIdentifier);
+ }
+
+ /// <summary>
/// 鍒嗛〉鑾峰彇浣滀笟璁″垝琛�
/// </summary>
/// <param name="input"></param>
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain.Shared/Enums/WorkPlanStatusEnum.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain.Shared/Enums/WorkPlanStatusEnum.cs
index 3286321..9334300 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain.Shared/Enums/WorkPlanStatusEnum.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain.Shared/Enums/WorkPlanStatusEnum.cs
@@ -8,16 +8,16 @@
public enum WorkPlanStatusEnum
{
/// <summary>
- /// 鏈墽琛�
+ /// 鏈敓浜�
/// </summary>
- [Description("鏈墽琛�")]
- 鏈墽琛� = 1,
+ [Description("鏈敓浜�")]
+ 鏈敓浜� = 1,
/// <summary>
- /// 鎵ц涓�
+ /// 鐢熶骇涓�
/// </summary>
- [Description("鎵ц涓�")]
- 鎵ц涓� = 2,
+ [Description("鐢熶骇涓�")]
+ 鐢熶骇涓� = 2,
/// <summary>
/// 鏆傚仠涓�
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs
index 71fbfb4..5fa6208 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs
@@ -15,8 +15,10 @@
/// <param name="name"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
- Task<CallMaterialOrder> FindByNameAsync(string name, CancellationToken cancellationToken = default);
-
+ Task<CallMaterialOrder> FindByNameAsync(string name, CancellationToken cancellationToken = default);
+
+ Task<CallMaterialOrder> FindByWmsTaskNoAsync(string wmsTaskNo, CancellationToken cancellationToken = default);
+
/// <summary>
/// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍙枡鍗曡〃
/// </summary>
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs
index 1253904..0a78686 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs
@@ -37,8 +37,17 @@
.Where(x => !x.IsDeleted)
.OrderByDescending(x=>x.CreationTime)
.FirstOrDefaultAsync(t => t.DataIdentifier == name, GetCancellationToken(cancellationToken));
- }
-
+ }
+
+ public virtual async Task<CallMaterialOrder> FindByWmsTaskNoAsync(string wmsTaskNo, CancellationToken cancellationToken = default)
+ {
+ return await (await GetDbSetAsync())
+ .IncludeDetails()
+ .Where(x => !x.IsDeleted)
+ .OrderByDescending(x => x.CreationTime)
+ .FirstOrDefaultAsync(t => t.WmsTaskNo == wmsTaskNo, GetCancellationToken(cancellationToken));
+ }
+
/// <summary>
/// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍙枡鍗曡〃
/// </summary>
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
index 210ea86..179286e 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
@@ -16,6 +16,9 @@
using System;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.Uow;
+using CMS.Plugin.PipeLineLems.Application.Contracts.Services;
+using CMS.Plugin.PipeLineLems.Domain.WorkPlan;
+using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder;
namespace CMS.Plugin.PipeLineLems.ProjectService
{
@@ -231,6 +234,14 @@
private async Task HanlderForPringBarCodeAsync()
{
+ var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>();
+ var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>();
+ 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()))
@@ -240,31 +251,81 @@
else
{
var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString();
- //TODO:鏆傛椂鍏堝啓鍏� 鍐呴儴鍙橀噺
- Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
- {
- { "鎵撶爜1", "11111111" },
- { "鎵撶爜2", "22222222" },
- { "鎵撶爜3", "33333333" }
- };
- _variableService.WriteValueAsync(keyValuePairs);
+ CallMaterialOrder callMaterialOrder = null;
+ try
+ {
+ //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟
+ callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo);
+ if (callMaterialOrder == null) return;//缁撴潫
- //TODO:妯℃嫙閲囬泦鍙傛暟
- keyValuePairs = new Dictionary<string, object?>
+
+
+ //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
+ var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(callMaterialOrder.DataIdentifier);
+ if (workPlanList?.Count == 0) return;//缁撴潫
+
+ //鏇存柊涓虹敓浜т腑
+ foreach (var item in workPlanList)
+ {
+ item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.鐢熶骇涓�;
+ }
+ await workPlanRepository.UpdateManyAsync(workPlanList);
+
+ //寰楀埌鐮佸��
+ var code1 = "";
+ var code2 = "";
+ var code3 = "";
+ 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].MarkingContent;
+ }
+ if (i == 1)
+ {
+ code2 = new_workPlanList[i].MarkingContent;
+ }
+ if (i == 2)
+ {
+ code3 = new_workPlanList[i].MarkingContent;
+ }
+ }
+ Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
+ {
+ { "鎵撶爜宸ヤ欢1",code1},
+ { "鎵撶爜宸ヤ欢2", code2},
+ { "鎵撶爜宸ヤ欢3", code3 },
+ { "鎵撶爜鍘熸枡绠″瀷鍙�", new_workPlanList.First().MaterialMode },
+ { "鎵撶爜鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier }
+ };
+ _variableService.WriteValueAsync(keyValuePairs);
+
+ //TODO:妯℃嫙閲囬泦鍙傛暟
+ keyValuePairs = new Dictionary<string, object?>
{
{ "鎵撶爜閫熷害", 100},
{ "鎵撶爜璐ㄩ噺", 2},
};
- var ret2 = _variableService.WriteValueAsync(keyValuePairs);
+ var ret2 = _variableService.WriteValueAsync(keyValuePairs);
- //TODO:鏆傛椂鐢熸垚浜у搧ID
- //var productID = Guid.NewGuid().ToString();
- var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
- keyValuePairs = new Dictionary<string, object?>
+ //TODO:鏆傛椂鐢熸垚浜у搧ID
+ var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
+ //var productID = new_workPlanList.Last().PipeSpecCode;
+ keyValuePairs = new Dictionary<string, object?>
{
{ "鎵撶爜_ProductID", productID},
};
- var ret = _variableService.WriteValueAsync(keyValuePairs);
+ var ret = _variableService.WriteValueAsync(keyValuePairs);
+
+
+ uow.CompleteAsync();
+ }
+ catch (Exception)
+ {
+ uow.RollbackAsync();
+ throw;
+ }
}
}
@@ -288,9 +349,9 @@
//TODO:鏆傛椂鍏堝啓鍏� 鍐呴儴鍙橀噺
Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
{
- { "鍒囧壊1", "555555" },
- { "鍒囧壊2", "66666" },
- { "鍒囧壊3", "77777" }
+ { "鍒囧壊浣嶇疆1", "555555" },
+ { "鍒囧壊浣嶇疆2", "66666" },
+ { "鍒囧壊浣嶇疆3", "77777" }
};
_variableService.WriteValueAsync(keyValuePairs);
--
Gitblit v1.9.3