From 1b118e5148c0568d7bb64bf59b9a06712c9a6842 Mon Sep 17 00:00:00 2001
From: IPC-610 <IPC-610@DESKTOP-6LEOOS3>
Date: 星期六, 28 九月 2024 08:12:11 +0800
Subject: [PATCH] 问题修改
---
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs | 135 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 120 insertions(+), 15 deletions(-)
diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
index 46f52d9..612c67d 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -1,6 +1,7 @@
锘�
using Admin.NET.Core.Service;
using Elastic.Clients.Elasticsearch;
+using StackExchange.Profiling.Internal;
using WCS.Application.Entity;
using WCS.Application.Service.WcsDevice.Dto;
@@ -39,8 +40,10 @@
var query = _wcsDeviceRep.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(input.SearchKey), u =>
u.Text.Contains(input.SearchKey)
+ || u.StationNum.Contains(input.SearchKey)
)
.WhereIF(input.PlcId > 0, u => u.PlcId == input.PlcId)
+ .WhereIF(!string.IsNullOrWhiteSpace(input.StationNum), u => u.StationNum.Contains(input.StationNum.Trim()))
.WhereIF(!string.IsNullOrWhiteSpace(input.Text), u => u.Text.Contains(input.Text.Trim()))
//澶勭悊澶栭敭鍜孴reeSelector鐩稿叧瀛楁鐨勮繛鎺�
.LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id)
@@ -266,8 +269,8 @@
(result, var palletNo) = modConn.GetPlcDBValue(modPositionPalletNo.PosType, modDevice.DbNumber, modPositionPalletNo.PlcPos, modPositionPalletNo.StringLength);
modDevice.PalletNo = Convert.ToString(palletNo);
Console.WriteLine(modDevice.DbNumber + "." + modPositionPalletNo.PlcPos + "----------");
- }
- if (cachePlc.Type == PLCTypeEnum.ConveyorLine)
+ }
+ if (cachePlc.Type == PLCTypeEnum.ConveyorLine || cachePlc.Type == PLCTypeEnum.StackingMachine)
{
//鏀捐揣鎺�
var modPositionReleaseRow = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣鎺�");
@@ -311,7 +314,14 @@
(result, var pickStorey) = modConn.GetPlcDBValue(modPositionPickStorey.PosType, modDevice.DbNumber, modPositionPickStorey.PlcPos);
modDevice.PickStorey = Convert.ToInt32(pickStorey);
}
-
+
+ if (cachePlc.Type == PLCTypeEnum.StackingMachine)
+ {
+ //璺烘満鐨勮捣濮嬪伐浣嶇敤鍙栬揣鎺掑垪灞�
+ modDevice.StartLocatNo = $"{modDevice.PickRow.ToString().PadLeft(2,'0')}{modDevice.PickCol.ToString().PadLeft(2, '0')}{modDevice.PickStorey.ToString().PadLeft(2, '0')}";
+ //璺烘満鐨勭洰鐨勫伐浣嶇敤鏀捐揣鎺掑垪灞�
+ modDevice.EndLocatNo = $"{modDevice.ReleaseRow.ToString().PadLeft(2, '0')}{modDevice.ReleaseCol.ToString().PadLeft(2, '0')}{modDevice.ReleaseStorey.ToString().PadLeft(2, '0')}";
+ }
}
}
catch (Exception ex)
@@ -367,16 +377,86 @@
//璧峰宸ヤ綅
if (modDevice.StartLocatNo != null)
{
- var modPositionStartLocatNo = listPosition.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
- if (modPositionStartLocatNo != null)
- result = modUtil.SetPlcDBValue(modPositionStartLocatNo.PosType, modDbDevice.DbNumber, modPositionStartLocatNo.PlcPos, modDevice.StartLocatNo.ToString());
+ if (modPlc.Type == PLCTypeEnum.StackingMachine)
+ {
+ if (modDevice.StartLocatNo.Length != 6)
+ {
+ throw Oops.Bah("璧峰宸ヤ綅鏍煎紡杈撳叆閿欒锛岃杈撳叆鎺掑垪灞傦紝渚嬶細010203锛�");
+ }
+ modDevice.PickRow = Convert.ToInt32(modDevice.StartLocatNo.Substring(0, 2));
+ modDevice.PickCol = Convert.ToInt32(modDevice.StartLocatNo.Substring(2, 2));
+ modDevice.PickStorey = Convert.ToInt32(modDevice.StartLocatNo.Substring(4, 2));
+
+ //鍙栬揣鎺�
+ if (modDevice.PickRow != null)
+ {
+ var modPositionPickRow = listPosition.FirstOrDefault(s => s.Text == "鍙栬揣鎺�");
+ if (modPositionPickRow != null)
+ modUtil.SetPlcDBValue(modPositionPickRow.PosType, modDbDevice.DbNumber, modPositionPickRow.PlcPos, modDevice.PickRow.ToString());
+ }
+ //鍙栬揣鍒�
+ if (modDevice.PickCol != null)
+ {
+ var modPositionPickCol = listPosition.FirstOrDefault(s => s.Text == "鍙栬揣鍒�");
+ if (modPositionPickCol != null)
+ modUtil.SetPlcDBValue(modPositionPickCol.PosType, modDbDevice.DbNumber, modPositionPickCol.PlcPos, modDevice.PickCol.ToString());
+ }
+ //鍙栬揣灞�
+ if (modDevice.PickStorey != null)
+ {
+ var modPositionPickStorey = listPosition.FirstOrDefault(s => s.Text == "鍙栬揣灞�");
+ if (modPositionPickStorey != null)
+ modUtil.SetPlcDBValue(modPositionPickStorey.PosType, modDbDevice.DbNumber, modPositionPickStorey.PlcPos, modDevice.PickStorey.ToString());
+ }
+ }
+ else
+ {
+ var modPositionStartLocatNo = listPosition.FirstOrDefault(s => s.Text == "璧峰宸ヤ綅");
+ if (modPositionStartLocatNo != null)
+ result = modUtil.SetPlcDBValue(modPositionStartLocatNo.PosType, modDbDevice.DbNumber, modPositionStartLocatNo.PlcPos, modDevice.StartLocatNo.ToString());
+ }
}
//鐩殑宸ヤ綅
if (modDevice.EndLocatNo != null)
{
- var modPositionEndLocatNo = listPosition.FirstOrDefault(s => s.Text == "鐩殑宸ヤ綅");
- if (modPositionEndLocatNo != null)
- result = modUtil.SetPlcDBValue(modPositionEndLocatNo.PosType, modDbDevice.DbNumber, modPositionEndLocatNo.PlcPos, modDevice.EndLocatNo.ToString());
+ if (modPlc.Type == PLCTypeEnum.StackingMachine)
+ {
+ if (modDevice.EndLocatNo.Length != 6)
+ {
+ throw Oops.Bah("鐩殑宸ヤ綅鏍煎紡杈撳叆閿欒锛岃杈撳叆鎺掑垪灞傦紝渚嬶細010203锛�");
+ }
+ modDevice.ReleaseRow = Convert.ToInt32(modDevice.EndLocatNo.Substring(0, 2));
+ modDevice.ReleaseCol = Convert.ToInt32(modDevice.EndLocatNo.Substring(2, 2));
+ modDevice.ReleaseStorey = Convert.ToInt32(modDevice.EndLocatNo.Substring(4, 2));
+
+ //鏀捐揣鎺�
+ if (modDevice.ReleaseRow != null)
+ {
+ var modPositionReleaseRow = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣鎺�");
+ if (modPositionReleaseRow != null)
+ modUtil.SetPlcDBValue(modPositionReleaseRow.PosType, modDbDevice.DbNumber, modPositionReleaseRow.PlcPos, modDevice.ReleaseRow.ToString());
+ }
+ //鏀捐揣鍒�
+ if (modDevice.ReleaseCol != null)
+ {
+ var modPositionReleaseCol = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣鍒�");
+ if (modPositionReleaseCol != null)
+ modUtil.SetPlcDBValue(modPositionReleaseCol.PosType, modDbDevice.DbNumber, modPositionReleaseCol.PlcPos, modDevice.ReleaseCol.ToString());
+ }
+ //鏀捐揣灞�
+ if (modDevice.ReleaseStorey != null)
+ {
+ var modPositionReleaseStorey = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣灞�");
+ if (modPositionReleaseStorey != null)
+ modUtil.SetPlcDBValue(modPositionReleaseStorey.PosType, modDbDevice.DbNumber, modPositionReleaseStorey.PlcPos, modDevice.ReleaseStorey.ToString());
+ }
+ }
+ else
+ {
+ var modPositionEndLocatNo = listPosition.FirstOrDefault(s => s.Text == "鐩殑宸ヤ綅");
+ if (modPositionEndLocatNo != null)
+ result = modUtil.SetPlcDBValue(modPositionEndLocatNo.PosType, modDbDevice.DbNumber, modPositionEndLocatNo.PlcPos, modDevice.EndLocatNo.ToString());
+ }
}
//鎵樼洏鐮�
if (modDevice.PalletNo != null)
@@ -475,11 +555,19 @@
[DisplayName("鑾峰彇璁惧瀵瑰簲宸ヤ綅鍒楄〃")]
public async Task<List<WcsDeviceTaskOrderDto>> WcsPackStationPlcList([FromQuery] WcsDeviceBaseInput entry)
{
- return await _wcsDeviceRep.Context.Queryable<WcsDevice>()
- .LeftJoin<WcsCheckTask>((device, task) => device.StationNum == task.Port)
- .Where((device, task) => device.PlcId == entry.PlcId)
- .OrderBy((device, task) => device.CreateTime)
- .Select((device, task) => new WcsDeviceTaskOrderDto()
+ //var list = await _wcsDeviceRep.AsQueryable()
+ // .LeftJoin<WcsPlc>((a, b) => a.PlcId == b.Id)
+ // .Where((a, b) => a.DeviceType == DeviceTypeEnum.Business)
+ // .Select<WcsDeviceOutput>((a, b) => new WcsDeviceOutput() { Type = b.Type }, true)
+ // .ToListAsync();
+
+
+ var list = await _wcsDeviceRep.Context.Queryable<WcsDevice>()
+ .InnerJoin<WcsPlc>((device, plc) => device.PlcId == plc.Id)
+ .LeftJoin<WcsCheckTask>((device, plc, task) => device.StationNum == task.Port)
+ .Where((device, plc, task) => device.PlcId == entry.PlcId)
+ .OrderBy((device, plc, task) => device.CreateTime)
+ .Select((device, plc, task) => new WcsDeviceTaskOrderDto()
{
Id = device.Id,
Text = device.Text,
@@ -491,9 +579,26 @@
LineNo = task.LineNo,
Status = task.Status,
PZNo = task.PZNo,
- Qty = task.Qty
+ Qty = task.Qty,
+
+ PlcId=device.PlcId,
+ Type = plc.Type
})
.ToListAsync();
+
+ bool connStatus = false;
+ //鑾峰彇璁惧鐨勭姸鎬�
+ var modPlc = await _wcsDeviceRep.Context.Queryable<WcsPlc>().FirstAsync(s => s.Id == list[0].PlcId);
+ PLCUtil modUtil = new PLCUtil(modPlc);
+ if (modUtil.Connected)
+ {
+ connStatus = true;
+ }
+ foreach (var item in list)
+ {
+ item.PlcStatus = connStatus;
+ }
+ return list;
}
#endregion
}
--
Gitblit v1.8.0