箱管 20240725

usertest
dengyu 4 months ago
parent 25e3235de3
commit c54a74acd5

@ -0,0 +1,18 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.ContainerManagementApi.Controllers;
/// <summary>
/// WebApi控制器基类
/// </summary>
[Authorize]
[ApiController]
[Route("containerManagementApi/[controller]")]
public abstract class ApiController : Controller
{
// /// <summary>
// /// 获取用户信息
// /// </summary>
// public UserInfo UserDetails => Request.GetUserInfo();
}

@ -0,0 +1,95 @@
using DS.Module.Core;
using DS.Module.Core.Data;
using DS.WMS.ContainerManagement.Info.Dtos;
using DS.WMS.ContainerManagement.Info.Entity;
using DS.WMS.ContainerManagement.Info.Interface;
using DS.WMS.Core.Code.Dtos;
using DS.WMS.Core.Op.Dtos;
using DS.WMS.Core.Op.Interface;
using DS.WMS.Core.Op.View;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.ContainerManagementApi.Controllers;
/// <summary>
/// 集装箱管理
/// </summary>
public class CM_CurrentStateController : ApiController
{
private readonly ICM_CurrentStateService _invokeService;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="invokeService"></param>
public CM_CurrentStateController(ICM_CurrentStateService invokeService)
{
_invokeService = invokeService;
}
/// <summary>
/// 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("GetCM_CurrentStateList")]
public async Task<DataResult<List<CM_CurrentStateRes>>> GetCM_CurrentStateList([FromBody] PageRequest request)
{
var res = await _invokeService.GetListByPage(request);
return res;
}
/// <summary>
/// 直接编辑状态
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("EditCM_CurrentState")]
public DataResult EditCM_CurrentState([FromBody] CM_CurrentStateReq model)
{
var res = _invokeService.EditCM_CurrentState(model);
return res;
}
/// <summary>
/// 查看状态详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet]
[Route("GetCM_CurrentStateInfo")]
public DataResult<CM_CurrentStateRes> GetCM_CurrentStateInfo([FromQuery] string id)
{
var res = _invokeService.GetCM_CurrentStateInfo(id);
return res;
}
///// <summary>
///// 费用锁定
///// </summary>
///// <param name="req">主表Ids</param>
///// <returns></returns>
//[HttpPost]
//[Route("FeeLocking")]
//public DataResult FeeLocking([FromBody] IdModel req)
//{
// var res = _invokeService.FeeLocking(req);
// return res;
//}
///// <summary>
///// 费用解除锁定
///// </summary>
///// <param name="req">主表Ids</param>
///// <returns></returns>
//[HttpPost]
//[Route("FeeUnLocking")]
//public DataResult FeeUnLocking([FromBody] IdModel req)
//{
// var res = _invokeService.FeeUnLocking(req);
// return res;
//}
}

@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<InvariantGlobalization>true</InvariantGlobalization>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<DocumentationFile>bin\Debug\net8.0\Api.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DS.Module.AutofacModule\DS.Module.AutofacModule.csproj" />
<ProjectReference Include="..\DS.Module.Core\DS.Module.Core.csproj" />
<ProjectReference Include="..\DS.Module.Jwt\DS.Module.Jwt.csproj" />
<ProjectReference Include="..\DS.Module.MultiLanguage\DS.Module.MultiLanguage.csproj" />
<ProjectReference Include="..\DS.Module.Nuget\DS.Module.Nuget.csproj" />
<ProjectReference Include="..\DS.Module.SqlSugar\DS.Module.SqlSugar.csproj" />
<ProjectReference Include="..\DS.Module.Swagger\DS.Module.Swagger.csproj" />
<ProjectReference Include="..\DS.Module.UserModule\DS.Module.UserModule.csproj" />
<ProjectReference Include="..\DS.WMS.Core\DS.WMS.Core.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,6 @@
@DS.WMS.ContainerManagementApi_HostAddress = http://localhost:5011
GET {{DS.WMS.ContainerManagementApi_HostAddress}}/weatherforecast/
Accept: application/json
###

