MES.Service/Modes/MesDepots.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/Modes/MesRohInData.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/Modes/Organize.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/service/BasicData/MesRohInManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/service/BasicData/MesStaffManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MES.Service/service/BasicData/MesSupplierManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Filter/ActionFilter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Filter/ErrorLog.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Program.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
MESApplication/Startup.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
MES.Service/Modes/MesDepots.cs
@@ -9,189 +9,185 @@ public class MesDepots { /// <summary> /// /// 默认值: (newid()) ///</summary> /// 默认值: (newid()) /// </summary> [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)] public Guid Guid { get; set; } /// <summary> /// ID(SEQ_INV_ID) ///</summary> /// ID(SEQ_INV_ID) /// </summary> [SugarColumn(ColumnName = "depot_id")] public decimal DepotId { get; set; } /// <summary> /// 仓库类别编码 ///</summary> /// 仓库类别编码 /// </summary> [SugarColumn(ColumnName = "depot_code")] public string? DepotCode { get; set; } /// <summary> /// 仓库类别名称 ///</summary> /// 仓库类别名称 /// </summary> [SugarColumn(ColumnName = "depot_name")] public string? DepotName { get; set; } /// <summary> /// 备注 ///</summary> /// 备注 /// </summary> [SugarColumn(ColumnName = "description")] public string? Description { get; set; } /// <summary> /// 仓库负责人 ///</summary> /// 仓库负责人 /// </summary> [SugarColumn(ColumnName = "create_by")] public string? CreateBy { get; set; } /// <summary> /// 创建时间 ///</summary> /// 创建时间 /// </summary> [SugarColumn(ColumnName = "create_date")] public DateTime? CreateDate { get; set; } /// <summary> /// 最后更新人 ///</summary> /// 最后更新人 /// </summary> [SugarColumn(ColumnName = "lastupdate_by")] public string? LastupdateBy { get; set; } /// <summary> /// 最后更新时间 ///</summary> /// 最后更新时间 /// </summary> [SugarColumn(ColumnName = "lastupdate_date")] public DateTime? LastupdateDate { get; set; } /// <summary> /// 仓库类型 ///</summary> /// 仓库类型 /// </summary> [SugarColumn(ColumnName = "depottype")] public string? Depottype { get; set; } /// <summary> /// 分厂编码 ///</summary> /// 分厂编码 /// </summary> [SugarColumn(ColumnName = "factory")] public string? Factory { get; set; } /// <summary> /// 物料使用 /// 默认值: ((0)) ///</summary> /// 物料使用 /// 默认值: ((0)) /// </summary> [SugarColumn(ColumnName = "type_1")] public int? Type1 { get; set; } /// <summary> /// 成品使用 /// 默认值: ((0)) ///</summary> /// 成品使用 /// 默认值: ((0)) /// </summary> [SugarColumn(ColumnName = "type_2")] public int? Type2 { get; set; } /// <summary> /// 仓库类型编码 ///</summary> /// 仓库类型编码 /// </summary> [SugarColumn(ColumnName = "depottypecode")] public int? Depottypecode { get; set; } /// <summary> /// 公司代码 ///</summary> /// 公司代码 /// </summary> [SugarColumn(ColumnName = "company")] public string? Company { get; set; } /// <summary> /// 看板图标样式 ///</summary> /// 看板图标样式 /// </summary> [SugarColumn(ColumnName = "icon_type")] public int? IconType { get; set; } /// <summary> /// 是否委外仓库 /// 默认值: ((0)) ///</summary> /// 是否委外仓库 /// 默认值: ((0)) /// </summary> [SugarColumn(ColumnName = "is_wy")] public int? IsWy { get; set; } /// <summary> /// 是否不良品仓 /// 默认值: ((0)) ///</summary> /// 是否不良品仓 /// 默认值: ((0)) /// </summary> [SugarColumn(ColumnName = "is_ng")] public string? IsNg { get; set; } /// <summary> /// 仓库地址 ///</summary> /// 仓库地址 /// </summary> [SugarColumn(ColumnName = "cwhaddress")] public string? Cwhaddress { get; set; } /// <summary> /// 看板显示区域编号 /// 默认值: ((1)) ///</summary> /// 看板显示区域编号 /// 默认值: ((1)) /// </summary> [SugarColumn(ColumnName = "pi_type")] public string? PiType { get; set; } /// <summary> /// 分组 ///</summary> /// 分组 /// </summary> [SugarColumn(ColumnName = "zuid")] public string? Zuid { get; set; } /// <summary> /// 允许即时库存负库存 ///</summary> /// 允许即时库存负库存 /// </summary> [SugarColumn(ColumnName = "is_fkc")] public string? IsFkc { get; set; } /// <summary> /// 生产车间 ///</summary> /// 生产车间 /// </summary> [SugarColumn(ColumnName = "production_workshop")] public string? ProductionWorkshop { get; set; } /// <summary> /// 物料属性 ///</summary> /// 物料属性 /// </summary> [SugarColumn(ColumnName = "material_properti")] public string? MaterialProperti { get; set; } /// <summary> /// 自定义字段3 ///</summary> /// 自定义字段3 /// </summary> [SugarColumn(ColumnName = "remark3")] public string? Remark3 { get; set; } /// <summary> /// 自定义字段4 ///</summary> /// 自定义字段4 /// </summary> [SugarColumn(ColumnName = "remark4")] public string? Remark4 { get; set; } /// <summary> /// 自定义字段5 ///</summary> /// 自定义字段5 /// </summary> [SugarColumn(ColumnName = "remark5")] public string? Remark5 { get; set; } /// <summary> /// ///</summary> /// </summary> [SugarColumn(ColumnName = "check_date")] public DateTime? CheckDate { get; set; } /// <summary> /// ///</summary> /// </summary> [SugarColumn(ColumnName = "check_by")] public string? CheckBy { get; set; } /// <summary> /// /// 默认值: ((0)) ///</summary> /// 默认值: ((0)) /// </summary> [SugarColumn(ColumnName = "check_status")] public bool? CheckStatus { get; set; } MES.Service/Modes/MesRohInData.cs
@@ -375,7 +375,7 @@ /// </summary> [SugarColumn(ColumnName = "RECEIVING_DEPARTMENT")] public string? ReceivingDepartment { get; set; } /// <summary> /// 预计到货时间 /// </summary> MES.Service/Modes/Organize.cs
@@ -1,74 +1,70 @@ using System; using System.Collections.Generic; using System.Linq; using SqlSugar; using SqlSugar; namespace MES.Service.Modes; /// <summary> /// 组织 ///</summary> /// 组织 /// </summary> [SugarTable("ORGANIZE")] public class Organize { /// <summary> /// 编码 ///</summary> /// 编码 /// </summary> [SugarColumn(ColumnName = "FNUMBER")] public string? Fnumber { get; set; } /// <summary> /// 名称 ///</summary> /// 名称 /// </summary> [SugarColumn(ColumnName = "FNAME")] public string? Fname { get; set; } /// <summary> /// ///</summary> /// </summary> // [SugarColumn(ColumnName="ID" )] [SugarColumn(IsPrimaryKey = true)] public string? Id { get; set; } /// <summary> /// 禁用状态 A 启用 B禁用 ///</summary> /// 禁用状态 A 启用 B禁用 /// </summary> [SugarColumn(ColumnName = "Fforbidstatus")] public string? Fforbidstatus { get; set; } /// <summary> /// 操作类型 ///</summary> /// 操作类型 /// </summary> [SugarColumn(ColumnName = "TYPE")] public string? Type { get; set; } /// <summary> /// 组织描述 ///</summary> /// 组织描述 /// </summary> [SugarColumn(ColumnName = "FDESCRIPTION")] public string? FDescription { get; set; } /// <summary> /// 上级组织 ///</summary> /// 上级组织 /// </summary> [SugarColumn(ColumnName = "FPARENTID")] public string? FParentID { get; set; } /// <summary> /// 建立日期 ///</summary> /// 建立日期 /// </summary> [SugarColumn(ColumnName = "FCREATEDATE")] public DateTime? FCreateDate { get; set; } /// <summary> /// 禁用人 ///</summary> /// 禁用人 /// </summary> [SugarColumn(ColumnName = "FFORBIDORID")] public string? FFORBIDORID { get; set; } /// <summary> /// 禁用时间 ///</summary> /// 禁用时间 /// </summary> [SugarColumn(ColumnName = "FFORBIDDATE")] public DateTime? FFORBIDDATE { get; set; } } MES.Service/service/BasicData/MesRohInManager.cs
@@ -19,20 +19,16 @@ return UseTransaction(db => { switch (rohInErpRohIn.Type) return rohInErpRohIn.Type switch { case "2": case "4": case "5": return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; case "3": return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0; default: throw new NotImplementedException( $"type没有{rohInErpRohIn.Type}这个类型"); } "2" or "4" or "5" => SaveOrUpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0, "3" => UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0, _ => throw new NotImplementedException( $"type没有{rohInErpRohIn.Type}这个类型") }; }) > 0; } @@ -225,7 +221,7 @@ Remark1 = s.F_XIFG_Text_ne1, Remark2 = s.F_XIFG_Text_6oq, Remark3 = s.F_XIFG_Base_c1c, Remark4 = s.F_XIFG_Text_qtr4, Remark4 = s.F_XIFG_Text_qtr4 }; var single = rohInDataManager.GetSingle(it => MES.Service/service/BasicData/MesStaffManager.cs
@@ -200,7 +200,6 @@ private bool InsertStaffBatch(SqlSugarScope db, List<SysUser> userList, List<MesStaff> staffList) { var userInsert = userList.FindAll(s => s.Type == "2"); var executeCommand = db.Insertable(userInsert).ExecuteCommand(); if (executeCommand <= 0) throw new ArgumentNullException("审核失败"); MES.Service/service/BasicData/MesSupplierManager.cs
@@ -167,7 +167,7 @@ { var ids = supplierList.Select(it => it.Id).ToArray(); var deleteByIds = db.Deleteable<MesSupplier>() .Where(s=>ids.Contains(s.Id)).ExecuteCommand(); .Where(s => ids.Contains(s.Id)).ExecuteCommand(); if (deleteByIds > 0) return true; MESApplication/Filter/ActionFilter.cs
@@ -1,71 +1,32 @@ using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using System.Text; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Controllers; using Microsoft.AspNetCore.Mvc.Filters; using Newtonsoft.Json; using System.Diagnostics; using System.Text; namespace MESApplication; /// <summary> /// 方法过滤器 /// 方法过滤器 /// </summary> public class ActionFilter : IActionFilter { private Stopwatch _stopwatch; /// <summary> /// 监控日志 /// 监控日志 /// </summary> public static ILogger LoggerMonitor { get; set; } /// <summary> /// 错误日志 /// 错误日志 /// </summary> public static ILogger LoggerError { get; set; } private Stopwatch _stopwatch; /// <summary> /// 创建请求日志文本 /// </summary> /// <param name="method"></param> /// <param name="controllerName"></param> /// <param name="actionName"></param> /// <param name="actionArgs"></param> /// <returns></returns> private static string CreateRequestLogText(string method, string controllerName, string actionName, string requestHead, string requestBody) { var sb = new StringBuilder(); sb.Append( $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 请求{method}/{controllerName}/{actionName}接口,请求Head:{requestHead}\n"); sb.Append( $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 请求{method}/{controllerName}/{actionName}接口,请求Body:{requestBody}\n"); return sb.ToString(); } /// <summary> /// 创建响应日志文本 /// </summary> /// <param name="method"></param> /// <param name="controllerName"></param> /// <param name="actionName"></param> /// <param name="result"></param> /// <returns></returns> private static string CreateResponseLogText(string method, string controllerName, string actionName, object result) { var sb = new StringBuilder(); sb.Append( $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 完成请求{method}/{controllerName}/{actionName}接口,返回结果:"); if (result != null) sb.Append($"{JsonConvert.SerializeObject(result)}"); else sb.Append($"无"); return sb.ToString(); } /// <summary> /// 方法执行前 /// 方法执行前 /// </summary> /// <param name="context"></param> /// <exception cref="NotImplementedException"></exception> @@ -85,7 +46,8 @@ var requestHeaders = context.HttpContext.Request.Headers; // 访问请求中的 header 信息 foreach (var header in requestHeaders) headers.Add(header.Key, header.Value); foreach (var header in requestHeaders) headers.Add(header.Key, header.Value); var requestHead = JsonConvert.SerializeObject(headers); Dictionary<string, object> bodys = new(); @@ -95,13 +57,17 @@ { //dic.Add(argument.Key, argument.Value); var parameter = JsonConvert.DeserializeObject<Dictionary<string, object>>(argument.Value.ToString()); foreach (var item in parameter) bodys.Add(item.Key, item.Value); JsonConvert .DeserializeObject<Dictionary<string, object>>( argument.Value.ToString()); foreach (var item in parameter) bodys.Add(item.Key, item.Value); } var requestBody = JsonConvert.SerializeObject(bodys); var logText = CreateRequestLogText(context.HttpContext.Request.Method, desc.ControllerName, var logText = CreateRequestLogText( context.HttpContext.Request.Method, desc.ControllerName, desc.ActionName, requestHead, requestBody); //LoggerMonitor.LogDebug(logText); //ErrorLog.Write(logText); @@ -122,7 +88,8 @@ // 记录异常日志 if (LoggerError != null) { LoggerError.LogError(context.Exception, context.Exception.Message); LoggerError.LogError(context.Exception, context.Exception.Message); ErrorLog.Write( $@"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 接口异常:{JsonConvert.SerializeObject(context.Exception)}"); @@ -152,4 +119,45 @@ // ErrorLog.Write(msg); // ErrorLog.Write("=================================================================================================================================="); } /// <summary> /// 创建请求日志文本 /// </summary> /// <param name="method"></param> /// <param name="controllerName"></param> /// <param name="actionName"></param> /// <param name="actionArgs"></param> /// <returns></returns> private static string CreateRequestLogText(string method, string controllerName, string actionName, string requestHead, string requestBody) { var sb = new StringBuilder(); sb.Append( $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 请求{method}/{controllerName}/{actionName}接口,请求Head:{requestHead}\n"); sb.Append( $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 请求{method}/{controllerName}/{actionName}接口,请求Body:{requestBody}\n"); return sb.ToString(); } /// <summary> /// 创建响应日志文本 /// </summary> /// <param name="method"></param> /// <param name="controllerName"></param> /// <param name="actionName"></param> /// <param name="result"></param> /// <returns></returns> private static string CreateResponseLogText(string method, string controllerName, string actionName, object result) { var sb = new StringBuilder(); sb.Append( $"{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff")} 完成请求{method}/{controllerName}/{actionName}接口,返回结果:"); if (result != null) sb.Append($"{JsonConvert.SerializeObject(result)}"); else sb.Append("无"); return sb.ToString(); } } MESApplication/Filter/ErrorLog.cs
@@ -2,10 +2,11 @@ public class ErrorLog { private static string DirectoryPath = AppDomain.CurrentDomain.BaseDirectory; private static readonly string DirectoryPath = AppDomain.CurrentDomain.BaseDirectory; /// <summary> /// 写入操作日志到文件中 /// 写入操作日志到文件中 /// </summary> /// <param name="moduleName">模块名字</param> /// <param name="message">错误文本信息</param> @@ -19,7 +20,8 @@ // 如果目录不存在,则新建文件夹 Directory.CreateDirectory(directoryPath); var filePath = directoryPath + $@"\{DateTime.Now.ToString("yyyyMMddHH")}.log"; // 目标文件路径 var filePath = directoryPath + $@"\{DateTime.Now.ToString("yyyyMMddHH")}.log"; // 目标文件路径 if (!File.Exists(filePath)) // 如果文件不存在,则创建文件 @@ -32,7 +34,7 @@ } /// <summary> /// 写入操作日志到文件中 /// 写入操作日志到文件中 /// </summary> /// <param name="moduleName">模块名字</param> /// <param name="ex">异常</param> @@ -42,7 +44,7 @@ } /// <summary> /// 写入过程数据或说明到文件中,以便跟踪 /// 写入过程数据或说明到文件中,以便跟踪 /// </summary> /// <param name="moduleName">模块名字</param> /// <param name="ex">异常</param> @@ -52,7 +54,7 @@ } /// <summary> /// 文本写入 /// 文本写入 /// </summary> /// <param name="logMessage"></param> private static void LogToFile(string logFilePath, string logMessage) MESApplication/Program.cs
@@ -10,6 +10,9 @@ public static IHostBuilder CreateHostBuilder(string[] args) { return Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } } MESApplication/Startup.cs
@@ -1,10 +1,10 @@ using MES.Service.Dto.@base; using System.Reflection; using MES.Service.Dto.@base; using MES.Service.util; using Microsoft.OpenApi.Models; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using Swashbuckle.AspNetCore.SwaggerUI; using System.Reflection; namespace MESApplication; @@ -36,7 +36,8 @@ c.SwaggerDoc("v1", new OpenApiInfo { Title = "MESApplication.Api", Version = "v1" }); var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath, true); }); @@ -73,9 +74,13 @@ #region 接口行动过滤器 services.AddControllers(options => { options.Filters.Add(new ActionFilter()); }); services.AddControllers(options => { options.Filters.Add(new ActionFilter()); }); var serviceProvider = services.BuildServiceProvider(); ActionFilter.LoggerError = serviceProvider.GetRequiredService<ILogger<ActionFilter>>(); ActionFilter.LoggerError = serviceProvider.GetRequiredService<ILogger<ActionFilter>>(); #endregion }