zhangxiaofeng 5 months ago
commit 386718dc16

@ -1173,5 +1173,108 @@ public static class MultiLanguageConst
[Description("合约作废未提供主键ID")]
public const string BookingContractDeleteIdsNull = "BookingContract_Delete_IdsNull";
/// <summary>
/// 部分舱位信息提取失败,请确认舱位是否存在或已作废
/// </summary>
[Description("部分舱位信息提取失败,请确认舱位是否存在或已作废")]
public const string BookingSlotMergeCheckPartRecordDeletedOrNoExists = "BookingContract_MergeCheck_PartRecord_DeletedOrNoExists";
/// <summary>
/// 舱位合票校验失败,部分舱位的以下信息船公司、船名场次、合约号、承运方式、订舱方式、装货地、卸货地有空值情况
/// </summary>
[Description("舱位合票校验失败,部分舱位的以下信息船公司、船名场次、合约号、承运方式、订舱方式、装货地、卸货地有空值情况")]
public const string BookingSlotMergeCheckPartRecordNoConsistent = "BookingContract_MergeCheck_PartRecord_NoConsistent";
/// <summary>
/// 舱位合票校验失败,船公司、船名场次、合约号、承运方式、订舱方式、装货地、卸货地不统一不能合票
/// </summary>
[Description("舱位合票校验失败,船公司、船名场次、合约号、承运方式、订舱方式、装货地、卸货地不统一不能合票")]
public const string BookingSlotMergeCheckPartRecordNoConsistentFail = "BookingContract_MergeCheck_PartRecord_NoConsistent_Fail";
/// <summary>
/// 舱位合票失败,校验库存为不可用,请确认正确的库存
/// </summary>
[Description("舱位合票失败,校验库存为不可用,请确认正确的库存")]
public const string BookingSlotMergeCheckStockEmpty = "BookingContract_MergeCheck_StockEmpty";
/// <summary>
/// 舱位合票失败,舱位提单号:{0} 缺少库存
/// </summary>
[Description("舱位合票失败,舱位提单号:{0} 缺少库存")]
public const string BookingSlotMergeFailShortStock = "BookingContract_MergeFail_ShortStock";
/// <summary>
/// 单号【{0}】含有 {1}
/// </summary>
[Description("单号【{0}】含有 {1}")]
public const string BookingSlotMergeSpecialNotice = "BookingContract_Merge_SpecialNotice";
/// <summary>
/// 请选择委托单位
/// </summary>
[Description("请选择委托单位")]
public const string BookingSlotCreateCustomerNull = "BookingSlot_Create_CustomerNull";
/// <summary>
/// 请选择要使用的箱信息
/// </summary>
[Description("请选择要使用的箱信息")]
public const string BookingSlotCreateContaNull = "BookingSlot_Create_ContaNull";
/// <summary>
/// 舱位ID不能为空
/// </summary>
[Description("舱位ID不能为空")]
public const string BookingSlotCreateSlotIdNull = "BookingSlot_Create_SlotIdNull";
/// <summary>
/// 舱位数据不存在或已作废
/// </summary>
[Description("舱位数据不存在或已作废")]
public const string BookingSlotCreateRecordDeletedOrNoExists = "BookingSlot_Create_Recrod_DeleteOr_NoExists";
/// <summary>
/// 委托单位{0} 获取失败,委托单位不存在或已作废
/// </summary>
[Description("委托单位{0} 获取失败,委托单位不存在或已作废")]
public const string BookingSlotCreateCustomerDeletedOrNoExists = "BookingSlot_Create_Customer_DeleteOr_NoExists";
/// <summary>
/// 委托单位{0} 获取相关联系人失败,委托单位相关联系人为空
/// </summary>
[Description("委托单位{0} 获取相关联系人失败,委托单位相关联系人为空")]
public const string BookingSlotCreateCustomerContractInfoNull = "BookingSlot_Create_Customer_ContractInfoNull";
/// <summary>
/// 委托单位 {0} 联系人 {1} 获取失败,联系人不存在或已作废
/// </summary>
[Description("委托单位 {0} 联系人 {1} 获取失败,联系人不存在或已作废")]
public const string BookingSlotCreateCustomerContractDeletedOrNoExists = "BookingSlot_Create_Customer_ContractDeletedOrNoExists";
/// <summary>
/// 生成订舱时往来单位联系人必填,请修改
/// </summary>
[Description("生成订舱时往来单位联系人必填,请修改")]
public const string BookingSlotCreateCustomerContractNotNull = "BookingSlot_Create_Customer_ContractNotNull";
/// <summary>
/// 订舱主键{0}已引用舱位
/// </summary>
[Description("订舱主键{0}已引用舱位")]
public const string BookingSlotHasImportSlots = "BookingSlot_HasImportSlots";
/// <summary>
/// 获取的历史拆票后缀异常maxChar={0}
/// </summary>
[Description("订舱主键{0}已引用舱位")]
public const string BookingSlotSplitMergeCheckError = "BookingSlot_SplitMerge_CheckError";
/// <summary>
/// 舱位提单号:{0} 已有订舱记录不能重复操作
/// </summary>
[Description("舱位提单号:{0} 已有订舱记录不能重复操作")]
public const string BookingSlotSplitMergeHasOrder = "BookingSlot_SplitMerge_HasOrder";
#endregion
}