@ -0,0 +1,42 @@
2024-07-25 15:40:36.9950 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-25 15:40:37.0123 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-25 15:40:37.0161 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-25 15:40:37.0333 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-25 15:40:37.0333 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\ds8-solution-pro\ds-wms-service\DS.WMS.ContainerManagementApi\bin\Debug\net8.0\nlog.config
2024-07-25 15:40:37.0333 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-25 15:40:37.0498 Info Configuration initialized.
2024-07-25 15:41:29.0953 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-25 15:41:29.1107 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-25 15:41:29.1107 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-25 15:41:29.1294 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-25 15:41:29.1294 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\ds8-solution-pro\ds-wms-service\DS.WMS.ContainerManagementApi\bin\Debug\net8.0\nlog.config
2024-07-25 15:41:29.1444 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-25 15:41:29.1444 Info Configuration initialized.
2024-07-25 16:17:59.0630 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-25 16:17:59.0872 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-25 16:17:59.0946 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-25 16:17:59.1151 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-25 16:17:59.1151 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\ds8-solution-pro\ds-wms-service\DS.WMS.ContainerManagementApi\bin\Debug\net8.0\nlog.config
2024-07-25 16:17:59.1292 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-25 16:17:59.1292 Info Configuration initialized.
2024-07-25 16:19:07.1595 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-25 16:19:07.1728 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-25 16:19:07.1728 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-25 16:19:07.1911 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-25 16:19:07.1911 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\ds8-solution-pro\ds-wms-service\DS.WMS.ContainerManagementApi\bin\Debug\net8.0\nlog.config
2024-07-25 16:19:07.1911 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-25 16:19:07.2052 Info Configuration initialized.
2024-07-25 16:24:33.7032 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-25 16:24:33.7032 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-25 16:24:33.7248 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-25 16:24:33.7460 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-25 16:24:33.7541 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\ds8-solution-pro\ds-wms-service\DS.WMS.ContainerManagementApi\bin\Debug\net8.0\nlog.config
2024-07-25 16:24:33.7541 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-25 16:24:33.7696 Info Configuration initialized.
2024-07-25 16:34:52.0017 Info Registered target NLog.Targets.FileTarget(Name=allfile)
2024-07-25 16:34:52.0017 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
2024-07-25 16:34:52.0175 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
2024-07-25 16:34:52.0332 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
2024-07-25 16:34:52.0332 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\ds8-solution-pro\ds-wms-service\DS.WMS.ContainerManagementApi\bin\Debug\net8.0\nlog.config
2024-07-25 16:34:52.0332 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-07-25 16:34:52.0509 Info Configuration initialized.

@ -0,0 +1,86 @@
using Autofac;
using Autofac.Extensions.DependencyInjection;
using DS.Module.AutofacModule;
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.Core.ServiceExtensions;
using DS.Module.Jwt;
using DS.Module.MultiLanguage;
using DS.Module.SqlSugar;
using DS.Module.Swagger;
using DS.Module.UserModule;
using NLog.Web;
using Swashbuckle.AspNetCore.SwaggerUI;
var builder = WebApplication.CreateBuilder(args);
var environment = builder.Environment.EnvironmentName;
Console.WriteLine("当前开发环境:" + environment);
//注册配置
builder.Configuration
// .SetBasePath(builder.Environment.ContentRootPath)
.AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true)
// .AddJsonFile(path: $"appsettings.{environment}.json", optional: true, reloadOnChange: true)
.Build();
builder.Configuration.AddEnvironmentVariables();
builder.Logging.AddNLog("nlog.config");
// Add services to the container.
//Autofac注入
builder.Host
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureContainer<ContainerBuilder>(builder => { builder.RegisterModule(new AutofacModuleRegister()); });
builder.Services.AddAppWebInstal();
builder.Services.AddCorsInstall();
builder.Services.AddUserModuleInstall(); //用户服务
builder.Services.AddSqlSugarInstall();
builder.Services.AddSwaggerInstall();
builder.Services.AddJwtInstall();
builder.Services.AddSaasDbInstall();//分库服务
builder.Services.AddMultiLanguageInstall();//多语言服务
// builder.Services.AddEndpointsApiExplorer();
// builder.Services.AddSwaggerGen();
//builder.Services.AddCrawlerModuleInstall();//运踪服务
var app = builder.Build();
// Configure the HTTP request pipeline.
// if (app.Environment.IsDevelopment())
// {
// app.UseSwagger();
// app.UseSwaggerUI();
// }
//swagger
// app.UseSwagger();
var documentName = AppSetting.app(new string[] { "SwaggerDoc", "ContactName" });
app
.UseSwagger(c => { c.RouteTemplate = "{documentName}/swagger.json"; })
.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/" + documentName + "/swagger.json",
AppSetting.app(new string[] { "SwaggerDoc", "ContactName" }));
c.DocExpansion(DocExpansion.None);//DocExpansion设置为None可折叠所有方法
c.DefaultModelExpandDepth(-1);//-1 可不显示Models
});
//跨域
var policyName = AppSetting.app(new string[] { "Cors", "PolicyName" });
if (!policyName.IsNullOrEmpty())
{
app.UseCors(policyName); //添加跨域中间件
}
app.UseRouting();
app.UseStaticFiles();
//多语言中间件
app.UseMiddleware<MultiLanguageMiddleware>();
// //操作日志中间件
// app.UseMiddleware<OperationLogMiddleware>();
// 先开启认证
app.UseAuthentication();
// 然后是授权中间件
app.UseAuthorization();
app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
app.Run();

@ -0,0 +1,41 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:52580",
"sslPort": 44370
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5011",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7026;http://localhost:5011",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

