From 84ff1fdb632643971df95e113a32623d3b5e9d4e Mon Sep 17 00:00:00 2001
From: hwh <332078369@qq.com>
Date: 星期五, 16 八月 2024 07:54:25 +0800
Subject: [PATCH] 任务日志
---
Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj | 4
Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs | 176 ++++
Admin.NET/WCS.Application/Const/ApplicationConst.cs | 12
Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs | 119 +++
Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs | 117 +++
Web/src/api/wcs/wcsTask.ts | 50 +
Admin.NET/WCS.Application/Entity/WcsTask.cs | 142 +++
Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorInput.cs | 165 ++++
Web/tsconfig.json | 14
Admin.NET/Admin.NET.Web.Core/Startup.cs | 2
Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput.cs | 111 +++
Admin.NET/WCS.Application/Configuration/Enum.json | 2
Web/src/api/wcs/wcsTaskMonitor.ts | 23
Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorDto.cs | 109 +++
Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskDto.cs | 174 ++++
Admin.NET/WCS.Application/Configuration/CodeGen.json | 4
Web/src/api-services/apis/sys-config-api.ts | 2
Admin.NET/WCS.Application/Entity/WcsTaskMonitor.cs | 63 +
Web/src/views/wcs/wcsTask/component/editDialog.vue | 226 ++++++
Admin.NET/WCS.Application/Enum/TaskEnum.cs | 88 ++
Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs | 240 ++++++
Web/src/views/wcs/wcsTask/index.vue | 291 ++++++++
22 files changed, 2,122 insertions(+), 12 deletions(-)
diff --git a/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj b/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj
index 23352b0..33d54be 100644
--- a/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj
+++ b/Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj
@@ -31,4 +31,8 @@
<ProjectReference Include="..\Plugins\Admin.NET.Plugin.GoView\Admin.NET.Plugin.GoView.csproj" />
</ItemGroup>
+ <ItemGroup>
+ <Folder Include="Entity\" />
+ </ItemGroup>
+
</Project>
diff --git a/Admin.NET/Admin.NET.Web.Core/Startup.cs b/Admin.NET/Admin.NET.Web.Core/Startup.cs
index 9c54d78..da9e5a0 100644
--- a/Admin.NET/Admin.NET.Web.Core/Startup.cs
+++ b/Admin.NET/Admin.NET.Web.Core/Startup.cs
@@ -284,7 +284,7 @@
{
foreach (var groupInfo in SpecificationDocumentBuilder.GetOpenApiGroups())
{
- groupInfo.Description += "<br/><u><b><font color='FF0000'> 馃懏涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�</font></b></u>";
+ //groupInfo.Description += "<br/><u><b><font color='FF0000'> 馃懏涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�</font></b></u>";
}
});
diff --git a/Admin.NET/WCS.Application/Configuration/CodeGen.json b/Admin.NET/WCS.Application/Configuration/CodeGen.json
index 5d5758f..a6b48fc 100644
--- a/Admin.NET/WCS.Application/Configuration/CodeGen.json
+++ b/Admin.NET/WCS.Application/Configuration/CodeGen.json
@@ -1,7 +1,7 @@
{
// 浠g爜鐢熸垚閰嶇疆椤�-绋嬪簭闆嗗悕绉伴泦鍚�
"CodeGen": {
- "EntityAssemblyNames": [ "Admin.NET.Core", "Admin.NET.Application" ],
+ "EntityAssemblyNames": [ "Admin.NET.Core", "WCS.Application" ],
"BaseEntityNames": [ "EntityTenantId", "EntityTenant", "EntityTenantBaseData", "EntityBaseData", "EntityBase", "EntityBaseId" ],
"EntityBaseColumn": {
"EntityTenantId": [ "Id", "TenantId" ],
@@ -13,6 +13,6 @@
//"BaseId": [ "Id" ]
},
"FrontRootPath": "Web", // 鍓嶇椤圭洰鏍圭洰褰�
- "BackendApplicationNamespaces": [ "Admin.NET.Application", "Admin.NET.Application2" ] // 鍚庣鐢熸垚鍒扮殑椤圭洰
+ "BackendApplicationNamespaces": [ "WCS.Application" ] // 鍚庣鐢熸垚鍒扮殑椤圭洰
}
}
\ No newline at end of file
diff --git a/Admin.NET/WCS.Application/Configuration/Enum.json b/Admin.NET/WCS.Application/Configuration/Enum.json
index a010558..b7daa5e 100644
--- a/Admin.NET/WCS.Application/Configuration/Enum.json
+++ b/Admin.NET/WCS.Application/Configuration/Enum.json
@@ -1,6 +1,6 @@
{
// 鏋氫妇瀹炰綋鎵�鍦ㄧ▼搴忛泦鍚嶇О闆嗗悎
"Enum": {
- "EntityAssemblyNames": [ "Admin." ]
+ "EntityAssemblyNames": [ "Admin.", "WCS." ]
}
}
\ No newline at end of file
diff --git a/Admin.NET/WCS.Application/Const/ApplicationConst.cs b/Admin.NET/WCS.Application/Const/ApplicationConst.cs
new file mode 100644
index 0000000..5dd2b0e
--- /dev/null
+++ b/Admin.NET/WCS.Application/Const/ApplicationConst.cs
@@ -0,0 +1,12 @@
+锘�
+namespace WCS.Application;
+/// <summary>
+/// 涓氬姟搴旂敤鐩稿叧甯搁噺
+/// </summary>
+public class ApplicationConst
+{
+ /// <summary>
+ /// API鍒嗙粍鍚嶇О
+ /// </summary>
+ public const string GroupName = "WCS";
+}
diff --git a/Admin.NET/WCS.Application/Entity/WcsTask.cs b/Admin.NET/WCS.Application/Entity/WcsTask.cs
new file mode 100644
index 0000000..8119603
--- /dev/null
+++ b/Admin.NET/WCS.Application/Entity/WcsTask.cs
@@ -0,0 +1,142 @@
+锘縰sing Admin.NET.Core;
+namespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟琛�
+/// </summary>
+[SugarTable("WCSTask","浠诲姟琛�")]
+public class WcsTask : EntityBaseData
+{
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "TaskNo", ColumnDescription = "浠诲姟鍙�", Length = 20)]
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "TaskType", ColumnDescription = "浠诲姟绫诲瀷")]
+ public TaskTypeEnum? TaskType { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ [SugarColumn(ColumnName = "Status", ColumnDescription = "鐘舵��")]
+ public TaskStatusEnum? Status { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍥為鎴愬姛
+ /// </summary>
+ [SugarColumn(ColumnName = "IsSuccess", ColumnDescription = "鏄惁鍥為鎴愬姛")]
+ public TaskSuccessEnum? IsSuccess { get; set; }
+
+ /// <summary>
+ /// 寮傚父淇℃伅
+ /// </summary>
+ [SugarColumn(ColumnName = "Information", ColumnDescription = "寮傚父淇℃伅", Length = 32)]
+ public string? Information { get; set; }
+
+ /// <summary>
+ /// 鏉ユ簮
+ /// </summary>
+ [SugarColumn(ColumnName = "Origin", ColumnDescription = "鏉ユ簮", Length = 20)]
+ public string? Origin { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ [SugarColumn(ColumnName = "StartLocate", ColumnDescription = "璧峰浣嶇疆", Length = 20)]
+ public string? StartLocate { get; set; }
+
+ /// <summary>
+ /// 璧峰宸烽亾
+ /// </summary>
+ [SugarColumn(ColumnName = "StartRoadway", ColumnDescription = "璧峰宸烽亾", Length = 20)]
+ public string? StartRoadway { get; set; }
+
+ /// <summary>
+ /// 缁撴潫浣嶇疆
+ /// </summary>
+ [SugarColumn(ColumnName = "EndLocate", ColumnDescription = "缁撴潫浣嶇疆", Length = 20)]
+ public string? EndLocate { get; set; }
+
+ /// <summary>
+ /// 鐩爣宸烽亾
+ /// </summary>
+ [SugarColumn(ColumnName = "EndRoadway", ColumnDescription = "鐩爣宸烽亾", Length = 20)]
+ public string? EndRoadway { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "PalletNo", ColumnDescription = "鎵樼洏鍙�", Length = 20)]
+ public string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "LotNo", ColumnDescription = "鎵规鍙�", Length = 20)]
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 渚涜揣鎵规
+ /// </summary>
+ [SugarColumn(ColumnName = "SupplierLot", ColumnDescription = "渚涜揣鎵规", Length = 20)]
+ public string? SupplierLot { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ [SugarColumn(ColumnName = "SkuNo", ColumnDescription = "鐗╂枡缂栫爜", Length = 20)]
+ public string? SkuNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "SkuName", ColumnDescription = "鐗╂枡鍚嶇О", Length = 20)]
+ public string? SkuName { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "Qty", ColumnDescription = "鏁伴噺")]
+ public int? Qty { get; set; }
+
+ /// <summary>
+ /// 鎷嗗灈鏁伴噺
+ /// </summary>
+ [SugarColumn(ColumnName = "CompleteQty", ColumnDescription = "鎷嗗灈鏁伴噺")]
+ public int? CompleteQty { get; set; }
+
+ /// <summary>
+ /// 鎷h揣鏂瑰紡
+ /// </summary>
+ [SugarColumn(ColumnName = "UnstackingMode", ColumnDescription = "鎷h揣鏂瑰紡", Length = 10)]
+ public string? UnstackingMode { get; set; }
+
+ /// <summary>
+ /// 鍙栨秷鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "CancelDate", ColumnDescription = "鍙栨秷鏃堕棿")]
+ public DateTime? CancelDate { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "FinishDate", ColumnDescription = "瀹屾垚鏃堕棿")]
+ public DateTime? FinishDate { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庡啓鍏ユ祦绋嬫帶鍒跺瓧鍊�
+ /// </summary>
+ [SugarColumn(ColumnName = "WcsPosValue", ColumnDescription = "鏈�鍚庡啓鍏ユ祦绋嬫帶鍒跺瓧鍊�", Length = 20)]
+ public string? WcsPosValue { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ [SugarColumn(ColumnName = "Levels", ColumnDescription = "浼樺厛绾�")]
+ public int? Levels { get; set; }
+
+}
diff --git a/Admin.NET/WCS.Application/Entity/WcsTaskMonitor.cs b/Admin.NET/WCS.Application/Entity/WcsTaskMonitor.cs
new file mode 100644
index 0000000..74ee893
--- /dev/null
+++ b/Admin.NET/WCS.Application/Entity/WcsTaskMonitor.cs
@@ -0,0 +1,63 @@
+锘縩amespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟鏄庣粏\鐩戞帶琛�
+/// </summary>
+[SugarTable("WCSTaskMonitor","浠诲姟鏄庣粏鐩戞帶琛�")]
+public class WcsTaskMonitor : EntityBaseData
+{
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "TaskNo", ColumnDescription = "浠诲姟鍙�", Length = 20)]
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浜や簰宸ヤ綅鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "PlcId", ColumnDescription = "浜や簰宸ヤ綅鍙�")]
+ public long? PlcId { get; set; }
+
+ /// <summary>
+ /// 浜や簰浣嶇疆
+ /// </summary>
+ [SugarColumn(ColumnName = "PlcName", ColumnDescription = "浜や簰浣嶇疆", Length = 32)]
+ public string? PlcName { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ [SugarColumn(ColumnName = "StartLocat", ColumnDescription = "璧峰浣嶇疆", Length = 20)]
+ public string? StartLocat { get; set; }
+
+ /// <summary>
+ /// 鐩爣浣嶇疆
+ /// </summary>
+ [SugarColumn(ColumnName = "EndLocat", ColumnDescription = "鐩爣浣嶇疆", Length = 32)]
+ public string? EndLocat { get; set; }
+
+ /// <summary>
+ /// 浜や簰淇℃伅
+ /// </summary>
+ [SugarColumn(ColumnName = "InteractiveMsg", ColumnDescription = "浜や簰淇℃伅", Length = 100)]
+ public string? InteractiveMsg { get; set; }
+
+ /// <summary>
+ /// 寮傚父璁板綍
+ /// </summary>
+ [SugarColumn(ColumnName = "ErrorMsg", ColumnDescription = "寮傚父璁板綍", Length = 100)]
+ public string? ErrorMsg { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ [SugarColumn(ColumnName = "PalletNo", ColumnDescription = "鎵樼洏鍙�", Length = 20)]
+ public string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ [SugarColumn(ColumnName = "Status", ColumnDescription = "鐘舵��")]
+ public TaskStatusEnum? Status { get; set; }
+
+}
diff --git a/Admin.NET/WCS.Application/Enum/TaskEnum.cs b/Admin.NET/WCS.Application/Enum/TaskEnum.cs
new file mode 100644
index 0000000..d35bae5
--- /dev/null
+++ b/Admin.NET/WCS.Application/Enum/TaskEnum.cs
@@ -0,0 +1,88 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟绫诲瀷鏋氫妇
+/// </summary>
+[Description("浠诲姟绫诲瀷鏋氫妇")]
+public enum TaskTypeEnum
+{
+ /// <summary>
+ /// 鍏ュ簱浠诲姟
+ /// </summary>
+ [Description("鍏ュ簱浠诲姟")]
+ In = 0,
+
+ /// <summary>
+ /// 鍑哄簱浠诲姟
+ /// </summary>
+ [Description("鍑哄簱浠诲姟")]
+ Out = 1,
+
+ /// <summary>
+ /// 绉诲簱浠诲姟
+ /// </summary>
+ [Description("绉诲簱浠诲姟")]
+ Move = 2,
+
+ /// <summary>
+ /// PLC鐢宠鍏ュ簱
+ /// </summary>
+ [Description("PLC鐢宠鍏ュ簱")]
+ PLC = 3,
+}
+/// <summary>
+/// 浠诲姟鐘舵�佹灇涓�
+/// </summary>
+[Description("浠诲姟鐘舵�佹灇涓�")]
+public enum TaskStatusEnum
+{
+ /// <summary>
+ /// 绛夊緟鎵ц
+ /// </summary>
+ [Description("绛夊緟鎵ц")]
+ Wait = 0,
+ /// <summary>
+ /// 姝e湪鎵ц
+ /// </summary>
+ [Description("姝e湪鎵ц")]
+ Doing = 1,
+ /// <summary>
+ /// 鎵ц瀹屾垚
+ /// </summary>
+ [Description("鎵ц瀹屾垚")]
+ Complete = 2,
+ /// <summary>
+ /// 寮傚父缁撴潫
+ /// </summary>
+ [Description("寮傚父缁撴潫")]
+ Exception = 3,
+ /// <summary>
+ /// 浠诲姟鍙栨秷
+ /// </summary>
+ [Description("浠诲姟鍙栨秷")]
+ Cancell = 4,
+}
+
+/// <summary>
+/// 鏄惁鎴愬姛鏋氫妇
+/// </summary>
+[Description("鏄惁鎴愬姛鏋氫妇")]
+public enum TaskSuccessEnum
+{
+ /// <summary>
+ /// 鍥炰紶鎴愬姛
+ /// </summary>
+ [Description("鍥炰紶鎴愬姛")]
+ Success = 0,
+ /// <summary>
+ /// 鍥炰紶澶辫触
+ /// </summary>
+ [Description("鍥炰紶澶辫触")]
+ Fail = 1
+}
\ No newline at end of file
diff --git a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskDto.cs b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskDto.cs
new file mode 100644
index 0000000..8df859c
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskDto.cs
@@ -0,0 +1,174 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+namespace WCS.Application;
+
+ /// <summary>
+ /// 浠诲姟琛ㄨ緭鍑哄弬鏁�
+ /// </summary>
+ public class WcsTaskDto
+ {
+ /// <summary>
+ /// 涓婚敭Id
+ /// </summary>
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ public TaskTypeEnum TaskType { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public TaskStatusEnum Status { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍥為鎴愬姛
+ /// </summary>
+ public TaskSuccessEnum IsSuccess { get; set; }
+
+ /// <summary>
+ /// 寮傚父淇℃伅
+ /// </summary>
+ public string? Information { get; set; }
+
+ /// <summary>
+ /// 鏉ユ簮
+ /// </summary>
+ public string? Origin { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public string? StartLocate { get; set; }
+
+ /// <summary>
+ /// 璧峰宸烽亾
+ /// </summary>
+ public string? StartRoadway { get; set; }
+
+ /// <summary>
+ /// 缁撴潫浣嶇疆
+ /// </summary>
+ public string? EndLocate { get; set; }
+
+ /// <summary>
+ /// 鐩爣宸烽亾
+ /// </summary>
+ public string? EndRoadway { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 渚涜揣鎵规
+ /// </summary>
+ public string? SupplierLot { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ public string? SkuNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? SkuName { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public int? Qty { get; set; }
+
+ /// <summary>
+ /// 鎷嗗灈鏁伴噺
+ /// </summary>
+ public int? CompleteQty { get; set; }
+
+ /// <summary>
+ /// 鎷h揣鏂瑰紡
+ /// </summary>
+ public string? UnstackingMode { get; set; }
+
+ /// <summary>
+ /// 鍙栨秷鏃堕棿
+ /// </summary>
+ public DateTime? CancelDate { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏃堕棿
+ /// </summary>
+ public DateTime? FinishDate { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庡啓鍏ユ祦绋嬫帶鍒跺瓧鍊�
+ /// </summary>
+ public string? WcsPosValue { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ public int? Levels { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃堕棿
+ /// </summary>
+ public DateTime? UpdateTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰匢d
+ /// </summary>
+ public long? CreateUserId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呭鍚�
+ /// </summary>
+ public string? CreateUserName { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰匢d
+ /// </summary>
+ public long? UpdateUserId { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰呭鍚�
+ /// </summary>
+ public string? UpdateUserName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂↖d
+ /// </summary>
+ public long? CreateOrgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+ /// </summary>
+ public string? CreateOrgName { get; set; }
+
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ public bool IsDelete { get; set; }
+
+ }
diff --git a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs
new file mode 100644
index 0000000..1fd8664
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs
@@ -0,0 +1,240 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+using Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace WCS.Application;
+
+ /// <summary>
+ /// 浠诲姟琛ㄥ熀纭�杈撳叆鍙傛暟
+ /// </summary>
+ public class WcsTaskBaseInput
+ {
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public virtual string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ public virtual TaskTypeEnum TaskType { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public virtual TaskStatusEnum Status { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍥為鎴愬姛
+ /// </summary>
+ public virtual TaskSuccessEnum IsSuccess { get; set; }
+
+ /// <summary>
+ /// 寮傚父淇℃伅
+ /// </summary>
+ public virtual string? Information { get; set; }
+
+ /// <summary>
+ /// 鏉ユ簮
+ /// </summary>
+ public virtual string? Origin { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public virtual string? StartLocate { get; set; }
+
+ /// <summary>
+ /// 璧峰宸烽亾
+ /// </summary>
+ public virtual string? StartRoadway { get; set; }
+
+ /// <summary>
+ /// 缁撴潫浣嶇疆
+ /// </summary>
+ public virtual string? EndLocate { get; set; }
+
+ /// <summary>
+ /// 鐩爣宸烽亾
+ /// </summary>
+ public virtual string? EndRoadway { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public virtual string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public virtual string? LotNo { get; set; }
+
+ /// <summary>
+ /// 渚涜揣鎵规
+ /// </summary>
+ public virtual string? SupplierLot { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ public virtual string? SkuNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public virtual string? SkuName { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public virtual int? Qty { get; set; }
+
+ /// <summary>
+ /// 鎷嗗灈鏁伴噺
+ /// </summary>
+ public virtual int? CompleteQty { get; set; }
+
+ /// <summary>
+ /// 鎷h揣鏂瑰紡
+ /// </summary>
+ public virtual string? UnstackingMode { get; set; }
+
+ /// <summary>
+ /// 鍙栨秷鏃堕棿
+ /// </summary>
+ public virtual DateTime? CancelDate { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏃堕棿
+ /// </summary>
+ public virtual DateTime? FinishDate { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庡啓鍏ユ祦绋嬫帶鍒跺瓧鍊�
+ /// </summary>
+ public virtual string? WcsPosValue { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ public virtual int? Levels { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public virtual DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃堕棿
+ /// </summary>
+ public virtual DateTime? UpdateTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰匢d
+ /// </summary>
+ public virtual long? CreateUserId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呭鍚�
+ /// </summary>
+ public virtual string? CreateUserName { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰匢d
+ /// </summary>
+ public virtual long? UpdateUserId { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰呭鍚�
+ /// </summary>
+ public virtual string? UpdateUserName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂↖d
+ /// </summary>
+ public virtual long? CreateOrgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+ /// </summary>
+ public virtual string? CreateOrgName { get; set; }
+
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ public virtual bool IsDelete { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟琛ㄥ垎椤垫煡璇㈣緭鍏ュ弬鏁�
+ /// </summary>
+ public class PageWcsTaskInput : BasePageInput
+ {
+ /// <summary>
+ /// 鍏抽敭瀛楁煡璇�
+ /// </summary>
+ public string? SearchKey { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ public TaskTypeEnum? TaskType { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public TaskStatusEnum? Status { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟琛ㄥ鍔犺緭鍏ュ弬鏁�
+ /// </summary>
+ public class AddWcsTaskInput : WcsTaskBaseInput
+ {
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ [Required(ErrorMessage = "杞垹闄や笉鑳戒负绌�")]
+ public override bool IsDelete { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟琛ㄥ垹闄よ緭鍏ュ弬鏁�
+ /// </summary>
+ public class DeleteWcsTaskInput : BaseIdInput
+ {
+ }
+
+ /// <summary>
+ /// 浠诲姟琛ㄦ洿鏂拌緭鍏ュ弬鏁�
+ /// </summary>
+ public class UpdateWcsTaskInput : WcsTaskBaseInput
+ {
+ /// <summary>
+ /// 涓婚敭Id
+ /// </summary>
+ [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")]
+ public long Id { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟琛ㄤ富閿煡璇㈣緭鍏ュ弬鏁�
+ /// </summary>
+ public class QueryByIdWcsTaskInput : DeleteWcsTaskInput
+ {
+
+ }
diff --git a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs
new file mode 100644
index 0000000..928a687
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs
@@ -0,0 +1,176 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+namespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟琛ㄨ緭鍑哄弬鏁�
+/// </summary>
+public class WcsTaskOutput
+{
+ /// <summary>
+ /// 涓婚敭Id
+ /// </summary>
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
+ public TaskTypeEnum TaskType { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public TaskStatusEnum Status { get; set; }
+
+ /// <summary>
+ /// 鏄惁鍥為鎴愬姛
+ /// </summary>
+ public TaskSuccessEnum IsSuccess { get; set; }
+
+ /// <summary>
+ /// 寮傚父淇℃伅
+ /// </summary>
+ public string? Information { get; set; }
+
+ /// <summary>
+ /// 鏉ユ簮
+ /// </summary>
+ public string? Origin { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public string? StartLocate { get; set; }
+
+ /// <summary>
+ /// 璧峰宸烽亾
+ /// </summary>
+ public string? StartRoadway { get; set; }
+
+ /// <summary>
+ /// 缁撴潫浣嶇疆
+ /// </summary>
+ public string? EndLocate { get; set; }
+
+ /// <summary>
+ /// 鐩爣宸烽亾
+ /// </summary>
+ public string? EndRoadway { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鎵规鍙�
+ /// </summary>
+ public string? LotNo { get; set; }
+
+ /// <summary>
+ /// 渚涜揣鎵规
+ /// </summary>
+ public string? SupplierLot { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡缂栫爜
+ /// </summary>
+ public string? SkuNo { get; set; }
+
+ /// <summary>
+ /// 鐗╂枡鍚嶇О
+ /// </summary>
+ public string? SkuName { get; set; }
+
+ /// <summary>
+ /// 鏁伴噺
+ /// </summary>
+ public int? Qty { get; set; }
+
+ /// <summary>
+ /// 鎷嗗灈鏁伴噺
+ /// </summary>
+ public int? CompleteQty { get; set; }
+
+ /// <summary>
+ /// 鎷h揣鏂瑰紡
+ /// </summary>
+ public string? UnstackingMode { get; set; }
+
+ /// <summary>
+ /// 鍙栨秷鏃堕棿
+ /// </summary>
+ public DateTime? CancelDate { get; set; }
+
+ /// <summary>
+ /// 瀹屾垚鏃堕棿
+ /// </summary>
+ public DateTime? FinishDate { get; set; }
+
+ /// <summary>
+ /// 鏈�鍚庡啓鍏ユ祦绋嬫帶鍒跺瓧鍊�
+ /// </summary>
+ public string? WcsPosValue { get; set; }
+
+ /// <summary>
+ /// 浼樺厛绾�
+ /// </summary>
+ public int? Levels { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃堕棿
+ /// </summary>
+ public DateTime? UpdateTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰匢d
+ /// </summary>
+ public long? CreateUserId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呭鍚�
+ /// </summary>
+ public string? CreateUserName { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰匢d
+ /// </summary>
+ public long? UpdateUserId { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰呭鍚�
+ /// </summary>
+ public string? UpdateUserName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂↖d
+ /// </summary>
+ public long? CreateOrgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+ /// </summary>
+ public string? CreateOrgName { get; set; }
+
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ public bool IsDelete { get; set; }
+
+ }
+
+
diff --git a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs
new file mode 100644
index 0000000..5023d85
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs
@@ -0,0 +1,119 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+using Admin.NET.Core.Service;
+using Microsoft.AspNetCore.Http;
+namespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟琛ㄦ湇鍔�
+/// </summary>
+[ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)]
+public class WcsTaskService : IDynamicApiController, ITransient
+{
+ private readonly SqlSugarRepository<WcsTask> _wcsTaskRep;
+ public WcsTaskService(SqlSugarRepository<WcsTask> wcsTaskRep)
+ {
+ _wcsTaskRep = wcsTaskRep;
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鏌ヨ浠诲姟琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Page")]
+ [DisplayName("鍒嗛〉鏌ヨ浠诲姟琛�")]
+ public async Task<SqlSugarPagedList<WcsTaskOutput>> Page(PageWcsTaskInput input)
+ {
+ input.SearchKey = input.SearchKey?.Trim();
+ var query = _wcsTaskRep.AsQueryable()
+ .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u =>
+ u.TaskNo.Contains(input.SearchKey)
+ )
+ .WhereIF(!string.IsNullOrWhiteSpace(input.TaskNo), u => u.TaskNo.Contains(input.TaskNo.Trim()))
+ .WhereIF(input.TaskType.HasValue, u => u.TaskType == input.TaskType)
+ .WhereIF(input.Status.HasValue, u => u.Status == input.Status)
+ .Select<WcsTaskOutput>();
+ return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
+ }
+
+ /// <summary>
+ /// 澧炲姞浠诲姟琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Add")]
+ [DisplayName("澧炲姞浠诲姟琛�")]
+ public async Task<long> Add(AddWcsTaskInput input)
+ {
+ var entity = input.Adapt<WcsTask>();
+ await _wcsTaskRep.InsertAsync(entity);
+ return entity.Id;
+ }
+
+ /// <summary>
+ /// 鍒犻櫎浠诲姟琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Delete")]
+ [DisplayName("鍒犻櫎浠诲姟琛�")]
+ public async Task Delete(DeleteWcsTaskInput input)
+ {
+ var entity = await _wcsTaskRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
+ await _wcsTaskRep.FakeDeleteAsync(entity); //鍋囧垹闄�
+ //await _wcsTaskRep.DeleteAsync(entity); //鐪熷垹闄�
+ }
+
+ /// <summary>
+ /// 鏇存柊浠诲姟琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Update")]
+ [DisplayName("鏇存柊浠诲姟琛�")]
+ public async Task Update(UpdateWcsTaskInput input)
+ {
+ var entity = input.Adapt<WcsTask>();
+ await _wcsTaskRep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+ }
+
+ /// <summary>
+ /// 鑾峰彇浠诲姟琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpGet]
+ [ApiDescriptionSettings(Name = "Detail")]
+ [DisplayName("鑾峰彇浠诲姟琛�")]
+ public async Task<WcsTask> Detail([FromQuery] QueryByIdWcsTaskInput input)
+ {
+ return await _wcsTaskRep.GetFirstAsync(u => u.Id == input.Id);
+ }
+
+ /// <summary>
+ /// 鑾峰彇浠诲姟琛ㄥ垪琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpGet]
+ [ApiDescriptionSettings(Name = "List")]
+ [DisplayName("鑾峰彇浠诲姟琛ㄥ垪琛�")]
+ public async Task<List<WcsTaskOutput>> List([FromQuery] PageWcsTaskInput input)
+ {
+ return await _wcsTaskRep.AsQueryable().Select<WcsTaskOutput>().ToListAsync();
+ }
+
+
+
+
+
+}
diff --git a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorDto.cs b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorDto.cs
new file mode 100644
index 0000000..ff92027
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorDto.cs
@@ -0,0 +1,109 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+namespace WCS.Application;
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄨ緭鍑哄弬鏁�
+ /// </summary>
+ public class WcsTaskMonitorDto
+ {
+ /// <summary>
+ /// 涓婚敭Id
+ /// </summary>
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浜や簰宸ヤ綅鍙�
+ /// </summary>
+ public long? PlcId { get; set; }
+
+ /// <summary>
+ /// 浜や簰浣嶇疆
+ /// </summary>
+ public string? PlcName { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public string? StartLocat { get; set; }
+
+ /// <summary>
+ /// 鐩爣浣嶇疆
+ /// </summary>
+ public string? EndLocat { get; set; }
+
+ /// <summary>
+ /// 浜や簰淇℃伅
+ /// </summary>
+ public string? InteractiveMsg { get; set; }
+
+ /// <summary>
+ /// 寮傚父璁板綍
+ /// </summary>
+ public string? ErrorMsg { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public int? Status { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃堕棿
+ /// </summary>
+ public DateTime? UpdateTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰匢d
+ /// </summary>
+ public long? CreateUserId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呭鍚�
+ /// </summary>
+ public string? CreateUserName { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰匢d
+ /// </summary>
+ public long? UpdateUserId { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰呭鍚�
+ /// </summary>
+ public string? UpdateUserName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂↖d
+ /// </summary>
+ public long? CreateOrgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+ /// </summary>
+ public string? CreateOrgName { get; set; }
+
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ public bool IsDelete { get; set; }
+
+ }
diff --git a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorInput.cs b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorInput.cs
new file mode 100644
index 0000000..665dbae
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorInput.cs
@@ -0,0 +1,165 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+using Admin.NET.Core;
+using System.ComponentModel.DataAnnotations;
+
+namespace WCS.Application;
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄥ熀纭�杈撳叆鍙傛暟
+ /// </summary>
+ public class WcsTaskMonitorBaseInput
+ {
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public virtual string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浜や簰宸ヤ綅鍙�
+ /// </summary>
+ public virtual long? PlcId { get; set; }
+
+ /// <summary>
+ /// 浜や簰浣嶇疆
+ /// </summary>
+ public virtual string? PlcName { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public virtual string? StartLocat { get; set; }
+
+ /// <summary>
+ /// 鐩爣浣嶇疆
+ /// </summary>
+ public virtual string? EndLocat { get; set; }
+
+ /// <summary>
+ /// 浜や簰淇℃伅
+ /// </summary>
+ public virtual string? InteractiveMsg { get; set; }
+
+ /// <summary>
+ /// 寮傚父璁板綍
+ /// </summary>
+ public virtual string? ErrorMsg { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public virtual string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public virtual int? Status { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public virtual DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃堕棿
+ /// </summary>
+ public virtual DateTime? UpdateTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰匢d
+ /// </summary>
+ public virtual long? CreateUserId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呭鍚�
+ /// </summary>
+ public virtual string? CreateUserName { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰匢d
+ /// </summary>
+ public virtual long? UpdateUserId { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰呭鍚�
+ /// </summary>
+ public virtual string? UpdateUserName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂↖d
+ /// </summary>
+ public virtual long? CreateOrgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+ /// </summary>
+ public virtual string? CreateOrgName { get; set; }
+
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ public virtual bool IsDelete { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄥ垎椤垫煡璇㈣緭鍏ュ弬鏁�
+ /// </summary>
+ public class PageWcsTaskMonitorInput : BasePageInput
+ {
+ /// <summary>
+ /// 鍏抽敭瀛楁煡璇�
+ /// </summary>
+ public string? SearchKey { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄥ鍔犺緭鍏ュ弬鏁�
+ /// </summary>
+ public class AddWcsTaskMonitorInput : WcsTaskMonitorBaseInput
+ {
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ [Required(ErrorMessage = "杞垹闄や笉鑳戒负绌�")]
+ public override bool IsDelete { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄥ垹闄よ緭鍏ュ弬鏁�
+ /// </summary>
+ public class DeleteWcsTaskMonitorInput : BaseIdInput
+ {
+ }
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄦ洿鏂拌緭鍏ュ弬鏁�
+ /// </summary>
+ public class UpdateWcsTaskMonitorInput : WcsTaskMonitorBaseInput
+ {
+ /// <summary>
+ /// 涓婚敭Id
+ /// </summary>
+ [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")]
+ public long Id { get; set; }
+
+ }
+
+ /// <summary>
+ /// 浠诲姟鏄庣粏鐩戞帶琛ㄤ富閿煡璇㈣緭鍏ュ弬鏁�
+ /// </summary>
+ public class QueryByIdWcsTaskMonitorInput : DeleteWcsTaskMonitorInput
+ {
+
+ }
diff --git a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput.cs b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput.cs
new file mode 100644
index 0000000..8b09ac7
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput.cs
@@ -0,0 +1,111 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+namespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟鏄庣粏鐩戞帶琛ㄨ緭鍑哄弬鏁�
+/// </summary>
+public class WcsTaskMonitorOutput
+{
+ /// <summary>
+ /// 涓婚敭Id
+ /// </summary>
+ public long Id { get; set; }
+
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string? TaskNo { get; set; }
+
+ /// <summary>
+ /// 浜や簰宸ヤ綅鍙�
+ /// </summary>
+ public long? PlcId { get; set; }
+
+ /// <summary>
+ /// 浜や簰浣嶇疆
+ /// </summary>
+ public string? PlcName { get; set; }
+
+ /// <summary>
+ /// 璧峰浣嶇疆
+ /// </summary>
+ public string? StartLocat { get; set; }
+
+ /// <summary>
+ /// 鐩爣浣嶇疆
+ /// </summary>
+ public string? EndLocat { get; set; }
+
+ /// <summary>
+ /// 浜や簰淇℃伅
+ /// </summary>
+ public string? InteractiveMsg { get; set; }
+
+ /// <summary>
+ /// 寮傚父璁板綍
+ /// </summary>
+ public string? ErrorMsg { get; set; }
+
+ /// <summary>
+ /// 鎵樼洏鍙�
+ /// </summary>
+ public string? PalletNo { get; set; }
+
+ /// <summary>
+ /// 鐘舵��
+ /// </summary>
+ public int? Status { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ public DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// 鏇存柊鏃堕棿
+ /// </summary>
+ public DateTime? UpdateTime { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰匢d
+ /// </summary>
+ public long? CreateUserId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呭鍚�
+ /// </summary>
+ public string? CreateUserName { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰匢d
+ /// </summary>
+ public long? UpdateUserId { get; set; }
+
+ /// <summary>
+ /// 淇敼鑰呭鍚�
+ /// </summary>
+ public string? UpdateUserName { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂↖d
+ /// </summary>
+ public long? CreateOrgId { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鑰呴儴闂ㄥ悕绉�
+ /// </summary>
+ public string? CreateOrgName { get; set; }
+
+ /// <summary>
+ /// 杞垹闄�
+ /// </summary>
+ public bool IsDelete { get; set; }
+
+ }
+
+
diff --git a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs
new file mode 100644
index 0000000..34d7595
--- /dev/null
+++ b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs
@@ -0,0 +1,117 @@
+锘�// Admin.NET 椤圭洰鐨勭増鏉冦�佸晢鏍囥�佷笓鍒╁拰鍏朵粬鐩稿叧鏉冨埄鍧囧彈鐩稿簲娉曞緥娉曡鐨勪繚鎶ゃ�備娇鐢ㄦ湰椤圭洰搴旈伒瀹堢浉鍏虫硶寰嬫硶瑙勫拰璁稿彲璇佺殑瑕佹眰銆�
+//
+// 鏈」鐩富瑕侀伒寰� MIT 璁稿彲璇佸拰 Apache 璁稿彲璇侊紙鐗堟湰 2.0锛夎繘琛屽垎鍙戝拰浣跨敤銆傝鍙瘉浣嶄簬婧愪唬鐮佹爲鏍圭洰褰曚腑鐨� LICENSE-MIT 鍜� LICENSE-APACHE 鏂囦欢銆�
+//
+// 涓嶅緱鍒╃敤鏈」鐩粠浜嬪嵄瀹冲浗瀹跺畨鍏ㄣ�佹壈涔辩ぞ浼氱З搴忋�佷镜鐘粬浜哄悎娉曟潈鐩婄瓑娉曞緥娉曡绂佹鐨勬椿鍔紒浠讳綍鍩轰簬鏈」鐩簩娆″紑鍙戣�屼骇鐢熺殑涓�鍒囨硶寰嬬籂绾峰拰璐d换锛屾垜浠笉鎵挎媴浠讳綍璐d换锛�
+
+using Admin.NET.Core.Service;
+using Microsoft.AspNetCore.Http;
+namespace WCS.Application;
+
+/// <summary>
+/// 浠诲姟鏄庣粏鐩戞帶琛ㄦ湇鍔�
+/// </summary>
+[ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)]
+public class WcsTaskMonitorService : IDynamicApiController, ITransient
+{
+ private readonly SqlSugarRepository<WcsTaskMonitor> _wcsTaskMonitorRep;
+ public WcsTaskMonitorService(SqlSugarRepository<WcsTaskMonitor> wcsTaskMonitorRep)
+ {
+ _wcsTaskMonitorRep = wcsTaskMonitorRep;
+ }
+
+ /// <summary>
+ /// 鍒嗛〉鏌ヨ浠诲姟鏄庣粏鐩戞帶琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Page")]
+ [DisplayName("鍒嗛〉鏌ヨ浠诲姟鏄庣粏鐩戞帶琛�")]
+ public async Task<SqlSugarPagedList<WcsTaskMonitorOutput>> Page(PageWcsTaskMonitorInput input)
+ {
+ input.SearchKey = input.SearchKey?.Trim();
+ var query = _wcsTaskMonitorRep.AsQueryable()
+ .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u =>
+ u.TaskNo.Contains(input.SearchKey)
+ )
+ .WhereIF(!string.IsNullOrWhiteSpace(input.TaskNo), u => u.TaskNo.Contains(input.TaskNo.Trim()))
+ .Select<WcsTaskMonitorOutput>();
+ return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
+ }
+
+ /// <summary>
+ /// 澧炲姞浠诲姟鏄庣粏鐩戞帶琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Add")]
+ [DisplayName("澧炲姞浠诲姟鏄庣粏鐩戞帶琛�")]
+ public async Task<long> Add(AddWcsTaskMonitorInput input)
+ {
+ var entity = input.Adapt<WcsTaskMonitor>();
+ await _wcsTaskMonitorRep.InsertAsync(entity);
+ return entity.Id;
+ }
+
+ /// <summary>
+ /// 鍒犻櫎浠诲姟鏄庣粏鐩戞帶琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Delete")]
+ [DisplayName("鍒犻櫎浠诲姟鏄庣粏鐩戞帶琛�")]
+ public async Task Delete(DeleteWcsTaskMonitorInput input)
+ {
+ var entity = await _wcsTaskMonitorRep.GetFirstAsync(u => u.Id == input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
+ await _wcsTaskMonitorRep.FakeDeleteAsync(entity); //鍋囧垹闄�
+ //await _wcsTaskMonitorRep.DeleteAsync(entity); //鐪熷垹闄�
+ }
+
+ /// <summary>
+ /// 鏇存柊浠诲姟鏄庣粏鐩戞帶琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [ApiDescriptionSettings(Name = "Update")]
+ [DisplayName("鏇存柊浠诲姟鏄庣粏鐩戞帶琛�")]
+ public async Task Update(UpdateWcsTaskMonitorInput input)
+ {
+ var entity = input.Adapt<WcsTaskMonitor>();
+ await _wcsTaskMonitorRep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
+ }
+
+ /// <summary>
+ /// 鑾峰彇浠诲姟鏄庣粏鐩戞帶琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpGet]
+ [ApiDescriptionSettings(Name = "Detail")]
+ [DisplayName("鑾峰彇浠诲姟鏄庣粏鐩戞帶琛�")]
+ public async Task<WcsTaskMonitor> Detail([FromQuery] QueryByIdWcsTaskMonitorInput input)
+ {
+ return await _wcsTaskMonitorRep.GetFirstAsync(u => u.Id == input.Id);
+ }
+
+ /// <summary>
+ /// 鑾峰彇浠诲姟鏄庣粏鐩戞帶琛ㄥ垪琛�
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpGet]
+ [ApiDescriptionSettings(Name = "List")]
+ [DisplayName("鑾峰彇浠诲姟鏄庣粏鐩戞帶琛ㄥ垪琛�")]
+ public async Task<List<WcsTaskMonitorOutput>> List([FromQuery] PageWcsTaskMonitorInput input)
+ {
+ return await _wcsTaskMonitorRep.AsQueryable().Select<WcsTaskMonitorOutput>().ToListAsync();
+ }
+
+
+
+
+
+}
diff --git a/Web/src/api-services/apis/sys-config-api.ts b/Web/src/api-services/apis/sys-config-api.ts
index 5e0506c..788c62a 100644
--- a/Web/src/api-services/apis/sys-config-api.ts
+++ b/Web/src/api-services/apis/sys-config-api.ts
@@ -1087,7 +1087,7 @@
* @throws {RequiredError}
* @memberof SysConfigApi
*/
- public async apiSysConfigSaveSystemInfoPost(body?: InfoSaveInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
+ public async apiSysConfigSaveSystemInfoPost(body?: any, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
return SysConfigApiFp(this.configuration).apiSysConfigSaveSystemInfoPost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
diff --git a/Web/src/api/wcs/wcsTask.ts b/Web/src/api/wcs/wcsTask.ts
new file mode 100644
index 0000000..54669c5
--- /dev/null
+++ b/Web/src/api/wcs/wcsTask.ts
@@ -0,0 +1,50 @@
+锘縤mport request from '/@/utils/request';
+enum Api {
+ AddWcsTask = '/api/wcsTask/add',
+ DeleteWcsTask = '/api/wcsTask/delete',
+ UpdateWcsTask = '/api/wcsTask/update',
+ PageWcsTask = '/api/wcsTask/page',
+ DetailWcsTask = '/api/wcsTask/detail',
+}
+
+// 澧炲姞浠诲姟琛�
+export const addWcsTask = (params?: any) =>
+ request({
+ url: Api.AddWcsTask,
+ method: 'post',
+ data: params,
+ });
+
+// 鍒犻櫎浠诲姟琛�
+export const deleteWcsTask = (params?: any) =>
+ request({
+ url: Api.DeleteWcsTask,
+ method: 'post',
+ data: params,
+ });
+
+// 缂栬緫浠诲姟琛�
+export const updateWcsTask = (params?: any) =>
+ request({
+ url: Api.UpdateWcsTask,
+ method: 'post',
+ data: params,
+ });
+
+// 鍒嗛〉鏌ヨ浠诲姟琛�
+export const pageWcsTask = (params?: any) =>
+ request({
+ url: Api.PageWcsTask,
+ method: 'post',
+ data: params,
+ });
+
+// 璇︽儏浠诲姟琛�
+export const detailWcsTask = (id: any) =>
+ request({
+ url: Api.DetailWcsTask,
+ method: 'get',
+ data: { id },
+ });
+
+
diff --git a/Web/src/api/wcs/wcsTaskMonitor.ts b/Web/src/api/wcs/wcsTaskMonitor.ts
new file mode 100644
index 0000000..3ee2c0b
--- /dev/null
+++ b/Web/src/api/wcs/wcsTaskMonitor.ts
@@ -0,0 +1,23 @@
+锘縤mport request from '/@/utils/request';
+enum Api {
+ PageWcsMonitorTask = '/api/wcsTaskMonitor/page',
+ DetailWcsMonitorTask = '/api/wcsTaskMonitor/detail',
+}
+
+// 鍒嗛〉鏌ヨ浠诲姟琛�
+export const pageWcsMonitorTask = (params?: any) =>
+ request({
+ url: Api.PageWcsMonitorTask,
+ method: 'post',
+ data: params,
+ });
+
+// 璇︽儏浠诲姟琛�
+export const detailWcsMonitorTask = (id: any) =>
+ request({
+ url: Api.DetailWcsMonitorTask,
+ method: 'get',
+ data: { id },
+ });
+
+
diff --git a/Web/src/views/wcs/wcsTask/component/editDialog.vue b/Web/src/views/wcs/wcsTask/component/editDialog.vue
new file mode 100644
index 0000000..ff70f63
--- /dev/null
+++ b/Web/src/views/wcs/wcsTask/component/editDialog.vue
@@ -0,0 +1,226 @@
+锘�<template>
+ <div class="wcsTask-container">
+ <el-dialog v-model="isShowDialog" :width="800" draggable="" :close-on-click-modal="false">
+ <template #header>
+ <div style="color: #fff">
+ <!--<el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>-->
+ <span>{{ props.title }}</span>
+ </div>
+ </template>
+ <el-form :model="ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
+ <el-row :gutter="35">
+ <el-form-item v-show="false">
+ <el-input v-model="ruleForm.id" />
+ </el-form-item>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="浠诲姟鍙�" prop="taskNo">
+ <el-input v-model="ruleForm.taskNo" placeholder="璇疯緭鍏ヤ换鍔″彿" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="浠诲姟绫诲瀷" prop="taskType">
+ <el-select clearable v-model="ruleForm.taskType" placeholder="璇烽�夋嫨浠诲姟绫诲瀷">
+ <el-option v-for="(item,index) in dl('TaskTypeEnum')" :key="index" :value="Number(item.value)" :label="`${item.name} (${item.code}) [${item.value}]`"></el-option>
+
+ </el-select>
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鏉ユ簮" prop="origin">
+ <el-input v-model="ruleForm.origin" placeholder="璇疯緭鍏ユ潵婧�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="璧峰浣嶇疆" prop="startLocate">
+ <el-input v-model="ruleForm.startLocate" placeholder="璇疯緭鍏ヨ捣濮嬩綅缃�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="璧峰宸烽亾" prop="startRoadway">
+ <el-input v-model="ruleForm.startRoadway" placeholder="璇疯緭鍏ヨ捣濮嬪贩閬�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="缁撴潫浣嶇疆" prop="endLocate">
+ <el-input v-model="ruleForm.endLocate" placeholder="璇疯緭鍏ョ粨鏉熶綅缃�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鐩爣宸烽亾" prop="endRoadway">
+ <el-input v-model="ruleForm.endRoadway" placeholder="璇疯緭鍏ョ洰鏍囧贩閬�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鎵樼洏鍙�" prop="palletNo">
+ <el-input v-model="ruleForm.palletNo" placeholder="璇疯緭鍏ユ墭鐩樺彿" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鎵规鍙�" prop="lotNo">
+ <el-input v-model="ruleForm.lotNo" placeholder="璇疯緭鍏ユ壒娆″彿" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="渚涜揣鎵规" prop="supplierLot">
+ <el-input v-model="ruleForm.supplierLot" placeholder="璇疯緭鍏ヤ緵璐ф壒娆�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鐗╂枡缂栫爜" prop="skuNo">
+ <el-input v-model="ruleForm.skuNo" placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鐗╂枡鍚嶇О" prop="skuName">
+ <el-input v-model="ruleForm.skuName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" maxlength="20" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鏁伴噺" prop="qty">
+ <el-input-number v-model="ruleForm.qty" placeholder="璇疯緭鍏ユ暟閲�" clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鎷嗗灈鏁伴噺" prop="completeQty">
+ <el-input-number v-model="ruleForm.completeQty" placeholder="璇疯緭鍏ユ媶鍨涙暟閲�" clearable />
+
+ </el-form-item>
+
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鎷h揣鏂瑰紡" prop="unstackingMode">
+ <el-input v-model="ruleForm.unstackingMode" placeholder="璇疯緭鍏ユ嫞璐ф柟寮�" maxlength="10" show-word-limit clearable />
+
+ </el-form-item>
+
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="cancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submit">纭� 瀹�</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+<style lang="scss" scoped>
+:deep(.el-select),
+:deep(.el-input-number) {
+ width: 100%;
+}
+</style>
+<script lang="ts" setup>
+ import { ref,onMounted } from "vue";
+ import { ElMessage } from "element-plus";
+ import type { FormRules } from "element-plus";
+ import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
+ import { getDictLabelByVal as dv } from '/@/utils/dict-utils';
+ import { formatDate } from '/@/utils/formatTime';
+ import { addWcsTask, updateWcsTask, detailWcsTask } from "/@/api/wcs/wcsTask";
+ import { getAPI } from '/@/utils/axios-utils';
+ import { SysEnumApi } from '/@/api-services/api';
+
+ //鐖剁骇浼犻�掓潵鐨勫弬鏁�
+ var props = defineProps({
+ title: {
+ type: String,
+ default: "",
+ },
+ });
+ //鐖剁骇浼犻�掓潵鐨勫嚱鏁帮紝鐢ㄤ簬鍥炶皟
+ const emit = defineEmits(["reloadTable"]);
+ const ruleFormRef = ref();
+ const isShowDialog = ref(false);
+ const ruleForm = ref<any>({});
+ //鑷娣诲姞鍏朵粬瑙勫垯
+ const rules = ref<FormRules>({
+ });
+
+ // 椤甸潰鍔犺浇鏃�
+ onMounted(() => {
+
+ });
+
+ // 鎵撳紑寮圭獥
+ const openDialog = async (row: any) => {
+ // ruleForm.value = JSON.parse(JSON.stringify(row));
+ // 鏀圭敤detail鑾峰彇鏈�鏂版暟鎹潵缂栬緫
+ let rowData = JSON.parse(JSON.stringify(row));
+ if (rowData.id)
+ ruleForm.value = (await detailWcsTask(rowData.id)).data.result;
+ else
+ ruleForm.value = rowData;
+ isShowDialog.value = true;
+ };
+
+ // 鍏抽棴寮圭獥
+ const closeDialog = () => {
+ emit("reloadTable");
+ isShowDialog.value = false;
+ };
+
+ // 鍙栨秷
+ const cancel = () => {
+ isShowDialog.value = false;
+ };
+
+ // 鎻愪氦
+ const submit = async () => {
+ ruleFormRef.value.validate(async (isValid: boolean, fields?: any) => {
+ if (isValid) {
+ let values = ruleForm.value;
+ if (ruleForm.value.id == undefined || ruleForm.value.id == null || ruleForm.value.id == "" || ruleForm.value.id == 0) {
+ await addWcsTask(values);
+ } else {
+ await updateWcsTask(values);
+ }
+ closeDialog();
+ } else {
+ ElMessage({
+ message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜,
+ type: "error",
+ });
+ }
+ });
+ };
+
+
+
+
+
+
+ //灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
+ defineExpose({ openDialog });
+</script>
+
+
+
+
diff --git a/Web/src/views/wcs/wcsTask/index.vue b/Web/src/views/wcs/wcsTask/index.vue
new file mode 100644
index 0000000..eac32a8
--- /dev/null
+++ b/Web/src/views/wcs/wcsTask/index.vue
@@ -0,0 +1,291 @@
+锘�<template>
+ <div class="wcsTask-container">
+ <el-row :gutter="8" style="width: 100%; height: 100%; flex: 1">
+ <el-col :span="12" :xs="24" style="display: flex; height: 100%; flex: 1">
+ <el-card class="full-table" shadow="hover" ::body-style="{ height: 'calc(100% - 51px)' }">
+ <template #header>
+ <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>浠诲姟鏃ュ織
+ </template>
+ <el-form :model="queryParams" ref="queryForm" labelWidth="90">
+ <el-row>
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
+ <el-form-item label="鍏抽敭瀛�">
+ <el-input v-model="queryParams.searchKey" clearable="" placeholder="璇疯緭鍏ユā绯婃煡璇㈠叧閿瓧" />
+ </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-input v-model="queryParams.taskNo" clearable="" placeholder="璇疯緭鍏ヤ换鍔″彿" />
+ </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.taskType" placeholder="璇烽�夋嫨浠诲姟绫诲瀷">
+ <el-option v-for="(item, index) in dl('TaskTypeEnum')" :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" v-if="showAdvanceQueryUI">
+ <el-form-item label="鐘舵��">
+ <el-select clearable="" v-model="queryParams.status" placeholder="璇烽�夋嫨鐘舵��">
+ <el-option v-for="(item, index) in dl('TaskStatusEnum')" :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;">
+ <el-button type="primary" icon="ele-Search" @click="handleQuery" v-auth="'wcsTask:page'"> 鏌ヨ
+ </el-button>
+ <el-button icon="ele-Refresh" @click="() => queryParams = {}"> 閲嶇疆 </el-button>
+ <el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI"
+ style="margin-left:5px;"> 楂樼骇鏌ヨ </el-button>
+ <el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI"
+ style="margin-left:5px;"> 闅愯棌 </el-button>
+ <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWcsTask"
+ v-auth="'wcsTask:add'"> 鏂板 </el-button>
+
+ </el-button-group>
+ </el-form-item>
+
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" @row-click="handleClick"
+ @sort-change="sortChange" border="">
+ <el-table-column type="index" label="搴忓彿" width="55" align="center" />
+ <el-table-column prop="taskNo" label="浠诲姟鍙�" show-overflow-tooltip="" />
+ <el-table-column prop="taskType" width="85" label="浠诲姟绫诲瀷" show-overflow-tooltip="">
+ <template #default="scope">
+ <el-tag :type="dv('TaskTypeEnum', scope.row.taskType)?.tagType"> {{ dv('TaskTypeEnum',
+ scope.row.taskType)?.name }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="status" width="85" label="鐘舵��" show-overflow-tooltip="">
+ <template #default="scope">
+ <el-tag :type="dv('TaskStatusEnum', scope.row.status)?.tagType"> {{ dv('TaskStatusEnum',
+ scope.row.status)?.name }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column prop="startLocate" label="璧峰浣嶇疆" show-overflow-tooltip="" />
+ <el-table-column prop="endLocate" label="缁撴潫浣嶇疆" show-overflow-tooltip="" />
+ <el-table-column prop="palletNo" label="鎵樼洏鍙�" show-overflow-tooltip="" />
+ <el-table-column prop="cancelDate" label="鍙栨秷鏃堕棿" show-overflow-tooltip="" />
+ <el-table-column prop="finishDate" label="瀹屾垚鏃堕棿" show-overflow-tooltip="" />
+ <el-table-column label="淇敼璁板綍" width="80" align="center" show-overflow-tooltip>
+ <template #default="scope">
+ <ModifyRecord :data="scope.row" />
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="130" align="center" fixed="right" show-overflow-tooltip=""
+ v-if="auth('wcsTask:complete') || auth('wcsTask:cancell')">
+ <template #default="scope">
+ <!-- <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWcsTask(scope.row)"
+ v-auth="'wcsTask:update'"> 缂栬緫 </el-button>
+ <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWcsTask(scope.row)"
+ v-auth="'wcsTask:delete'"> 鍒犻櫎 </el-button> -->
+ <el-button icon="ele-Check" size="small" text="" type="primary" @click="completeTask(scope.row)"
+ v-auth="'wcsTask:complete'"> 瀹屾垚 </el-button>
+ <el-button icon="ele-Close" size="small" text="" type="primary" @click="cancellTask(scope.row)"
+ v-auth="'wcsTask:cancell'"> 鍙栨秷 </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination v-model:currentPage="tableParams.page" v-model:page-size="tableParams.pageSize"
+ :total="tableParams.total" :page-sizes="[10, 20, 50, 100, 200, 500]" size="small" background=""
+ @size-change="handleSizeChange" @current-change="handleCurrentChange"
+ layout="total, sizes, prev, pager, next, jumper" />
+ <printDialog ref="printDialogRef" :title="printWcsTaskTitle" @reloadTable="handleQuery" />
+ <editDialog ref="editDialogRef" :title="editWcsTaskTitle" @reloadTable="handleQuery" />
+ </el-card>
+ </el-col>
+ <el-col :span="12" :xs="24" style="display: flex; height: 100%; flex: 1">
+ <el-card class="full-table" shadow="hover" :body-style="{ height: 'calc(100% - 51px)' }">
+ <template #header>
+ <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"><ele-Collection /></el-icon>浠诲姟璇︽儏
+ </template>
+ <el-form :model="queryParams2" ref="queryForm2" labelWidth="90">
+ <el-row>
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
+ <el-form-item label="浠诲姟鍙�">
+ <el-input v-model="queryParams2.taskNo" clearable="" placeholder="璇疯緭鍏ヤ换鍔″彿" />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
+ <el-form-item>
+ <el-button type="primary" icon="ele-Search" @click="handleQuery2"> 鏌ヨ
+ </el-button>
+ </el-form-item>
+
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-table :data="tableData2" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" border="">
+ <el-table-column type="index" label="搴忓彿" width="55" align="center" />
+ <el-table-column prop="taskNo" label="浠诲姟鍙�" show-overflow-tooltip="" />
+ <el-table-column prop="plcId" label="浜や簰宸ヤ綅鍙�" show-overflow-tooltip="" />
+ <el-table-column prop="plcName" label="浜や簰浣嶇疆" show-overflow-tooltip="" />
+ <el-table-column prop="interactiveMsg" label="浜や簰淇℃伅" show-overflow-tooltip="" />
+ <el-table-column label="淇敼璁板綍" width="80" align="center" show-overflow-tooltip>
+ <template #default="scope">
+ <ModifyRecord :data="scope.row" />
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination v-model:currentPage="tableParams2.page" v-model:page-size="tableParams2.pageSize"
+ :total="tableParams2.total" :page-sizes="[10, 20, 50, 100, 200, 500]" size="small" background=""
+ @size-change="handleSizeChange2" @current-change="handleCurrentChange2"
+ layout="total, sizes, prev, pager, next, jumper" />
+ </el-card>
+ </el-col>
+ </el-row>
+ </div>
+</template>
+
+<script lang="ts" setup="" name="wcsTask">
+import ModifyRecord from '/@/components/table/modifyRecord.vue';
+import { ref } from "vue";
+import { ElMessageBox, ElMessage } from "element-plus";
+import { auth } from '/@/utils/authFunction';
+
+import { getDictDataItem as di, getDictDataList as dl } from '/@/utils/dict-utils';
+import { getDictLabelByVal as dv } from '/@/utils/dict-utils';
+import { formatDate } from '/@/utils/formatTime';
+
+
+import printDialog from '/@/views/system/print/component/hiprint/preview.vue'
+import editDialog from '/@/views/wcs/wcsTask/component/editDialog.vue'
+import { pageWcsTask, deleteWcsTask } from '/@/api/wcs/wcsTask';
+import { pageWcsMonitorTask } from '/@/api/wcs/wcsTaskMonitor';
+import { getAPI } from '/@/utils/axios-utils';
+import { SysEnumApi } from '/@/api-services/api';
+import commonFunction from '/@/utils/commonFunction';
+
+const showAdvanceQueryUI = ref(false);
+const printDialogRef = ref();
+const editDialogRef = ref();
+const loading = ref(false);
+const tableData = ref<any>([]);
+const tableData2 = ref<any>([]);
+const queryParams = ref<any>({});
+const queryParams2 = ref<any>({});
+const tableParams = ref({
+ page: 1,
+ pageSize: 10,
+ total: 0,
+});
+const tableParams2 = ref({
+ page: 1,
+ pageSize: 10,
+ total: 0,
+});
+const printWcsTaskTitle = ref("");
+const editWcsTaskTitle = ref("");
+
+// 鏀瑰彉楂樼骇鏌ヨ鐨勬帶浠舵樉绀虹姸鎬�
+const changeAdvanceQueryUI = () => {
+ showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
+}
+
+// 鏌ヨ鎿嶄綔
+const handleQuery = async () => {
+ loading.value = true;
+ var res = await pageWcsTask(Object.assign(queryParams.value, tableParams.value));
+ tableData.value = res.data.result?.items ?? [];
+ tableParams.value.total = res.data.result?.total;
+ loading.value = false;
+};
+// 鏌ヨ鎿嶄綔
+const handleQuery2 = async () => {
+ loading.value = true;
+ var res = await pageWcsMonitorTask(Object.assign(queryParams2.value, tableParams2.value));
+ tableData2.value = res.data.result?.items ?? [];
+ tableParams2.value.total = res.data.result?.total;
+ loading.value = false;
+};
+
+// 鍒楁帓搴�
+const sortChange = async (column: any) => {
+ queryParams.value.field = column.prop;
+ queryParams.value.order = column.order;
+ await handleQuery();
+};
+
+// 鎵撳紑鏂板椤甸潰
+const openAddWcsTask = () => {
+ editWcsTaskTitle.value = '娣诲姞浠诲姟琛�';
+ editDialogRef.value.openDialog({});
+};
+
+// 鎵撳紑鎵撳嵃椤甸潰
+const openPrintWcsTask = async (row: any) => {
+ printWcsTaskTitle.value = '鎵撳嵃浠诲姟琛�';
+}
+
+// 鎵撳紑缂栬緫椤甸潰
+const openEditWcsTask = (row: any) => {
+ editWcsTaskTitle.value = '缂栬緫浠诲姟琛�';
+ editDialogRef.value.openDialog(row);
+};
+//瀹屾垚浠诲姟
+const completeTask = (row: any) => {
+
+}
+//鍙栨秷浠诲姟
+const cancellTask = (row: any) => {
+
+}
+// 鐐瑰嚮琛ㄦ牸
+const handleClick = (row: any, event: any, column: any) => {
+ queryParams2.value.taskNo = row.taskNo;
+ handleQuery2();
+};
+// 鍒犻櫎
+const delWcsTask = (row: any) => {
+ ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(async () => {
+ await deleteWcsTask(row);
+ handleQuery();
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ })
+ .catch(() => { });
+};
+
+// 鏀瑰彉椤甸潰瀹归噺
+const handleSizeChange = (val: number) => {
+ tableParams.value.pageSize = val;
+ handleQuery();
+};
+
+// 鏀瑰彉椤电爜搴忓彿
+const handleCurrentChange = (val: number) => {
+ tableParams.value.page = val;
+ handleQuery();
+};
+// 鏀瑰彉椤甸潰瀹归噺
+const handleSizeChange2 = (val: number) => {
+ tableParams2.value.pageSize = val;
+ handleQuery();
+};
+
+// 鏀瑰彉椤电爜搴忓彿
+const handleCurrentChange2 = (val: number) => {
+ tableParams2.value.page = val;
+ handleQuery();
+};
+handleQuery();
+handleQuery2();
+</script>
+<style scoped>
+:deep(.el-input),
+:deep(.el-select),
+:deep(.el-input-number) {
+ width: 100%;
+}
+</style>
diff --git a/Web/tsconfig.json b/Web/tsconfig.json
index 14ab5d9..e314fd4 100644
--- a/Web/tsconfig.json
+++ b/Web/tsconfig.json
@@ -26,13 +26,13 @@
/* Strict Type-Checking Options */
"strict": false /* Enable all strict type-checking options. */,
- // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
- // "strictNullChecks": true, /* Enable strict null checks. */
- // "strictFunctionTypes": true, /* Enable strict checking of function types. */
- // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
- // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
- // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
- // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
+ "noImplicitAny": false, /* Raise error on expressions and declarations with an implied 'any' type. */
+ "strictNullChecks": false, /* Enable strict null checks. */
+ "strictFunctionTypes": false, /* Enable strict checking of function types. */
+ "strictBindCallApply": false, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
+ "strictPropertyInitialization": false, /* Enable strict checking of property initialization in classes. */
+ "noImplicitThis": false, /* Raise error on 'this' expressions with an implied 'any' type. */
+ "alwaysStrict": false, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
--
Gitblit v1.8.0