AI识别接收

This commit is contained in:
李超 2025-08-09 12:27:29 +08:00
parent a52ecd996d
commit afa4976828
12 changed files with 741 additions and 1 deletions

View File

@ -0,0 +1,24 @@
CREATE TABLE [dbo].[HSSE_AIAlarmEvent](
[AIAlarmEventId] [nvarchar](50) NOT NULL,
[DeviceId] [nvarchar](50) NULL,
[DeviceVersion] [varchar](50) NULL,
[Date] [datetime] NULL,
[TimeStamp] [timestamp] NULL,
[Label] [nvarchar](50) NULL,
[Alias] [nvarchar](50) NULL,
[Count] [int] NULL,
[Extend] [nvarchar](max) NULL,
CONSTRAINT [PK_HSSE_AIAlarmEvent] PRIMARY KEY CLUSTERED
(
[AIAlarmEventId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO [dbo].[Sys_Menu] ([MenuId], [MenuName], [Icon], [Url], [SortIndex], [SuperMenu], [MenuType], [IsOffice], [IsEnd], [IsUsed]) VALUES (N'3D3AB427-FA89-4863-9E66-402FE3D46095', N'AIÉãÏñÍ·±¨¾¯', NULL, N'HSSE/AlarmEvent/AIAlarmEvent.aspx', '10', N'8F0FB635-75C7-472D-B423-B7B886E632FF', N'Menu_HSSE', '0', '1', '1');

View File

@ -11,6 +11,12 @@ namespace BLL
/// </summary>
public static DateTime DtmarkTime = DateTime.Parse("2020-01-01");
public static int CacheMinutes = 10;
/// <summary>
/// AI摄像头报警
/// </summary>
public const string AIAlarmEventMenuId = "3D3AB427-FA89-4863-9E66-402FE3D46095";
#region
/// <summary>
/// 系统管理员ID
@ -6246,5 +6252,7 @@ namespace BLL
/// 施工工程师(总包)
/// </summary>
public const string SGEngineer = "F7302DA3-B522-43F9-98CC-6317622A884E";
}
}

View File

@ -295,7 +295,57 @@ namespace BLL
public const string HSEAgreementUrlFilePath = "FileUpload\\HSEAgreementUrl\\";
#endregion
#endregion
public static void SaveAttachUrlForApi(string source, string attachUrl, string menuId, string toKeyId)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
string rootUrl = ConfigurationManager.AppSettings["localRoot"];
if (string.IsNullOrEmpty(rootUrl))
{
rootUrl = Funs.RootPath;
}
List<Model.AttachFile> sour = (from x in db.AttachFile
where x.MenuId == menuId && x.ToKeyId == toKeyId
select x).ToList();
if (sour.Count() == 0)
{
Model.AttachFile att = new Model.AttachFile
{
AttachFileId = SQLHelper.GetNewID(),
ToKeyId = toKeyId,
AttachSource = source.ToString(),
AttachUrl = attachUrl,
MenuId = menuId,
// ImageByte= imageByte,
//AttachPath= attachPath,
};
if (menuId == BLL.Const.PersonListMenuId)
{
att.ImageByte = AttachFileService.SetImageToByteArray(rootUrl + attachUrl.Split(',')[0]);
}
db.AttachFile.InsertOnSubmit(att);
db.SubmitChanges();
}
else
{
Model.AttachFile att = db.AttachFile.FirstOrDefault(x => x.MenuId == menuId && x.AttachFileId == sour.First().AttachFileId);
if (att != null)
{
att.ToKeyId = toKeyId;
att.AttachSource = source.ToString();
att.AttachUrl = attachUrl;
att.MenuId = menuId;
if (menuId == BLL.Const.PersonListMenuId)
{
att.ImageByte = AttachFileService.SetImageToByteArray(rootUrl + attachUrl.Split(',')[0]);
}
db.SubmitChanges();
}
}
}
}
/// <summary>
/// 保存附件
/// </summary>

View File