@ -0,0 +1,89 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"JwtSettings": {
"Issuer": "vol.core.owner",
"Audience": "vol.core",
"User": "C5ABA9E202D94C43A3CA66002BF77FAF",
"SecretKey": "sdfsdfsrty45634kkhllghtdgdfss345t678fs"
},
"Cors": {
"PolicyName": "WMSCore.API",
"Url": "http://localhost:8000,http://localhost:5999,http://localhost:8088,http://localhost:5173,http://0.0.0.0:5999,http://0.0.0.0:9995,http://localhost:9995,http://60.209.125.238:9995,http://localhost:3000,https://localhost:3100,http://47.104.255.182:3100,http://47.104.255.182:3110,https://localhost:3110,http://localhost:8080,http://localhost:8081,http://localhost:8082,http://localhost:8083,http://localhost:8084"
},
"DBInfo": {
"DefaultDbConnId": "1288018625843826688",
"DefaultDbType": 0,
"DefaultDbString": "server=60.209.125.238;port=32006;uid=root;pwd=Djy@Mysql.test;database=shippingweb8_dev",
"DBS": [
{
"ConnId": "1288018625843826680",
"DBType": 0,
"Enabled": false,
"HitRate": 40,
"Connection": "server=60.209.125.238;port=32006;uid=root;pwd=Djy@Mysql.test;database=shippingweb8_log"
}
]
},
"SwaggerDoc": {
"ContactName": "WmsContainerManagementAPI",
"ContactEmail": "Wms API.Core@xxx.com",
"ContactUrl": "https://www.xxx.com",
"Version": "1.0",
"Title": "Wms ContainerManagement API",
"Description": "Wms ContainerManagement API"
},
"Middleware": {
"RecordAccessLogs": {
"Enabled": true,
"IgnoreApis": "/api/permission/getnavigationbar,/api/monitor/getids4users,/api/monitor/getaccesslogs,/api/monitor/server,/api/monitor/getactiveusers,/api/monitor/server,"
}
},
"FileSettings": {
"BasePath": "", //使
"RelativePath": "LinkAttach",
"FileType": [ ".xls", ".xlsx", ".pdf", ".jpg", ".png", ".txt", ".pms" ]
},
//
"PrintTemplate": {
"BasePath": "", //使
"RelativePath": "Upload/PrintTemplate",
"FileType": [ ".frx", ".xls" ]
},
"TempFile": {
"Path": "TempFiles",
"RemainHours": 2
},
"PrintService": {
"IP": "60.209.125.238",
"Port": "3009",
"AccessKey": "1777229107311022080",
"AccessSecret": "d816e6fe938f24e2f205db129d31286a",
"GetModuleListUrl": "/printApi/OpenPrint/GetPrintModuleList",
"GetTemplateListUrl": "/printApi/OpenPrint/GetPrintTemplateList",
"GetJsonPrintInfoUrl": "/printApi/OpenPrint/GetOpenJsonPrintInfo"
},
"DjyService": {
"IP": "60.209.125.238",
"Port": "35100",
"AccessKey": "6b050e757c1e405489e19602dd81ebbe",
"AccessSecret": "51d564741c761e0760f62d904f13c193009e74d0af9f72e2dc67f9320b8ae42580e2339745aee1bf",
"SaveServiceProjectUrl": "/EmbedProjectGoodsStatus/SaveServiceProject",
"CancelServiceProjectUrl": "/EmbedProjectGoodsStatus/CancelServiceProject",
"GetServiceProjectListUrl": "/EmbedProjectGoodsStatus/GetServiceProjectList",
"GetServiceStatusListUrl": "/EmbedProjectGoodsStatus/GetServiceStatusList",
"SaveServiceStatusUrl": "/EmbedProjectGoodsStatus/SaveServiceStatus",
"CancelServiceStatusUrl": "/EmbedProjectGoodsStatus/CancelServiceStatus"
},
"ExcuteRuleService": {
"IP": "47.104.73.97",
"Port": "7115",
"SenderKey": "SEFBZkh5V3R1TGxtdlBIcTF4QmNMWURCS08vb2EvTzVxS0F0eDFKdlgyS3lKVUx6K3JRRE94Q2kvcWZMRytZeWxyVkhLdk9hRGpzVStPamhIUXd5NU9FMjhFTktwUlZ2eThJZGlQd3p5dUk9",
"SendUrl": "/api/RulesEngineManage/ExcuteWorkFlow"
}
}

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="info"
internalLogFile="Logs\internal-nlog.txt">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore" />
</extensions>
<targets>
<!-- 写入文件配置 -->
<!-- 将日志写入文件 -->
<target xsi:type="File" name="allfile" fileName="Logs\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring} ${newline}" />
<!-- 另一个文件日志只有自己的日志。使用一些ASP.NET核心渲染器 -->
<target xsi:type="File" name="ownFile-web" fileName="Logs\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action} ${newline}" />
<!-- 将日志写入控制台 -->
<target name="console" xsi:type="ColoredConsole" layout="${longdate} ${message} ${exception:format=tostring}" />
</targets>
<rules>
<!--所有日志包括来自Microsoft的-->
<!--minlevel 改为Trace 跟踪全部 Error 只捕获异常-->
<!-- <logger name="*" minlevel="Trace" writeTo="allfile" /> -->
<logger name="*" minlevel="Trace" writeTo="console" />
<!--跳过非关键的Microsoft日志因此只记录自己的日志-->
<logger name="Microsoft.*" maxlevel="Info" final="true" />
<!-- BlackHole without writeTo -->
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>

