diff --git a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs
index 6138f298..fef0760c 100644
--- a/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/andon/AndonAlarmRecordController.cs
@@ -115,6 +115,44 @@ namespace ZR.Admin.WebApi.Controllers.andon
return SUCCESS(response);
}
+ ///
+ /// 报警响应
+ ///
+ ///
+ [HttpPost("response")]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecord:edit")]
+ [Log(Title = "报警响应", BusinessType = BusinessType.UPDATE)]
+ public ApiResult AlarmResponse([FromBody] AndonAlarmRecordDto parm)
+ {
+ var result = _AndonAlarmRecordService.AlarmResponse(parm);
+ return result;
+ }
+ ///
+ /// 报警处理
+ ///
+ ///
+ [HttpPost("handle")]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecord:edit")]
+ [Log(Title = "报警处理", BusinessType = BusinessType.UPDATE)]
+ public ApiResult AlarmHandle([FromBody] AndonAlarmRecordDto parm)
+ {
+ var result = _AndonAlarmRecordService.AlarmHandle(parm);
+ return result;
+ }
+
+
+ ///
+ /// 报警主动上报
+ ///
+ ///
+ [HttpPost("reportHand")]
+ [ActionPermissionFilter(Permission = "business:andonalarmrecord:edit")]
+ [Log(Title = "报警上报", BusinessType = BusinessType.UPDATE)]
+ public ApiResult AlarmReportHand([FromBody] AndonAlarmRecordDto parm)
+ {
+ var result = _AndonAlarmRecordService.AlarmReportHand(parm);
+ return result;
+ }
}
}
\ No newline at end of file
diff --git a/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs b/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs
index 16eb03dc..9b1e2faf 100644
--- a/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs
+++ b/ZR.Model/MES/andon/AndonAlarmRecordProcess.cs
@@ -24,23 +24,6 @@ namespace ZR.Model.MES.andon
///
public string Operate { get; set; }
- ///
- /// 操作人
- ///
- public string Operator { get; set; }
-
- ///
- /// 操作人名称
- ///
- [SugarColumn(ColumnName = "operator_name")]
- public string OperatorName { get; set; }
-
- ///
- /// 操作时间
- ///
- [SugarColumn(ColumnName = "operate_time")]
- public DateTime? OperateTime { get; set; }
-
///
/// 备注
///
@@ -52,6 +35,12 @@ namespace ZR.Model.MES.andon
[SugarColumn(ColumnName = "created_by")]
public string CreatedBy { get; set; }
+ ///
+ /// 创建人名称
+ ///
+ [SugarColumn(ColumnName = "created_name")]
+ public string CreatedName { get; set; }
+
///
/// 创建时间
///
@@ -64,6 +53,12 @@ namespace ZR.Model.MES.andon
[SugarColumn(ColumnName = "updated_by")]
public string UpdatedBy { get; set; }
+ ///
+ /// 更新人名称
+ ///
+ [SugarColumn(ColumnName = "updated_name")]
+ public string UpdatedName { get; set; }
+
///
/// 更新时间
///
diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs
index fef0cf44..edc577d0 100644
--- a/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs
+++ b/ZR.Model/MES/andon/Dto/AndonAlarmRecordDto.cs
@@ -53,6 +53,9 @@ namespace ZR.Model.MES.andon.Dto
public DateTime? UpdatedTime { get; set; }
+ public string UserId { get; set; }
+ public string UserName { get; set; }
+
}
diff --git a/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs b/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs
index e9fc29d3..3fab080a 100644
--- a/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs
+++ b/ZR.Model/MES/andon/Dto/AndonAlarmRecordProcessDto.cs
@@ -22,19 +22,16 @@ namespace ZR.Model.MES.andon.Dto
public string Operate { get; set; }
- public string Operator { get; set; }
-
- public string OperatorName { get; set; }
-
- public DateTime? OperateTime { get; set; }
-
public string Remarks { get; set; }
public string CreatedBy { get; set; }
+ public string CreatedName { get; set; }
+
public DateTime? CreatedTime { get; set; }
public string UpdatedBy { get; set; }
+ public string UpdatedName { get; set; }
public DateTime? UpdatedTime { get; set; }
diff --git a/ZR.Service/mes/andon/AndonAlarmRecordService.cs b/ZR.Service/mes/andon/AndonAlarmRecordService.cs
index c9d02858..ba521570 100644
--- a/ZR.Service/mes/andon/AndonAlarmRecordService.cs
+++ b/ZR.Service/mes/andon/AndonAlarmRecordService.cs
@@ -1,5 +1,8 @@
using Infrastructure.Attribute;
+using Infrastructure.Model;
+using JinianNet.JNTemplate.Parsers;
using SqlSugar;
+using SqlSugar.Extensions;
using System;
using ZR.Model;
using ZR.Model.MES.andon;
@@ -15,6 +18,8 @@ namespace ZR.Service.mes.andon
[AppService(ServiceType = typeof(IAndonAlarmRecordService), ServiceLifetime = LifeTime.Transient)]
public class AndonAlarmRecordService : BaseService, IAndonAlarmRecordService
{
+ private AndonAlarmLevelService andonAlarmLevelService = new AndonAlarmLevelService();
+ private AndonAlarmRecordProcessService andonAlarmRecordProcessService = new AndonAlarmRecordProcessService();
///
/// 查询报警记录列表
///
@@ -114,5 +119,157 @@ namespace ZR.Service.mes.andon
return Update(model, true);
}
+ public ApiResult AlarmResponse(AndonAlarmRecordDto parm)
+ {
+ try
+ {
+ var response = new ApiResult();
+ if (parm != null)
+ {
+ var record = Queryable()
+ .Where(x => x.Id == parm.Id)
+ .First();
+ if (record != null)
+ {
+ if (record.AlarmLevel != null && record.AlarmLevel.Length > 0)
+ {
+ int minute = 0;
+ var levelInfo = andonAlarmLevelService.Queryable()
+ .Where(x => x.LevelName == record.AlarmLevel).First();
+ if (levelInfo != null && levelInfo.HandleTimeout != null)
+ {
+ minute = (int)levelInfo.HandleTimeout;
+ }
+ // 提前计算超时时间,提高可读性
+ var createdTime = record.CreatedTime.ObjToDate();
+ var timeoutTime = createdTime.AddMinutes(minute);
+ var isTimeout = DateTime.Now > timeoutTime;
+ record.Status = isTimeout ? "超时响应" : "及时响应";
+ }
+ else
+ {
+ record.Status = "及时响应";
+ }
+ record.Remarks = parm.Remarks;
+ record.UpdatedBy = parm.UserId;
+ record.UpdatedTime = DateTime.Now;
+ UpdateAndonAlarmRecord(record);
+ AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess();
+ andonAlarmRecordProcess.AlarmCode = record.AlarmCode;
+ andonAlarmRecordProcess.Operate = record.Status;
+ andonAlarmRecordProcess.CreatedBy = parm.UserId;
+ andonAlarmRecordProcess.CreatedName = parm.UserName;
+ andonAlarmRecordProcess.CreatedTime = DateTime.Now;
+ andonAlarmRecordProcess.UpdatedBy = parm.UserId;
+ andonAlarmRecordProcess.UpdatedName = parm.UserName;
+ andonAlarmRecordProcess.UpdatedTime = DateTime.Now;
+ int iResult = andonAlarmRecordProcessService.Insert(andonAlarmRecordProcess);
+ return ApiResult.Success("成功",andonAlarmRecordProcess);
+ }
+ }
+ else
+ {
+ response.Code = 500;
+ response.Msg = "参数不能为空";
+ }
+ return response;
+ }
+ catch (Exception ex)
+ {
+ return ApiResult.Error(500, ex.Message);
+ }
+ }
+
+
+ public ApiResult AlarmHandle(AndonAlarmRecordDto parm)
+ {
+ try
+ {
+ if (parm == null)
+ {
+ return ApiResult.Error(500, "参数不能为空");
+ }
+ if (parm.Status == "及时响应" || parm.Status == "超时响应")
+ {
+ var record = Queryable()
+ .Where(x => x.Id == parm.Id)
+ .First();
+ if(parm.Status == "及时响应")
+ {
+ record.Status = "及时处理";
+ }
+ else
+ {
+ record.Status = "超时处理";
+ }
+ record.HandleResult = parm.HandleResult;
+ record.Remarks = parm.Remarks;
+ record.UpdatedBy = parm.UserId;
+ record.UpdatedTime = DateTime.Now;
+ UpdateAndonAlarmRecord(record);
+ AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess();
+ andonAlarmRecordProcess.AlarmCode = record.AlarmCode;
+ andonAlarmRecordProcess.Operate = record.Status;
+ andonAlarmRecordProcess.CreatedBy = parm.UserId;
+ andonAlarmRecordProcess.CreatedName = parm.UserName;
+ andonAlarmRecordProcess.CreatedTime = DateTime.Now;
+ andonAlarmRecordProcess.UpdatedBy = parm.UserId;
+ andonAlarmRecordProcess.UpdatedName = parm.UserName;
+ andonAlarmRecordProcess.UpdatedTime = DateTime.Now;
+ int iResult = andonAlarmRecordProcessService.Insert(andonAlarmRecordProcess);
+ return ApiResult.Success("成功", andonAlarmRecordProcess);
+ }
+ else
+ {
+ return ApiResult.Error(500, "只能处理响应状态数据");
+ }
+ }
+ catch (Exception ex)
+ {
+ return ApiResult.Error(500, ex.Message);
+ }
+ }
+
+ public ApiResult AlarmReportHand(AndonAlarmRecordDto parm)
+ {
+ try
+ {
+ if (parm == null)
+ {
+ return ApiResult.Error(500, "参数不能为空");
+ }
+ if (parm.Status == "待响应" || parm.Status == "及时响应" || parm.Status == "超时响应")
+ {
+ var record = Queryable()
+ .Where(x => x.Id == parm.Id)
+ .First();
+
+ record.Status = "主动上报";
+ record.Remarks = parm.Remarks;
+ record.UpdatedBy = parm.UserId;
+ record.UpdatedTime = DateTime.Now;
+ UpdateAndonAlarmRecord(record);
+ AndonAlarmRecordProcess andonAlarmRecordProcess = new AndonAlarmRecordProcess();
+ andonAlarmRecordProcess.AlarmCode = record.AlarmCode;
+ andonAlarmRecordProcess.Operate = record.Status;
+ andonAlarmRecordProcess.CreatedBy = parm.UserId;
+ andonAlarmRecordProcess.CreatedName = parm.UserName;
+ andonAlarmRecordProcess.CreatedTime = DateTime.Now;
+ andonAlarmRecordProcess.UpdatedBy = parm.UserId;
+ andonAlarmRecordProcess.UpdatedName = parm.UserName;
+ andonAlarmRecordProcess.UpdatedTime = DateTime.Now;
+ int iResult = andonAlarmRecordProcessService.Insert(andonAlarmRecordProcess);
+ return ApiResult.Success("成功", andonAlarmRecordProcess);
+ }
+ else
+ {
+ return ApiResult.Error(500, "只能处理响应状态数据");
+ }
+ }
+ catch (Exception ex)
+ {
+ return ApiResult.Error(500, ex.Message);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs b/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs
index 6a645185..edd35b5e 100644
--- a/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs
+++ b/ZR.Service/mes/andon/IService/IAndonAlarmRecordService.cs
@@ -3,6 +3,7 @@ using ZR.Model;
using System.Collections.Generic;
using ZR.Model.MES.andon;
using ZR.Model.MES.andon.Dto;
+using Infrastructure.Model;
namespace ZR.Service.mes.andon.Iservice
{
@@ -19,5 +20,10 @@ namespace ZR.Service.mes.andon.Iservice
AndonAlarmRecord AddAndonAlarmRecord(AndonAlarmRecord parm);
int UpdateAndonAlarmRecord(AndonAlarmRecord parm);
+ ApiResult AlarmResponse(AndonAlarmRecordDto parm);
+
+ ApiResult AlarmHandle(AndonAlarmRecordDto parm);
+
+ ApiResult AlarmReportHand(AndonAlarmRecordDto parm);
}
}