From 3aedad63dd01f1fc5154cb520af32edab967d6e0 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 12 5月 2025 09:15:26 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo
---
PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs | 191 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 150 insertions(+), 41 deletions(-)
diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
index d192e56..df8778c 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs
@@ -338,12 +338,89 @@
}
+ ///// <summary>
+ ///// 鍒囧壊
+ ///// </summary>
+ ///// <returns></returns>
+ //private async Task HanlderForCutAsync()
+ //{
+
+ // var plcTaskNo = await _variableService.ReadValueAsync("鍒囧壊杩涚珯PLC浠诲姟鍙�");
+
+ // if (string.IsNullOrEmpty(plcTaskNo?.Content?.Value.SafeString().ToString()))
+ // {
+
+ // }
+ // else
+ // {
+ // var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString();
+ // //TODO:鏆傛椂鍏堝啓鍏� 鍐呴儴鍙橀噺
+ // Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
+ // {
+ // { "鍒囧壊浣嶇疆1", "555555" },
+ // { "鍒囧壊浣嶇疆2", "66666" },
+ // { "鍒囧壊浣嶇疆3", "77777" }
+ // };
+ // _variableService.WriteValueAsync(keyValuePairs);
+
+ // //TODO:妯℃嫙閲囬泦鍙傛暟
+ // keyValuePairs = new Dictionary<string, object?>
+ // {
+ // { "鍒囧壊閫熷害", 99},
+ // { "鍒囧壊璐ㄩ噺", 1},
+ // };
+ // var ret2 = _variableService.WriteValueAsync(keyValuePairs);
+
+ // //TODO:鏆傛椂鐢熸垚浜у搧ID
+ // //鑾峰彇涓婁竴涓伐搴忕殑浜у搧ID
+ // //鏍规嵁宸ュ簭鍚嶈幏鍙栧伐搴忓璞�
+ // var _workSectionManager = _serviceProvider.GetRequiredService<IWorkSectionManager>();
+ // var lastWorkSection = "鎵撶爜宸ュ簭";
+ // var workSection = await _workSectionManager.GetByNameAsync(lastWorkSection);
+
+ // //鑾峰彇宸ュ崟鏁版嵁锛堜粠鏈伐搴忔煡璇�3涓骇鍝侊級
+ // //璇诲彇scms_productions琛紝鏍规嵁褰撳墠鏃堕棿鏌ヨ鏈�杩�3鏉¤褰�
+ // var traceManager = _serviceProvider.GetRequiredService<ITraceProvider>();
+ // GetTracesRequest request = new GetTracesRequest()
+ // {
+ // WorkSectionId = workSection.Id,
+ // };
+ // TraceModel traceModel = null;
+ // var list = await traceManager.GetTracesAsync(request);
+ // if (list?.Count > 0)
+ // {
+ // //閲嶆柊鎺掑簭
+ // list = list.OrderByDescending(x => x.FinishTime).ToList();
+ // traceModel = list.First();
+ // }
+ // //var productID = Guid.NewGuid().ToString();
+ // var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
+ // if (traceModel != null)
+ // {
+ // productID = traceModel.SerialNumber;
+ // }
+ // keyValuePairs = new Dictionary<string, object?>
+ // {
+ // { "鍒囧壊_ProductID", productID},
+ // };
+ // var ret = _variableService.WriteValueAsync(keyValuePairs);
+ // }
+ //}
+
/// <summary>
/// 鍒囧壊
/// </summary>
/// <returns></returns>
private async Task HanlderForCutAsync()
{
+
+ 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浠诲姟鍙�");
@@ -353,57 +430,89 @@
}
else
{
- var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString();
- //TODO:鏆傛椂鍏堝啓鍏� 鍐呴儴鍙橀噺
- Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
- {
- { "鍒囧壊浣嶇疆1", "555555" },
- { "鍒囧壊浣嶇疆2", "66666" },
- { "鍒囧壊浣嶇疆3", "77777" }
- };
- _variableService.WriteValueAsync(keyValuePairs);
- //TODO:妯℃嫙閲囬泦鍙傛暟
- keyValuePairs = new Dictionary<string, object?>
+
+
+ var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString();
+ CallMaterialOrder callMaterialOrder = null;
+ try
+ {
+ //鏍规嵁wms浠诲姟鍙峰鎵� 鍙枡宸ュ崟
+ callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo);
+ if (callMaterialOrder == null) return;//缁撴潫
+
+
+
+ //鏍规嵁鍘熸枡鏍囪瘑瀵绘壘 浣滀笟璁″垝
+ var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(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);
+
+ //鏇存柊涓虹敓浜т腑
+ 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 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;
+ }
+ if (i == 1)
+ {
+ code2 = new_workPlanList[i].CuttingPosition;
+ }
+ if (i == 2)
+ {
+ code3 = new_workPlanList[i].CuttingPosition;
+ }
+ }
+ Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?>
+ {
+ { "鍒囧壊浣嶇疆1",code1},
+ { "鍒囧壊浣嶇疆2", code2},
+ { "鍒囧壊浣嶇疆3", code3 },
+ { "鍒囧壊绠℃缂栫爜", new_workPlanList.First().PipeSpecCode },
+ { "鍒囧壊绠℃鍚嶇О", new_workPlanList.First().PipeSectionName },
+ { "鍒囧壊鍘熸枡绠″瀷鍙�", new_workPlanList.First().MaterialMode },
+ { "鍒囧壊鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier }
+ };
+ _variableService.WriteValueAsync(keyValuePairs);
+
+ //TODO:妯℃嫙閲囬泦鍙傛暟
+ keyValuePairs = new Dictionary<string, object?>
{
{ "鍒囧壊閫熷害", 99},
{ "鍒囧壊璐ㄩ噺", 1},
};
- var ret2 = _variableService.WriteValueAsync(keyValuePairs);
+ var ret2 = _variableService.WriteValueAsync(keyValuePairs);
- //TODO:鏆傛椂鐢熸垚浜у搧ID
- //鑾峰彇涓婁竴涓伐搴忕殑浜у搧ID
- //鏍规嵁宸ュ簭鍚嶈幏鍙栧伐搴忓璞�
- var _workSectionManager = _serviceProvider.GetRequiredService<IWorkSectionManager>();
- var lastWorkSection = "鎵撶爜宸ュ簭";
- var workSection = await _workSectionManager.GetByNameAsync(lastWorkSection);
- //鑾峰彇宸ュ崟鏁版嵁锛堜粠鏈伐搴忔煡璇�3涓骇鍝侊級
- //璇诲彇scms_productions琛紝鏍规嵁褰撳墠鏃堕棿鏌ヨ鏈�杩�3鏉¤褰�
- var traceManager = _serviceProvider.GetRequiredService<ITraceProvider>();
- GetTracesRequest request = new GetTracesRequest()
- {
- WorkSectionId = workSection.Id,
- };
- TraceModel traceModel = null;
- var list = await traceManager.GetTracesAsync(request);
- if (list?.Count > 0)
- {
- //閲嶆柊鎺掑簭
- list = list.OrderByDescending(x => x.FinishTime).ToList();
- traceModel = list.First();
+
+
+ uow.CompleteAsync();
}
- //var productID = Guid.NewGuid().ToString();
- var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff");
- if (traceModel != null)
+ catch (Exception)
{
- productID = traceModel.SerialNumber;
+ uow.RollbackAsync();
+ throw;
}
- keyValuePairs = new Dictionary<string, object?>
- {
- { "鍒囧壊_ProductID", productID},
- };
- var ret = _variableService.WriteValueAsync(keyValuePairs);
}
}
}
--
Gitblit v1.9.3