@ -0,0 +1,136 @@
using DS.Module.Core;
using FluentValidation;
using SqlSugar;
namespace DS.WMS.ContainerManagement.Info.Dtos;
/// <summary>
/// 集装箱当前状态 请求实体
/// </summary>
public class CM_CurrentStateReq
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 集装箱号
/// </summary>
public string Cntrno { get; set; }
// <summary>
/// Desc:箱型
/// </summary>
public string Ctnall { get; set; }
/// <summary>
/// Desc:是否上线(是否管理中)
/// </summary>
public bool IsOnline { get; set; } = false;
/// <summary>
/// Desc:新旧箱 空白/used/new
/// </summary>
public string UsedState { get; set; }
/// <summary>
/// Desc:箱主
/// </summary>
public string CtnOwner { get; set; }
/// <summary>
/// Desc:业务所属分部
/// </summary>
public string Corpid { get; set; }
/// <summary>
/// Desc:箱来源: 自有箱/短租租入/长租租入/买箱
/// </summary>
public string CtnSource { get; set; }
/// <summary>
/// Desc:箱业务状态: 短租租出 长租租出 单程 卖箱
/// </summary>
public string CtnBizState { get; set; } = "0";
/// <summary>
/// Desc:箱业务编号:当前
/// </summary>
public string Billno { get; set; }
/// <summary>
/// Desc:关联放箱单号
/// </summary>
public string CtnReleaseNo { get; set; }
/// <summary>
/// Desc:箱状态
/// </summary>
public string CtnState { get; set; }
/// <summary>
/// Desc:箱损坏/维修状态
/// </summary>
public string CtnBreakState { get; set; }
/// <summary>
/// Desc:当前港口
/// </summary>
public string Portid { get; set; }
/// <summary>
/// Desc:码头或场站
/// </summary>
public string Depot { get; set; }
/// <summary>
/// Desc:运输工具
/// </summary>
public string VehicleName { get; set; }
/// <summary>
/// Desc:当前业务编号
/// </summary>
public string Mblno { get; set; }
/// <summary>
/// Desc:业务委托单位
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// Desc:ETD
/// </summary>
public DateTime? ETD { get; set; }
/// <summary>
/// Desc:ETD
/// </summary>
public DateTime? ETA { get; set; }
/// <summary>
/// Desc:状态时间
/// </summary>
public DateTime? StateTime { get; set; }
}
/// <summary>
/// 验证
/// </summary>
public class CM_CurrentStateReqValidator : AbstractValidator<CM_CurrentStateReq>
{
/// <summary>
/// 构造函数
/// </summary>
public CM_CurrentStateReqValidator()
{
this.RuleFor(o => o.Cntrno)
.NotEmpty().WithName("集装箱号");
this.RuleFor(o => o.Ctnall)
.NotEmpty().WithName("箱型");
}
}

@ -0,0 +1,117 @@
using DS.Module.Core;
using SqlSugar;
namespace DS.WMS.ContainerManagement.Info.Dtos;
/// <summary>
/// 集装箱当前状态 返回实体
/// </summary>
public class CM_CurrentStateRes
{
/// <summary>
/// 主键Id
/// </summary>
public long Id { get; set; }
/// <summary>
/// 集装箱号
/// </summary>
public string Cntrno { get; set; }
// <summary>
/// Desc:箱型
/// </summary>
public string Ctnall { get; set; }
/// <summary>
/// Desc:是否上线(是否管理中)
/// </summary>
public bool IsOnline { get; set; } = false;
/// <summary>
/// Desc:新旧箱 空白/used/new
/// </summary>
public string UsedState { get; set; }
/// <summary>
/// Desc:箱主
/// </summary>
public string CtnOwner { get; set; }
/// <summary>
/// Desc:业务所属分部
/// </summary>
public string Corpid { get; set; }
/// <summary>
/// Desc:箱来源: 自有箱/短租租入/长租租入/买箱
/// </summary>
public string CtnSource { get; set; }
/// <summary>
/// Desc:箱业务状态: 短租租出 长租租出 单程 卖箱
/// </summary>
public string CtnBizState { get; set; } = "0";
/// <summary>
/// Desc:箱业务编号:当前
/// </summary>
public string Billno { get; set; }
/// <summary>
/// Desc:关联放箱单号
/// </summary>
public string CtnReleaseNo { get; set; }
/// <summary>
/// Desc:箱状态
/// </summary>
public string CtnState { get; set; }
/// <summary>
/// Desc:箱损坏/维修状态
/// </summary>
public string CtnBreakState { get; set; }
/// <summary>
/// Desc:当前港口
/// </summary>
public string Portid { get; set; }
/// <summary>
/// Desc:码头或场站
/// </summary>
public string Depot { get; set; }
/// <summary>
/// Desc:运输工具
/// </summary>
public string VehicleName { get; set; }
/// <summary>
/// Desc:当前业务编号
/// </summary>
public string Mblno { get; set; }
/// <summary>
/// Desc:业务委托单位
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// Desc:ETD
/// </summary>
public DateTime? ETD { get; set; }
/// <summary>
/// Desc:ETD
/// </summary>
public DateTime? ETA { get; set; }
/// <summary>
/// Desc:状态时间
/// </summary>
public DateTime? StateTime { get; set; }
}

