diff --git a/Reportapi/MyCode.Project.Domain/Message/Request/JackYun/BusiOrderGoodsDocInRequest.cs b/Reportapi/MyCode.Project.Domain/Message/Request/JackYun/BusiOrderGoodsDocInRequest.cs index 530a57d..b3da9d5 100644 --- a/Reportapi/MyCode.Project.Domain/Message/Request/JackYun/BusiOrderGoodsDocInRequest.cs +++ b/Reportapi/MyCode.Project.Domain/Message/Request/JackYun/BusiOrderGoodsDocInRequest.cs @@ -13,6 +13,8 @@ namespace MyCode.Project.Domain.Message.Request.JackYun /// public class BusiOrderGoodsDocInRequest: BaseRequestBizData { + public string contextId { get; set; } + /// /// 需要查询的字段列表,多个字段用逗号分隔 /// 例如:"goodsNo,goodsName,skuName" diff --git a/Reportapi/MyCode.Project.Infrastructure/JackYun/BusiOrderGoodsDocInResponse.cs b/Reportapi/MyCode.Project.Domain/Message/Response/JackYun/BusiOrderGoodsDocInResponse.cs similarity index 96% rename from Reportapi/MyCode.Project.Infrastructure/JackYun/BusiOrderGoodsDocInResponse.cs rename to Reportapi/MyCode.Project.Domain/Message/Response/JackYun/BusiOrderGoodsDocInResponse.cs index d9d64bf..b61c18c 100644 --- a/Reportapi/MyCode.Project.Infrastructure/JackYun/BusiOrderGoodsDocInResponse.cs +++ b/Reportapi/MyCode.Project.Domain/Message/Response/JackYun/BusiOrderGoodsDocInResponse.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace MyCode.Project.Infrastructure.JackYun +namespace MyCode.Project.Domain.Message.Response.JackYun { ///// ///// 入库查询(规格模式)返回参数 @@ -257,12 +257,22 @@ namespace MyCode.Project.Infrastructure.JackYun /// /// 出入库日期(表头数据) /// - public DateTime? inOutDate { get; set; } + public long? inOutDate { get; set; } + + /// + /// 出入库日期(表头数据) + /// + public DateTime? inOutDate2 { get; set; } /// /// 系统出入库日期(表头数据) /// - public DateTime? gmtCreate { get; set; } + public long? gmtCreate { get; set; } + + /// + /// 系统出入库日期(表头数据) + /// + public DateTime? gmtCreate2 { get; set; } /// /// 入库类型(表头数据)(100-期初库存101-采购入库102-调拨入库103-盘盈入库104-其他入库105-销售退货106-完工入库107-组装拆卸入库108-翻新入库109-报废入库110-残次品入库111-成本调整112-即采即入113-退料入库114-调拨退回115-维修返厂返还116-资产入库117-借用入库118-归还入库119-生产委外入库120-生产其他入库122-调拨退货入库123- 生产余料入库131-成本调价入库132-结算补差133-成本补差) @@ -503,7 +513,11 @@ namespace MyCode.Project.Infrastructure.JackYun /// 物流单号(表头数据) /// public string logisticNo { get; set; } - + /// + /// 货品明细id + /// + public long RecId { get; set; } + } diff --git a/Reportapi/MyCode.Project.Infrastructure/JackYun/StorageGoodsDocOutV2Response.cs b/Reportapi/MyCode.Project.Domain/Message/Response/JackYun/StorageGoodsDocOutV2Response.cs similarity index 98% rename from Reportapi/MyCode.Project.Infrastructure/JackYun/StorageGoodsDocOutV2Response.cs rename to Reportapi/MyCode.Project.Domain/Message/Response/JackYun/StorageGoodsDocOutV2Response.cs index 160714e..342b099 100644 --- a/Reportapi/MyCode.Project.Infrastructure/JackYun/StorageGoodsDocOutV2Response.cs +++ b/Reportapi/MyCode.Project.Domain/Message/Response/JackYun/StorageGoodsDocOutV2Response.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace MyCode.Project.Infrastructure.JackYun +namespace MyCode.Project.Domain.Message.Response.JackYun { @@ -654,4 +654,14 @@ namespace MyCode.Project.Infrastructure.JackYun public string DetailField10 { get; set; } } + public class ErpStorageGoodsDocOutV2ResponseBizData2 + { + public List Data { get; set; } + + /// + /// 上下文编号 + /// + public string contextId { get; set; } + } + } \ No newline at end of file diff --git a/Reportapi/MyCode.Project.Domain/Model/BusiOrderGoodsDocIn.cs b/Reportapi/MyCode.Project.Domain/Model/BusiOrderGoodsDocIn.cs index aa29467..c9577c5 100644 --- a/Reportapi/MyCode.Project.Domain/Model/BusiOrderGoodsDocIn.cs +++ b/Reportapi/MyCode.Project.Domain/Model/BusiOrderGoodsDocIn.cs @@ -35,14 +35,28 @@ namespace MyCode.Project.Domain.Model /// Default: /// Nullable:True /// - public DateTime? InOutDate {get;set;} + public long? InOutDate {get;set;} /// /// Desc:系统出入库日期 /// Default: /// Nullable:True /// - public DateTime? GmtCreate {get;set;} + public long? GmtCreate {get;set;} + + /// + /// Desc:出入库日期 + /// Default: + /// Nullable:True + /// + public DateTime? InOutDate2 {get;set;} + + /// + /// Desc:系统出入库日期 + /// Default: + /// Nullable:True + /// + public DateTime? GmtCreate2 {get;set;} /// /// Desc:入库类型 @@ -366,5 +380,19 @@ namespace MyCode.Project.Domain.Model /// public DateTime? UpdateTime {get;set;} + /// + /// Desc:货品明细id + /// Default: + /// Nullable:True + /// + public long? RecId {get;set;} + + /// + /// Desc:0=未处理 1=已合并 2=已推送 + /// Default:0 + /// Nullable:True + /// + public int? Status {get;set;} + } } diff --git a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj index fbdd757..540ecc6 100644 --- a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj +++ b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj @@ -80,8 +80,10 @@ + + diff --git a/Reportapi/MyCode.Project.Infrastructure/JackYun/BaseRequestBizData.cs b/Reportapi/MyCode.Project.Infrastructure/JackYun/BaseRequestBizData.cs index f266ca0..6d354aa 100644 --- a/Reportapi/MyCode.Project.Infrastructure/JackYun/BaseRequestBizData.cs +++ b/Reportapi/MyCode.Project.Infrastructure/JackYun/BaseRequestBizData.cs @@ -2,5 +2,6 @@ { public class BaseRequestBizData { + } } \ No newline at end of file diff --git a/Reportapi/MyCode.Project.Infrastructure/MyCode.Project.Infrastructure.csproj b/Reportapi/MyCode.Project.Infrastructure/MyCode.Project.Infrastructure.csproj index 91c9ce4..62a3de6 100644 --- a/Reportapi/MyCode.Project.Infrastructure/MyCode.Project.Infrastructure.csproj +++ b/Reportapi/MyCode.Project.Infrastructure/MyCode.Project.Infrastructure.csproj @@ -265,11 +265,9 @@ - - diff --git a/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs b/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs index 7bfdd6a..c8bea67 100644 --- a/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs +++ b/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs @@ -1,6 +1,7 @@ using MyCode.Project.Infrastructure.JackYun; using System.Collections.Generic; using System; +using MyCode.Project.Domain.Message.Response.JackYun; namespace MyCode.Project.Services { @@ -38,5 +39,13 @@ namespace MyCode.Project.Services /// /// List GetPurchaseInboundData(DateTime now); + + /// + /// 获取吉客云采购出库单 + /// + /// 截止日期 + /// + /// + List GetStorageGoodsDocOutV2(DateTime now); } } diff --git a/Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs b/Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs index 47b0005..9015338 100644 --- a/Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs +++ b/Reportapi/MyCode.Project.Services/IServices/IJackYunTaskService.cs @@ -45,5 +45,14 @@ namespace MyCode.Project.Services /// /// void GetPurchaseInboundData(string now); + + /// + /// 调度运行吉客云采购出库单 + /// + /// + void GetStorageGoodsDocOutV2(string now); + + + } } diff --git a/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs b/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs index 30bc41d..77980c4 100644 --- a/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs +++ b/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs @@ -1,4 +1,5 @@ using MyCode.Project.Domain.Message.Request.JackYun; +using MyCode.Project.Domain.Message.Response.JackYun; using MyCode.Project.Domain.Repositories; using MyCode.Project.Infrastructure.Common; using MyCode.Project.Infrastructure.Enumeration; @@ -291,8 +292,8 @@ namespace MyCode.Project.Services.Implementation } //101-采购入库 requestBizData.Inouttypes = "101"; - requestBizData.InOutDateStart = value; - requestBizData.InOutDateEnd = value1; + requestBizData.InOutDateStart = new DateTimeOffset(DateTime.Parse(value)).ToUnixTimeMilliseconds().ToString() ; + requestBizData.InOutDateEnd = new DateTimeOffset(DateTime.Parse(value1)).ToUnixTimeMilliseconds().ToString(); requestBizData.PageSize = 200; requestBizData.PageIndex = 0; @@ -318,9 +319,93 @@ namespace MyCode.Project.Services.Implementation var list1 = JsonHelper.ToObject(orderjson); + int pageIndex = 1; + string TotalResults = list1.contextId; + while (list1.Data.Count>0) + { + trades.AddRange(list1.Data); + requestBizData.PageIndex = pageIndex; + requestBizData.contextId = TotalResults; + pageIndex++; + Thread.Sleep(100); + response = Call(EnumAttribute.GetAttribute(ApiEnum.STORAGEGOODSDOCINCOUNTS).Value, "1.0", requestBizData); + if (response.code == "200") + { + orderjson = JsonHelper.ToJson(response.result); + list1 = JsonHelper.ToObject(orderjson); + TotalResults = list1.contextId; + } + else + { + TotalResults = ""; + } + } + } + else + { + string msg = response.msg; + throw new BaseException(msg); + } + }); + //var shocodes = shopConfigs.Select(t => t.FPURCHASINGWAREHOUSECODE).ToList(); + //trades = trades.Where(t => shocodes.Contains(t.warehouseCode)).ToList(); + return trades; + } + #endregion + + + #region 获取吉客云采购出库单 + /// + /// 获取吉客云采购出库单 + /// + /// 截止日期 + /// + /// + public List GetStorageGoodsDocOutV2(DateTime now) + { + var shopConfigs = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C" && t.FPURCHASERECEIVING == "1").ToList(); + + StorageGoodsDocOutV2Request requestBizData = new StorageGoodsDocOutV2Request(); + //string value = "2025-06-15 00:00:00";// DateTime.Now.Date.AddDays(-5).ToString("yyyy-MM-dd HH:mm:ss") ; + //string value1 = "2025-06-20 00:00:00";//DateTime.Now.Date.ToString("yyyy-MM-dd HH:mm:ss"); + string value = now.Date.AddDays(-7).ToString("yyyy-MM-dd"); + string value1 = now.Date.ToString("yyyy-MM-dd"); + if (now.Date.AddDays(-7) < startTime) + { + value = startTime.ToString("yyyy-MM-dd"); + } + //205采购退货 + requestBizData.Inouttype = 205; + requestBizData.StartDate = value; + requestBizData.EndDate = value1; + + requestBizData.PageSize = 200; + requestBizData.PageIndex = 0; + requestBizData.SelelctFields = "*"; //"RecId,GoodsdocNo,BillNo,InOutDate,GmtCreate,Inouttype,InouttypeName,VendCustomerName,CurrencyCode,CurrencyRate,UserName,WarehouseCode,WarehouseName,Comment,Memo,LogisticName,LogisticNo,CompanyId,CompanyName,LogisticType,LogisticCode,InOutReason,SourceBillNo,ChannelId,ChannelCode,ChannelName,RedStatus,Field1,Field2,Field3,Field4,Field5,FinanceBillStatus,VendCustomerId,ApplyDepartId,ApplyDepartName,OutBillNo,LogisticList,GmtModified,DepartCode,ApplyCompanyName,ApplyCompanyCode,ApplyCompanyId,ApplyUserId,ApplyUserName,CompanyCode,GoodsDocDetailList,SendCompanyName,Send,SendTel,SendPhone,SendEmail,SendCountryName,SendProvinceName,SendCityName,SendTownName,SendStreetName,SendAddress,ReceiveCompanyName,Receive,ReceiveTel,ReceivePhone,ReceiveEmail,ReceiveCountryName,ReceiveProvinceName,ReceiveCityName,ReceiveTownName,ReceiveStreetName,ReceiveAddress"; + + + List TradeTypeList = new List(); + TradeTypeList.Add(1005); + List reslut = new List(); + List trades = new List(); + TradeTypeList.ForEach(ty => + { + + string lggl = JsonHelper.ToJson(requestBizData); + LogHelper.Info(lggl); + JackyunResponse response = Call(EnumAttribute.GetAttribute(ApiEnum.ERPSTORAGEGOODSDOCOUTV2).Value, "1.0", requestBizData); + string ll = JsonHelper.ToJson(response); + LogHelper.Info(ll); + + if (response.code == "200") + { + var orderjson = JsonHelper.ToJson(response.result); + var list1 = JsonHelper.ToObject(orderjson); + + int pageIndex = 1; string TotalResults = list1.contextId; - while (!string.IsNullOrWhiteSpace(TotalResults)) + while (list1.Data.Count>0) { //list1.data.returnChangeList.ForEach(h => h.TradeType = ty); @@ -328,10 +413,11 @@ namespace MyCode.Project.Services.Implementation requestBizData.PageIndex = pageIndex; pageIndex++; Thread.Sleep(100); - response = Call(EnumAttribute.GetAttribute(ApiEnum.STORAGEGOODSDOCINCOUNTS).Value, "1.0", requestBizData); + response = Call(EnumAttribute.GetAttribute(ApiEnum.ERPSTORAGEGOODSDOCOUTV2).Value, "1.0", requestBizData); if (response.code == "200") { - orderjson = JsonHelper.ToJson(response.result); + orderjson = JsonHelper.ToJson(response.result); + list1 = JsonHelper.ToObject(orderjson); } } @@ -384,7 +470,7 @@ namespace MyCode.Project.Services.Implementation //return reslut; - return new List(); + return new List(); } #endregion } diff --git a/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs b/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs index f725958..bdb3874 100644 --- a/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs +++ b/Reportapi/MyCode.Project.Services/Implementation/JackYunTaskService.cs @@ -3,6 +3,7 @@ using MyCode.Project.Domain.Model; using MyCode.Project.Domain.Repositories; using MyCode.Project.Infrastructure.Common; using MyCode.Project.Infrastructure.JackYun; +using MyCode.Project.Repositories; using MyCode.Project.Repositories.Common; using MyCode.Project.Services.IServices; using System; @@ -21,6 +22,7 @@ namespace MyCode.Project.Services.Implementation private IPushKingDeeOrderItemRepository _pushKingDeeOrderItemRepository; private IYTKJTShopParameterRepository _yTKJTShopParameterRepository; private IReturnChangeGoodsDetailRepository _ReturnChangeGoodsDetailRepository; + private IBusiOrderGoodsDocInRepository _busiOrderGoodsDocInRepository; private IWorkProcessService _workProcessService; @@ -30,6 +32,7 @@ namespace MyCode.Project.Services.Implementation , IPushKingDeeOrderItemRepository pushKingDeeOrderItemRepository , IYTKJTShopParameterRepository yTKJTShopParameterRepository , IReturnChangeGoodsDetailRepository returnChangeGoodsDetailRepository + , IBusiOrderGoodsDocInRepository busiOrderGoodsDocInRepository , IJackYunService jackYunService, IWorkProcessService workProcessService) { @@ -39,6 +42,8 @@ namespace MyCode.Project.Services.Implementation _jackOrdersRepository = jackOrdersRepository; _jackOrdersItemRepository = jackOrdersItemRepository; _ReturnChangeGoodsDetailRepository = returnChangeGoodsDetailRepository; + _busiOrderGoodsDocInRepository = busiOrderGoodsDocInRepository; + _jackYunService = jackYunService; _workProcessService = workProcessService; } @@ -329,11 +334,63 @@ namespace MyCode.Project.Services.Implementation { DateTime runTime = DateTime.Parse(now); var list = _jackYunService.GetPurchaseInboundData(runTime); - //SetReturnOrder(list); + SetPurchaseInboundData(list); + //_workProcessService.Add(this.MerchantId, "GetAndMergeJackReturnYunOrder", "合并吉客云退货订单到新表", now, 1); + } + #endregion + + #region SetPurchaseInboundData(把吉客云采购订单存进本地数据库) + /// + /// 把吉客云采购订单存进本地数据库 + /// + /// + [TransactionCallHandler] + public void SetPurchaseInboundData(List trades) + { + var ids = trades.Select(t => t.RecId).Distinct().ToList(); + ids = _busiOrderGoodsDocInRepository.Queryable().Where(t =>t.RecId!=null && ids.Contains(t.RecId.Value)).Select(t => t.RecId.Value).ToList(); + trades = trades.Where(t => !ids.Contains(t.RecId)).ToList(); + List addList = new List(); + addList = AutoMapperHelper.AutoMappToList(trades); + addList.ForEach(item => + { + + item.ID = Guid.NewGuid(); + DateTime startTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + item.InOutDate2 = startTime.AddMilliseconds(item.InOutDate.Value).ToLocalTime(); + item.GmtCreate2 = startTime.AddMilliseconds(item.GmtCreate.Value).ToLocalTime(); + item.Status = 0; + item.CreateTime = DateTime.Now; + item.CreateUserName = ""; + + + }); + + if (addList.Count > 0) + { + _busiOrderGoodsDocInRepository.Add(addList); + + } + + } + #endregion + + + #region GetStorageGoodsDocOutV2(调度运行吉客云采购出库单) + /// + /// 调度运行吉客云采购出库单 + /// + /// + public void GetStorageGoodsDocOutV2(string now) + { + DateTime runTime = DateTime.Parse(now); + var list = _jackYunService.GetStorageGoodsDocOutV2(runTime); + //SetPurchaseInboundData(list); //_workProcessService.Add(this.MerchantId, "GetAndMergeJackReturnYunOrder", "合并吉客云退货订单到新表", now, 1); } #endregion + } } diff --git a/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs b/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs index 8a84207..c102c22 100644 --- a/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs +++ b/Reportapi/MyCode.Project.WebApi/Controllers/TestController.cs @@ -259,7 +259,18 @@ namespace MyCode.Project.WebApi.Controllers } #endregion + #region 调度运行吉客云采购出库单 + /// + /// 调度运行吉客云采购出库单 + /// + [HttpGet] + [AllowAnonymous] + public void GetStorageGoodsDocOutV2(string now) + { + _jackYunTaskService.GetStorageGoodsDocOutV2(now); + } + #endregion } }