From c75a630f7b099dfe3e5030a2cc66e96560cb9561 Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期五, 13 九月 2024 14:28:56 +0800
Subject: [PATCH] Merge branch 'master' into csc
---
Admin.NET/WCS.Application/Entity/WcsPlc.cs | 6 +++
Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs | 5 ++
Web/src/views/wcs/wcsPlc/index.vue | 14 +++++++
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs | 44 ++++++++++++++--------
Admin.NET/WCS.Application/PLC/PLCUtil.cs | 2
Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs | 3 +
Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 5 ++
Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs | 5 +-
Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs | 13 ++++++
Web/src/views/wcs/wcsPlc/component/editDialog.vue | 12 ++++++
Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs | 4 ++
11 files changed, 91 insertions(+), 22 deletions(-)
diff --git a/Admin.NET/WCS.Application/Entity/WcsPlc.cs b/Admin.NET/WCS.Application/Entity/WcsPlc.cs
index c50e7dd..916fa20 100644
--- a/Admin.NET/WCS.Application/Entity/WcsPlc.cs
+++ b/Admin.NET/WCS.Application/Entity/WcsPlc.cs
@@ -49,6 +49,12 @@
public string? Text { get; set; }
/// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ [SugarColumn(ColumnName = "Enable", ColumnDescription = "鏄惁鍚敤")]
+ public YesNoEnum Enable { get; set; }
+
+ /// <summary>
/// 鏄惁杩炴帴
/// </summary>
[SugarColumn(IsIgnore = true)]
diff --git a/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs b/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs
index 988502b..3fc4f27 100644
--- a/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs
+++ b/Admin.NET/WCS.Application/Hub/PlcDeviceHub.cs
@@ -71,7 +71,7 @@
// 鐢ㄤ簬淇濆瓨姣忎釜璁惧鐨勫垵濮嬬姸鎬�
var initialStates = new Dictionary<long, WcsDeviceOutput>();
- var listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine).ToList();
+ var listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine).Where(s => s.Enable == YesNoEnum.Y).ToList();
var listPlcId = listPlc.Select(s => s.Id).ToList();
var listPlcDevice = _db.Queryable<WcsDevice>().Where(s => s.DeviceType == DeviceTypeEnum.Business && listPlcId.Contains(s.PlcId)).Select<WcsDeviceOutput>().ToList();
var listPlcDeviceId = listPlcDevice.Select(s => s.Id).ToList();
@@ -142,7 +142,6 @@
{
(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 (modPlc.Type == PLCTypeEnum.ConveyorLine)
{
@@ -204,7 +203,7 @@
if (initialStates.TryGetValue(modDevice.Id, out var initialState))
{
if (modDevice.Status != initialState.Status ||
- modDevice.Plc != initialState.Plc ||
+ (!modDevice.Plc.IsNullOrEmpty() && modDevice.Plc != initialState.Plc) ||
modDevice.Wcs != initialState.Wcs ||
modDevice.TaskNo != initialState.TaskNo ||
modDevice.TaskType != initialState.TaskType ||
diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
index 2c5e526..e97215b 100644
--- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs
@@ -60,7 +60,10 @@
public static void Init()
{
cts.Cancel();
- listPlc = _db.Queryable<WcsPlc>().Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine).ToList();
+ listPlc = _db.Queryable<WcsPlc>()
+ .Where(s => s.Type == PLCTypeEnum.StackingMachine || s.Type == PLCTypeEnum.ConveyorLine || s.Type == PLCTypeEnum.BoxConveyorLine)
+ .Where(s => s.Enable == YesNoEnum.Y)
+ .ToList();
listPlcDevice = _db.Queryable<WcsDevice>().ToList();
listPlcPosition = _db.Queryable<WcsPosition>().ToList();
listAlarmInfo = _db.Queryable<WcsAlarmInfo>().ToList();
diff --git a/Admin.NET/WCS.Application/PLC/PLCUtil.cs b/Admin.NET/WCS.Application/PLC/PLCUtil.cs
index 794a66c..0421e04 100644
--- a/Admin.NET/WCS.Application/PLC/PLCUtil.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCUtil.cs
@@ -223,7 +223,7 @@
address = DbNumber + "." + Pos;
else
address = DbNumber + Pos;
- return this.SetPlcDBValue(PosType, address, Pos, Value);
+ return this.SetPlcDBValue(PosType, address, Value);
}
/// <summary>
/// 鍐欏叆PLC鍊�
diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
index 21fc4f5..46f52d9 100644
--- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -351,39 +351,51 @@
var listPosition = await _wcsDeviceRep.Context.Queryable<WcsPosition>().Where(s => s.DeviceId == modDevice.Id).ToListAsync();
var result = new IoTClient.Result();
//浠诲姟鍙�
- if (!modDevice.TaskNo.IsNullOrEmpty())
+ if (modDevice.TaskNo != null)
{
var modPositionTask = listPosition.FirstOrDefault(s => s.Text == "浠诲姟鍙�");
if (modPositionTask != null)
- result = modUtil.SetPlcDBValue(modPositionTask.PosType, modDbDevice.DbNumber + "." + modPositionTask.PlcPos, modDevice.TaskNo);
+ result = modUtil.SetPlcDBValue(modPositionTask.PosType, modDbDevice.DbNumber, modPositionTask.PlcPos, modDevice.TaskNo);
}
//浠诲姟绫诲瀷
- if (!modDevice.TaskType.IsNullOrEmpty())
+ if (modDevice.TaskType != null)
{
var modPositionTaskType = listPosition.FirstOrDefault(s => s.Text == "浠诲姟绫诲瀷");
if (modPositionTaskType != null)
- result = modUtil.SetPlcDBValue(modPositionTaskType.PosType, modDbDevice.DbNumber + "." + modPositionTaskType.PlcPos, ((int)modDevice.TaskType).ToString());
+ result = modUtil.SetPlcDBValue(modPositionTaskType.PosType, modDbDevice.DbNumber, modPositionTaskType.PlcPos, ((int)modDevice.TaskType).ToString());
}
//璧峰宸ヤ綅
- if (!modDevice.StartLocatNo.IsNullOrEmpty())
+ 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());
+ result = modUtil.SetPlcDBValue(modPositionStartLocatNo.PosType, modDbDevice.DbNumber, modPositionStartLocatNo.PlcPos, modDevice.StartLocatNo.ToString());
}
//鐩殑宸ヤ綅
- if (!modDevice.EndLocatNo.IsNullOrEmpty())
+ 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());
+ result = modUtil.SetPlcDBValue(modPositionEndLocatNo.PosType, modDbDevice.DbNumber, modPositionEndLocatNo.PlcPos, modDevice.EndLocatNo.ToString());
}
//鎵樼洏鐮�
- if (!modDevice.PalletNo.IsNullOrEmpty())
+ if (modDevice.PalletNo != null)
{
var modPositionPalletNo = listPosition.FirstOrDefault(s => s.Text == "鎵樼洏鐮�");
if (modPositionPalletNo != null)
- result = modUtil.SetPlcDBValue(modPositionPalletNo.PosType, modDbDevice.DbNumber + "." + modPositionPalletNo.PlcPos, modDevice.PalletNo.ToString());
+ result = modUtil.SetPlcDBValue(modPositionPalletNo.PosType, modDbDevice.DbNumber, modPositionPalletNo.PlcPos, modDevice.PalletNo.ToString());
+ }
+ if (modDevice.Plc != null)
+ {
+ var modPositionPLC = listPosition.FirstOrDefault(s => s.Text == "PLC娴佺▼瀛�");
+ if (modPositionPLC != null)
+ result = modUtil.SetPlcDBValue(modPositionPLC.PosType, modDbDevice.DbNumber, modPositionPLC.PlcPos, modDevice.Plc);
+ }
+ if (modDevice.Wcs != null)
+ {
+ var modPositionWCS = listPosition.FirstOrDefault(s => s.Text == "WCS娴佺▼瀛�");
+ if (modPositionWCS != null)
+ result = modUtil.SetPlcDBValue(modPositionWCS.PosType, modDbDevice.DbNumber, modPositionWCS.PlcPos, modDevice.Wcs);
}
if (modPlc.Type == PLCTypeEnum.ConveyorLine)
{
@@ -392,42 +404,42 @@
{
var modPositionReleaseRow = listPosition.FirstOrDefault(s => s.Text == "鏀捐揣鎺�");
if (modPositionReleaseRow != null)
- modUtil.SetPlcDBValue(modPositionReleaseRow.PosType, modDbDevice.DbNumber + "." + modPositionReleaseRow.PlcPos, modDevice.ReleaseRow.ToString());
+ 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());
+ 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());
+ modUtil.SetPlcDBValue(modPositionReleaseStorey.PosType, modDbDevice.DbNumber, modPositionReleaseStorey.PlcPos, modDevice.ReleaseStorey.ToString());
}
//鍙栬揣鎺�
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());
+ 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());
+ 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());
+ modUtil.SetPlcDBValue(modPositionPickStorey.PosType, modDbDevice.DbNumber, modPositionPickStorey.PlcPos, modDevice.PickStorey.ToString());
}
}
modUtil.Close();
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs
index 92fc8e0..48c1876 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcDto.cs
@@ -41,4 +41,8 @@
/// </summary>
public string? Text { get; set; }
+ /// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ public YesNoEnum Enable { get; set; }
}
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs
index 015930c..e7d16d1 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcInput.cs
@@ -36,6 +36,10 @@
/// </summary>
public virtual string? Text { get; set; }
+ /// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ public virtual YesNoEnum Enable { get; set; }
}
/// <summary>
@@ -63,6 +67,10 @@
/// </summary>
public PLCTypeEnum? Type { get; set; }
+ /// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ public YesNoEnum? Enable { get; set; }
}
/// <summary>
@@ -88,6 +96,11 @@
[Required(ErrorMessage = "璁惧绫诲瀷涓嶈兘涓虹┖")]
public override PLCTypeEnum Type { get; set; }
+ /// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ [Required(ErrorMessage = "鏄惁鍚敤涓嶈兘涓虹┖")]
+ public override YesNoEnum Enable { get; set; }
}
/// <summary>
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs
index f537ad8..8981df1 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/Dto/WcsPlcOutput.cs
@@ -42,6 +42,11 @@
public string? Text { get; set; }
/// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ public YesNoEnum Enable { get; set; }
+
+ /// <summary>
/// 鍒涘缓鏃堕棿
/// </summary>
public DateTime? CreateTime { get; set; }
diff --git a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
index 0d77413..362188f 100644
--- a/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
+++ b/Admin.NET/WCS.Application/Service/WcsPlc/WcsPlcService.cs
@@ -30,11 +30,12 @@
input.SearchKey = input.SearchKey?.Trim();
var query = _wcsPlcRep.AsQueryable()
.WhereIF(!string.IsNullOrEmpty(input.SearchKey), u =>
- u.IP.Contains(input.SearchKey)
+ u.IP.Contains(input.SearchKey) && u.Text.Contains(input.SearchKey)
)
.WhereIF(input.PLCType.HasValue, u => u.PLCType == input.PLCType)
.WhereIF(!string.IsNullOrWhiteSpace(input.IP), u => u.IP.Contains(input.IP.Trim()))
.WhereIF(input.Type.HasValue, u => u.Type == input.Type)
+ .WhereIF(input.Enable.HasValue, u => u.Enable == input.Enable)
.Select<WcsPlcOutput>();
return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
}
diff --git a/Web/src/views/wcs/wcsPlc/component/editDialog.vue b/Web/src/views/wcs/wcsPlc/component/editDialog.vue
index 7464412..babd249 100644
--- a/Web/src/views/wcs/wcsPlc/component/editDialog.vue
+++ b/Web/src/views/wcs/wcsPlc/component/editDialog.vue
@@ -68,6 +68,18 @@
</el-form-item>
</el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鏄惁鍚敤" prop="enable">
+ <el-select clearable v-model="ruleForm.enable" placeholder="璇烽�夋嫨鏄惁鍚敤">
+ <el-option v-for="(item, index) in dl('YesNoEnum')" :key="index"
+ :value="Number(item.value)"
+ :label="`${item.name} (${item.code}) [${item.value}]`"></el-option>
+
+ </el-select>
+
+ </el-form-item>
+
+ </el-col>
</el-row>
</el-form>
<template #footer>
diff --git a/Web/src/views/wcs/wcsPlc/index.vue b/Web/src/views/wcs/wcsPlc/index.vue
index b41a6b3..a229481 100644
--- a/Web/src/views/wcs/wcsPlc/index.vue
+++ b/Web/src/views/wcs/wcsPlc/index.vue
@@ -35,6 +35,14 @@
</el-form-item>
</el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
+ <el-form-item label="鏄惁鍚敤">
+ <el-select clearable="" v-model="queryParams.enable" placeholder="璇烽�夋嫨鏄惁鍚敤">
+ <el-option v-for="(item, index) in dl('YesNoEnum')" :key="index" :value="item.value"
+ :label="`${item.name} (${item.code}) [${item.value}] `" />
+ </el-select>
+ </el-form-item>
+ </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
<el-form-item>
<el-button-group style="display: flex; align-items: center;">
@@ -74,6 +82,12 @@
</el-table-column>
<el-table-column prop="wareHouseNo" label="浠撳簱鍙�" show-overflow-tooltip="" />
<el-table-column prop="text" label="鎻忚堪" show-overflow-tooltip="" />
+ <el-table-column prop="enable" label="鏄惁鍚敤" show-overflow-tooltip="">
+ <template #default="scope">
+ <el-tag :type="dv('YesNoEnum', scope.row.enable)?.tagType"> {{ dv('YesNoEnum',
+ scope.row.enable)?.name }}</el-tag>
+ </template>
+ </el-table-column>
<el-table-column label="淇敼璁板綍" width="80" align="center" show-overflow-tooltip>
<template #default="scope">
<ModifyRecord :data="scope.row" />
--
Gitblit v1.8.0