From c725c305325e1e485a6804e5eced888056195125 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期四, 29 八月 2024 14:05:21 +0800 Subject: [PATCH] 生成点位 --- Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs | 57 ++++++++++++++++++++++++++-- Web/src/views/wcs/wcsDevice/index.vue | 26 ++++++++++--- Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs | 13 ++++++ Web/src/api/wcs/wcsDevice.ts | 8 ++++ Admin.NET/WCS.Application/PLC/PLCTaskAction.cs | 5 ++ 5 files changed, 98 insertions(+), 11 deletions(-) diff --git a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs index 63086d6..facc754 100644 --- a/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs +++ b/Admin.NET/WCS.Application/PLC/PLCTaskAction.cs @@ -4,6 +4,9 @@ namespace WCS.Application; public static class PLCTaskAction { + //鏈嶅姟杩愯鐘舵�� + public static bool boRunningState = false; + private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId); private static List<WcsPlc> listPlc; @@ -48,6 +51,7 @@ listPlcUtil.Add(plc); } cts = new CancellationTokenSource(); + boRunningState = true; StartRead(); } /// <summary> @@ -127,5 +131,6 @@ public static void Stop() { cts.Cancel(); + boRunningState = false; } } \ No newline at end of file diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs b/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs index b0c07e3..a4b8c8a 100644 --- a/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs +++ b/Admin.NET/WCS.Application/Service/WcsDevice/Dto/WcsDeviceInput.cs @@ -210,3 +210,16 @@ { } +public class GeneratePosInput +{ + /// <summary> + /// 涓婚敭Id + /// </summary> + [Required(ErrorMessage = "涓婚敭Id涓嶈兘涓虹┖")] + public long Id { get; set; } + /// <summary> + /// 璧峰鐐逛綅 + /// </summary> + [Required(ErrorMessage = "璧峰鐐逛綅涓嶈兘涓虹┖")] + public int Pos { get; set; } +} \ No newline at end of file diff --git a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs index 9c8e36d..b52d4b1 100644 --- a/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs +++ b/Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs @@ -28,19 +28,19 @@ input.Field = "u.Id"; input.Order = "desc"; } - input.SearchKey = input.SearchKey?.Trim(); + input.SearchKey = input.SearchKey?.Trim(); var query = _wcsDeviceRep.AsQueryable() .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u => u.Text.Contains(input.SearchKey) ) - .WhereIF(input.PlcId>0, u => u.PlcId == input.PlcId) + .WhereIF(input.PlcId > 0, u => u.PlcId == input.PlcId) .WhereIF(!string.IsNullOrWhiteSpace(input.Text), u => u.Text.Contains(input.Text.Trim())) //澶勭悊澶栭敭鍜孴reeSelector鐩稿叧瀛楁鐨勮繛鎺� - .LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id ) + .LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id) .Select((u, plcid) => new WcsDeviceOutput { Id = u.Id, - PlcId = u.PlcId, + PlcId = u.PlcId, PlcIdIP = plcid.IP, Level = (DeviceLevelEnum)u.Level, DbNumber = u.DbNumber, @@ -60,7 +60,7 @@ CreateOrgName = u.CreateOrgName, IsDelete = u.IsDelete, }); - return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); + return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize); } /// <summary> @@ -150,7 +150,54 @@ ).ToListAsync(); } + /// <summary> + /// 鐢熸垚鐐逛綅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost] + [ApiDescriptionSettings(Name = "GeneratePos")] + [DisplayName("鐢熸垚鐐逛綅")] + public async Task GeneratePos(GeneratePosInput input) + { + var modDevice = await _wcsDeviceRep.GetByIdAsync(input.Id); + var listPosition = new List<WcsPosition>(); + listPosition.Add(new WcsPosition() + { + DeviceId = modDevice.Id, + StationNum = modDevice.StationNum, + PlcPos = input.Pos.ToString(), + PosType = PLCDataTypeEnum.String, + Text = "TaskNo" + }); + listPosition.Add(new WcsPosition() + { + DeviceId = modDevice.Id, + StationNum = modDevice.StationNum, + PlcPos = (input.Pos + 4).ToString(), + PosType = PLCDataTypeEnum.UShort, + Text = "TaskType" + }); + listPosition.Add(new WcsPosition() + { + DeviceId = modDevice.Id, + StationNum = modDevice.StationNum, + PlcPos = (input.Pos + 6).ToString(), + PosType = PLCDataTypeEnum.UShort, + Text = "StartLocatNo" + }); + listPosition.Add(new WcsPosition() + { + DeviceId = modDevice.Id, + StationNum = modDevice.StationNum, + PlcPos = (input.Pos + 8).ToString(), + PosType = PLCDataTypeEnum.UShort, + Text = "EndLocatNo" + }); + + await _wcsDeviceRep.Context.Insertable(listPosition).ExecuteCommandAsync(); + } } diff --git a/Web/src/api/wcs/wcsDevice.ts b/Web/src/api/wcs/wcsDevice.ts index 985447f..8bd165a 100644 --- a/Web/src/api/wcs/wcsDevice.ts +++ b/Web/src/api/wcs/wcsDevice.ts @@ -6,6 +6,7 @@ PageWcsDevice = '/api/wcsDevice/page', DetailWcsDevice = '/api/wcsDevice/detail', GetWcsPlcPlcIdDropdown = '/api/wcsDevice/WcsPlcPlcIdDropdown', + GeneratePos = '/api/wcsDevice/GeneratePos', } // 澧炲姞璁惧淇℃伅 @@ -54,3 +55,10 @@ method: 'get' }); +export const generatePos = (params?: any) => + request({ + url: Api.GeneratePos, + method: 'post', + data: params + }); + \ No newline at end of file diff --git a/Web/src/views/wcs/wcsDevice/index.vue b/Web/src/views/wcs/wcsDevice/index.vue index adb4f8f..bb543eb 100644 --- a/Web/src/views/wcs/wcsDevice/index.vue +++ b/Web/src/views/wcs/wcsDevice/index.vue @@ -37,7 +37,6 @@ style="margin-left:5px;"> 闅愯棌 </el-button> <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWcsDevice" v-auth="'wcsDevice:add'"> 鏂板 </el-button> - </el-button-group> </el-form-item> @@ -59,7 +58,7 @@ <el-table-column prop="level" label="璁惧绾у埆" show-overflow-tooltip=""> <template #default="scope"> <el-tag :type="dv('DeviceLevelEnum', scope.row.level)?.tagType"> {{ dv('DeviceLevelEnum', - scope.row.level)?.name}}</el-tag> + scope.row.level)?.name }}</el-tag> </template> </el-table-column> <el-table-column prop="dbNumber" label="DB鍖哄煙" show-overflow-tooltip="" /> @@ -69,7 +68,7 @@ <el-table-column prop="posType" label="娴佺▼瀛楃被鍨�" show-overflow-tooltip=""> <template #default="scope"> <el-tag :type="dv('PLCDataTypeEnum', scope.row.posType)?.tagType"> {{ dv('PLCDataTypeEnum', - scope.row.posType)?.name}}</el-tag> + scope.row.posType)?.name }}</el-tag> </template> </el-table-column> <el-table-column prop="ledIP" label="鏄剧ず灞廼p鍦板潃" show-overflow-tooltip="" /> @@ -79,13 +78,15 @@ <ModifyRecord :data="scope.row" /> </template> </el-table-column> - <el-table-column label="鎿嶄綔" width="140" align="center" fixed="right" show-overflow-tooltip="" + <el-table-column label="鎿嶄綔" width="220" align="center" fixed="right" show-overflow-tooltip="" v-if="auth('wcsDevice:update') || auth('wcsDevice:delete')"> <template #default="scope"> <el-button icon="ele-Edit" size="small" text="" type="primary" @click="openEditWcsDevice(scope.row)" v-auth="'wcsDevice:update'"> 缂栬緫 </el-button> <el-button icon="ele-Delete" size="small" text="" type="primary" @click="delWcsDevice(scope.row)" v-auth="'wcsDevice:delete'"> 鍒犻櫎 </el-button> + <el-button icon="ele-Plus" size="small" text="" type="primary" @click="generateDevicePos(scope.row)" + v-auth="'wcsDevice:generate'"> 鐢熸垚鐐逛綅 </el-button> </template> </el-table-column> </el-table> @@ -112,7 +113,7 @@ import printDialog from '/@/views/system/print/component/hiprint/preview.vue' import editDialog from '/@/views/wcs/wcsDevice/component/editDialog.vue' -import { pageWcsDevice, deleteWcsDevice } from '/@/api/wcs/wcsDevice'; +import { pageWcsDevice, deleteWcsDevice, generatePos } from '/@/api/wcs/wcsDevice'; import { getWcsPlcPlcIdDropdown } from '/@/api/wcs/wcsDevice'; const showAdvanceQueryUI = ref(false); @@ -167,7 +168,20 @@ editWcsDeviceTitle.value = '缂栬緫璁惧淇℃伅'; editDialogRef.value.openDialog(row); }; - +//鐢熸垚鐐逛綅 +const generateDevicePos = (row: any) => { + ElMessageBox.prompt('璇疯緭鍏ヨ捣濮嬬偣浣�', '鐢熸垚鐐逛綅', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + }) + .then(async ({ value }) => { + await generatePos({ id: row.id, pos: value }); + ElMessage({ + type: 'success', + message: `鐢熸垚鐐逛綅鎴愬姛`, + }) + }) +} // 鍒犻櫎 const delWcsDevice = (row: any) => { ElMessageBox.confirm(`纭畾瑕佸垹闄ゅ悧?`, "鎻愮ず", { -- Gitblit v1.8.0