@ -400,4 +400,9 @@ public class ClientInfoRes
/// 客户标识
/// </summary>
public ClientTagRes ClientTag { get; set; }
/// <summary>
/// 联系人列表
/// </summary>
public List<ClientContactRes> ClientContactList { get; set; }
}

@ -0,0 +1,135 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DS.WMS.Core.Info.Dtos
{
/// <summary>
/// 检索往来单位
/// </summary>
public class QueryClientInfo
{
/// <summary>
/// 客户Id
/// </summary>
public long ClientId { get; set; }
/// <summary>
/// Desc:是否特批放单客户
/// </summary>
public bool IsSpecialApproval { get; set; } = false;
/// <summary>
/// Desc:是否船公司
/// </summary>
public bool IsCarrier { get; set; } = false;
/// <summary>
/// Desc:是否订舱公司
/// </summary>
public bool IsBooking { get; set; } = false;
/// <summary>
/// Desc:是否场站
/// </summary>
public bool IsYard { get; set; } = false;
/// <summary>
/// Desc:是否车队
/// </summary>
public bool IsTruck { get; set; } = false;
/// <summary>
/// Desc:是否委托单位
/// </summary>
public bool IsController { get; set; } = false;
/// <summary>
/// Desc:是否报关行
/// </summary>
public bool IsCustom { get; set; } = false;
/// <summary>
/// Desc:是否代理(国外)
/// </summary>
public bool IsAgent { get; set; } = false;
/// <summary>
/// Desc:是否代理(国内)
/// </summary>
public bool IsAgentCn { get; set; } = false;
/// <summary>
/// Desc:是否快递公司
/// </summary>
public bool IsExpress { get; set; } = false;
/// <summary>
/// Desc:是否航空公司
/// </summary>
public bool IsAirLines { get; set; } = false;
/// <summary>
/// Desc:是否发货人
/// </summary>
public bool IsShipper { get; set; } = false;
/// <summary>
/// Desc:是否收货人
/// </summary>
public bool IsConsignee { get; set; } = false;
/// <summary>
/// Desc:是否通知人
/// </summary>
public bool IsNotifyParty { get; set; } = false;
/// <summary>
/// Desc:是否仓库
/// </summary>
public bool IsWareHouse { get; set; } = false;
/// <summary>
/// Desc:是否码头
/// </summary>
public bool IsWharf { get; set; } = false;
/// <summary>
/// Desc:是否保险公司
/// </summary>
public bool IsInsurer { get; set; } = false;
/// <summary>
/// Desc:是否租箱公司
/// </summary>
public bool IsLeasing { get; set; } = false;
/// <summary>
/// Desc:是否贸易代理
/// </summary>
public bool IsTradingAgency { get; set; } = false;
/// <summary>
/// Desc:是否其他
/// </summary>
public bool IsOther { get; set; } = false;
/// <summary>
/// Desc:其他类型
/// </summary>
public string Others { get; set; }
/// <summary>
/// Desc:是否船代
/// </summary>
public bool IsShipAgency { get; set; } = false;
/// <summary>
/// Desc:是否经营单位
/// </summary>
public bool IsEnterprise { get; set; } = false;
}
}