@ -0,0 +1,136 @@
using DS.Module.Core;
using DS.Module.Core.Data;
using SqlSugar;
namespace DS.WMS.ContainerManagement.Info.Entity;
/// <summary>
/// 集装箱当前状态
/// </summary>
[SqlSugar.SugarTable("CM_CurrentState", "箱管_当前状态")]
public class CM_CurrentState : BaseOrgModel<long>
{
/// <summary>
/// Desc:集装箱号
/// </summary>
[SugarColumn(ColumnDescription = "集装箱号", IsNullable = false, Length = 20)]
public string Cntrno { get; set; }
/// <summary>
/// Desc:箱型
/// </summary>
[SugarColumn(ColumnDescription = "箱型", IsNullable = false, Length = 20)]
public string Ctnall { get; set; }
/// <summary>
/// Desc:是否上线(是否管理中)
/// </summary>
[SugarColumn(ColumnDescription = "是否上线", IsNullable = false,DefaultValue ="0")]
public bool IsOnline { get; set; } = false;
/// <summary>
/// Desc:新旧箱 空白/used/new
/// </summary>
[SugarColumn(ColumnDescription = "新旧箱", IsNullable = true, Length = 20)]
public string UsedState { get; set; }
/// <summary>
/// Desc:箱主
/// </summary>
[SugarColumn(ColumnDescription = "箱主", IsNullable = true, Length = 50)]
public string CtnOwner { get; set; }
/// <summary>
/// Desc:业务所属分部
/// </summary>
[SugarColumn(ColumnDescription = "业务所属分部", IsNullable = true, Length = 50)]
public string Corpid { get; set; }
/// <summary>
/// Desc:箱来源: 自有箱/短租租入/长租租入/买箱
/// </summary>
[SugarColumn(ColumnDescription = "箱来源", IsNullable = true, Length = 20)]
public string CtnSource { get; set; }
/// <summary>
/// Desc:箱业务状态: 短租租出 长租租出 单程 卖箱
/// </summary>
[SugarColumn(ColumnDescription = "箱业务状态", DefaultValue = "")]
public string CtnBizState { get; set; } = "0";
/// <summary>
/// Desc:箱业务编号:当前
/// </summary>
[SugarColumn(ColumnDescription = "箱业务编号", IsNullable = true, Length = 50)]
public string Billno { get; set; }
/// <summary>
/// Desc:关联放箱单号
/// </summary>
[SugarColumn(ColumnDescription = "关联放箱单号", Length = 50)]
public string CtnReleaseNo { get; set; }
/// <summary>
/// Desc:箱状态
/// </summary>
[SugarColumn(ColumnDescription = "箱状态", IsNullable = true, Length = 20)]
public string CtnState { get; set; }
/// <summary>
/// Desc:箱损坏/维修状态
/// </summary>
[SugarColumn(ColumnDescription = "箱损坏/维修状态", IsNullable = true, Length = 20)]
public string CtnBreakState { get; set; }
/// <summary>
/// Desc:当前港口
/// </summary>
[SugarColumn(ColumnDescription = "当前港口", IsNullable = true, Length = 50)]
public string Portid { get; set; }
/// <summary>
/// Desc:码头或场站
/// </summary>
[SugarColumn(ColumnDescription = "码头或场站", IsNullable = true, Length = 50)]
public string Depot { get; set; }
/// <summary>
/// Desc:运输工具
/// </summary>
[SugarColumn(ColumnDescription = "运输工具", IsNullable = true, Length = 50)]
public string VehicleName { get; set; }
/// <summary>
/// Desc:当前业务编号
/// </summary>
[SugarColumn(ColumnDescription = "当前业务编号", IsNullable = true, Length = 50)]
public string Mblno { get; set; }
/// <summary>
/// Desc:业务委托单位
/// </summary>
[SugarColumn(ColumnDescription = "业务委托单位", IsNullable = true, Length = 50)]
public string CustomerName { get; set; }
/// <summary>
/// Desc:ETD
/// </summary>
[SugarColumn(ColumnDescription = "ETD", IsNullable = true)]
public DateTime? ETD { get; set; }
/// <summary>
/// Desc:ETD
/// </summary>
[SugarColumn(ColumnDescription = "ETA", IsNullable = true)]
public DateTime? ETA { get; set; }
/// <summary>
/// Desc:状态时间
/// </summary>
[SugarColumn(ColumnDescription = "状态时间", IsNullable = true)]
public DateTime? StateTime { get; set; }
}