@ -954,6 +954,7 @@
<Content Include="HSSE\Administrative\DriverManager.aspx" />
<Content Include="HSSE\Administrative\DriverManagerEdit.aspx" />
<Content Include="HSSE\Administrative\DriverManagerView.aspx" />
<Content Include="HSSE\AlarmEvent\AIAlarmEvent.aspx" />
<Content Include="HSSE\Check\CheckColligation.aspx" />
<Content Include="HSSE\Check\CheckColligationDetailEdit.aspx" />
<Content Include="HSSE\Check\CheckColligationEdit.aspx" />
@ -11124,6 +11125,13 @@
<Compile Include="HSSE\Administrative\DriverManagerView.aspx.designer.cs">
<DependentUpon>DriverManagerView.aspx</DependentUpon>
</Compile>
<Compile Include="HSSE\AlarmEvent\AIAlarmEvent.aspx.cs">
<DependentUpon>AIAlarmEvent.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="HSSE\AlarmEvent\AIAlarmEvent.aspx.designer.cs">
<DependentUpon>AIAlarmEvent.aspx</DependentUpon>
</Compile>
<Compile Include="HSSE\Check\CheckColligation.aspx.cs">
<DependentUpon>CheckColligation.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

View File

@ -0,0 +1,127 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AIAlarmEvent.aspx.cs" Inherits="FineUIPro.Web.HSSE.AlarmEvent.AIAlarmEvent" %>
<%@ Register Src="~/Controls/UnitProjectTControl.ascx" TagName="UnitProjectTControl" TagPrefix="uc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AI摄像头报警</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true"
Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" AutoScroll="true">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="摄像头报警" EnableCollapse="true"
runat="server" BoxFlex="1" EnableColumnLines="true" DataKeyNames="AIAlarmEventId"
AllowCellEditing="true" ClicksToEdit="2" DataIDField="AIAlarmEventId" AllowSorting="true"
SortField="Date" SortDirection="DESC" OnSort="Grid1_Sort" AllowPaging="true"
IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange"
EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:TextBox ID="txtCarManagerCode" runat="server" Label="编号" EmptyText="输入查询条件" LabelAlign="Right"
Width="320px" AutoPostBack="true" OnTextChanged="TextBox_TextChanged">
</f:TextBox>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp" Text="导出"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:TemplateField ColumnID="tfNumber" Width="50px" HeaderText="序号" HeaderTextAlign="Center"
TextAlign="Center">
<ItemTemplate>
<asp:Label ID="lblNumber" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
<f:RenderField Width="150px" ColumnID="DeviceVersion" DataField="DeviceVersion" SortField="DeviceVersion"
FieldType="String" HeaderText="设备版本" HeaderTextAlign="Center" TextAlign="Center" ExpandUnusedSpace="true">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="Date" DataField="Date" SortField="Date"
FieldType="Date" Renderer="Date" RendererArgument="yyyy-MM-dd HH:mm" HeaderText="报警时间" ExpandUnusedSpace="true"
HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="Label" DataField="Label" SortField="Label"
FieldType="String" HeaderText="报警类型" HeaderTextAlign="Center" TextAlign="Center" ExpandUnusedSpace="true">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="Alias" DataField="Alias" SortField="Alias"
FieldType="String" HeaderText="报警类型" HeaderTextAlign="Center" TextAlign="Center" ExpandUnusedSpace="true">
</f:RenderField>
<f:RenderField Width="150px" ColumnID="Count" DataField="Count" SortField="Count"
FieldType="String" HeaderText="报警次数" HeaderTextAlign="Center" TextAlign="Center" ExpandUnusedSpace="true">
</f:RenderField>
<f:TemplateField ColumnID="tfImageUrl1" Width="180px" HeaderText="图片" HeaderTextAlign="Center"
TextAlign="Left">
<ItemTemplate>
<asp:Label ID="lbImageUrl" runat="server" Text='<%# ConvertImageUrlByImage(Eval("AIAlarmEventId")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="10" Value="10" />
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
<f:ListItem Text="所有行" Value="10000" />
</f:DropDownList>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="现场车辆管理" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="true" runat="server" OnClose="Window1_Close" IsModal="true"
Width="900px" Height="500px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Hidden="true" Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Parent" runat="server"
Text="删除">
</f:MenuButton>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
</script>
</body>
</html>