@ -36,4 +36,11 @@ public interface IClientInfoService
/// <param name="req"></param>
/// <returns></returns>
public DataResult BatchDelClientInfo(IdModel req);
/// <summary>
/// 获取往来单位详情(含有联系人列表)
/// </summary>
/// <param name="query">查询往来单位</param>
/// <returns>返回往来单位详情</returns>
Task<DataResult<ClientInfoRes>> GetClientInfoWithContact(QueryClientInfo query);
}

@ -13,6 +13,7 @@ using DS.WMS.Core.Op.Entity;
using DS.WMS.Core.Sys.Entity;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Owin.Security.Provider;
using SqlSugar;
namespace DS.WMS.Core.Info.Method;
@ -176,4 +177,61 @@ public class ClientInfoService : IClientInfoService
}
return DataResult.Successed("删除成功!", MultiLanguageConst.DataDelSuccess);
}
#region 获取往来单位详情(含有联系人列表)
/// <summary>
/// 获取往来单位详情(含有联系人列表)
/// </summary>
/// <param name="query">查询往来单位</param>
/// <returns>返回往来单位详情</returns>
public async Task<DataResult<ClientInfoRes>> GetClientInfoWithContact(QueryClientInfo query)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var data = await tenantDb.Queryable<InfoClient>().InnerJoin<InfoClientTag>((c,t)=> c.Id == t.ClientId)
.Where((c,t)=> c.Id == query.ClientId)
.WhereIF(query.IsController,(c,t)=>t.IsController.HasValue && t.IsController.HasValue)
.WhereIF(query.IsSpecialApproval, (c, t) => t.IsSpecialApproval.HasValue && t.IsSpecialApproval.HasValue)
.WhereIF(query.IsCarrier, (c, t) => t.IsCarrier.HasValue && t.IsCarrier.HasValue)
.WhereIF(query.IsBooking, (c, t) => t.IsBooking.HasValue && t.IsBooking.HasValue)
.WhereIF(query.IsYard, (c, t) => t.IsYard.HasValue && t.IsYard.HasValue)
.WhereIF(query.IsTruck, (c, t) => t.IsTruck.HasValue && t.IsTruck.HasValue)
.WhereIF(query.IsController, (c, t) => t.IsController.HasValue && t.IsController.HasValue)
.WhereIF(query.IsCustom, (c, t) => t.IsCustom.HasValue && t.IsCustom.HasValue)
.WhereIF(query.IsAgent, (c, t) => t.IsAgent.HasValue && t.IsAgent.HasValue)
.WhereIF(query.IsAgentCn, (c, t) => t.IsAgentCn.HasValue && t.IsAgentCn.HasValue)
.WhereIF(query.IsExpress, (c, t) => t.IsExpress.HasValue && t.IsExpress.HasValue)
.WhereIF(query.IsAirLines, (c, t) => t.IsAirLines.HasValue && t.IsAirLines.HasValue)
.WhereIF(query.IsShipper, (c, t) => t.IsShipper.HasValue && t.IsShipper.HasValue)
.WhereIF(query.IsConsignee, (c, t) => t.IsConsignee.HasValue && t.IsConsignee.HasValue)
.WhereIF(query.IsNotifyParty, (c, t) => t.IsNotifyParty.HasValue && t.IsNotifyParty.HasValue)
.WhereIF(query.IsWareHouse, (c, t) => t.IsWareHouse.HasValue && t.IsWareHouse.HasValue)
.WhereIF(query.IsWharf, (c, t) => t.IsWharf.HasValue && t.IsWharf.HasValue)
.WhereIF(query.IsInsurer, (c, t) => t.IsInsurer.HasValue && t.IsInsurer.HasValue)
.WhereIF(query.IsLeasing, (c, t) => t.IsLeasing.HasValue && t.IsLeasing.HasValue)
.WhereIF(query.IsTradingAgency, (c, t) => t.IsTradingAgency.HasValue && t.IsTradingAgency.HasValue)
.WhereIF(query.IsOther, (c, t) => t.IsOther.HasValue && t.IsOther.HasValue)
.WhereIF(!string.IsNullOrWhiteSpace(query.Others), (c, t) => t.Others == query.Others)
.WhereIF(query.IsShipAgency, (c, t) => t.IsShipAgency.HasValue && t.IsShipAgency.HasValue)
.WhereIF(query.IsEnterprise, (c, t) => t.IsEnterprise.HasValue && t.IsEnterprise.HasValue)
.Select((c,t)=> new { Client = c, tag = t })
.FirstAsync();
var clientInfo = data.Client.Adapt<ClientInfoRes>();
clientInfo.ClientTag = data.tag.Adapt<ClientTagRes>();
var contactList = tenantDb.Queryable<InfoClientContact>()
.Where(a => a.ClientId == clientInfo.Id && a.Status == StatusEnum.Enable).ToList();
if (contactList.Count > 0)
clientInfo.ClientContactList = contactList.Adapt<List<ClientContactRes>>();
if (clientInfo == null)
return DataResult<ClientInfoRes>.FailedData(clientInfo);
return DataResult<ClientInfoRes>.Success(clientInfo);
}
#endregion
}

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DS.WMS.Core.Op.Dtos
{
/// <summary>
/// 分页泛型集合
/// </summary>
/// <typeparam name="TEntity"></typeparam>
public class SqlSugarPagedList<TEntity>
{
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 页容量
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 总条数
/// </summary>
public int TotalCount { get; set; }
/// <summary>
/// 总页数
/// </summary>
public int TotalPages { get; set; }
/// <summary>
/// 当前页集合
/// </summary>
public IEnumerable<TEntity> Items { get; set; }
/// <summary>
/// 是否有上一页
/// </summary>
public bool HasPrevPages { get; set; }
/// <summary>
/// 是否有下一页
/// </summary>
public bool HasNextPages { get; set; }
}
/// <summary>
/// 分页集合
/// </summary>
public class PagedModel : SqlSugarPagedList<object>
{
}
}