@ -0,0 +1,33 @@
using DS.Module.Core;
using DS.WMS.ContainerManagement.Info.Dtos;
using DS.WMS.Core.Info.Dtos;
using DS.WMS.Core.Op.View;
using DS.WMS.Core.Sys.Dtos;
namespace DS.WMS.ContainerManagement.Info.Interface;
public interface ICM_CurrentStateService
{
/// <summary>
/// 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
//DataResult<List<CM_CurrentStateRes>> GetListByPage(PageRequest request);
public Task<DataResult<List<CM_CurrentStateRes>>> GetListByPage(PageRequest request);
/// <summary>
/// 编辑
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
DataResult EditCM_CurrentState(CM_CurrentStateReq model);
/// <summary>
/// 获取详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
DataResult<CM_CurrentStateRes> GetCM_CurrentStateInfo(string id);
}

@ -0,0 +1,115 @@
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.SqlSugar;
using DS.Module.UserModule;
using DS.WMS.ContainerManagement.Info.Dtos;
using DS.WMS.ContainerManagement.Info.Entity;
using DS.WMS.ContainerManagement.Info.Interface;
using DS.WMS.Core.Info.Dtos;
using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Info.Interface;
using DS.WMS.Core.Op.View;
using DS.WMS.Core.Sys.Entity;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
namespace DS.WMS.ContainerManagement.Info.Method;
public class CM_CurrentStateService : ICM_CurrentStateService
{
private readonly IServiceProvider _serviceProvider;
private readonly ISqlSugarClient db;
private readonly IUser user;
private readonly ISaasDbService saasService;
/// <summary>
///
/// </summary>
/// <param name="serviceProvider"></param>
public CM_CurrentStateService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
db = _serviceProvider.GetRequiredService<ISqlSugarClient>();
user = _serviceProvider.GetRequiredService<IUser>();
saasService = _serviceProvider.GetRequiredService<ISaasDbService>();
}
/// <summary>
/// 列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<DataResult<List<CM_CurrentStateRes>>> GetListByPage(PageRequest request)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
//序列化查询条件
var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
var data = tenantDb.Queryable<CM_CurrentState>()
.Where(whereList)
.Select<CM_CurrentStateRes>().ToQueryPage(request.PageCondition);
return data;
}
//public async Task<DataResult<List<CM_CurrentStateRes>>> GetListByPage(PageRequest request)
//{
// var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
// //序列化查询条件
// var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
// var data = await tenantDb.Queryable<CM_CurrentStateRes>()
// .Where(whereList)
// .ToQueryPageAsync(request.PageCondition);
// return data;
//}
/// <summary>
/// 编辑
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
public DataResult EditCM_CurrentState(CM_CurrentStateReq req)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
if (req.Id == 0)
{
//if (tenantDb.Queryable<InfoClientAccountDate>().Where(x => x.AccountType == req.AccountType &&
// x.AccountType == req.AccountType &&
// x.SaleId == req.SaleId &&
// x.BeginDate == req.BeginDate &&
// x.EndDate == req.EndDate).Any())
//{
// return DataResult.Failed("客户账期信息已存在!", MultiLanguageConst.ClientAccountDateExist);
//}
var data = req.Adapt<CM_CurrentState>();
var entity = tenantDb.Insertable(data).ExecuteReturnEntity();
return DataResult.Successed("添加成功!", entity.Id, MultiLanguageConst.DataCreateSuccess);
}
else
{
var info = tenantDb.Queryable<CM_CurrentState>().Where(x => x.Id == req.Id).First();
info = req.Adapt(info);
tenantDb.Updateable(info).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
return DataResult.Successed("更新成功!", MultiLanguageConst.DataUpdateSuccess);
}
}
/// <summary>
/// 详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public DataResult<CM_CurrentStateRes> GetCM_CurrentStateInfo(string id)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var data = tenantDb.Queryable<CM_CurrentState>()
.Where(a => a.Id == long.Parse(id))
.Select<CM_CurrentStateRes>()
.First();
return DataResult<CM_CurrentStateRes>.Success(data, MultiLanguageConst.DataQuerySuccess);
}
}

