| Admin.NET/WCS.Application/Entity/WcsAlarmInfo.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Admin.NET/WCS.Application/Entity/WcsAlarmLog.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Admin.NET/WCS.Application/Service/WcsAlarmLog/Dto/WcsAlarmLogDto.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Admin.NET/WCS.Application/Service/WcsAlarmLog/Dto/WcsAlarmLogInput.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Admin.NET/WCS.Application/Service/WcsAlarmLog/Dto/WcsAlarmLogOutput.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Admin.NET/WCS.Application/Service/WcsAlarmLog/WcsAlarmLogService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Web/src/views/wcs/wcsAlarmLog/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Admin.NET/WCS.Application/Entity/WcsAlarmInfo.cs
New file @@ -0,0 +1,58 @@ namespace WCS.Application; /// <summary> /// 报警信息表 /// </summary> [SugarTable("WCSAlarmInfo","报警信息表")] public class WcsAlarmInfo : EntityBaseData { /// <summary> /// PLCIP地址 /// </summary> [SugarColumn(ColumnName = "PlcIP", ColumnDescription = "PLCIP地址", Length = 20)] public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> [SugarColumn(ColumnName = "AlarmCode", ColumnDescription = "报警编号", Length = 20)] public string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> [SugarColumn(ColumnName = "AlarmName", ColumnDescription = "报警描述", Length = 100)] public string? AlarmName { get; set; } /// <summary> /// 显示屏ip地址 /// </summary> [SugarColumn(ColumnName = "LedIP", ColumnDescription = "显示屏ip地址", Length = 20)] public string? LedIP { get; set; } /// <summary> /// 状态 /// </summary> [SugarColumn(ColumnName = "Status", ColumnDescription = "状态")] public YesNoEnum? Status { get; set; } = YesNoEnum.N; /// <summary> /// 设备类型 /// </summary> [SugarColumn(ColumnName = "Type", ColumnDescription = "设备类型", Length = 20)] public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> [SugarColumn(ColumnName = "AlarmTime", ColumnDescription = "报警日期")] public DateTime? AlarmTime { get; set; } /// <summary> /// LED状态 /// </summary> [SugarColumn(ColumnName = "LedStatus", ColumnDescription = "LED状态")] public int? LedStatus { get; set; } } Admin.NET/WCS.Application/Entity/WcsAlarmLog.cs
New file @@ -0,0 +1,40 @@ namespace WCS.Application; /// <summary> /// 报警日志表 /// </summary> [SugarTable("WCSAlarmLog", "报警日志表")] public class WcsAlarmLog : EntityBaseData { /// <summary> /// PLCIP地址 /// </summary> [SugarColumn(ColumnName = "PlcIP", ColumnDescription = "PLCIP地址", Length = 20)] public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> [SugarColumn(ColumnName = "AlarmCode", ColumnDescription = "报警编号", Length = 20)] public string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> [SugarColumn(ColumnName = "AlarmName", ColumnDescription = "报警描述", Length = 100)] public string? AlarmName { get; set; } /// <summary> /// 设备类型 /// </summary> [SugarColumn(ColumnName = "Type", ColumnDescription = "设备类型", Length = 20)] public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> [SugarColumn(ColumnName = "AlarmTime", ColumnDescription = "报警日期")] public DateTime? AlarmTime { get; set; } } Admin.NET/WCS.Application/Service/WcsAlarmLog/Dto/WcsAlarmLogDto.cs
New file @@ -0,0 +1,84 @@ namespace WCS.Application; /// <summary> /// 报警日志输出参数 /// </summary> public class WcsAlarmLogDto { /// <summary> /// 主键Id /// </summary> public long Id { get; set; } /// <summary> /// PLCIP地址 /// </summary> public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> public string? AlarmName { get; set; } /// <summary> /// 设备类型 /// </summary> public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public DateTime? AlarmTime { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime? CreateTime { get; set; } /// <summary> /// 更新时间 /// </summary> public DateTime? UpdateTime { get; set; } /// <summary> /// 创建者Id /// </summary> public long? CreateUserId { get; set; } /// <summary> /// 创建者姓名 /// </summary> public string? CreateUserName { get; set; } /// <summary> /// 修改者Id /// </summary> public long? UpdateUserId { get; set; } /// <summary> /// 修改者姓名 /// </summary> public string? UpdateUserName { get; set; } /// <summary> /// 创建者部门Id /// </summary> public long? CreateOrgId { get; set; } /// <summary> /// 创建者部门名称 /// </summary> public string? CreateOrgName { get; set; } /// <summary> /// 软删除 /// </summary> public bool IsDelete { get; set; } } Admin.NET/WCS.Application/Service/WcsAlarmLog/Dto/WcsAlarmLogInput.cs
New file @@ -0,0 +1,164 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; using System.ComponentModel.DataAnnotations; namespace WCS.Application; /// <summary> /// 报警日志基础输入参数 /// </summary> public class WcsAlarmLogBaseInput { /// <summary> /// PLCIP地址 /// </summary> public virtual string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public virtual string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> public virtual string? AlarmName { get; set; } /// <summary> /// 设备类型 /// </summary> public virtual string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public virtual DateTime? AlarmTime { get; set; } /// <summary> /// 创建时间 /// </summary> public virtual DateTime? CreateTime { get; set; } /// <summary> /// 更新时间 /// </summary> public virtual DateTime? UpdateTime { get; set; } /// <summary> /// 创建者Id /// </summary> public virtual long? CreateUserId { get; set; } /// <summary> /// 创建者姓名 /// </summary> public virtual string? CreateUserName { get; set; } /// <summary> /// 修改者Id /// </summary> public virtual long? UpdateUserId { get; set; } /// <summary> /// 修改者姓名 /// </summary> public virtual string? UpdateUserName { get; set; } /// <summary> /// 创建者部门Id /// </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 PageWcsAlarmLogInput : BasePageInput { /// <summary> /// 关键字查询 /// </summary> public string? SearchKey { get; set; } /// <summary> /// PLCIP地址 /// </summary> public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public string? AlarmCode { get; set; } /// <summary> /// 设备类型 /// </summary> public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public DateTime? AlarmTime { get; set; } /// <summary> /// 报警日期范围 /// </summary> public DateTime?[] AlarmTimeRange { get; set; } } /// <summary> /// 报警日志增加输入参数 /// </summary> public class AddWcsAlarmLogInput : WcsAlarmLogBaseInput { /// <summary> /// 软删除 /// </summary> [Required(ErrorMessage = "软删除不能为空")] public override bool IsDelete { get; set; } } /// <summary> /// 报警日志删除输入参数 /// </summary> public class DeleteWcsAlarmLogInput : BaseIdInput { } /// <summary> /// 报警日志更新输入参数 /// </summary> public class UpdateWcsAlarmLogInput : WcsAlarmLogBaseInput { /// <summary> /// 主键Id /// </summary> [Required(ErrorMessage = "主键Id不能为空")] public long Id { get; set; } } /// <summary> /// 报警日志主键查询输入参数 /// </summary> public class QueryByIdWcsAlarmLogInput : DeleteWcsAlarmLogInput { } Admin.NET/WCS.Application/Service/WcsAlarmLog/Dto/WcsAlarmLogOutput.cs
New file @@ -0,0 +1,91 @@ // Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! namespace WCS.Application; /// <summary> /// 报警日志输出参数 /// </summary> public class WcsAlarmLogOutput { /// <summary> /// 主键Id /// </summary> public long Id { get; set; } /// <summary> /// PLCIP地址 /// </summary> public string? PlcIP { get; set; } /// <summary> /// 报警编号 /// </summary> public string? AlarmCode { get; set; } /// <summary> /// 报警描述 /// </summary> public string? AlarmName { get; set; } /// <summary> /// 设备类型 /// </summary> public string? Type { get; set; } /// <summary> /// 报警日期 /// </summary> public DateTime? AlarmTime { get; set; } /// <summary> /// 创建时间 /// </summary> public DateTime? CreateTime { get; set; } /// <summary> /// 更新时间 /// </summary> public DateTime? UpdateTime { get; set; } /// <summary> /// 创建者Id /// </summary> public long? CreateUserId { get; set; } /// <summary> /// 创建者姓名 /// </summary> public string? CreateUserName { get; set; } /// <summary> /// 修改者Id /// </summary> public long? UpdateUserId { get; set; } /// <summary> /// 修改者姓名 /// </summary> public string? UpdateUserName { get; set; } /// <summary> /// 创建者部门Id /// </summary> public long? CreateOrgId { get; set; } /// <summary> /// 创建者部门名称 /// </summary> public string? CreateOrgName { get; set; } /// <summary> /// 软删除 /// </summary> public bool IsDelete { get; set; } } Admin.NET/WCS.Application/Service/WcsAlarmLog/WcsAlarmLogService.cs
New file @@ -0,0 +1,88 @@ using Admin.NET.Core.Service; using Microsoft.AspNetCore.Http; namespace WCS.Application; /// <summary> /// 报警日志服务 /// </summary> [ApiDescriptionSettings(ApplicationConst.GroupName, Order = 100)] public class WcsAlarmLogService : IDynamicApiController, ITransient { private readonly SqlSugarRepository<WcsAlarmLog> _wcsAlarmLogRep; public WcsAlarmLogService(SqlSugarRepository<WcsAlarmLog> wcsAlarmLogRep) { _wcsAlarmLogRep = wcsAlarmLogRep; } /// <summary> /// 分页查询报警日志 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost] [ApiDescriptionSettings(Name = "Page")] [DisplayName("分页查询报警日志")] public async Task<SqlSugarPagedList<WcsAlarmLogOutput>> Page(PageWcsAlarmLogInput input) { input.SearchKey = input.SearchKey?.Trim(); var query = _wcsAlarmLogRep.AsQueryable() .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u => u.PlcIP.Contains(input.SearchKey) || u.AlarmCode.Contains(input.SearchKey) || u.Type.Contains(input.Type) ) .WhereIF(!string.IsNullOrWhiteSpace(input.PlcIP), u => u.PlcIP.Contains(input.PlcIP.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.AlarmCode), u => u.AlarmCode.Contains(input.AlarmCode.Trim())) .WhereIF(!string.IsNullOrWhiteSpace(input.Type), u => u.Type == input.Type) .WhereIF(input.AlarmTimeRange != null && input.AlarmTimeRange.Length == 2, u => u.AlarmTime >= input.AlarmTimeRange[0] && u.AlarmTime <= input.AlarmTimeRange[1]) .Select<WcsAlarmLogOutput>(); 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(AddWcsAlarmLogInput input) { var entity = input.Adapt<WcsAlarmLog>(); await _wcsAlarmLogRep.InsertAsync(entity); return entity.Id; } /// <summary> /// 获取报警日志 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "Detail")] [DisplayName("获取报警日志")] public async Task<WcsAlarmLog> Detail([FromQuery] QueryByIdWcsAlarmLogInput input) { return await _wcsAlarmLogRep.GetFirstAsync(u => u.Id == input.Id); } /// <summary> /// 获取报警日志列表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet] [ApiDescriptionSettings(Name = "List")] [DisplayName("获取报警日志列表")] public async Task<List<WcsAlarmLogOutput>> List([FromQuery] PageWcsAlarmLogInput input) { return await _wcsAlarmLogRep.AsQueryable().Select<WcsAlarmLogOutput>().ToListAsync(); } } Web/src/views/wcs/wcsAlarmLog/index.vue
New file @@ -0,0 +1,171 @@ <template> <div class="wcsAlarmLog-container"> <el-card shadow="hover" :body-style="{ paddingBottom: '0' }"> <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="PLCIP地址"> <el-input v-model="queryParams.plcIP" clearable="" placeholder="请输入PLCIP地址"/> </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.alarmCode" 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.type" 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-date-picker type="daterange" v-model="queryParams.alarmTimeRange" value-format="YYYY-MM-DD HH:mm:ss" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" /> </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="'wcsAlarmLog: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-group> </el-form-item> </el-col> </el-row> </el-form> </el-card> <el-card class="full-table" shadow="hover" style="margin-top: 5px"> <el-table :data="tableData" style="width: 100%" v-loading="loading" tooltip-effect="light" row-key="id" @sort-change="sortChange" border=""> <el-table-column type="index" label="序号" width="55" align="center"/> <el-table-column prop="plcIP" label="PLCIP地址" show-overflow-tooltip="" /> <el-table-column prop="alarmCode" label="报警编号" show-overflow-tooltip="" /> <el-table-column prop="alarmName" label="报警描述" show-overflow-tooltip="" /> <el-table-column prop="type" label="设备类型" show-overflow-tooltip="" /> <el-table-column prop="alarmTime" 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="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="printWcsAlarmLogTitle" @reloadTable="handleQuery" /> </el-card> </div> </template> <script lang="ts" setup="" name="wcsAlarmLog"> import { ref } from "vue"; import { ElMessageBox, ElMessage } from "element-plus"; import { auth } from '/@/utils/authFunction'; import ModifyRecord from '/@/components/table/modifyRecord.vue'; import { formatDate } from '/@/utils/formatTime'; import printDialog from '/@/views/system/print/component/hiprint/preview.vue' import { pageWcsAlarmLog, deleteWcsAlarmLog } from '/@/api/log/wcsAlarmLog'; const showAdvanceQueryUI = ref(false); const printDialogRef = ref(); const editDialogRef = ref(); const loading = ref(false); const tableData = ref<any>([]); const queryParams = ref<any>({}); const tableParams = ref({ page: 1, pageSize: 10, total: 0, }); const printWcsAlarmLogTitle = ref(""); const editWcsAlarmLogTitle = ref(""); // 改变高级查询的控件显示状态 const changeAdvanceQueryUI = () => { showAdvanceQueryUI.value = !showAdvanceQueryUI.value; } // 查询操作 const handleQuery = async () => { loading.value = true; var res = await pageWcsAlarmLog(Object.assign(queryParams.value, tableParams.value)); tableData.value = res.data.result?.items ?? []; tableParams.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 openAddWcsAlarmLog = () => { editWcsAlarmLogTitle.value = '添加报警日志'; editDialogRef.value.openDialog({}); }; // 打开打印页面 const openPrintWcsAlarmLog = async (row: any) => { printWcsAlarmLogTitle.value = '打印报警日志'; } // 改变页面容量 const handleSizeChange = (val: number) => { tableParams.value.pageSize = val; handleQuery(); }; // 改变页码序号 const handleCurrentChange = (val: number) => { tableParams.value.page = val; handleQuery(); }; handleQuery(); </script> <style scoped> :deep(.el-input), :deep(.el-select), :deep(.el-input-number) { width: 100%; } </style>