123
This commit is contained in:
@@ -41,7 +41,7 @@ namespace MyCode.Project.Services
|
||||
List<BusiOrderGoodsDocInResponse> GetPurchaseInboundData(DateTime now);
|
||||
|
||||
/// <summary>
|
||||
/// 获取吉客云采购出库单
|
||||
/// 获取吉客云采购退货出库单
|
||||
/// </summary>
|
||||
/// <param name="now">截止日期</param>
|
||||
/// <returns></returns>
|
||||
|
||||
@@ -52,7 +52,12 @@ namespace MyCode.Project.Services
|
||||
/// <param name="now"></param>
|
||||
void GetStorageGoodsDocOutV2(string now);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 合并吉客云采购订单到新表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
|
||||
string GetAndMergePushGoodsDocInOrder(string now);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,8 +277,6 @@ namespace MyCode.Project.Services.Implementation
|
||||
/// <exception cref="BaseException"></exception>
|
||||
public List<BusiOrderGoodsDocInResponse> GetPurchaseInboundData(DateTime now)
|
||||
{
|
||||
|
||||
int total = 1;
|
||||
var shopConfigs = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C" && t.FPURCHASERECEIVING == "1").ToList();
|
||||
|
||||
BusiOrderGoodsDocInRequest requestBizData = new BusiOrderGoodsDocInRequest();
|
||||
@@ -347,16 +345,22 @@ namespace MyCode.Project.Services.Implementation
|
||||
throw new BaseException(msg);
|
||||
}
|
||||
});
|
||||
//var shocodes = shopConfigs.Select(t => t.FPURCHASINGWAREHOUSECODE).ToList();
|
||||
//trades = trades.Where(t => shocodes.Contains(t.warehouseCode)).ToList();
|
||||
var warehouseCodes = shopConfigs.Select(t => t.FPURCHASINGWAREHOUSECODE).Distinct().ToList();
|
||||
var guolv = shopConfigs.Select(t => new { t.FPURCHASINGWAREHOUSECODE, t.FPURCHASEDATE }).ToList();
|
||||
trades = trades.Where(t => warehouseCodes.Contains(t.warehouseCode)).ToList();
|
||||
foreach (var item in guolv)
|
||||
{
|
||||
trades.RemoveAll(t => item.FPURCHASINGWAREHOUSECODE == t.warehouseCode && item.FPURCHASEDATE > t.inOutDate2);
|
||||
}
|
||||
|
||||
return trades;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 获取吉客云采购出库单
|
||||
#region 获取吉客云采购退货出库单
|
||||
/// <summary>
|
||||
/// 获取吉客云采购出库单
|
||||
/// 获取吉客云采购退货出库单
|
||||
/// </summary>
|
||||
/// <param name="now">截止日期</param>
|
||||
/// <returns></returns>
|
||||
@@ -381,7 +385,9 @@ namespace MyCode.Project.Services.Implementation
|
||||
|
||||
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";
|
||||
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" +
|
||||
",goodsDocDetailList.recId,goodsDocDetailList.goodsId,goodsDocDetailList.goodsNo,goodsDocDetailList.goodsName,goodsDocDetailList.skuId,goodsDocDetailList.skuName,goodsDocDetailList.skuBarcode,goodsDocDetailList.unitName,goodsDocDetailList.cuPrice,goodsDocDetailList.cuValue,goodsDocDetailList.caseNumber,goodsDocDetailList.rowRemark,goodsDocDetailList.assistUnit,goodsDocDetailList.estCost,goodsDocDetailList.estTax,goodsDocDetailList.estPrice,goodsDocDetailList.estPriceNoTax,goodsDocDetailList.estCostNoTax,goodsDocDetailList.taxRate,goodsDocDetailList.batchNo,goodsDocDetailList.serialNo,goodsDocDetailList.productionDate,goodsDocDetailList.expirationDate,goodsDocDetailList.shelfLife,goodsDocDetailList.shelfLiftUnit,goodsDocDetailList.sourceDetailId,goodsDocDetailList.transNoTaxPrice,goodsDocDetailList.transNoTaxAmount,goodsDocDetailList.transHasTaxPrice,goodsDocDetailList.transHasTaxAmount" +
|
||||
",goodsDocDetailList.transTaxAmount,goodsDocDetailList.detailField1,goodsDocDetailList.detailField2,goodsDocDetailList.detailField3,goodsDocDetailList.detailField4,goodsDocDetailList.detailField5,goodsDocDetailList.isCertified,goodsDocDetailList.registrationNumber,goodsDocDetailList.approvalDate,goodsDocDetailList.productionDepart,goodsDocDetailList.batchNumber,goodsDocDetailList.quantity,goodsDocDetailList.cateId,goodsDocDetailList.cateName,goodsDocDetailList.volume,goodsDocDetailList.skuWeight";
|
||||
|
||||
|
||||
List<int> TradeTypeList = new List<int>();
|
||||
@@ -395,7 +401,7 @@ namespace MyCode.Project.Services.Implementation
|
||||
LogHelper.Info(lggl);
|
||||
JackyunResponse response = Call(EnumAttribute.GetAttribute(ApiEnum.ERPSTORAGEGOODSDOCOUTV2).Value, "1.0", requestBizData);
|
||||
string ll = JsonHelper.ToJson(response);
|
||||
LogHelper.Info(ll);
|
||||
LogHelper.Info("采购退货单: "+ll);
|
||||
|
||||
if (response.code == "200")
|
||||
{
|
||||
@@ -429,46 +435,15 @@ namespace MyCode.Project.Services.Implementation
|
||||
throw new BaseException(msg);
|
||||
}
|
||||
});
|
||||
//var shocodes = shopConfigs.Select(t => t.FSHOPCODE).ToList();
|
||||
//trades = trades.Where(t => shocodes.Contains(t.ShopCode)).ToList();
|
||||
////reslut = trades.Select(t => new TradesItem { tradeId = t.TradeId, couponFee = 0, realFee = 0, shopCode = t.ShopCode ,orderNo=t.ReturnChangeNo, tradeNo =t.TradeNo
|
||||
////,isDelete=0, mainPostid=t.MainPostid,
|
||||
//// companyName=t.CompanyName,
|
||||
//// flagNames=t.FlagNames,
|
||||
//// shopName=t.ShopName,
|
||||
//// warehouseName=t.WarehouseName
|
||||
////}).ToList();
|
||||
|
||||
|
||||
|
||||
//reslut = trades.Select(rc => new TradesItem
|
||||
//{
|
||||
// tradeId = rc.TradeAfterId.ToString(),
|
||||
// couponFee = 0,
|
||||
// realFee = 0,
|
||||
// shopCode = rc.ShopCode,
|
||||
// orderNo = rc.ReturnChangeNo,
|
||||
// tradeNo = rc.TradeNo,
|
||||
// isDelete = 0,
|
||||
// mainPostid = rc.MainPostid,
|
||||
// companyName = rc.CompanyName,
|
||||
// flagNames = rc.FlagNames,
|
||||
// shopName = rc.ShopName,
|
||||
// warehouseName = rc.WarehouseName,
|
||||
// warehouseCode = rc.WarehouseCode,
|
||||
// logisticName = rc.LogisticName,
|
||||
// shopId = rc.ShopId.ToString(),
|
||||
// TradeType = 8, // 假设这是售后退货类型
|
||||
// consignTime = !string.IsNullOrWhiteSpace(rc.DeliveryTime) ? (DateTime?)DateTime.Parse(rc.DeliveryTime) : null,
|
||||
// payTime = null, // 可根据需要设置
|
||||
// tradeStatus = int.Parse(rc.TradeAfterStatus), // 注意类型转换
|
||||
// warehouseId = rc.WarehouseId.ToString(),
|
||||
// shopTypeCode = "",
|
||||
// apiType = -114, // 默认值
|
||||
// ReturnChangeGoodsDetail = rc.ReturnChangeGoodsDetail
|
||||
//}).ToList();
|
||||
|
||||
|
||||
var warehouseCodes = shopConfigs.Select(t => t.FPURCHASINGWAREHOUSECODE).Distinct().ToList();
|
||||
var guolv = shopConfigs.Select(t => new { t.FPURCHASINGWAREHOUSECODE, t.FPURCHASEDATE }).ToList();
|
||||
trades = trades.Where(t => warehouseCodes.Contains(t.WarehouseCode)).ToList();
|
||||
foreach (var item in guolv)
|
||||
{
|
||||
trades.RemoveAll(t => item.FPURCHASINGWAREHOUSECODE == t.WarehouseCode && item.FPURCHASEDATE > t.InOutDate);
|
||||
}
|
||||
|
||||
return trades;
|
||||
|
||||
|
||||
|
||||
@@ -23,6 +23,9 @@ namespace MyCode.Project.Services.Implementation
|
||||
private IYTKJTShopParameterRepository _yTKJTShopParameterRepository;
|
||||
private IReturnChangeGoodsDetailRepository _ReturnChangeGoodsDetailRepository;
|
||||
private IBusiOrderGoodsDocInRepository _busiOrderGoodsDocInRepository;
|
||||
private IPushKingDeeGoodsDocInRepository _PushKingDeeGoodsDocInRepository;
|
||||
private IStorageGoodsDocOutHeadRepository _storageGoodsDocOutHeadRepository;
|
||||
private IStorageGoodsDocOutDetailRepository _storageGoodsDocOutDetailRepository;
|
||||
|
||||
private IWorkProcessService _workProcessService;
|
||||
|
||||
@@ -33,6 +36,9 @@ namespace MyCode.Project.Services.Implementation
|
||||
, IYTKJTShopParameterRepository yTKJTShopParameterRepository
|
||||
, IReturnChangeGoodsDetailRepository returnChangeGoodsDetailRepository
|
||||
, IBusiOrderGoodsDocInRepository busiOrderGoodsDocInRepository
|
||||
, IPushKingDeeGoodsDocInRepository pushKingDeeGoodsDocInRepository
|
||||
, IStorageGoodsDocOutDetailRepository storageGoodsDocOutDetailRepository
|
||||
, IStorageGoodsDocOutHeadRepository storageGoodsDocOutHeadRepository
|
||||
, IJackYunService jackYunService,
|
||||
IWorkProcessService workProcessService)
|
||||
{
|
||||
@@ -43,7 +49,9 @@ namespace MyCode.Project.Services.Implementation
|
||||
_jackOrdersItemRepository = jackOrdersItemRepository;
|
||||
_ReturnChangeGoodsDetailRepository = returnChangeGoodsDetailRepository;
|
||||
_busiOrderGoodsDocInRepository = busiOrderGoodsDocInRepository;
|
||||
|
||||
_PushKingDeeGoodsDocInRepository = pushKingDeeGoodsDocInRepository;
|
||||
_storageGoodsDocOutHeadRepository = storageGoodsDocOutHeadRepository;
|
||||
_storageGoodsDocOutDetailRepository = storageGoodsDocOutDetailRepository;
|
||||
_jackYunService = jackYunService;
|
||||
_workProcessService = workProcessService;
|
||||
}
|
||||
@@ -335,7 +343,7 @@ namespace MyCode.Project.Services.Implementation
|
||||
DateTime runTime = DateTime.Parse(now);
|
||||
var list = _jackYunService.GetPurchaseInboundData(runTime);
|
||||
SetPurchaseInboundData(list);
|
||||
//_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "GetAndMergeJackReturnYunOrder", "合并吉客云退货订单到新表", now, 1);
|
||||
//_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "GetAndMergePushGoodsDocInOrder", "合并吉客云采购订单到新表", now, 1);
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -376,20 +384,124 @@ namespace MyCode.Project.Services.Implementation
|
||||
#endregion
|
||||
|
||||
|
||||
#region GetStorageGoodsDocOutV2(调度运行吉客云采购出库单)
|
||||
#region GetStorageGoodsDocOutV2(调度运行吉客云采购退货出库单)
|
||||
/// <summary>
|
||||
/// 调度运行吉客云采购出库单
|
||||
/// 调度运行吉客云采购退货出库单
|
||||
/// </summary>
|
||||
/// <param name="now"></param>
|
||||
public void GetStorageGoodsDocOutV2(string now)
|
||||
{
|
||||
DateTime runTime = DateTime.Parse(now);
|
||||
var list = _jackYunService.GetStorageGoodsDocOutV2(runTime);
|
||||
//SetPurchaseInboundData(list);
|
||||
SetStorageGoodsDocOutV2Order(list);
|
||||
//_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "GetAndMergeJackReturnYunOrder", "合并吉客云退货订单到新表", now, 1);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region GetAndMergeJackGoodsDocInOrder(合并吉客云采购订单到新表)
|
||||
/// <summary>
|
||||
/// 合并吉客云采购订单到新表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[TransactionCallHandler]
|
||||
public string GetAndMergePushGoodsDocInOrder(string now)
|
||||
{
|
||||
var list = _busiOrderGoodsDocInRepository.GetPushGoodsDocInOrder();
|
||||
List<string> mesg = new List<string>();
|
||||
|
||||
//var shopParemList = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C" && t.FPURCHASERECEIVING=="1").ToList();
|
||||
List<PushKingDeeGoodsDocIn> pushKingDeeOrders = new List<PushKingDeeGoodsDocIn>();
|
||||
//var warehouseCodes = shopParemList.Select(t => t.FPURCHASINGWAREHOUSECODE).Distinct().ToList();
|
||||
//list = list.Where(t => warehouseCodes.Contains(t.WarehouseCode)).ToList();
|
||||
list.ForEach(sheet =>
|
||||
{
|
||||
|
||||
PushKingDeeGoodsDocIn pushKingDeeOrder = new PushKingDeeGoodsDocIn();
|
||||
pushKingDeeOrder = AutoMapperHelper.AutoMappToSingle<PushKingDeeGoodsDocIn, BusiOrderGoodsDocInSummary>(sheet);
|
||||
pushKingDeeOrder.ID = Guid.NewGuid();
|
||||
pushKingDeeOrder.CreateTime = DateTime.Now;
|
||||
pushKingDeeOrder.UpdateTime = DateTime.Now;
|
||||
pushKingDeeOrder.Status = 0;
|
||||
pushKingDeeOrders.Add(pushKingDeeOrder);
|
||||
|
||||
});
|
||||
if (pushKingDeeOrders.Count > 0)
|
||||
{
|
||||
var oldList = _busiOrderGoodsDocInRepository.Queryable().Where(t => t.Status == 0).ToList();
|
||||
oldList.ForEach(t =>
|
||||
{
|
||||
if (pushKingDeeOrders.Count(h => h.WarehouseCode == t.WarehouseCode && t.InOutDate2.Value.ToString("yyyy-MM-dd") == h.InOutDate2.Value.ToString("yyyy-MM-dd")) > 0)
|
||||
{
|
||||
t.Status = 1;
|
||||
t.UpdateTime = DateTime.Now;
|
||||
}
|
||||
});
|
||||
oldList = oldList.Where(t => t.Status == 1).ToList();
|
||||
_busiOrderGoodsDocInRepository.Update(oldList);
|
||||
_PushKingDeeGoodsDocInRepository.Add(pushKingDeeOrders);
|
||||
|
||||
}
|
||||
//pushKingDeeOrders.ForEach(t =>
|
||||
//{
|
||||
// _workProcessService.Add<IOrderPushService>(this.MerchantId, "PushOrderToKingDee", "推送退货订单到云星空或者WMS", t.Id, 1);
|
||||
// Thread.Sleep(300);
|
||||
//});
|
||||
|
||||
return JsonHelper.ToJson(list);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region SetReturnOrder(把吉客云退货订单存进本地数据库)
|
||||
/// <summarySetStorageGoodsDocOutV2Order
|
||||
/// 把吉客云退货订单存进本地数据库
|
||||
/// </summary>
|
||||
/// <param name="trades"></param>
|
||||
[TransactionCallHandler]
|
||||
public void SetStorageGoodsDocOutV2Order(List<ErpStorageGoodsDocOutV2ResponseBizData> trades)
|
||||
{
|
||||
var ids = trades.Select(t => t.RecId).Distinct().ToList();
|
||||
ids = _storageGoodsDocOutHeadRepository.Queryable().Where(t => ids.Contains(t.RecId)).Select(t => t.RecId).Distinct().ToList();
|
||||
if (ids.Count > 0)
|
||||
trades = trades.Where(t => !ids.Contains(t.RecId)).ToList();
|
||||
List<StorageGoodsDocOutHead> jackOrdersList = new List<StorageGoodsDocOutHead>();
|
||||
List<StorageGoodsDocOutDetail> ordersItemList = new List<StorageGoodsDocOutDetail>();
|
||||
var shopConfig = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C").ToList();
|
||||
var shopCodeList = shopConfig.Select(t => t.FSHOPCODE).ToList();
|
||||
|
||||
|
||||
trades.ForEach(t =>
|
||||
{
|
||||
|
||||
StorageGoodsDocOutHead jackOrders = new StorageGoodsDocOutHead();
|
||||
jackOrders = AutoMapperHelper.AutoMappToSingle<StorageGoodsDocOutHead, ErpStorageGoodsDocOutV2ResponseBizData>(t);
|
||||
jackOrders.Id = Guid.NewGuid();
|
||||
jackOrders.Status = 0;
|
||||
jackOrders.UpdateTime = DateTime.Now;
|
||||
jackOrders.CreateTime = DateTime.Now;
|
||||
if (t.GoodsDocDetailList != null)
|
||||
{
|
||||
var items = AutoMapperHelper.AutoMappToList<StorageGoodsDocOutDetail, GoodsDocDetailList>(t.GoodsDocDetailList);
|
||||
items.ForEach(k =>
|
||||
{
|
||||
k.HeadId = jackOrders.Id;
|
||||
k.CreateTime = DateTime.Now;
|
||||
k.UpdateTime = DateTime.Now;
|
||||
});
|
||||
jackOrdersList.Add(jackOrders);
|
||||
ordersItemList.AddRange(items);
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
if (jackOrdersList.Count > 0)
|
||||
{
|
||||
_storageGoodsDocOutHeadRepository.Add(jackOrdersList);
|
||||
_storageGoodsDocOutDetailRepository.Add(ordersItemList);
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user