@ -199,6 +199,24 @@
"Type": "RoundRobin"
}
},
{
"DownstreamPathTemplate": "/containerManagementApi/{url}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 3005
}
],
"UpstreamPathTemplate": "/containerManagementApi/{url}",
"UpstreamHttpMethod": [
"Get",
"Post"
],
"LoadBalancerOptions": {
"Type": "RoundRobin"
}
},
{
"DownstreamPathTemplate": "/LinkAttach/{url}",
"DownstreamScheme": "http",

@ -0,0 +1,258 @@
using System.Reflection;
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.SqlSugar;
using DS.WMS.ContainerManagement.Info.Entity;
using DS.WMS.Core.Check.Entity;
using DS.WMS.Core.Code.Entity;
using DS.WMS.Core.Info.Entity;
using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Op.Entity.BookingSlot;
using DS.WMS.Core.Sys.Entity;
using DS.WMS.Core.TaskPlat.Entity;
using Mapster;
using Masuit.Tools.Strings;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Owin.BuilderProperties;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Org.BouncyCastle.Ocsp;
using SqlSugar;
using SqlSugar.IOC;
using Xunit;
namespace Ds.WMS.Test;
public class ContainerManagementTest
{
private readonly IServiceProvider _serviceProvider;
private readonly SqlSugarScope db;
private readonly ISaasDbService saasService;
public ContainerManagementTest(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
db = (SqlSugarScope)_serviceProvider.GetRequiredService<ISqlSugarClient>();
saasService = _serviceProvider.GetRequiredService<ISaasDbService>();
}
[Fact]
public void ContainerManagementTest1()
{
Type[] types = Assembly
.LoadFrom("DS.WMS.Core.dll")//如果 .dll报错可以换成 xxx.exe 有些生成的是exe
.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Op.Entity."))
//.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Code.Entity.") || it.FullName.Contains("DS.WMS.Core.Info.Entity.") || it.FullName.Contains("DS.WMS.Core.Flow.Entity.")
//|| it.FullName.Contains("DS.WMS.Core.Check.Entity.") || it.FullName.Contains("DS.WMS.Core.Map.Entity."))//命名空间过滤,当然你也可以写其他条件过滤
.ToArray();
//Type[] types = Assembly
// .LoadFrom("DS.WMS.Core.dll")//如果 .dll报错可以换成 xxx.exe 有些生成的是exe
// .GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Code.Entity."))//命名空间过滤,当然你也可以写其他条件过滤
// .ToArray();
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
// var temp = tenantDb.CodeFirst.GetDifferenceTables(types); || it.FullName.Contains("DS.WMS.Core.Op.Entity.")
// var diffString= tenantDb.CodeFirst.GetDifferenceTables(types).ToDiffString();
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
//types = types.Where(it => it.Name != "BusinessFeeStatus").ToArray();
//types = types.Where(it => it.Name != "BusinessOrderContact").ToArray();
tenantDb.CodeFirst.InitTables(types);
// //初始化数库
// tenantDb.DbMaintenance.CreateDatabase();
//
// tenantDb.CodeFirst.InitTables(typeof(CodeCountry));
Assert.True(true);
}
/// <summary>
/// 主库初始化单表
/// </summary>
//[Fact]
//public void MasterInitTableTest()
//{
// StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
// db.CodeFirst.InitTables(typeof(SysPrintTemplate));
// //tenantDb.CodeFirst.InitTables(typeof(CheckBillAutoDetail));
// //db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));
// Assert.True(true);
//}
/// <summary>
/// 初始化单表
/// </summary>
[Fact]
public void InitTableTest()
{
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
tenantDb.CodeFirst.InitTables(typeof(CM_CurrentState));
//tenantDb.CodeFirst.InitTables(typeof(BookingStatusLog));
//tenantDb.CodeFirst.InitTables(typeof(BookingStatus));
//tenantDb.CodeFirst.InitTables(typeof(BookingStatusLogDetail));
//tenantDb.CodeFirst.InitTables(typeof(BusinessOrderContact));
//tenantDb.CodeFirst.InitTables(typeof(BusinessTruck));
//tenantDb.CodeFirst.InitTables(typeof(BusinessTruckCtn));
//tenantDb.CodeFirst.InitTables(typeof(BusinessYard));
////tenantDb.CodeFirst.InitTables(typeof(OpCtn));
//tenantDb.CodeFirst.InitTables(typeof(OpCtnDetail));
//tenantDb.CodeFirst.InitTables(typeof(OpFile));
////tenantDb.CodeFirst.InitTables(typeof(SeaExport));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportBillManage));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportBillManageCtn));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportEdi));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportRemark));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportShippingBill));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportShippingBillCtn));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportShippingBillPartCtn));
//tenantDb.CodeFirst.InitTables(typeof(SeaExportShippingBillTemplate));
//db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));
Assert.True(true);
}
///// <summary>
///// 初始化海运出口视图
///// </summary>
//[Fact]
//public void InitSeaExportViewTest()
//{
// var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
// StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
// tenantDb.CodeFirst.InitTables(typeof(SeaExport));
// Assert.True(true);
//}
[Fact]
public void SaasCheckTest()
{
Type[] types = Assembly
.LoadFrom("DS.WMS.Core.dll")//如果 .dll报错可以换成 xxx.exe 有些生成的是exe
.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Code.Entity"))//命名空间过滤,当然你也可以写其他条件过滤
.ToArray();
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
tenantDb.CodeFirst.InitTables(types);
Assert.True(true);
}
[Fact]
public void SaasFeeTest()
{
Type[] types = Assembly
.LoadFrom("DS.WMS.Core.dll")//如果 .dll报错可以换成 xxx.exe 有些生成的是exe
.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Fee.Entity"))//命名空间过滤,当然你也可以写其他条件过滤
.ToArray();
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
tenantDb.CodeFirst.InitTables(types);
Assert.True(true);
}
[Fact]
public void ClientBatchEdit()
{
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
var info = tenantDb.Queryable<InfoClient>().Filter(null, true).Where(x => x.Id == 1772138307266940928).First();
var temp = new ClientTemp
{
Address = "4",
Name = "4",
};
var dic = temp.GetPropertiesArray();
info = temp.Adapt(info);
tenantDb.Updateable(info).UpdateColumns(dic).ExecuteCommand();
Assert.True(true);
}
[Fact]
public void CopyColumnTest()
{
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
var columns = "noBill,enName,copyNoBill";
var list = columns.Split(",");
var list1 = new List<string>();
foreach (var item in list)
{
list1.Add(item.ToUpperCamelCase());
}
Console.WriteLine(list1[0]);
Assert.True(true);
}
public class ClientTemp
{
/// <summary>
/// Desc:客户中文名称或描述信息
/// </summary>
public string Description { get; set; }
/// <summary>
/// Desc:客户英文简称
/// </summary>
public string Name { get; set; }
/// <summary>
/// Desc:客户英文全称
/// </summary>
public string EnFullName { get; set; }
/// <summary>
/// Desc:通讯地址
/// </summary>
public string Address { get; set; }
}
/// <summary>
/// 初始化单表
/// </summary>
[Fact]
public void InitTableTestJHQ()
{
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
//tenantDb.CodeFirst.InitTables(typeof(SpaceBookingOrder));
//tenantDb.CodeFirst.InitTables(typeof(SpaceBookingOrderCtn));
//tenantDb.CodeFirst.InitTables(typeof(SpaceBookingOrderShipSchedule));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotBase));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotCtn));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotStock));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotAllocation));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotAllocationCtn));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotDemand));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotDemandCtn));
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotCompare));
//tenantDb.CodeFirst.InitTables(typeof(BookingContractNoManage));
//tenantDb.CodeFirst.InitTables(typeof(BookingLabel));
//tenantDb.CodeFirst.InitTables(typeof(BookingLabelAllocation));
tenantDb.CodeFirst.InitTables(typeof(InfoClient));
//tenantDb.CodeFirst.InitTables(typeof(CodeThirdParty));
//tenantDb.CodeFirst.InitTables(typeof(CheckBillAutoDetail));
//db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));
Assert.True(true);
}
/// <summary>
/// 初始化单表
/// </summary>
[Fact]
public void InitTableTestZXF()
{
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
var ass = Assembly.Load("DS.WMS.Core");
var types = ass.GetTypes().Where(it => it.FullName?.Contains("DS.WMS.Core.TaskPlat.Entity") == true).ToArray();
tenantDb.CodeFirst.InitTables(types);
//tenantDb.CodeFirst.InitTables(typeof(TaskFlowLog));
//tenantDb.CodeFirst.InitTables(typeof(TaskFlowLogDetail));
Assert.True(true);
}
}

