From 3322dfd299755416176cd946265577e176cae795 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周日, 11 5月 2025 20:26:51 +0800
Subject: [PATCH] 出入库功能
---
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs | 105 +++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 83 insertions(+), 22 deletions(-)
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
index d5cf9a8..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
{
@@ -27,7 +30,7 @@
private IServiceProvider _serviceProvider;
private readonly ILogger<PipeLineLemsProjectService> _logger;
private readonly IVariableDataCache _variableDataCache;
- private readonly IWorkSectionManager _workSectionManager;
+
/// <summary>
/// 鍙橀噺鏈嶅姟
/// </summary>
@@ -56,7 +59,6 @@
/// <param name="logger">The logger.</param>
/// <param name="variableDataCache">The variable data cache.</param>
public PipeLineLemsProjectService(
- IWorkSectionManager workSectionManager,
VariableService variableService,
IServiceProvider serviceProvider, ILogger<PipeLineLemsProjectService> logger, IVariableDataCache variableDataCache)
{
@@ -64,7 +66,6 @@
_logger = logger;
_variableDataCache = variableDataCache;
_variableService = variableService;
- _workSectionManager = workSectionManager;
}
/// <summary>
@@ -82,6 +83,7 @@
_monitorVariableNames = new Dictionary<string, string>
{
{ "鎵撶爜杩涚珯淇″彿", "鎵撶爜杩涚珯淇″彿(鎻忚堪)" },
+ { "鍒囧壊杩涚珯淇″彿", "鍒囧壊杩涚珯淇″彿(鎻忚堪)" },
};
// 鍒涘缓閫氶亾鐩戝惉
@@ -232,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()))
@@ -241,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;
+ }
}
}
@@ -289,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);
@@ -306,6 +366,7 @@
//TODO:鏆傛椂鐢熸垚浜у搧ID
//鑾峰彇涓婁竴涓伐搴忕殑浜у搧ID
//鏍规嵁宸ュ簭鍚嶈幏鍙栧伐搴忓璞�
+ var _workSectionManager = _serviceProvider.GetRequiredService<IWorkSectionManager>();
var lastWorkSection = "鎵撶爜宸ュ簭";
var workSection = await _workSectionManager.GetByNameAsync(lastWorkSection);
--
Gitblit v1.9.3