diff --git a/SlnMesnac.Model/domain/BaseCode.cs b/SlnMesnac.Model/domain/BaseCode.cs index f7b6c64..d0aa1fa 100644 --- a/SlnMesnac.Model/domain/BaseCode.cs +++ b/SlnMesnac.Model/domain/BaseCode.cs @@ -1,4 +1,5 @@ -using System.Runtime.Serialization; +using System; +using System.Runtime.Serialization; using SqlSugar; namespace SlnMesnac.Model.domain @@ -34,4 +35,34 @@ namespace SlnMesnac.Model.domain public int Category { get; set; } } + + + [SugarTable("BaseLog"), TenantAttribute("mes")] + [DataContract(Name = "BaseLog 基础表")] + + public class BaseLog + { + + public BaseLog() + { + this.CreateTime = DateTime.Now; + } + + [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + [SugarColumn(ColumnName = "createtime")] + public DateTime CreateTime { get; set; } + + [SugarColumn(ColumnName = "log_level")] + public string LogLevel { get; set; } + + [SugarColumn(ColumnName = "content")] + public string Content { get; set; } + + + [SugarColumn(ColumnName = "err_msg")] + public string ErrMsg { get; set; } + + } } \ No newline at end of file diff --git a/SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs b/SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs new file mode 100644 index 0000000..7cdfcb8 --- /dev/null +++ b/SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs @@ -0,0 +1,36 @@ +using SlnMesnac.Model.domain; +using SlnMesnac.Repository.service.@base; +using SlnMesnac.Repository.service.ScanLog; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace SlnMesnac.Repository.service.LogImpl +{ + public class BaseLogServiceImpl : BaseServiceImpl, IBaseLogService + { + public BaseLogServiceImpl(Repository rep) : base(rep) + { + } + + public void CreatTable() + { + _rep.Context.CodeFirst.InitTables(); + } + + public Page QueryPage(int pageIndex, int pageSize) + { + int totalCount = 0; + var list = _rep.Context.Queryable().OrderByDescending(x => x.CreateTime) + .ToPageList(pageIndex, pageSize, ref totalCount); + Page page = new Page(); + page.Data = list; + page.PageIndex = pageIndex; + page.PageSize = pageSize; + page.TotalCount = totalCount; + page.TotalPage = (int)Math.Ceiling(totalCount / (double)pageSize); + return page; + } + } +} diff --git a/SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs b/SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs new file mode 100644 index 0000000..dc777c1 --- /dev/null +++ b/SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs @@ -0,0 +1,15 @@ +using SlnMesnac.Model.domain; +using SlnMesnac.Repository.service.@base; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace SlnMesnac.Repository.service.LogImpl +{ + public interface IBaseLogService : IBaseService + { + void CreatTable(); + Page QueryPage(int pageIndex, int pageSize); + } +} diff --git a/SlnMesnac.TouchSocket/ApiServer.cs b/SlnMesnac.TouchSocket/ApiServer.cs index dea7aaa..a2268d4 100644 --- a/SlnMesnac.TouchSocket/ApiServer.cs +++ b/SlnMesnac.TouchSocket/ApiServer.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using SlnMesnac.Model.domain; using SlnMesnac.Repository.service; +using SlnMesnac.Repository.service.LogImpl; using SlnMesnac.Repository.service.ScanLog; using TouchSocket.Core; using TouchSocket.Rpc; @@ -16,74 +17,106 @@ namespace SlnMesnac.TouchSocket private readonly IScanLogService _scanService; private readonly IBaseCodeService _baseCodeService; + + IBaseLogService _baseLogService; - public Action? ScanLogSocketAction; //Update By WenJY 2024-09-19将返回值改为ScanLogModel + public Action? ScanLogSocketAction; public Action? ScanStatusSocketAction; - public ApiServer(IScanLogService scanService, IBaseCodeService baseCodeService) + public ApiServer(IScanLogService scanService, IBaseCodeService baseCodeService, IBaseLogService baseLogService) { _scanService = scanService; _baseCodeService = baseCodeService; + _baseLogService = baseLogService; } /// /// 扫描的状态回传 /// - /// - /// + /// /// [EnableCors("cors")] [WebApi(HttpMethodType.POST)] public Back ScanStatus(ScanStatusSocket scanStatus) { - - if (scanStatus.is_alarm == 1 && scanStatus.device_status != null && scanStatus.device_status.Count > 0) + BaseLog log = new BaseLog + { + LogLevel = "Info", + ErrMsg = "", + Content = scanStatus.ToJsonString() + }; + try { - List ls = new List(); - var baseCodes = _baseCodeService.QuListCache(); - foreach (var baseCode in scanStatus.device_status) + if (scanStatus.is_alarm == 1 && scanStatus.device_status != null && scanStatus.device_status.Count > 0) { - var enBaseCode = baseCodes.FirstOrDefault(x=>x.Code==baseCode); - if (enBaseCode != null) + List ls = new List(); + var baseCodes = _baseCodeService.QuListCache(); + foreach (var baseCode in scanStatus.device_status) { - ls.Add(enBaseCode.State); + var enBaseCode = baseCodes.FirstOrDefault(x => x.Code == baseCode); + if (enBaseCode != null) + { + ls.Add(enBaseCode.State); + } } + scanStatus.status_txt = ls; } - scanStatus.status_txt = ls; + + ScanStatusSocketAction?.Invoke(scanStatus); + } - - ScanStatusSocketAction?.Invoke(scanStatus); - - - + catch (Exception e) + { + log.LogLevel = "Error"; + log.ErrMsg=e.Message; + } + + _baseLogService.Insert(log); + return new Back(); + } - - + + /// - /// 入库开始 + /// 扫描数据回传接口 /// - /// - /// + /// /// [EnableCors("cors")] [WebApi(HttpMethodType.POST)] - public Back ScanBack(ScanLogSocket scanStatus) + public Back ScanBack(ScanLogSocket scanLog) { - var scan = new ScanLogModel() + BaseLog log = new BaseLog(); + log.LogLevel = "Info"; + log.ErrMsg = ""; + log.Content = scanLog.ToJsonString(); + try { - CreateTime = scanStatus.CreateTime, - DataType = scanStatus.data_type, - Code = scanStatus.code, - Rfid = scanStatus.rfid, - Ocr = scanStatus.ocr, - Url = scanStatus.url + var model = new ScanLogModel() + { + CreateTime = scanLog.CreateTime, + DataType = scanLog.data_type, + Code = scanLog.code, + Rfid = scanLog.rfid, + Ocr = scanLog.ocr, + Url = scanLog.url - }; - ScanLogSocketAction?.Invoke(scan); //Update By WenJY 2024-09-19将返回值改为ScanLogModel - _scanService.Insert(scan); + }; + + ScanLogSocketAction?.Invoke(model); + _scanService.Insert(model); + + } + catch (Exception e) + { + log.LogLevel = "Error"; + log.ErrMsg = e.Message; + } + _baseLogService.Insert(log); return new Back(); + } } } diff --git a/SlnMesnac.WPF/SlnMesnac.WPF.csproj b/SlnMesnac.WPF/SlnMesnac.WPF.csproj index 7634670..bfcc595 100644 --- a/SlnMesnac.WPF/SlnMesnac.WPF.csproj +++ b/SlnMesnac.WPF/SlnMesnac.WPF.csproj @@ -8,18 +8,11 @@ - - - - PreserveNewest - - - diff --git a/SlnMesnac.WPF/appsettings.json b/SlnMesnac.WPF/appsettings.json index ee2a6a3..9b905e1 100644 --- a/SlnMesnac.WPF/appsettings.json +++ b/SlnMesnac.WPF/appsettings.json @@ -13,7 +13,7 @@ { "configId": "mes", "dbType": 4, - "connStr": "PORT=5433;DATABASE=daxing;HOST=127.0.0.1;PASSWORD=123456;USER ID=postgres" + "connStr": "PORT=5432;DATABASE=daxing;HOST=127.0.0.1;PASSWORD=123456;USER ID=postgres" } ], "PlcConfig": [