@ -1024,6 +1024,11 @@ public class SeaExportReq
/// 预付地点Id
/// </summary>
public long PayableAtId { get; set; }
/// <summary>
/// 拆票或合票标志 1-拆票 2-合票
/// </summary>
public int SplitOrMergeFlag { get; set; }
}
/// <summary>

@ -97,7 +97,13 @@ namespace DS.WMS.Core.Op.Entity
/// 收货地代码
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "收货地代码", Length = 10, IsNullable = true)]
public string PlaceReceiptId { get; set; }
public string PlaceReceiptCode { get; set; }
/// <summary>
/// 收货地主键
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "收货地主键", IsNullable = true)]
public Nullable<long> PlaceReceiptId { get; set; }
/// <summary>
/// 收货地名称
@ -109,7 +115,13 @@ namespace DS.WMS.Core.Op.Entity
/// 交货地代码
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "交货地代码", Length = 10, IsNullable = true)]
public string PlaceDeliveryId { get; set; }
public string PlaceDeliveryCode { get; set; }
/// <summary>
/// 交货地主键
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "交货地主键", IsNullable = true)]
public Nullable<long> PlaceDeliveryId { get; set; }
/// <summary>
/// 交货地名称
@ -121,7 +133,13 @@ namespace DS.WMS.Core.Op.Entity
/// 装货港代码
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "装货港代码", Length = 10, IsNullable = true)]
public string PortLoadId { get; set; }
public string PortLoadCode { get; set; }
/// <summary>
/// 装货港主键
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "装货港主键", Length = 10, IsNullable = true)]
public Nullable<long> PortLoadId { get; set; }
/// <summary>
/// 装货港
@ -133,7 +151,13 @@ namespace DS.WMS.Core.Op.Entity
/// 卸货港代码
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "卸货港代码", Length = 10, IsNullable = true)]
public string PortDischargeId { get; set; }
public string PortDischargeCode { get; set; }
/// <summary>
/// 卸货港主键
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "卸货港主键", Length = 10, IsNullable = true)]
public Nullable<long> PortDischargeId { get; set; }
/// <summary>
/// 卸货港
@ -153,6 +177,12 @@ namespace DS.WMS.Core.Op.Entity
[SqlSugar.SugarColumn(ColumnDescription = "卸货港国家名称", Length = 120, IsNullable = true)]
public string PortDischargeCountry { get; set; }
/// <summary>
/// 卸货港国家主键
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "卸货港国家主键", Length = 120, IsNullable = true)]
public Nullable<long> PortDischargeCountryId { get; set; }
/// <summary>
/// 中转港1
/// </summary>

