From 6ac0375e6dfce9697426ca6978cbdecafaed72fe Mon Sep 17 00:00:00 2001 From: taoleite Date: Fri, 14 Mar 2025 16:06:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E9=87=8F=E6=80=A7=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EFCoreDatabase/Data/DmDBContext.cs | 8 ++- .../NewWMSProject.Client.csproj | 1 + .../Pages/Task/ManageIn.razor | 33 ++++++++++- .../src/NewWMSProject.Client/Program.cs | 12 +++- .../Services/HttpClientService.cs | 58 +++++++++++++++++++ NewWMSProject/src/NewWMSProject/Program.cs | 1 + NewWMSWebAPI/Controllers/TaskController.cs | 52 ++++++++++++----- NewWMSWebAPI/NewWMSWebAPI.csproj | 1 + NewWMSWebAPI/Program.cs | 36 +++++++++++- .../TaskService/Implement/ManageHelper.cs | 5 +- .../TaskService/Interface/IManagePreOut.cs | 2 +- NewWMSWebAPI/appsettings.json | 33 +++++++++-- 12 files changed, 213 insertions(+), 29 deletions(-) create mode 100644 NewWMSProject/src/NewWMSProject.Client/Services/HttpClientService.cs diff --git a/EFCoreDatabase/Data/DmDBContext.cs b/EFCoreDatabase/Data/DmDBContext.cs index 1f3345c..bfb6c24 100644 --- a/EFCoreDatabase/Data/DmDBContext.cs +++ b/EFCoreDatabase/Data/DmDBContext.cs @@ -66,7 +66,13 @@ namespace EFCoreDatabase.Data modelBuilder.Entity().Property(e => e.PLAN_LIST_ID).UseHiLo("PLAN_LIST_SEQ");//定义主键序列 modelBuilder.Entity().HasKey(x => x.WAREHOUSE_ID);//定义主键 - modelBuilder.Entity().Property(e => e.WAREHOUSE_ID).UseHiLo("WAREHOUSE_ID_SEQ");//定义主键序列 + modelBuilder.Entity().Property(e => e.WAREHOUSE_ID).UseHiLo("WH_WAREHOUSE_SEQ");//定义主键序列 + + modelBuilder.Entity().HasKey(x => x.MANAGE_ID);//定义主键 + modelBuilder.Entity().Property(e => e.MANAGE_ID).UseHiLo("MANAGE_MAIN_SEQ");//定义主键序列 + + modelBuilder.Entity().HasKey(x => x.MANAGE_LIST_ID);//定义主键 + modelBuilder.Entity().Property(e => e.MANAGE_LIST_ID).UseHiLo("MANAGE_LIST_SEQ");//定义主键序列 } diff --git a/NewWMSProject/src/NewWMSProject.Client/NewWMSProject.Client.csproj b/NewWMSProject/src/NewWMSProject.Client/NewWMSProject.Client.csproj index 2848b48..a4cfd71 100644 --- a/NewWMSProject/src/NewWMSProject.Client/NewWMSProject.Client.csproj +++ b/NewWMSProject/src/NewWMSProject.Client/NewWMSProject.Client.csproj @@ -16,6 +16,7 @@ + diff --git a/NewWMSProject/src/NewWMSProject.Client/Pages/Task/ManageIn.razor b/NewWMSProject/src/NewWMSProject.Client/Pages/Task/ManageIn.razor index 4043cc5..03e9bdc 100644 --- a/NewWMSProject/src/NewWMSProject.Client/Pages/Task/ManageIn.razor +++ b/NewWMSProject/src/NewWMSProject.Client/Pages/Task/ManageIn.razor @@ -1,11 +1,14 @@ @using AntDesign.TableModels @using System.ComponentModel.DataAnnotations +@using System.Text @using EFCoreDatabase.Entities +@using Newtonsoft.Json + @page "/input/manage_in_individual" @inject IManageRepository _ManageRepository @inject IGoodsRepository _GoodsRepository @inject IWhCellRepository _WhCellRepository - +@inject HttpClient HttpService @@ -30,7 +33,7 @@ @inject ModalService ModalService; @inject ConfirmService ConfirmService; - +@inject HttpClient httpClient; @code { List mockDb = new(); IEnumerable _selectedRows = []; @@ -332,6 +335,25 @@ manageListCollection.Add(manageList); } + var manageJson = new ManageJson() + { + manageMain = manageMain, + manageLists = manageListCollection + }; + HttpService = new HttpClient { BaseAddress = new Uri("http://localhost:9003") }; + var temp = JsonConvert.SerializeObject(manageJson); + var content = new StringContent(JsonConvert.SerializeObject(manageJson), Encoding.UTF8, "application/json"); + + var response = await HttpService.PostAsync("/api/Task", content); + if (response.IsSuccessStatusCode) + { + var result = await response.Content.ReadAsStringAsync(); + Console.WriteLine(result); // 处理返回结果 + } + else + { + Console.WriteLine("Error in API call"); // 处理错误情况 + } _form.Submit(); await modalRef.CloseAsync(); @@ -349,4 +371,11 @@ }); } + public class ManageJson + { + public MANAGE_MAIN manageMain { get; set; } + public List manageLists { get; set; } + + } + } diff --git a/NewWMSProject/src/NewWMSProject.Client/Program.cs b/NewWMSProject/src/NewWMSProject.Client/Program.cs index 8f703c3..98ff0f0 100644 --- a/NewWMSProject/src/NewWMSProject.Client/Program.cs +++ b/NewWMSProject/src/NewWMSProject.Client/Program.cs @@ -13,8 +13,17 @@ namespace NewWMSProject public static async Task Main(string[] args) { var builder = WebAssemblyHostBuilder.CreateDefault(args); + + //builder.Services.AddScoped( + // sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + builder.Services.AddScoped( - sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); + sp => new HttpClient { BaseAddress = new Uri("http://localhost:9003") }); + + //builder.Services.AddHttpClient("WMSApiClient", client => + //{ + // client.BaseAddress = new Uri("http://localhost:9003"); // API ַ + //}); AddClientServices(builder.Services); @@ -30,6 +39,7 @@ namespace NewWMSProject services.AddLocalization(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); } } } \ No newline at end of file diff --git a/NewWMSProject/src/NewWMSProject.Client/Services/HttpClientService.cs b/NewWMSProject/src/NewWMSProject.Client/Services/HttpClientService.cs new file mode 100644 index 0000000..b4a125c --- /dev/null +++ b/NewWMSProject/src/NewWMSProject.Client/Services/HttpClientService.cs @@ -0,0 +1,58 @@ +using System.Net.Http.Headers; +using System.Text; +using EFCoreDatabase.Entities; + +namespace NewWMSProject.Services; + + + +public interface IHttpClientService +{ + public Task PostAsyncJson(string json, string apiAddress); +} + +public class HttpClientService:IHttpClientService +{ + /// + /// 使用post方法异步请求WebAPI + /// + /// 发送的参数字符串,只能用json + /// + /// < returns > 返回的字符串 + public async Task PostAsyncJson(string json, string apiAddress) + { + + var responseBody = string.Empty; + bool test0Prd1Flag = true; + + //保证接口处于测试服务状态下 + //WebAPI接口地址 + string url = apiAddress; + using (HttpClient client = new HttpClient()) + { + HttpContent content = new StringContent(json); + //设置传输数据类型为json + content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + client.Timeout = new TimeSpan(1, 0, 0, 0, 0); + client.DefaultRequestHeaders.Add("Connection", "Keep-Alive"); + client.DefaultRequestHeaders.Add("Keep-Alive", "timeout=600"); + client.DefaultRequestHeaders.Add("ContentType", "application/json"); + client.DefaultRequestHeaders.Add("Accept", "*/*"); + + //设置用户名密码 + //AuthenticationHeaderValue authentication = new AuthenticationHeaderValue("Basic", + // Convert.ToBase64String(Encoding.UTF8.GetBytes(test0Prd1Flag ? $"{HANDApiUsernameTest}:{HANDApiPasswordTest}" : $"{HANDApiUsername}:{HANDApiPassword}"))); + //client.DefaultRequestHeaders.Authorization = authentication; + + HttpResponseMessage response = await client.PostAsync(url, content); + + if (response.IsSuccessStatusCode) + { + response.EnsureSuccessStatusCode(); + responseBody = await response.Content.ReadAsStringAsync(); + + } + } + return responseBody; + } +} \ No newline at end of file diff --git a/NewWMSProject/src/NewWMSProject/Program.cs b/NewWMSProject/src/NewWMSProject/Program.cs index 793212b..467643b 100644 --- a/NewWMSProject/src/NewWMSProject/Program.cs +++ b/NewWMSProject/src/NewWMSProject/Program.cs @@ -30,6 +30,7 @@ builder.Services.AddScoped(sp => return new HttpClient(); }); + NewWMSProject.Program.AddClientServices(builder.Services); builder.Services.Configure(builder.Configuration.GetSection("ProSettings")); diff --git a/NewWMSWebAPI/Controllers/TaskController.cs b/NewWMSWebAPI/Controllers/TaskController.cs index 8a99814..3425b6c 100644 --- a/NewWMSWebAPI/Controllers/TaskController.cs +++ b/NewWMSWebAPI/Controllers/TaskController.cs @@ -1,40 +1,62 @@ using EFCoreDatabase.Entities; using Microsoft.AspNetCore.Mvc; using Michelin_WebAPI.TaskServices; +using Newtonsoft.Json; using NewWMSWebAPI.TaskService.Interface; namespace NewWMSWebAPI.Controllers { - public class TaskController(IManageHelper manageHelper,Logger logger) : ControllerBase + [ApiController] + [Route("api/[controller]")] + public class TaskController(IManageHelper manageHelper) : ControllerBase { private IManageHelper _manageHelper = manageHelper; - private Logger _logger = logger; + /// /// 生成无计划入库任务 /// - /// - /// + /// /// [HttpPost] - public IActionResult InsertManageInTask(MANAGE_MAIN manageMain ,List manageLists) + public IActionResult InsertManageInTask(string jsonString) { - //根据输入的信息生成入库任务 - var sResult = string.Empty; - var bResult = true; - bResult = _manageHelper.ManageInTaskCreate(manageMain, manageLists, true, false, false, out sResult); - if (bResult) + ManageJson? manageInfos = JsonConvert.DeserializeObject(jsonString); + if (manageInfos != null) { - //创建成功 - _logger.LogInformation("生成任务成功"); - return Ok(); + var manageMain = manageInfos.manageMain; + var manageLists = manageInfos.manageLists; + //根据输入的信息生成入库任务 + var sResult = string.Empty; + var bResult = true; + bResult = _manageHelper.ManageInTaskCreate(manageMain, manageLists, true, false, false, out sResult); + if (bResult) + { + //创建成功 + return Ok(); + } + else + { + + return null; + + } } else { + return NotFound(); + } - + - } + } + + + + public class ManageJson + { + public MANAGE_MAIN manageMain { get; set; } + public List manageLists { get; set; } } } diff --git a/NewWMSWebAPI/NewWMSWebAPI.csproj b/NewWMSWebAPI/NewWMSWebAPI.csproj index 7e3a1bb..ef516bf 100644 --- a/NewWMSWebAPI/NewWMSWebAPI.csproj +++ b/NewWMSWebAPI/NewWMSWebAPI.csproj @@ -7,6 +7,7 @@ + diff --git a/NewWMSWebAPI/Program.cs b/NewWMSWebAPI/Program.cs index 48863a6..fea6fee 100644 --- a/NewWMSWebAPI/Program.cs +++ b/NewWMSWebAPI/Program.cs @@ -1,3 +1,12 @@ +using EFCoreDatabase.Data; +using EFCoreDatabase.Repositories.Implement; +using EFCoreDatabase.Repositories.Interface; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using NewWMSWebAPI.TaskService.Implement; +using NewWMSWebAPI.TaskService.Interface; +using Serilog; + var builder = WebApplication.CreateBuilder(args); // Add services to the container. @@ -6,7 +15,31 @@ builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); - +builder.Services.AddDbContext(options => + options.UseDm("Server=127.0.0.1:5236;UserId=JIAMUSI_WMS_DATABASE;PWD=Siasun4813@;"), + ServiceLifetime.Transient); + +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); + +Log.Information("Starting web application"); + +// +builder.Services.AddCors(options => +{ + options.AddPolicy("AllowSpecificOrigins", + builder => + { + builder.WithOrigins("*") + .AllowAnyHeader() + .AllowAnyMethod(); + }); +}); var app = builder.Build(); // Configure the HTTP request pipeline. @@ -15,6 +48,7 @@ if (app.Environment.IsDevelopment()) app.UseSwagger(); app.UseSwaggerUI(); } +app.UseCors("AllowSpecificOrigins"); app.UseHttpsRedirection(); diff --git a/NewWMSWebAPI/TaskService/Implement/ManageHelper.cs b/NewWMSWebAPI/TaskService/Implement/ManageHelper.cs index d3e20d3..09bb141 100644 --- a/NewWMSWebAPI/TaskService/Implement/ManageHelper.cs +++ b/NewWMSWebAPI/TaskService/Implement/ManageHelper.cs @@ -21,9 +21,9 @@ namespace NewWMSWebAPI.TaskService.Implement private readonly IWhCellRepository _whCellRepository; private readonly IStorageRepository _storageRepository; private readonly IControlRepository _controlRepository; - private readonly IControlHisRepository _controlHisRepository; + - public ManageHelper(ILogger logger, DmDBContext context, IManageRepository manageRepository, IWhCellRepository WhCellRepository, IStorageRepository storageRepository, IControlRepository controlRepository, IControlHisRepository controlHisRepository) + public ManageHelper(ILogger logger, DmDBContext context, IManageRepository manageRepository, IWhCellRepository WhCellRepository, IStorageRepository storageRepository, IControlRepository controlRepository) { _logger = logger; _context = context; @@ -31,7 +31,6 @@ namespace NewWMSWebAPI.TaskService.Implement _whCellRepository = WhCellRepository; _storageRepository = storageRepository; _controlRepository = controlRepository; - _controlHisRepository = controlHisRepository; } diff --git a/NewWMSWebAPI/TaskService/Interface/IManagePreOut.cs b/NewWMSWebAPI/TaskService/Interface/IManagePreOut.cs index 54060a1..4d0ba96 100644 --- a/NewWMSWebAPI/TaskService/Interface/IManagePreOut.cs +++ b/NewWMSWebAPI/TaskService/Interface/IManagePreOut.cs @@ -5,7 +5,7 @@ namespace Michelin_WebAPI.TaskServices.Interface { public interface IManagePreOut { - public bool FabricateListCreate(List manageMains,out string sResult); + //public bool FabricateListCreate(List manageMains,out string sResult); public bool ManageCreate(MANAGE_MAIN mMANAGE_MAIN, List lsMANAGE_LIST, bool bTrans, bool bAutoSendControl, bool bComplete, out string sResult); diff --git a/NewWMSWebAPI/appsettings.json b/NewWMSWebAPI/appsettings.json index 10f68b8..5c6dd1d 100644 --- a/NewWMSWebAPI/appsettings.json +++ b/NewWMSWebAPI/appsettings.json @@ -1,9 +1,32 @@ { - "Logging": { - "LogLevel": { + "Serilog": { + "MinimumLevel": { "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } + "Override": { + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "Enrich": [ "FromLogContext" ], + "WriteTo": [ + { + "Name": "File", + "Args": { + "path": "./Logs/Log-.txt", + "rollingInterval": "Day" + } + + }, + { + "Name": "Console", + "Args": {} + }, + { + "Name": "Debug", + "Args": {} + } + ] }, - "AllowedHosts": "*" + "AllowedHosts": "*", + "Urls": "http://localhost:9003" }