diff --git a/Reportapi/FrameWork/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Reportapi/FrameWork/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index 20716c1..323a96d 100644 --- a/Reportapi/FrameWork/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Reportapi/FrameWork/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -13,6 +13,7 @@ namespace SqlSugar get { return "SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME"; + //return "SELECT name FROM sys.objects WHERE type = 'V' ORDER BY name"; } } protected override string GetColumnInfosByTableNameSql diff --git a/Reportapi/MyCode.Project.Domain/Config/SystemConfig.cs b/Reportapi/MyCode.Project.Domain/Config/SystemConfig.cs index ff30b39..7b1d915 100644 --- a/Reportapi/MyCode.Project.Domain/Config/SystemConfig.cs +++ b/Reportapi/MyCode.Project.Domain/Config/SystemConfig.cs @@ -20,7 +20,7 @@ namespace MyCode.Project.Domain.Config /// /// B数据库链接对象 /// - public static string LxmConnectionStr =WebConfigUtils.GetConnectionStringsInfo("WMSConn"); + public static string WMSConnectionStr =WebConfigUtils.GetConnectionStringsInfo("WMSConn"); /// /// JWT的key diff --git a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj index 8f0f052..f440296 100644 --- a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj +++ b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj @@ -80,6 +80,7 @@ + @@ -87,6 +88,9 @@ + + + diff --git a/Reportapi/MyCode.Project.Domain/ZHMDModel/WMStoJackyunInventoryMovementView1.cs b/Reportapi/MyCode.Project.Domain/ZHMDModel/WMStoJackyunInventoryMovementView1.cs new file mode 100644 index 0000000..387bf74 --- /dev/null +++ b/Reportapi/MyCode.Project.Domain/ZHMDModel/WMStoJackyunInventoryMovementView1.cs @@ -0,0 +1,147 @@ +using System; +using System.Linq; +using System.Text; +using SqlSugar; + +namespace MyCode.Project.Domain.ZHMDModel +{ + /// + /// + /// + [SugarTable("WMStoJackyun_InventoryMovement_View1")] + public partial class WMStoJackyunInventoryMovementView1 + { + public WMStoJackyunInventoryMovementView1(){ + + + } + /// + /// Desc: + /// Default: + /// Nullable:False + /// + [SugarColumn(IsPrimaryKey=true,IsIdentity=true)] + public int Id {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 单据号 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string WMS单号 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public long? 单据行号 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 单据类型 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 单据类型名称 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 变动方向 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string ITEMID {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string SKU {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string BARCODE {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 尺码 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 单位 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 商品名称 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public int? 数量 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 仓库 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public DateTime? 过账日期 {get;set;} + + /// + /// Desc: + /// Default: + /// Nullable:True + /// + public string 备注 {get;set;} + + /// + /// Desc:0=未处理 1=已合并 2=已推送 + /// Default:0 + /// Nullable:True + /// + [SugarColumn(ColumnName="status")] + public int? Status {get;set;} + + } +} diff --git a/Reportapi/MyCode.Project.Domain/ZHMDRepositories/IWMStoJackyunInventoryMovementView1Repository.cs b/Reportapi/MyCode.Project.Domain/ZHMDRepositories/IWMStoJackyunInventoryMovementView1Repository.cs new file mode 100644 index 0000000..e27d24d --- /dev/null +++ b/Reportapi/MyCode.Project.Domain/ZHMDRepositories/IWMStoJackyunInventoryMovementView1Repository.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MyCode.Project.Infrastructure; +using MyCode.Project.Domain; +using MyCode.Project.Domain.ZHMDModel; +using MyCode.Project.Infrastructure.Common; +using MyCode.Project.Domain.Message; + +namespace MyCode.Project.Domain.Repositories.ZHMDRepositories +{ + public interface IWMStoJackyunInventoryMovementView1Repository + { + List GetList(DateTime now); + + } +} diff --git a/Reportapi/MyCode.Project.Repositories/Common/LxmRepository`.cs b/Reportapi/MyCode.Project.Repositories/Common/WMSRepository.cs similarity index 97% rename from Reportapi/MyCode.Project.Repositories/Common/LxmRepository`.cs rename to Reportapi/MyCode.Project.Repositories/Common/WMSRepository.cs index 9107101..cef6799 100644 --- a/Reportapi/MyCode.Project.Repositories/Common/LxmRepository`.cs +++ b/Reportapi/MyCode.Project.Repositories/Common/WMSRepository.cs @@ -24,12 +24,12 @@ using System.Data; namespace MyCode.Project.Repositories.Common { - public class LxmRepository :IDisposable + public class WMSRepository :IDisposable { #region 初始化 - private LxmSqlSugarClient _context; + private WMSSqlSugarClient _context; - public LxmRepository(LxmSqlSugarClient context) + public WMSRepository(WMSSqlSugarClient context) { this._context = context; diff --git a/Reportapi/MyCode.Project.Repositories/Common/LxmSqlSugarClient.cs b/Reportapi/MyCode.Project.Repositories/Common/WMSSqlSugarClient.cs similarity index 79% rename from Reportapi/MyCode.Project.Repositories/Common/LxmSqlSugarClient.cs rename to Reportapi/MyCode.Project.Repositories/Common/WMSSqlSugarClient.cs index e99317c..cad7ad8 100644 --- a/Reportapi/MyCode.Project.Repositories/Common/LxmSqlSugarClient.cs +++ b/Reportapi/MyCode.Project.Repositories/Common/WMSSqlSugarClient.cs @@ -9,17 +9,17 @@ using MyCode.Project.Infrastructure.Cache; namespace MyCode.Project.Repositories.Common { - public class LxmSqlSugarClient : SqlSugar.SqlSugarClient + public class WMSSqlSugarClient : SqlSugar.SqlSugarClient { - public LxmSqlSugarClient() : base(config) + public WMSSqlSugarClient() : base(config) { } private static ConnectionConfig config = new ConnectionConfig() { - ConnectionString = SystemConfig.LxmConnectionStr, + ConnectionString = SystemConfig.WMSConnectionStr, DbType = DbType.SqlServer, InitKeyType = InitKeyType.Attribute, IsAutoCloseConnection = true, diff --git a/Reportapi/MyCode.Project.Repositories/Lxm/LxmReportRepository.cs b/Reportapi/MyCode.Project.Repositories/Lxm/LxmReportRepository.cs deleted file mode 100644 index 0dbde44..0000000 --- a/Reportapi/MyCode.Project.Repositories/Lxm/LxmReportRepository.cs +++ /dev/null @@ -1,16 +0,0 @@ -using MyCode.Project.Repositories.Common; - -namespace MyCode.Project.Repositories -{ - public class LxmReportRepository: LxmRepository - { - public LxmReportRepository(LxmSqlSugarClient context) : base(context) - { } - - - - - - - } -} \ No newline at end of file diff --git a/Reportapi/MyCode.Project.Repositories/MyCode.Project.Repositories.csproj b/Reportapi/MyCode.Project.Repositories/MyCode.Project.Repositories.csproj index 73676a7..cd40e89 100644 --- a/Reportapi/MyCode.Project.Repositories/MyCode.Project.Repositories.csproj +++ b/Reportapi/MyCode.Project.Repositories/MyCode.Project.Repositories.csproj @@ -80,18 +80,19 @@ - + + - + - - + + @@ -115,7 +116,9 @@ - + + + diff --git a/Reportapi/MyCode.Project.Repositories/ZHMD/WMStoJackyunInventoryMovementView1Repository.cs b/Reportapi/MyCode.Project.Repositories/ZHMD/WMStoJackyunInventoryMovementView1Repository.cs new file mode 100644 index 0000000..9c7dd36 --- /dev/null +++ b/Reportapi/MyCode.Project.Repositories/ZHMD/WMStoJackyunInventoryMovementView1Repository.cs @@ -0,0 +1,36 @@ +using MyCode.Project.Repositories.Common; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using MyCode.Project.Domain.Message; +using MyCode.Project.Domain.ZHMDModel; +using MyCode.Project.Infrastructure.Common; +using MyCode.Project.Infrastructure.Search; +using MyCode.Project.Domain.Repositories.ZHMDRepositories; + +namespace MyCode.Project.Repositories.ZHMD +{ + public class WMStoJackyunInventoryMovementView1Repository: WMSRepository,IWMStoJackyunInventoryMovementView1Repository + { + public WMStoJackyunInventoryMovementView1Repository(WMSSqlSugarClient context) : base(context) + { } + + + + + public List GetList(DateTime now) + { + now = now.Date; + string sql = $@"select TOP 100 * from [WMStoJackyun_InventoryMovement_View] + where [过账日期]>='{now}' + ORDER BY [单据号],[单据行号]"; + var list = this.SelectList(sql); + return list; + } + + + + } +} \ No newline at end of file diff --git a/Reportapi/MyCode.Project.Services/IServices/IWMSService.cs b/Reportapi/MyCode.Project.Services/IServices/IWMSService.cs new file mode 100644 index 0000000..890c6dd --- /dev/null +++ b/Reportapi/MyCode.Project.Services/IServices/IWMSService.cs @@ -0,0 +1,19 @@ +using MyCode.Project.Domain.ZHMDModel; +using MyCode.Project.Repositories.Common; +using System; +using System.Collections.Generic; + +namespace MyCode.Project.Services +{ + public interface IWMSService + { + + /// + /// 把WMS订单存进本地数据库 + /// + /// + + void SetWMSOrder(List trades); + List GetList(DateTime now); + } +} diff --git a/Reportapi/MyCode.Project.Services/Implementation/ApiLogService.cs b/Reportapi/MyCode.Project.Services/Implementation/ApiLogService.cs index 7c8d0c6..31e47da 100644 --- a/Reportapi/MyCode.Project.Services/Implementation/ApiLogService.cs +++ b/Reportapi/MyCode.Project.Services/Implementation/ApiLogService.cs @@ -9,13 +9,13 @@ namespace MyCode.Project.Services.Implementation #region 初始化 private readonly IRepository _repository; - private readonly LxmRepository _lxmRepository; + private readonly WMSRepository _lxmRepository; private IMyCodeCacheService _myCodeCacheService; public ApiLogService(IRepository repository - , LxmRepository lxmRepository + , WMSRepository lxmRepository , IMyCodeCacheService myCodeCacheService ) { diff --git a/Reportapi/MyCode.Project.Services/Implementation/WMSService.cs b/Reportapi/MyCode.Project.Services/Implementation/WMSService.cs new file mode 100644 index 0000000..9e8422a --- /dev/null +++ b/Reportapi/MyCode.Project.Services/Implementation/WMSService.cs @@ -0,0 +1,93 @@ +using MyCode.Project.Domain.Message.Request.JackYun; +using MyCode.Project.Domain.Model; +using MyCode.Project.Domain.Repositories; +using MyCode.Project.Domain.Repositories.ZHMDRepositories; +using MyCode.Project.Domain.ZHMDModel; +using MyCode.Project.Infrastructure.Common; +using MyCode.Project.Infrastructure.Enumeration; +using MyCode.Project.Infrastructure.Exceptions; +using MyCode.Project.Infrastructure.JackYun; +using MyCode.Project.Repositories; +using MyCode.Project.Repositories.Common; +using MyCode.Project.Repositories.ZHMD; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; + +namespace MyCode.Project.Services.Implementation +{ + public class WMSService : ServiceBase , IWMSService + { + DateTime startTime = DateTime.Parse("2025-06-01"); + + private IWMStoJackyunInventoryMovementView1Repository _wMStoJackyunInventoryMovementView3Repository; + private IRepository _repository; + + public WMSService(IWMStoJackyunInventoryMovementView1Repository wMStoJackyunInventoryMovementView3Repository, IRepository repository ) + { + _wMStoJackyunInventoryMovementView3Repository = wMStoJackyunInventoryMovementView3Repository; + _repository = repository; + } + + + public List GetList(DateTime now) + { + if (now < startTime) + now = startTime; + var list= _wMStoJackyunInventoryMovementView3Repository.GetList(now); + SetWMSOrder(list); + return list; + + } + + #region SetWMSOrder(把WMS订单存进本地数据库) + /// + /// 把WMS订单存进本地数据库 + /// + /// + [TransactionCallHandler] + public void SetWMSOrder(List trades) + { + var ids = trades.Select(t => t.单据号).ToList(); + var oldids = _repository.Queryable().Where(t => ids.Contains(t.单据号)) + .Select(t => new { t.单据号, t.单据行号 }).ToList(); + if (oldids.Count > 0) + { + //trades = (from p in trades + // join k in oldids on new { p.WMS单号, p.单据行号 } equals new { k.WMS单号, k.单据行号 } + // where k.单据行号 == null + // select p).ToList(); + + // 方法1:使用左外连接(推荐 - 高效且符合SQL思维) + trades = ( + from p in trades + join k in oldids + on new { p.单据号, p.单据行号 } + equals new { k.单据号, k.单据行号 } + into temp + from k in temp.DefaultIfEmpty() + where k == null // 只保留未匹配的记录 + select p + ).ToList(); + + //// 方法2:使用Any()进行条件过滤(更简洁) + //var excludedTrades = trades + // .Where(p => !oldids.Any(k => + // k.WMS单号 == p.WMS单号 && + // k.单据行号 == p.单据行号)) + // .ToList(); + + + //trades = trades.Where(t => !oldids.Contains(new { t.WMS单号, t.单据行号 })).ToList(); + } + + _repository.Add(trades); + + + } + #endregion + } + + +} diff --git a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj index b4b61b2..632ff7a 100644 --- a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj +++ b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj @@ -115,6 +115,7 @@ + @@ -122,6 +123,7 @@ + diff --git a/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs b/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs index 2b66f25..36ece42 100644 --- a/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs +++ b/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs @@ -4,6 +4,7 @@ using MyCode.Project.Services; using System.Collections.Generic; using System; using System.Web.Http; +using MyCode.Project.Domain.ZHMDModel; namespace MyCode.Project.WebApi.Controllers { @@ -14,9 +15,13 @@ namespace MyCode.Project.WebApi.Controllers { private IJackYunTaskService _jackYunTaskService; - public TestController(IJackYunTaskService jackYunTaskService) + private IWMSService _wMSService; + + + public TestController(IJackYunTaskService jackYunTaskService, IWMSService wMSService ) { _jackYunTaskService = jackYunTaskService; + _wMSService = wMSService; } #region 调度运行抓吉客云销售订单 @@ -32,6 +37,20 @@ namespace MyCode.Project.WebApi.Controllers } #endregion + + #region 抓WMS订单 + /// + /// 抓WMS订单 + /// + [HttpGet] + [AllowAnonymous] + public List GetList(DateTime now) + { + return _wMSService.GetList(now); + } + #endregion + + //#region 订单查询 ///// diff --git a/Reportapi/MyCode.Project.WebApi/Web.config b/Reportapi/MyCode.Project.WebApi/Web.config index d5401bf..03b64d9 100644 --- a/Reportapi/MyCode.Project.WebApi/Web.config +++ b/Reportapi/MyCode.Project.WebApi/Web.config @@ -25,7 +25,7 @@ - + diff --git a/Reportapi/MyCode.Project.ZHMDGenerateCode/App.config b/Reportapi/MyCode.Project.ZHMDGenerateCode/App.config index 65eb285..8ad43d7 100644 --- a/Reportapi/MyCode.Project.ZHMDGenerateCode/App.config +++ b/Reportapi/MyCode.Project.ZHMDGenerateCode/App.config @@ -10,8 +10,8 @@ - - + + diff --git a/Reportapi/MyCode.Project.ZHMDGenerateCode/Program.cs b/Reportapi/MyCode.Project.ZHMDGenerateCode/Program.cs index 4c3d53e..e4dbad8 100644 --- a/Reportapi/MyCode.Project.ZHMDGenerateCode/Program.cs +++ b/Reportapi/MyCode.Project.ZHMDGenerateCode/Program.cs @@ -19,11 +19,11 @@ namespace MyCode.Project.GenerateCode //要生成的仓储和实体对象,不用整个库全部生成,只生成想要的就行 var listTalbeName = new List() - { "BasShop","BusSalesServiceSetIdBook"}; + { "WMStoJackyun_InventoryMovement_View1"}; - using (var db = new LxmSqlSugarClient()) + using (var db = new WMSSqlSugarClient()) { - var tables = db.DbMaintenance.GetTableInfoList(); + var tables = db.DbMaintenance.GetTableInfoList(false); var solutionPath = FileUtils.GetSolutionPath(); diff --git a/Reportapi/MyCode.Project.ZHMDGenerateCode/Template/TemplateForRepository.cs b/Reportapi/MyCode.Project.ZHMDGenerateCode/Template/TemplateForRepository.cs index 6e82e5a..fdb2b85 100644 --- a/Reportapi/MyCode.Project.ZHMDGenerateCode/Template/TemplateForRepository.cs +++ b/Reportapi/MyCode.Project.ZHMDGenerateCode/Template/TemplateForRepository.cs @@ -27,9 +27,9 @@ using MyCode.Project.Domain.Repositories.ZHMDRepositories; namespace MyCode.Project.Repositories.ZHMD {{ - public class {ClassName}Repository: LxmRepository,I{ClassName}Repository + public class {ClassName}Repository: WMSRepository,I{ClassName}Repository {{ - public {ClassName}Repository(LxmSqlSugarClient context) : base(context) + public {ClassName}Repository(WMSSqlSugarClient context) : base(context) {{ }}