View File

@ -0,0 +1,264 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.HSSE.AlarmEvent
{
public partial class AIAlarmEvent : PageBase
{
#region
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Funs.DropDownPageSize(this.ddlPageSize);
this.ProjectId = this.CurrUser.LoginProjectId;
if (!string.IsNullOrEmpty(Request.Params["projectId"]) && Request.Params["projectId"] != this.CurrUser.LoginProjectId)
{
this.ProjectId = Request.Params["projectId"];
}
this.GetButtonPower();
// 绑定表格
this.BindGrid();
}
}
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
if (!string.IsNullOrEmpty(this.ProjectId))
{
string strSql = "SELECT * FROM HSSE_AIAlarmEvent ";
List<SqlParameter> listStr = new List<SqlParameter>();
if (!string.IsNullOrEmpty(this.txtCarManagerCode.Text.Trim()))
{
strSql += " WHERE Alias LIKE @Alias ";
listStr.Add(new SqlParameter("@Alias", "%" + this.txtCarManagerCode.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
/// <summary>
/// 改变索引事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
protected string ConvertImageUrlByImage(object registrationId)
{
string url = string.Empty;
string httpUrl = "../../";
if (registrationId != null)
{
IList<Model.AttachFile> sourlist = AttachFileService.GetBeforeFileList(registrationId.ToString(), BLL.Const.AIAlarmEventMenuId);
if (sourlist != null && sourlist.Count > 0)
{
string AttachUrl = "";
foreach (var item in sourlist)
{
if (!string.IsNullOrEmpty(item.AttachUrl) && item.AttachUrl.ToLower().EndsWith(".jpg") || item.AttachUrl.ToLower().EndsWith(".jpeg") || item.AttachUrl.ToLower().EndsWith(".png"))
AttachUrl += item.AttachUrl.TrimEnd(',') + ",";
}
url = BLL.UploadAttachmentService.ShowImage(httpUrl, AttachUrl.TrimEnd(','));
}
}
return url;
}
#region
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var getV = BLL.CarManagerService.GetCarManagerById(rowID);
if (getV != null)
{
BLL.LogService.AddSys_Log(this.CurrUser, getV.CarManagerCode, getV.CarManagerId, BLL.Const.AIAlarmEventMenuId, BLL.Const.BtnDelete);
BLL.CarManagerService.DeleteCarManagerById(rowID);
}
}
this.BindGrid();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
if (Request.Params["value"] == "0")
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.ProjectId, this.CurrUser.UserId, BLL.Const.AIAlarmEventMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDelete.Hidden = false;
}
}
}
#endregion
#region
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click(object sender, EventArgs e)
{
Response.ClearContent();
string filename = Funs.GetNewFileName();
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("现场车辆管理" + filename, System.Text.Encoding.UTF8) + ".xls");
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
this.Grid1.PageSize = 500;
this.BindGrid();
Response.Write(GetGridTableHtml(Grid1));
Response.End();
}
/// <summary>
/// 导出方法
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid)
{
StringBuilder sb = new StringBuilder();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
sb.AppendFormat("<td style=\"vnd.ms-excel.numberformat:@\">{0}</td>", column.HeaderText);
}
sb.Append("</tr>");
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
string html = row.Values[column.ColumnIndex].ToString();
if (column.ColumnID == "tfNumber")
{
html = (row.FindControl("lblNumber") as AspNet.Label).Text;
}
sb.AppendFormat("<td style=\"vnd.ms-excel.numberformat:@\">{0}</td>", html);
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
#endregion
}
}

View File