@ -52,5 +52,11 @@ namespace DS.WMS.Core.Op.Entity
/// </summary>
[SugarColumn(ColumnDescription = "邮箱", Length = 50, IsNullable = true)]
public string Email { get; set; }
/// <summary>
/// 联系人ID
/// </summary>
[SugarColumn(ColumnDescription = "联系人ID", IsNullable = true)]
public long CustomerContactId { get; set; }
}
}

@ -1344,4 +1344,11 @@ public class SeaExport : BaseOrgModel<long>
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "StartETA", IsNullable = true)]
public DateTime? StartETA { get; set; }
/// <summary>
/// 拆票或合票标志 1-拆票 2-合票
/// </summary>
[SqlSugar.SugarColumn(ColumnDescription = "拆票或合票标志 1-拆票 2-合票", IsNullable = true,DefaultValue = "0")]
public int SplitOrMergeFlag { get; set; }
}

@ -41,5 +41,12 @@ namespace DS.WMS.Core.Op.Interface
/// <param name="ids">标签主键组</param>
/// <returns></returns>
Task<DataResult<string>> Delete(long[] ids);
/// <summary>
/// 标签管理台账
/// </summary>
/// <param name="QuerySearch">查询条件</param>
/// <returns>返回台账列表</returns>
Task<DataResult<List<BookingLabelBaseDto>>> GetPageAsync(PageRequest QuerySearch);
}
}

@ -85,7 +85,7 @@ namespace DS.WMS.Core.Op.Interface
/// </summary>
/// <param name="id">舱位主键</param>
/// <returns>返回附件列表</returns>
Task<List<OpFileRes>> GetFile(long id);
Task<DataResult<List<OpFileRes>>> GetFile(long id);
/// <summary>
/// 分页查询订舱舱位

@ -22,6 +22,7 @@ using NLog;
using DS.Module.RedisModule;
using MySqlConnector.Logging;
using Newtonsoft.Json;
using DS.Module.Core.Extensions;
namespace DS.WMS.Core.Op.Method
{
@ -125,20 +126,24 @@ namespace DS.WMS.Core.Op.Method
}
#endregion
#region 标签管理台账
/// <summary>
/// 标签管理台账
/// </summary>
/// <param name="QuerySearch">查询条件</param>
/// <returns>返回台账列表</returns>
public async Task<DataResult<List<BookingLabelBaseDto>>> GetPageAsync(PageRequest QuerySearch)
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
//序列化查询条件
var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(QuerySearch.QueryCondition);
///// <summary>
///// 分页获取全部或指定范围类型的标签列表
///// </summary>
//public async Task<SqlSugarPagedList<BookingLabelBaseDto>> PageList(BookingLabelPageListInput input)
//{
// var list = await _rep.AsQueryable()
// .WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name))
// .WhereIF(input.Scope != null, x => x.Scope == input.Scope)
// .ToPagedListAsync(input.PageNo, input.PageSize);
// var result = list.Adapt<SqlSugarPagedList<BookingLabelBaseDto>>();
// return result;
//}
var data = tenantDb.Queryable<BookingLabel>()
.Where(whereList)
.Select<BookingLabelBaseDto>().ToQueryPage(QuerySearch.PageCondition);
return data;
}
#endregion
#region 保存标签
/// <summary>

@ -72,8 +72,8 @@ namespace DS.WMS.Core.Op.Method
&& x.ContractNo == paraObj.ContractNo
&& x.BookingSlotType == paraObj.BookingSlotType
&& x.CarrierCode == paraObj.CarrierCode
&& x.PortLoadId == paraObj.PortLoadId
&& x.PortDischargeId == paraObj.PortDischargeId)
&& x.PortLoadCode == paraObj.PortLoadId
&& x.PortDischargeCode == paraObj.PortDischargeId)
.OrderByDescending(x => x.UpdateTime)
.ToListAsync();

