From ed843fc126586dcd189d34fed265ea4b185383b1 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 13 九月 2024 16:11:13 +0800 Subject: [PATCH] 修改任务管理页面问题 --- Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs | 16 +++++ Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs | 11 +++ Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs | 17 ++++- Admin.NET/WCS.Application/Entity/WcsTask.cs | 20 ++++++ Admin.NET/WCS.Application/Enum/TaskEnum.cs | 17 +++++ Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs | 14 ++++ Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput2.cs | 33 +++++++++++ Web/src/views/wcs/wcsTask/index.vue | 44 +++++++++++++- 8 files changed, 158 insertions(+), 14 deletions(-) diff --git a/Admin.NET/WCS.Application/Entity/WcsTask.cs b/Admin.NET/WCS.Application/Entity/WcsTask.cs index 4a3b69b..732fa88 100644 --- a/Admin.NET/WCS.Application/Entity/WcsTask.cs +++ b/Admin.NET/WCS.Application/Entity/WcsTask.cs @@ -108,7 +108,25 @@ /// </summary> [SugarColumn(ColumnName = "CompleteQty", ColumnDescription = "鎷嗗灈鏁伴噺")] public int? CompleteQty { get; set; } - + + /// <summary> + /// 鏄惁缁戝畾 + /// </summary> + [SugarColumn(ColumnName = "IsBind", ColumnDescription = "鏄惁缁戝畾")] + public IsBindEnum? IsBind { get; set; } + + /// <summary> + /// 鏁村灈鏁伴噺 + /// </summary> + [SugarColumn(ColumnName = "PalletQty", ColumnDescription = "鏁村灈鏁伴噺")] + public int? PalletQty { get; set; } + + /// <summary> + /// 鎷嗗灈宸ヤ綅鍙� + /// </summary> + [SugarColumn(ColumnName = "StationNum", ColumnDescription = "鎷嗗灈宸ヤ綅鍙�", Length = 10)] + public string? StationNum { get; set; } + /// <summary> /// 鎷h揣鏂瑰紡 /// </summary> diff --git a/Admin.NET/WCS.Application/Enum/TaskEnum.cs b/Admin.NET/WCS.Application/Enum/TaskEnum.cs index c59998b..814b46f 100644 --- a/Admin.NET/WCS.Application/Enum/TaskEnum.cs +++ b/Admin.NET/WCS.Application/Enum/TaskEnum.cs @@ -103,4 +103,21 @@ /// </summary> [Description("浜哄伐鎷h揣鍑�")] Artificial = 1, +} +/// <summary> +/// 鏄惁缁戝畾 +/// </summary> +[Description("鏄惁鎴愬姛鏋氫妇")] +public enum IsBindEnum +{ + /// <summary> + /// 鏈粦瀹� + /// </summary> + [Description("鏈粦瀹�")] + No = 0, + /// <summary> + /// 宸茬粦瀹� + /// </summary> + [Description("宸茬粦瀹�")] + Yes = 1 } \ No newline at end of file diff --git a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs index 30ed7df..39dba5f 100644 --- a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs +++ b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskInput.cs @@ -195,8 +195,18 @@ /// 鐘舵�� /// </summary> public TaskStatusEnum? Status { get; set; } - - } + + /// <summary> + /// 鎵樼洏鍙� + /// </summary> + public string? PalletNo { get; set; } + + /// <summary> + /// 鏉ユ簮 + /// </summary> + public string? Origin { get; set; } + +} /// <summary> /// 浠诲姟琛ㄥ鍔犺緭鍏ュ弬鏁� diff --git a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs index 928a687..42d0771 100644 --- a/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs +++ b/Admin.NET/WCS.Application/Service/WcsTask/Dto/WcsTaskOutput.cs @@ -100,7 +100,21 @@ /// 鎷嗗灈鏁伴噺 /// </summary> public int? CompleteQty { get; set; } - + + /// <summary> + /// 鏄惁缁戝畾 + /// </summary> + public IsBindEnum? IsBind { get; set; } + + /// <summary> + /// 鏁村灈鏁伴噺 + /// </summary> + public int? PalletQty { get; set; } + + /// <summary> + /// 鎷嗗灈宸ヤ綅鍙� + public string? StationNum { get; set; } + /// <summary> /// 鎷h揣鏂瑰紡 /// </summary> diff --git a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs index 3f2e706..d0e0afe 100644 --- a/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs +++ b/Admin.NET/WCS.Application/Service/WcsTask/WcsTaskService.cs @@ -44,6 +44,8 @@ .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) + .WhereIF(!string.IsNullOrWhiteSpace(input.PalletNo), u => u.PalletNo.Contains(input.PalletNo.Trim())) + .WhereIF(!string.IsNullOrWhiteSpace(input.Origin), u => u.Origin.Contains(input.Origin.Trim())) .Select<WcsTaskOutput>(); return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } @@ -179,12 +181,17 @@ if (modTask.Status > TaskStatusEnum.Doing) throw Oops.Oh("浠诲姟鐘舵�佸紓甯�"); if (input.Status == TaskStatusEnum.Complete) + { modTask.IsSuccess = TaskSuccessEnum.Success; + modTask.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + } else + { modTask.IsSuccess = TaskSuccessEnum.Fail; - modTask.FinishDate = DateTime.Now; + modTask.CancelDate = DateTime.Now;//鍙栨秷鏃堕棿 + } modTask.Status = input.Status; - await _wcsTaskRep.Context.Updateable(modTask).UpdateColumns(s => new { s.Status, s.IsSuccess, s.FinishDate, s.UpdateTime,s.UpdateUserId,s.UpdateUserName }).ExecuteCommandAsync(); + await _wcsTaskRep.Context.Updateable(modTask).UpdateColumns(s => new { s.Status, s.IsSuccess, s.FinishDate, s.CancelDate, s.UpdateTime, s.UpdateUserId, s.UpdateUserName }).ExecuteCommandAsync(); //鍐欏叆浠诲姟鏄庣粏琛� WcsTaskMonitor modTaskMonitor = new WcsTaskMonitor() { diff --git a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput2.cs b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput2.cs new file mode 100644 index 0000000..880a6b4 --- /dev/null +++ b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/Dto/WcsTaskMonitorOutput2.cs @@ -0,0 +1,33 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace WCS.Application.Service.WcsTaskMonitor.Dto +{ + public class WcsTaskMonitorOutput2 + { + public long Id { get; set; } + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string? TaskNo { get; set; } + + /// <summary> + /// 浜や簰浣嶇疆 + /// </summary> + public string? PlcName { get; set; } + + /// <summary> + /// 浜や簰淇℃伅 + /// </summary> + public string? InteractiveMsg { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public DateTime? CreateTime { get; set; } + + } +} diff --git a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs index b85a40c..a536c41 100644 --- a/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs +++ b/Admin.NET/WCS.Application/Service/WcsTaskMonitor/WcsTaskMonitorService.cs @@ -1,4 +1,6 @@ 锘� +using WCS.Application.Service.WcsTaskMonitor.Dto; + namespace WCS.Application; /// <summary> @@ -21,7 +23,7 @@ [HttpPost] [ApiDescriptionSettings(Name = "Page")] [DisplayName("鍒嗛〉鏌ヨ浠诲姟鏄庣粏鐩戞帶琛�")] - public async Task<SqlSugarPagedList<WcsTaskMonitorOutput>> Page(PageWcsTaskMonitorInput input) + public async Task<SqlSugarPagedList<WcsTaskMonitorOutput2>> Page(PageWcsTaskMonitorInput input) { input.SearchKey = input.SearchKey?.Trim(); var query = _wcsTaskMonitorRep.AsQueryable() @@ -29,8 +31,17 @@ 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); + .LeftJoin<WcsDevice>((u, plcid) => u.PlcId == plcid.Id) + .Select((u, plcid) => new WcsTaskMonitorOutput2 + { + Id = u.Id, + TaskNo = u.TaskNo, + PlcName = plcid.StationNum + "宸ヤ綅锛�" + plcid.Text, + InteractiveMsg = u.InteractiveMsg, + CreateTime = u.CreateTime + }) + .OrderByDescending(u=>u.CreateTime); + return await query.OrderBuilder(input,"","").ToPagedListAsync(input.Page, input.PageSize); } /// <summary> diff --git a/Web/src/views/wcs/wcsTask/index.vue b/Web/src/views/wcs/wcsTask/index.vue index 38c5808..50b6eaf 100644 --- a/Web/src/views/wcs/wcsTask/index.vue +++ b/Web/src/views/wcs/wcsTask/index.vue @@ -35,6 +35,16 @@ </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-input v-model="queryParams.palletNo" 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.origin" 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-group style="display: flex; align-items: center;"> @@ -70,16 +80,39 @@ scope.row.status)?.name }}</el-tag> </template> </el-table-column> + <el-table-column prop="origin" label="鏉ユ簮" show-overflow-tooltip="" /> <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="completeQty" label="鎷嗗灈绠辨暟" show-overflow-tooltip="" /> + <el-table-column prop="palletQty" label="鏁磋泛绠辨暟" show-overflow-tooltip="" /> + <el-table-column prop="lotNo" label="鎵规鍙�" show-overflow-tooltip="" /> + <el-table-column prop="skuNo" label="鐗╂枡缂栫爜" show-overflow-tooltip="" /> + <el-table-column prop="skuName" label="鐗╂枡鍚嶇О" show-overflow-tooltip="" /> + <el-table-column prop="unstackingMode" width="100" label="鎷嗗灈鏂瑰紡" show-overflow-tooltip=""> + <template #default="scope"> + <span v-if="scope.row.unstackingMode"> + <el-tag :type="dv('UnstackingModeEnum', scope.row.unstackingMode)?.tagType"> {{ dv('UnstackingModeEnum', + scope.row.unstackingMode)?.name }}</el-tag> + </span> + </template> + </el-table-column> + <el-table-column prop="isBind" width="85" label="鏄惁缁戝畾" show-overflow-tooltip=""> + <template #default="scope"> + <span v-if="scope.row.isBind!=null"> + <el-tag :type="dv('IsBindEnum', scope.row.isBind)?.tagType"> {{ dv('IsBindEnum', + scope.row.isBind)?.name }}</el-tag> + </span> + </template> + </el-table-column> + <el-table-column prop="stationNum" 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> + <!-- <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> --> <el-table-column prop="鎿嶄綔" label="鎿嶄綔" width="130" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wcsTask:complete') || auth('wcsTask:cancell')"> <template #default="scope"> @@ -126,14 +159,15 @@ 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="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> + <el-table-column prop="createTime" 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> --> </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="" -- Gitblit v1.8.0