Browse Source

增量性更新

master
taoleite 3 months ago
parent
commit
6ac0375e6d
  1. 8
      EFCoreDatabase/Data/DmDBContext.cs
  2. 1
      NewWMSProject/src/NewWMSProject.Client/NewWMSProject.Client.csproj
  3. 33
      NewWMSProject/src/NewWMSProject.Client/Pages/Task/ManageIn.razor
  4. 12
      NewWMSProject/src/NewWMSProject.Client/Program.cs
  5. 58
      NewWMSProject/src/NewWMSProject.Client/Services/HttpClientService.cs
  6. 1
      NewWMSProject/src/NewWMSProject/Program.cs
  7. 52
      NewWMSWebAPI/Controllers/TaskController.cs
  8. 1
      NewWMSWebAPI/NewWMSWebAPI.csproj
  9. 36
      NewWMSWebAPI/Program.cs
  10. 5
      NewWMSWebAPI/TaskService/Implement/ManageHelper.cs
  11. 2
      NewWMSWebAPI/TaskService/Interface/IManagePreOut.cs
  12. 33
      NewWMSWebAPI/appsettings.json

8
EFCoreDatabase/Data/DmDBContext.cs

@ -66,7 +66,13 @@ namespace EFCoreDatabase.Data
modelBuilder.Entity<PLAN_LIST>().Property(e => e.PLAN_LIST_ID).UseHiLo("PLAN_LIST_SEQ");//定义主键序列
modelBuilder.Entity<WH_WAREHOUSE>().HasKey(x => x.WAREHOUSE_ID);//定义主键
modelBuilder.Entity<WH_WAREHOUSE>().Property(e => e.WAREHOUSE_ID).UseHiLo("WAREHOUSE_ID_SEQ");//定义主键序列
modelBuilder.Entity<WH_WAREHOUSE>().Property(e => e.WAREHOUSE_ID).UseHiLo("WH_WAREHOUSE_SEQ");//定义主键序列
modelBuilder.Entity<MANAGE_MAIN>().HasKey(x => x.MANAGE_ID);//定义主键
modelBuilder.Entity<MANAGE_MAIN>().Property(e => e.MANAGE_ID).UseHiLo("MANAGE_MAIN_SEQ");//定义主键序列
modelBuilder.Entity<MANAGE_LIST>().HasKey(x => x.MANAGE_LIST_ID);//定义主键
modelBuilder.Entity<MANAGE_LIST>().Property(e => e.MANAGE_LIST_ID).UseHiLo("MANAGE_LIST_SEQ");//定义主键序列
}

1
NewWMSProject/src/NewWMSProject.Client/NewWMSProject.Client.csproj

@ -16,6 +16,7 @@
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.13" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="System.Net.Http.Json" Version="8.0.1" />
</ItemGroup>

33
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
<PageContainer Title="无计划入库">
<Button Type="ButtonType.Primary" Icon="@IconType.Outline.Download" Size="_size" Shape="ButtonShape.Round" OnClick="ShowModalWithService">任务下达</Button>
@ -30,7 +33,7 @@
@inject ModalService ModalService;
@inject ConfirmService ConfirmService;
@inject HttpClient httpClient;
@code {
List<ManageListData> mockDb = new();
IEnumerable<ManageListData> _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<MANAGE_LIST> manageLists { get; set; }
}
}

12
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<IProjectService, ProjectService>();
services.AddScoped<IUserService, UserService>();
services.AddScoped<IHttpClientService, HttpClientService>();
}
}
}

58
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<string> PostAsyncJson(string json, string apiAddress);
}
public class HttpClientService:IHttpClientService
{
/// <summary>
/// 使用post方法异步请求WebAPI
/// </summary>
/// <param name = "json" > 发送的参数字符串,只能用json</param>
/// <param name = "apiAddress" ></ param >
/// < returns > 返回的字符串 </ returns >
public async Task<string> 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;
}
}

1
NewWMSProject/src/NewWMSProject/Program.cs

@ -30,6 +30,7 @@ builder.Services.AddScoped(sp =>
return new HttpClient();
});
NewWMSProject.Program.AddClientServices(builder.Services);
builder.Services.Configure<ProSettings>(builder.Configuration.GetSection("ProSettings"));

52
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<TaskController> logger) : ControllerBase
[ApiController]
[Route("api/[controller]")]
public class TaskController(IManageHelper manageHelper) : ControllerBase
{
private IManageHelper _manageHelper = manageHelper;
private Logger<TaskController> _logger = logger;
/// <summary>
/// 生成无计划入库任务
/// </summary>
/// <param name="manageMain"></param>
/// <param name="manageLists"></param>
/// <param name="jsonString"></param>
/// <returns></returns>
[HttpPost]
public IActionResult InsertManageInTask(MANAGE_MAIN manageMain ,List<MANAGE_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<ManageJson>(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<MANAGE_LIST> manageLists { get; set; }
}
}

1
NewWMSWebAPI/NewWMSWebAPI.csproj

@ -7,6 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Serilog" Version="4.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.6.2" />
</ItemGroup>

36
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<DmDBContext>(options =>
options.UseDm("Server=127.0.0.1:5236;UserId=JIAMUSI_WMS_DATABASE;PWD=Siasun4813@;"),
ServiceLifetime.Transient);
builder.Services.AddScoped<IControlRepository,ControlRepository>();
builder.Services.AddScoped<IGoodsRepository, GoodsRepository>();
builder.Services.AddScoped<IManageRepository, ManageRepository>();
builder.Services.AddScoped<IPlanRepository, PlanRepository>();
builder.Services.AddScoped<IWhCellRepository, WhCellRepository>();
builder.Services.AddScoped<IManageHelper, ManageHelper>();
builder.Services.AddScoped<IStorageRepository, StorageRepository>();
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();

5
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<ManageHelper> logger, DmDBContext context, IManageRepository manageRepository, IWhCellRepository WhCellRepository, IStorageRepository storageRepository, IControlRepository controlRepository, IControlHisRepository controlHisRepository)
public ManageHelper(ILogger<ManageHelper> 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;
}

2
NewWMSWebAPI/TaskService/Interface/IManagePreOut.cs

@ -5,7 +5,7 @@ namespace Michelin_WebAPI.TaskServices.Interface
{
public interface IManagePreOut
{
public bool FabricateListCreate(List<MANAGE_MAIN> manageMains,out string sResult);
//public bool FabricateListCreate(List<MANAGE_MAIN> manageMains,out string sResult);
public bool ManageCreate(MANAGE_MAIN mMANAGE_MAIN, List<MANAGE_LIST> lsMANAGE_LIST, bool bTrans,
bool bAutoSendControl, bool bComplete, out string sResult);

33
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"
}

Loading…
Cancel
Save