@ -38,5 +38,19 @@ namespace DS.WMS.Core.Sys.Interface
/// <returns></returns>
Task<DataResult<string>> SaveFileDirect(string fileDictKey, byte[] fileBytes, string batchNo,
string fileName, string attachFileType);
/// <summary>
/// 转移文件
/// </summary>
/// <param name="fileDictKey">文件目录KEY</param>
/// <param name="sourceFilePath">源文件完整路径</param>
/// <param name="batchNo">批次号</param>
/// <param name="isLocalTempFile">是否生成本地文件</param>
/// <param name="attachFileType">附件类型 bcfiles-BC文件</param>
/// <param name="isKeepSource">是否保留原文件</param>
/// <returns>返回新的文件路径</returns>
Task<DataResult<string>> MoveFile(string fileDictKey, string sourceFilePath, string batchNo,
bool isLocalTempFile = false, string attachFileType = "bcfiles", bool isKeepSource = false);
}
}

@ -176,5 +176,103 @@ namespace DS.WMS.Core.Sys.Method
return DataResult<string>.Success(bookFilePath);
}
#region 转移文件
/// <summary>
/// 转移文件
/// </summary>
/// <param name="fileDictKey">文件目录KEY</param>
/// <param name="sourceFilePath">源文件完整路径</param>
/// <param name="batchNo">批次号</param>
/// <param name="isLocalTempFile">是否生成本地文件</param>
/// <param name="attachFileType">附件类型 bcfiles-BC文件</param>
/// <param name="isKeepSource">是否保留原文件</param>
/// <returns>返回新的文件路径</returns>
public async Task<DataResult<string>> MoveFile(string fileDictKey, string sourceFilePath, string batchNo,
bool isLocalTempFile = false, string attachFileType = "bcfiles", bool isKeepSource = false)
{
string fileRoot = AppSetting.app(new string[] { "FileSettings", "BasePath" });
string relativePath = AppSetting.app(new string[] { "FileSettings", "RelativePath" });
if (!string.IsNullOrWhiteSpace(attachFileType))
relativePath += $"\\{attachFileType}";
if (!string.IsNullOrWhiteSpace(fileDictKey))
relativePath += $"\\{fileDictKey}";
relativePath += $"\\{DateTime.Now.ToString("yyyyMMddHHmmss")}";
string filePath = $"{fileRoot}\\{relativePath}";
string fileFullName = $"{filePath}\\{new System.IO.FileInfo(sourceFilePath).Name}";
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
relativePath = relativePath.Replace("\\", "/");
filePath = filePath.Replace("\\", "/");
fileFullName = fileFullName.Replace("\\", "/");
}
Logger.Log(NLog.LogLevel.Info, $"批次={batchNo} 生成文件保存路径完成 路由={filePath} 服务器系统={RuntimeInformation.OSDescription}");
//预先创建目录
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
if (sourceFilePath.StartsWith("http", StringComparison.OrdinalIgnoreCase) ||
sourceFilePath.StartsWith("https", StringComparison.OrdinalIgnoreCase))
{
//var bcStream = await sourceFilePath.GetAsStreamAsync();
//using (var fileStream = File.Create(fileFullName))
//{
// await bcStream.CopyToAsync(fileStream);
//}
}
else
{
System.IO.FileStream file = new System.IO.FileStream(sourceFilePath, FileMode.Open, FileAccess.Read);
using (var fileStream = File.Create(fileFullName))
{
await file.CopyToAsync(fileStream);
}
file.Close();
try
{
if (!isKeepSource)
{
//删除原文件
System.IO.File.Delete(sourceFilePath);
}
}
catch (Exception delEx)
{
Logger.Log(NLog.LogLevel.Info, $"批次={batchNo} 删除文件异常 filepath={fileFullName} ex={delEx.Message}");
}
}
Logger.Log(NLog.LogLevel.Info, $"批次={batchNo} 完成文件保存 filepath={fileFullName}");
string bookFilePath = string.Empty;
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
bookFilePath = System.Text.RegularExpressions.Regex.Match(fileFullName, relativePath.Replace("/", "\\/") + ".*").Value;
}
else
{
bookFilePath = System.Text.RegularExpressions.Regex.Match(fileFullName, relativePath.Replace("\\", "\\\\") + ".*").Value;
}
return DataResult<string>.Success(bookFilePath);
}
#endregion
}
}