@ -0,0 +1,170 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HSSE.AlarmEvent
{
public partial class AIAlarmEvent
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelCenterRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelCenterRegion;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// txtCarManagerCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextBox txtCarManagerCode;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary>
/// lblNumber 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblNumber;
/// <summary>
/// lbImageUrl 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lbImageUrl;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuDelete 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuDelete;
}
}

View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Model.APIItem
{
public class AIAlarmEventItem
{
public string device_id { get; set; }
public string device_version { get; set; }
public DateTime? date { get; set; }
public string timestamp { get; set; }
public string label { get; set; }
public string alias { get; set; }
public int? count { get; set; }
public object extend { get; set; }
public string img_base64 { get; set; }
}
}

View File

@ -71,6 +71,7 @@
<Compile Include="APIItem\BaseProjectItem.cs" />
<Compile Include="APIItem\ChemicalReport.cs" />
<Compile Include="APIItem\ChemicalReportItem.cs" />
<Compile Include="APIItem\AIAlarmEventItem.cs" />
<Compile Include="APIItem\CNCEC\ActionWorkLedger.cs" />
<Compile Include="APIItem\CNCEC\ActionWorkLedgerItem.cs" />
<Compile Include="APIItem\CNCEC\CheckRectifyItem.cs" />

View File

@ -0,0 +1,63 @@
using BLL;
using Model.APIItem;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Http;
namespace WebAPI.Controllers
{
public class AIAlarmEventController : ApiController
{
[HttpPost]
public Model.ResponeData alarmEvent([FromBody] AIAlarmEventItem item)
{
var responeData = new Model.ResponeData();
try
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.HSSE_AIAlarmEvent newInOut = new Model.HSSE_AIAlarmEvent
{
AIAlarmEventId = Guid.NewGuid().ToString(),
DeviceId = item.device_id,
DeviceVersion = item.device_version,
Date = item.date,
Label = item.label,
Alias = item.alias,
Count = item.count,
Extend = item.extend.ToString(),
};
db.HSSE_AIAlarmEvent.InsertOnSubmit(newInOut);
db.SubmitChanges();
if (!string.IsNullOrEmpty(item.img_base64))
{
var image = Convert.FromBase64String(item.img_base64);
string rootPath = ConfigurationManager.AppSettings["localRoot"];
string path = "FileUpLoad/HSSE/AIAlarmEvent/" + DateTime.Now.ToString("yyyy-MM") + "/";
string fileUrl = (rootPath + path).Replace('/', '\\');
string flieName = Funs.GetNewFileName() + ".jpg";
if (!Directory.Exists(fileUrl))
{
Directory.CreateDirectory(fileUrl);
}
System.IO.File.WriteAllBytes((fileUrl + flieName), image);
UploadFileService.SaveAttachUrlForApi(UploadFileService.GetSourceByAttachUrl(path + flieName, 10, null), path + flieName, BLL.Const.AIAlarmEventMenuId, newInOut.AIAlarmEventId);
}
}
}
catch (Exception ex)
{
responeData.code = 0;
responeData.message = ex.Message;
ErrLogInfo.WriteLog(ex, "接口-插入智能识别记录", "AIAlarmEventController.alarmEvent");
}
return responeData;
}
}
}

View File

@ -101,7 +101,8 @@ namespace WebAPI.Filter
"upload*attendance" ,
"CNCECServer*PostGetHSSEData",
"CNCECServer*PostGetCQMSData",
"CNCECServer*PostGetHJGLData"
"CNCECServer*PostGetHJGLData",
"AIAlarmEvent*alarmEvent"
};
/// <summary>

View File

@ -148,6 +148,7 @@
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="App_Start\SwaggerConfig.cs" />
<Compile Include="App_Start\WebApiConfig.cs" />
<Compile Include="Controllers\AIAlarmEventController.cs" />
<Compile Include="Controllers\AnBangToolController.cs" />
<Compile Include="Controllers\BaseInfoController.cs" />
<Compile Include="Controllers\CommonController.cs" />