From 94392862193d96b578959e103b831db128b7eb1e Mon Sep 17 00:00:00 2001 From: quowingwang Date: Wed, 10 Dec 2025 13:55:42 +0800 Subject: [PATCH] =?UTF-8?q?andon=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/andon/AndonAlarmContactController.cs | 109 +++++++++++++++++ .../mes/andon/AndonAlarmLevelController.cs | 109 +++++++++++++++++ .../mes/andon/AndonAlarmRecordController.cs | 108 +++++++++++++++++ .../mes/andon/AndonAlarmTypeDictController.cs | 109 +++++++++++++++++ ZR.Admin.WebApi/ZR.Admin.WebApi.csproj | 1 + .../ZrAdmin.NET-报警等级表-1210112619.zip | Bin 0 -> 8233 bytes .../ZrAdmin.NET-报警类型字典-1210112608.zip | Bin 0 -> 8019 bytes .../ZrAdmin.NET-报警联系人表-1210112624.zip | Bin 0 -> 8425 bytes .../ZrAdmin.NET-报警记录-1210112615.zip | Bin 0 -> 9097 bytes ZR.Model/MES/andon/AndonAlarmContact.cs | 86 ++++++++++++++ ZR.Model/MES/andon/AndonAlarmLevel.cs | 65 +++++++++++ ZR.Model/MES/andon/AndonAlarmRecord.cs | 110 ++++++++++++++++++ ZR.Model/MES/andon/AndonAlarmTypeDict.cs | 53 +++++++++ .../MES/andon/Dto/AndonAlarmContactDto.cs | 47 ++++++++ ZR.Model/MES/andon/Dto/AndonAlarmLevelDto.cs | 39 +++++++ ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs | 55 +++++++++ .../MES/andon/Dto/AndonAlarmTypeDictDto.cs | 35 ++++++ ZR.Model/ZR.Model.csproj | 1 + ZR.Service/ZR.Service.csproj | 1 + .../mes/andon/AndonAlarmContactService.cs | 83 +++++++++++++ .../mes/andon/AndonAlarmLevelService.cs | 81 +++++++++++++ .../mes/andon/AndonAlarmRecordService.cs | 90 ++++++++++++++ .../mes/andon/AndonAlarmTypeDictService.cs | 80 +++++++++++++ .../IService/IAndonAlarmContactService.cs | 23 ++++ .../andon/IService/IAndonAlarmLevelService.cs | 23 ++++ .../IService/IAndonAlarmRecordService.cs | 23 ++++ .../IService/IAndonAlarmTypeDictService.cs | 23 ++++ 27 files changed, 1354 insertions(+) create mode 100644 ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmContactController.cs create mode 100644 ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmLevelController.cs create mode 100644 ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs create mode 100644 ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmTypeDictController.cs create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警等级表-1210112619.zip create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警类型字典-1210112608.zip create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警联系人表-1210112624.zip create mode 100644 ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警记录-1210112615.zip create mode 100644 ZR.Model/MES/andon/AndonAlarmContact.cs create mode 100644 ZR.Model/MES/andon/AndonAlarmLevel.cs create mode 100644 ZR.Model/MES/andon/AndonAlarmRecord.cs create mode 100644 ZR.Model/MES/andon/AndonAlarmTypeDict.cs create mode 100644 ZR.Model/MES/andon/Dto/AndonAlarmContactDto.cs create mode 100644 ZR.Model/MES/andon/Dto/AndonAlarmLevelDto.cs create mode 100644 ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs create mode 100644 ZR.Model/MES/andon/Dto/AndonAlarmTypeDictDto.cs create mode 100644 ZR.Service/mes/andon/AndonAlarmContactService.cs create mode 100644 ZR.Service/mes/andon/AndonAlarmLevelService.cs create mode 100644 ZR.Service/mes/andon/AndonAlarmRecordService.cs create mode 100644 ZR.Service/mes/andon/AndonAlarmTypeDictService.cs create mode 100644 ZR.Service/mes/andon/IService/IAndonAlarmContactService.cs create mode 100644 ZR.Service/mes/andon/IService/IAndonAlarmLevelService.cs create mode 100644 ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs create mode 100644 ZR.Service/mes/andon/IService/IAndonAlarmTypeDictService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmContactController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmContactController.cs new file mode 100644 index 00000000..8c7066b0 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmContactController.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Service.mes.andon.Iservice; + +//创建时间:2025-12-10 +namespace ZR.Admin.WebApi.Controllers.andon +{ + /// + /// 报警联系人表 + /// + [Verify] + [Route("mes/AndonAlarmContact")] + public class AndonAlarmContactController : BaseController + { + /// + /// 报警联系人表接口 + /// + private readonly IAndonAlarmContactService _AndonAlarmContactService; + + public AndonAlarmContactController(IAndonAlarmContactService AndonAlarmContactService) + { + _AndonAlarmContactService = AndonAlarmContactService; + } + + /// + /// 查询报警联系人表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:andonalarmcontact:list")] + public IActionResult QueryAndonAlarmContact([FromQuery] AndonAlarmContactQueryDto parm) + { + var response = _AndonAlarmContactService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询报警联系人表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:andonalarmcontact:query")] + public IActionResult GetAndonAlarmContact(int Id) + { + var response = _AndonAlarmContactService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加报警联系人表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:andonalarmcontact:add")] + [Log(Title = "报警联系人表", BusinessType = BusinessType.INSERT)] + public IActionResult AddAndonAlarmContact([FromBody] AndonAlarmContactDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _AndonAlarmContactService.AddAndonAlarmContact(modal); + + return SUCCESS(response); + } + + /// + /// 更新报警联系人表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:andonalarmcontact:edit")] + [Log(Title = "报警联系人表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateAndonAlarmContact([FromBody] AndonAlarmContactDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _AndonAlarmContactService.UpdateAndonAlarmContact(modal); + + return ToResponse(response); + } + + /// + /// 删除报警联系人表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:andonalarmcontact:delete")] + [Log(Title = "报警联系人表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteAndonAlarmContact(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _AndonAlarmContactService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmLevelController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmLevelController.cs new file mode 100644 index 00000000..6fa448a6 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmLevelController.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Service.mes.andon.Iservice; + +//创建时间:2025-12-10 +namespace ZR.Admin.WebApi.Controllers.andon +{ + /// + /// 报警等级表 + /// + [Verify] + [Route("mes/AndonAlarmLevel")] + public class AndonAlarmLevelController : BaseController + { + /// + /// 报警等级表接口 + /// + private readonly IAndonAlarmLevelService _AndonAlarmLevelService; + + public AndonAlarmLevelController(IAndonAlarmLevelService AndonAlarmLevelService) + { + _AndonAlarmLevelService = AndonAlarmLevelService; + } + + /// + /// 查询报警等级表列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:andonalarmlevel:list")] + public IActionResult QueryAndonAlarmLevel([FromQuery] AndonAlarmLevelQueryDto parm) + { + var response = _AndonAlarmLevelService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询报警等级表详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:andonalarmlevel:query")] + public IActionResult GetAndonAlarmLevel(int Id) + { + var response = _AndonAlarmLevelService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加报警等级表 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:andonalarmlevel:add")] + [Log(Title = "报警等级表", BusinessType = BusinessType.INSERT)] + public IActionResult AddAndonAlarmLevel([FromBody] AndonAlarmLevelDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _AndonAlarmLevelService.AddAndonAlarmLevel(modal); + + return SUCCESS(response); + } + + /// + /// 更新报警等级表 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:andonalarmlevel:edit")] + [Log(Title = "报警等级表", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateAndonAlarmLevel([FromBody] AndonAlarmLevelDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _AndonAlarmLevelService.UpdateAndonAlarmLevel(modal); + + return ToResponse(response); + } + + /// + /// 删除报警等级表 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:andonalarmlevel:delete")] + [Log(Title = "报警等级表", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteAndonAlarmLevel(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _AndonAlarmLevelService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs new file mode 100644 index 00000000..3a3a2557 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs @@ -0,0 +1,108 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Service.mes.andon.Iservice; +//创建时间:2025-12-10 +namespace ZR.Admin.WebApi.Controllers.andon +{ + /// + /// 报警记录 + /// + [Verify] + [Route("mes/AndonAlarmRecord")] + public class AndonAlarmRecordController : BaseController + { + /// + /// 报警记录接口 + /// + private readonly IAndonAlarmRecordService _AndonAlarmRecordService; + + public AndonAlarmRecordController(IAndonAlarmRecordService AndonAlarmRecordService) + { + _AndonAlarmRecordService = AndonAlarmRecordService; + } + + /// + /// 查询报警记录列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:list")] + public IActionResult QueryAndonAlarmRecord([FromQuery] AndonAlarmRecordQueryDto parm) + { + var response = _AndonAlarmRecordService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询报警记录详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:query")] + public IActionResult GetAndonAlarmRecord(int Id) + { + var response = _AndonAlarmRecordService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加报警记录 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:add")] + [Log(Title = "报警记录", BusinessType = BusinessType.INSERT)] + public IActionResult AddAndonAlarmRecord([FromBody] AndonAlarmRecordDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _AndonAlarmRecordService.AddAndonAlarmRecord(modal); + + return SUCCESS(response); + } + + /// + /// 更新报警记录 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:edit")] + [Log(Title = "报警记录", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateAndonAlarmRecord([FromBody] AndonAlarmRecordDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _AndonAlarmRecordService.UpdateAndonAlarmRecord(modal); + + return ToResponse(response); + } + + /// + /// 删除报警记录 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:andonalarmrecord:delete")] + [Log(Title = "报警记录", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteAndonAlarmRecord(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _AndonAlarmRecordService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmTypeDictController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmTypeDictController.cs new file mode 100644 index 00000000..92e100b0 --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmTypeDictController.cs @@ -0,0 +1,109 @@ +using Microsoft.AspNetCore.Mvc; +using ZR.Admin.WebApi.Extensions; +using ZR.Admin.WebApi.Filters; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Service.mes.andon.Iservice; + +//创建时间:2025-12-10 +namespace ZR.Admin.WebApi.Controllers.andon +{ + /// + /// 报警类型字典 + /// + [Verify] + [Route("mes/AndonAlarmTypeDict")] + public class AndonAlarmTypeDictController : BaseController + { + /// + /// 报警类型字典接口 + /// + private readonly IAndonAlarmTypeDictService _AndonAlarmTypeDictService; + + public AndonAlarmTypeDictController(IAndonAlarmTypeDictService AndonAlarmTypeDictService) + { + _AndonAlarmTypeDictService = AndonAlarmTypeDictService; + } + + /// + /// 查询报警类型字典列表 + /// + /// + /// + [HttpGet("list")] + [ActionPermissionFilter(Permission = "business:andonalarmtypedict:list")] + public IActionResult QueryAndonAlarmTypeDict([FromQuery] AndonAlarmTypeDictQueryDto parm) + { + var response = _AndonAlarmTypeDictService.GetList(parm); + return SUCCESS(response); + } + + + /// + /// 查询报警类型字典详情 + /// + /// + /// + [HttpGet("{Id}")] + [ActionPermissionFilter(Permission = "business:andonalarmtypedict:query")] + public IActionResult GetAndonAlarmTypeDict(int Id) + { + var response = _AndonAlarmTypeDictService.GetInfo(Id); + + var info = response.Adapt(); + return SUCCESS(info); + } + + /// + /// 添加报警类型字典 + /// + /// + [HttpPost] + [ActionPermissionFilter(Permission = "business:andonalarmtypedict:add")] + [Log(Title = "报警类型字典", BusinessType = BusinessType.INSERT)] + public IActionResult AddAndonAlarmTypeDict([FromBody] AndonAlarmTypeDictDto parm) + { + var modal = parm.Adapt().ToCreate(HttpContext); + + var response = _AndonAlarmTypeDictService.AddAndonAlarmTypeDict(modal); + + return SUCCESS(response); + } + + /// + /// 更新报警类型字典 + /// + /// + [HttpPut] + [ActionPermissionFilter(Permission = "business:andonalarmtypedict:edit")] + [Log(Title = "报警类型字典", BusinessType = BusinessType.UPDATE)] + public IActionResult UpdateAndonAlarmTypeDict([FromBody] AndonAlarmTypeDictDto parm) + { + var modal = parm.Adapt().ToUpdate(HttpContext); + var response = _AndonAlarmTypeDictService.UpdateAndonAlarmTypeDict(modal); + + return ToResponse(response); + } + + /// + /// 删除报警类型字典 + /// + /// + [HttpDelete("{ids}")] + [ActionPermissionFilter(Permission = "business:andonalarmtypedict:delete")] + [Log(Title = "报警类型字典", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteAndonAlarmTypeDict(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _AndonAlarmTypeDictService.Delete(idsArr); + + return ToResponse(response); + } + + + + + } +} \ No newline at end of file diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj index 6a0efb6a..7b7017cd 100644 --- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj +++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj @@ -50,6 +50,7 @@ + diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警等级表-1210112619.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警等级表-1210112619.zip new file mode 100644 index 0000000000000000000000000000000000000000..ef7faa7b0f4d015710b92e788040323268101191 GIT binary patch literal 8233 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 z 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 literal 0 HcmV?d00001 diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警类型字典-1210112608.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警类型字典-1210112608.zip new file mode 100644 index 0000000000000000000000000000000000000000..5f0d25538ed49e5f6bc44f0de747658b72767ba3 GIT binary patch literal 8019 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 literal 0 HcmV?d00001 diff --git a/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警联系人表-1210112624.zip b/ZR.Admin.WebApi/wwwroot/Generatecode/ZrAdmin.NET-报警联系人表-1210112624.zip new file mode 100644 index 0000000000000000000000000000000000000000..266e9a6a30b791c5807766bccf4ec1ccb1736a84 GIT binary patch literal 8425 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 + /// 报警联系人表 + /// + [SugarTable("andon_alarm_contact")] + public class AndonAlarmContact + { + /// + /// ID + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 联系人ID + /// + [SugarColumn(ColumnName = "user_id")] + public string UserId { get; set; } + + /// + /// 联系人姓名 + /// + [SugarColumn(ColumnName = "user_name")] + public string UserName { get; set; } + + /// + /// 职位 + /// + public string Position { get; set; } + + /// + /// 角色 + /// + public string Role { get; set; } + + /// + /// 直属上级 ID + /// + [SugarColumn(ColumnName = "manager_id")] + public string ManagerId { get; set; } + + /// + /// 直属上级姓名 + /// + [SugarColumn(ColumnName = "manager_name")] + public string ManagerName { get; set; } + + /// + /// 联系方式 + /// + public string Phone { get; set; } + + /// + /// 负责产线 + /// + [SugarColumn(ColumnName = "line_code")] + public string LineCode { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/AndonAlarmLevel.cs b/ZR.Model/MES/andon/AndonAlarmLevel.cs new file mode 100644 index 00000000..ad3111df --- /dev/null +++ b/ZR.Model/MES/andon/AndonAlarmLevel.cs @@ -0,0 +1,65 @@ + +namespace ZR.Model.MES.andon +{ + /// + /// 报警等级表 + /// + [SugarTable("andon_alarm_level")] + public class AndonAlarmLevel + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 报警等级名称 + /// + [SugarColumn(ColumnName = "level_name")] + public string LevelName { get; set; } + + /// + /// 三色灯颜色(红色/黄色/绿色) + /// + [SugarColumn(ColumnName = "light_color")] + public string LightColor { get; set; } + + /// + /// 处理时限(分钟) + /// + [SugarColumn(ColumnName = "handle_timeout")] + public int? HandleTimeout { get; set; } + + /// + /// 适用场景 + /// + [SugarColumn(ColumnName = "apply_scenario")] + public string ApplyScenario { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/AndonAlarmRecord.cs b/ZR.Model/MES/andon/AndonAlarmRecord.cs new file mode 100644 index 00000000..bcd33450 --- /dev/null +++ b/ZR.Model/MES/andon/AndonAlarmRecord.cs @@ -0,0 +1,110 @@ + +namespace ZR.Model.MES.andon +{ + /// + /// 报警记录 + /// + [SugarTable("andon_alarm_record")] + public class AndonAlarmRecord + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 产线 + /// + [SugarColumn(ColumnName = "line_code")] + public string LineCode { get; set; } + + /// + /// 报警类型 + /// + [SugarColumn(ColumnName = "alarm_type")] + public string AlarmType { get; set; } + + /// + /// 发送方 + /// + public string Sender { get; set; } + + /// + /// 发送时间 + /// + [SugarColumn(ColumnName = "send_time")] + public DateTime? SendTime { get; set; } + + /// + /// 接收方 + /// + public string Receiver { get; set; } + + /// + /// 响应时间 + /// + [SugarColumn(ColumnName = "response_time")] + public DateTime? ResponseTime { get; set; } + + /// + /// 处理结束时间 + /// + [SugarColumn(ColumnName = "handle_time")] + public DateTime? HandleTime { get; set; } + + /// + /// 持续时间 + /// + [SugarColumn(ColumnName = "duration_time")] + public int? DurationTime { get; set; } + + /// + /// 报警级别 + /// + [SugarColumn(ColumnName = "alarm_level")] + public string AlarmLevel { get; set; } + + /// + /// 报警信息 + /// + [SugarColumn(ColumnName = "alarm_info")] + public string AlarmInfo { get; set; } + + /// + /// 状态(未处理、已处理、上报、超时) + /// + public string Status { get; set; } + + /// + /// 处理结果 + /// + [SugarColumn(ColumnName = "handle_result")] + public string HandleResult { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/AndonAlarmTypeDict.cs b/ZR.Model/MES/andon/AndonAlarmTypeDict.cs new file mode 100644 index 00000000..0bbba43f --- /dev/null +++ b/ZR.Model/MES/andon/AndonAlarmTypeDict.cs @@ -0,0 +1,53 @@ + +namespace ZR.Model.MES.andon +{ + /// + /// 报警类型字典 + /// + [SugarTable("andon_alarm_type_dict")] + public class AndonAlarmTypeDict + { + /// + /// 主键 + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 报警类型编码(唯一) + /// + [SugarColumn(ColumnName = "type_code")] + public string TypeCode { get; set; } + + /// + /// 报警类型名称 + /// + [SugarColumn(ColumnName = "type_name")] + public string TypeName { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "cREATED_BY")] + public string CreatedBy { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "cREATED_TIME")] + public DateTime? CreatedTime { get; set; } + + /// + /// 更新人 + /// + [SugarColumn(ColumnName = "uPDATED_BY")] + public string UpdatedBy { get; set; } + + /// + /// 更新时间 + /// + [SugarColumn(ColumnName = "uPDATED_TIME")] + public DateTime? UpdatedTime { get; set; } + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmContactDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmContactDto.cs new file mode 100644 index 00000000..6d548ef3 --- /dev/null +++ b/ZR.Model/MES/andon/Dto/AndonAlarmContactDto.cs @@ -0,0 +1,47 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.andon.Dto +{ + /// + /// 报警联系人表查询对象 + /// + public class AndonAlarmContactQueryDto : PagerInfo + { + } + + /// + /// 报警联系人表输入输出对象 + /// + public class AndonAlarmContactDto + { + [Required(ErrorMessage = "ID不能为空")] + public int Id { get; set; } + + public string UserId { get; set; } + + public string UserName { get; set; } + + public string Position { get; set; } + + public string Role { get; set; } + + public string ManagerId { get; set; } + + public string ManagerName { get; set; } + + public string Phone { get; set; } + + public string LineCode { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmLevelDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmLevelDto.cs new file mode 100644 index 00000000..1f3c2d30 --- /dev/null +++ b/ZR.Model/MES/andon/Dto/AndonAlarmLevelDto.cs @@ -0,0 +1,39 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.andon.Dto +{ + /// + /// 报警等级表查询对象 + /// + public class AndonAlarmLevelQueryDto : PagerInfo + { + } + + /// + /// 报警等级表输入输出对象 + /// + public class AndonAlarmLevelDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string LevelName { get; set; } + + public string LightColor { get; set; } + + public int? HandleTimeout { get; set; } + + public string ApplyScenario { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs new file mode 100644 index 00000000..8f5ab71c --- /dev/null +++ b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs @@ -0,0 +1,55 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.andon.Dto +{ + /// + /// 报警记录查询对象 + /// + public class AndonAlarmRecordQueryDto : PagerInfo + { + } + + /// + /// 报警记录输入输出对象 + /// + public class AndonAlarmRecordDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string LineCode { get; set; } + + public string AlarmType { get; set; } + + public string Sender { get; set; } + + public DateTime? SendTime { get; set; } + + public string Receiver { get; set; } + + public DateTime? ResponseTime { get; set; } + + public DateTime? HandleTime { get; set; } + + public int? DurationTime { get; set; } + + public string AlarmLevel { get; set; } + + public string AlarmInfo { get; set; } + + public string Status { get; set; } + + public string HandleResult { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmTypeDictDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmTypeDictDto.cs new file mode 100644 index 00000000..7f14c6d3 --- /dev/null +++ b/ZR.Model/MES/andon/Dto/AndonAlarmTypeDictDto.cs @@ -0,0 +1,35 @@ +using System.ComponentModel.DataAnnotations; + +namespace ZR.Model.MES.andon.Dto +{ + /// + /// 报警类型字典查询对象 + /// + public class AndonAlarmTypeDictQueryDto : PagerInfo + { + } + + /// + /// 报警类型字典输入输出对象 + /// + public class AndonAlarmTypeDictDto + { + [Required(ErrorMessage = "主键不能为空")] + public int Id { get; set; } + + public string TypeCode { get; set; } + + public string TypeName { get; set; } + + public string CreatedBy { get; set; } + + public DateTime? CreatedTime { get; set; } + + public string UpdatedBy { get; set; } + + public DateTime? UpdatedTime { get; set; } + + + + } +} \ No newline at end of file diff --git a/ZR.Model/ZR.Model.csproj b/ZR.Model/ZR.Model.csproj index 360fce37..acc685cb 100644 --- a/ZR.Model/ZR.Model.csproj +++ b/ZR.Model/ZR.Model.csproj @@ -26,6 +26,7 @@ + diff --git a/ZR.Service/ZR.Service.csproj b/ZR.Service/ZR.Service.csproj index dcda7a1c..00737af8 100644 --- a/ZR.Service/ZR.Service.csproj +++ b/ZR.Service/ZR.Service.csproj @@ -22,6 +22,7 @@ + diff --git a/ZR.Service/mes/andon/AndonAlarmContactService.cs b/ZR.Service/mes/andon/AndonAlarmContactService.cs new file mode 100644 index 00000000..3b13e1b2 --- /dev/null +++ b/ZR.Service/mes/andon/AndonAlarmContactService.cs @@ -0,0 +1,83 @@ +using Infrastructure.Attribute; +using SqlSugar; +using ZR.Model; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Repository; +using ZR.Service.mes.andon.Iservice; + +namespace ZR.Service.mes.andon +{ + /// + /// 报警联系人表Service业务层处理 + /// + [AppService(ServiceType = typeof(IAndonAlarmContactService), ServiceLifetime = LifeTime.Transient)] + public class AndonAlarmContactService : BaseService, IAndonAlarmContactService + { + /// + /// 查询报警联系人表列表 + /// + /// + /// + public PagedInfo GetList(AndonAlarmContactQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public AndonAlarmContact GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加报警联系人表 + /// + /// + /// + public AndonAlarmContact AddAndonAlarmContact(AndonAlarmContact model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改报警联系人表 + /// + /// + /// + public int UpdateAndonAlarmContact(AndonAlarmContact model) + { + //var response = Update(w => w.Id == model.Id, it => new AndonAlarmContact() + //{ + // UserName = model.UserName, + // Position = model.Position, + // Role = model.Role, + // ManagerName = model.ManagerName, + // Phone = model.Phone, + // LineCode = model.LineCode, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/andon/AndonAlarmLevelService.cs b/ZR.Service/mes/andon/AndonAlarmLevelService.cs new file mode 100644 index 00000000..9559e0e0 --- /dev/null +++ b/ZR.Service/mes/andon/AndonAlarmLevelService.cs @@ -0,0 +1,81 @@ +using Infrastructure.Attribute; +using SqlSugar; +using ZR.Model; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Repository; +using ZR.Service.mes.andon.Iservice; + +namespace ZR.Service.mes.andon +{ + /// + /// 报警等级表Service业务层处理 + /// + [AppService(ServiceType = typeof(IAndonAlarmLevelService), ServiceLifetime = LifeTime.Transient)] + public class AndonAlarmLevelService : BaseService, IAndonAlarmLevelService + { + /// + /// 查询报警等级表列表 + /// + /// + /// + public PagedInfo GetList(AndonAlarmLevelQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public AndonAlarmLevel GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加报警等级表 + /// + /// + /// + public AndonAlarmLevel AddAndonAlarmLevel(AndonAlarmLevel model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改报警等级表 + /// + /// + /// + public int UpdateAndonAlarmLevel(AndonAlarmLevel model) + { + //var response = Update(w => w.Id == model.Id, it => new AndonAlarmLevel() + //{ + // LevelName = model.LevelName, + // LightColor = model.LightColor, + // HandleTimeout = model.HandleTimeout, + // ApplyScenario = model.ApplyScenario, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/andon/AndonAlarmRecordService.cs b/ZR.Service/mes/andon/AndonAlarmRecordService.cs new file mode 100644 index 00000000..da87cbb7 --- /dev/null +++ b/ZR.Service/mes/andon/AndonAlarmRecordService.cs @@ -0,0 +1,90 @@ +using Infrastructure.Attribute; +using SqlSugar; +using ZR.Model; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Repository; +using ZR.Service.mes.andon.Iservice; + + +namespace ZR.Service.mes.andon +{ + /// + /// 报警记录Service业务层处理 + /// + [AppService(ServiceType = typeof(IAndonAlarmRecordService), ServiceLifetime = LifeTime.Transient)] + public class AndonAlarmRecordService : BaseService, IAndonAlarmRecordService + { + /// + /// 查询报警记录列表 + /// + /// + /// + public PagedInfo GetList(AndonAlarmRecordQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public AndonAlarmRecord GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加报警记录 + /// + /// + /// + public AndonAlarmRecord AddAndonAlarmRecord(AndonAlarmRecord model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改报警记录 + /// + /// + /// + public int UpdateAndonAlarmRecord(AndonAlarmRecord model) + { + //var response = Update(w => w.Id == model.Id, it => new AndonAlarmRecord() + //{ + // LineCode = model.LineCode, + // AlarmType = model.AlarmType, + // Sender = model.Sender, + // SendTime = model.SendTime, + // Receiver = model.Receiver, + // ResponseTime = model.ResponseTime, + // HandleTime = model.HandleTime, + // DurationTime = model.DurationTime, + // AlarmLevel = model.AlarmLevel, + // AlarmInfo = model.AlarmInfo, + // Status = model.Status, + // HandleResult = model.HandleResult, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/andon/AndonAlarmTypeDictService.cs b/ZR.Service/mes/andon/AndonAlarmTypeDictService.cs new file mode 100644 index 00000000..0bbae703 --- /dev/null +++ b/ZR.Service/mes/andon/AndonAlarmTypeDictService.cs @@ -0,0 +1,80 @@ +using Infrastructure.Attribute; +using SqlSugar; +using ZR.Model; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; +using ZR.Repository; +using ZR.Service.mes.andon.Iservice; + + +namespace ZR.Service.mes.andon +{ + /// + /// 报警类型字典Service业务层处理 + /// + [AppService(ServiceType = typeof(IAndonAlarmTypeDictService), ServiceLifetime = LifeTime.Transient)] + public class AndonAlarmTypeDictService : BaseService, IAndonAlarmTypeDictService + { + /// + /// 查询报警类型字典列表 + /// + /// + /// + public PagedInfo GetList(AndonAlarmTypeDictQueryDto parm) + { + var predicate = Expressionable.Create(); + + var response = Queryable() + .Where(predicate.ToExpression()) + .ToPage(parm); + + return response; + } + + + /// + /// 获取详情 + /// + /// + /// + public AndonAlarmTypeDict GetInfo(int Id) + { + var response = Queryable() + .Where(x => x.Id == Id) + .First(); + + return response; + } + + /// + /// 添加报警类型字典 + /// + /// + /// + public AndonAlarmTypeDict AddAndonAlarmTypeDict(AndonAlarmTypeDict model) + { + return Context.Insertable(model).ExecuteReturnEntity(); + } + + /// + /// 修改报警类型字典 + /// + /// + /// + public int UpdateAndonAlarmTypeDict(AndonAlarmTypeDict model) + { + //var response = Update(w => w.Id == model.Id, it => new AndonAlarmTypeDict() + //{ + // TypeCode = model.TypeCode, + // TypeName = model.TypeName, + // CreatedBy = model.CreatedBy, + // CreatedTime = model.CreatedTime, + // UpdatedBy = model.UpdatedBy, + // UpdatedTime = model.UpdatedTime, + //}); + //return response; + return Update(model, true); + } + + } +} \ No newline at end of file diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmContactService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmContactService.cs new file mode 100644 index 00000000..aaa37fc6 --- /dev/null +++ b/ZR.Service/mes/andon/IService/IAndonAlarmContactService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using System.Collections.Generic; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; + +namespace ZR.Service.mes.andon.Iservice +{ + /// + /// 报警联系人表service接口 + /// + public interface IAndonAlarmContactService : IBaseService + { + PagedInfo GetList(AndonAlarmContactQueryDto parm); + + AndonAlarmContact GetInfo(int Id); + + AndonAlarmContact AddAndonAlarmContact(AndonAlarmContact parm); + + int UpdateAndonAlarmContact(AndonAlarmContact parm); + + } +} diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmLevelService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmLevelService.cs new file mode 100644 index 00000000..32d8cf6f --- /dev/null +++ b/ZR.Service/mes/andon/IService/IAndonAlarmLevelService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using System.Collections.Generic; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; + +namespace ZR.Service.mes.andon.Iservice +{ + /// + /// 报警等级表service接口 + /// + public interface IAndonAlarmLevelService : IBaseService + { + PagedInfo GetList(AndonAlarmLevelQueryDto parm); + + AndonAlarmLevel GetInfo(int Id); + + AndonAlarmLevel AddAndonAlarmLevel(AndonAlarmLevel parm); + + int UpdateAndonAlarmLevel(AndonAlarmLevel parm); + + } +} diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs new file mode 100644 index 00000000..01ed2472 --- /dev/null +++ b/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using System.Collections.Generic; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; + +namespace ZR.Service.mes.andon.Iservice +{ + /// + /// 报警记录service接口 + /// + public interface IAndonAlarmRecordService : IBaseService + { + PagedInfo GetList(AndonAlarmRecordQueryDto parm); + + AndonAlarmRecord GetInfo(int Id); + + AndonAlarmRecord AddAndonAlarmRecord(AndonAlarmRecord parm); + + int UpdateAndonAlarmRecord(AndonAlarmRecord parm); + + } +} diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmTypeDictService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmTypeDictService.cs new file mode 100644 index 00000000..78128231 --- /dev/null +++ b/ZR.Service/mes/andon/IService/IAndonAlarmTypeDictService.cs @@ -0,0 +1,23 @@ +using System; +using ZR.Model; +using System.Collections.Generic; +using ZR.Model.MES.andon; +using ZR.Model.MES.andon.Dto; + +namespace ZR.Service.mes.andon.Iservice +{ + /// + /// 报警类型字典service接口 + /// + public interface IAndonAlarmTypeDictService : IBaseService + { + PagedInfo GetList(AndonAlarmTypeDictQueryDto parm); + + AndonAlarmTypeDict GetInfo(int Id); + + AndonAlarmTypeDict AddAndonAlarmTypeDict(AndonAlarmTypeDict parm); + + int UpdateAndonAlarmTypeDict(AndonAlarmTypeDict parm); + + } +}