@ -0,0 +1,90 @@
using DS.Module.Core;
using DS.WMS.Core.Op.Dtos;
using DS.WMS.Core.Op.Interface;
using Microsoft.AspNetCore.Mvc;
namespace DS.WMS.OpApi.Controllers
{
/// <summary>
/// 舱位标签管理
/// </summary>
public class BookingLabelController : Controller
{
private readonly IBookingLabelService _bookingLabelService;
public BookingLabelController(IBookingLabelService bookingLabelService)
{
_bookingLabelService = bookingLabelService;
}
#region 获取全部或指定范围类型的标签列表
/// <summary>
/// 获取全部或指定范围类型的标签列表
/// </summary>
/// <param name="scope">标签使用范围 空-全部 1-舱位管理台账</param>
/// <returns>返回列表</returns>
[HttpGet]
[Route("List")]
public async Task<DataResult<List<BookingLabelBaseDto>>> List([FromQuery] int? scope)
{
return await _bookingLabelService.List(scope);
}
#endregion
#region 设定标签
/// <summary>
/// 设定标签
/// </summary>
/// <param name="input">请求参数</param>
/// <returns>返回回执</returns>
[HttpPost]
[Route("SetLabel")]
public async Task<DataResult<string>> SetLabel([FromBody] BindLabelDto input)
{
return await _bookingLabelService.SetLabel(input);
}
#endregion
#region 保存标签
/// <summary>
/// 保存标签
/// </summary>
/// <param name="input">请求参数</param>
/// <returns>返回标签主键</returns>
[HttpPost]
[Route("Save")]
public async Task<DataResult<long>> Save([FromBody] BookingLabelBaseDto input)
{
return await _bookingLabelService.Save(input);
}
#endregion
#region 删除标签信息
/// <summary>
/// 删除标签信息
/// </summary>
/// <param name="ids">标签主键组</param>
/// <returns></returns>
[HttpPost]
[Route("Delete")]
public async Task<DataResult<string>> Delete([FromBody] long[] ids)
{
return await _bookingLabelService.Delete(ids);
}
#endregion
#region 标签管理台账
/// <summary>
/// 标签管理台账
/// </summary>
/// <param name="QuerySearch">查询条件</param>
/// <returns>返回台账列表</returns>
[HttpPost]
[Route("GetPage")]
public async Task<DataResult<List<BookingLabelBaseDto>>> GetPageAsync([FromBody] PageRequest QuerySearch)
{
return await _bookingLabelService.GetPageAsync(QuerySearch);
}
#endregion
}
}

@ -6,7 +6,7 @@
<Project>
<PropertyGroup>
<_PublishTargetUrl>D:\Code\PublishCopy\ds8-opapi</_PublishTargetUrl>
<History>True|2024-07-17T08:13:32.9037697Z||;True|2024-07-17T15:40:21.2550083+08:00||;True|2024-07-17T14:03:08.1814323+08:00||;True|2024-07-15T13:43:42.6073130+08:00||;True|2024-07-15T11:53:40.6498579+08:00||;True|2024-07-15T11:53:03.1652559+08:00||;True|2024-07-15T11:42:33.0154478+08:00||;True|2024-07-15T10:20:03.3925876+08:00||;True|2024-07-15T10:13:28.1415352+08:00||;True|2024-07-08T14:33:12.6884426+08:00||;True|2024-07-08T09:56:58.4995696+08:00||;</History>
<History>True|2024-07-17T09:44:18.4741963Z||;True|2024-07-17T17:42:47.2735071+08:00||;True|2024-07-17T16:13:32.9037697+08:00||;True|2024-07-17T15:40:21.2550083+08:00||;True|2024-07-17T14:03:08.1814323+08:00||;True|2024-07-15T13:43:42.6073130+08:00||;True|2024-07-15T11:53:40.6498579+08:00||;True|2024-07-15T11:53:03.1652559+08:00||;True|2024-07-15T11:42:33.0154478+08:00||;True|2024-07-15T10:20:03.3925876+08:00||;True|2024-07-15T10:13:28.1415352+08:00||;True|2024-07-08T14:33:12.6884426+08:00||;True|2024-07-08T09:56:58.4995696+08:00||;</History>
<LastFailureDetails />
</PropertyGroup>
</Project>

@ -180,19 +180,19 @@ public class SaasTest
{
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(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(CodeThirdParty));
//tenantDb.CodeFirst.InitTables(typeof(CheckBillAutoDetail));
//db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));

Loading…
Cancel
Save