@ -67,6 +67,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.WMS.PrintApi", "DS.WMS.P
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.OcrModule", "DS.Module.OcrModule\DS.Module.OcrModule.csproj", "{3EB9CA1E-5910-42A5-A64D-0CB435F6A64A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.WMS.ContainerManagementApi", "DS.WMS.ContainerManagementApi\DS.WMS.ContainerManagementApi.csproj", "{7C3E248A-DF40-46AC-A8DF-224DD7C4EEF7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -189,6 +191,10 @@ Global
{3EB9CA1E-5910-42A5-A64D-0CB435F6A64A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3EB9CA1E-5910-42A5-A64D-0CB435F6A64A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3EB9CA1E-5910-42A5-A64D-0CB435F6A64A}.Release|Any CPU.Build.0 = Release|Any CPU
{7C3E248A-DF40-46AC-A8DF-224DD7C4EEF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C3E248A-DF40-46AC-A8DF-224DD7C4EEF7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C3E248A-DF40-46AC-A8DF-224DD7C4EEF7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C3E248A-DF40-46AC-A8DF-224DD7C4EEF7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -223,6 +229,7 @@ Global
{4B51DCC1-62A5-49C5-978B-798E6B48F3C0} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{274B1D18-A15A-4917-A567-6FDCD090D5B0} = {65D75DB2-12D5-4D1F-893D-9750905CE5E4}
{3EB9CA1E-5910-42A5-A64D-0CB435F6A64A} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{7C3E248A-DF40-46AC-A8DF-224DD7C4EEF7} = {65D75DB2-12D5-4D1F-893D-9750905CE5E4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {66115F23-94B4-43C0-838E-33B5CF77F788}

Loading…
Cancel
Save