Compare commits

6 Commits

Author SHA1 Message Date
4766ddf18c 退货类型订单 2025-10-20 16:25:51 +08:00
c8ad77df21 9 2025-10-18 18:33:55 +08:00
71f1368e6b 1 2025-10-18 15:05:26 +08:00
316e78f4f2 11 2025-10-17 17:54:23 +08:00
f42519dd61 1 2025-10-16 19:32:10 +08:00
0a28417898 9 2025-10-15 20:03:27 +08:00
20 changed files with 1717 additions and 18 deletions

View File

@@ -0,0 +1,176 @@

using MyCode.Project.Infrastructure.JackYun;
using System;
using System.Collections.Generic;
using static System.Net.Mime.MediaTypeNames;
namespace MyCode.Project.Domain.Message.Request.JackYun
{
public class ReturnChangeGetRequestBizData : BaseRequestBizData
{
/// <summary>
/// 每页显示数据量
/// </summary>
public int? PageSize { get; set; } = 50;
/// <summary>
/// 当前页码
/// </summary>
public int? PageIndex { get; set; } = 0;
/// <summary>
/// 最后修改时间(起始)
/// </summary>
public string StartModified { get; set; }
/// <summary>
/// 最后修改时间(截止)
/// </summary>
public string EndModified { get; set; }
/// <summary>
/// 退换单号,多个单号用逗号分隔
/// </summary>
public string ReturnChangeNo { get; set; }
/// <summary>
/// 订单号,多个单号用逗号分隔
/// </summary>
public string TradeNo { get; set; }
/// <summary>
/// 创建时间(起始)
/// </summary>
public string StartGmtCreate { get; set; }
/// <summary>
/// 创建时间(结束)
/// </summary>
public string EndGmtCreate { get; set; }
/// <summary>
/// 审核时间(起始)
/// </summary>
public string StartAuditDate { get; set; }
/// <summary>
/// 审核时间(结束)
/// </summary>
public string EndAuditDate { get; set; }
/// <summary>
/// 收货时间(起始)
/// </summary>
public string StartDeliveryDate { get; set; }
/// <summary>
/// 收货时间(结束)
/// </summary>
public string EndDeliveryDate { get; set; }
/// <summary>
/// 结算时间(起始)
/// </summary>
public string StartSettlementDate { get; set; }
/// <summary>
/// 结算时间(结束)
/// </summary>
public string EndSettlementDate { get; set; }
/// <summary>
/// 处理状态1000异常件待处理1001待审核1002待收货1003待结算1004已结算待收货1005已收货待结算1007已完成1008已取消1009已拒绝1010待支付1014待退货-待通知退货1015待退货-已通知退货10081已取消-被合并10082已取消-被拆分)
/// </summary>
public string ProcessStatusList { get; set; }
/// <summary>
/// 销售渠道
/// </summary>
public string ShopName { get; set; }
/// <summary>
/// 退货仓库名称
/// </summary>
public string WarehouseName { get; set; }
/// <summary>
/// 退货仓库ID集合
/// </summary>
public List<string> WarehouseIdList { get; set; }
/// <summary>
/// 退换原因
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 是否获取总记录数10
/// </summary>
public int? HasTotal { get; set; } = 1;
/// <summary>
/// 网店订单号
/// </summary>
public string SourceTradeNo { get; set; }
/// <summary>
/// 网店售后单号
/// </summary>
public string SourceTradeAfterNo { get; set; }
/// <summary>
/// 是否软删除
/// </summary>
public bool? Deleted { get; set; } = false;
/// <summary>
/// 店铺ID集合
/// </summary>
public List<string> ShopIds { get; set; }
/// <summary>
/// 是否查询组合装子件信息10
/// </summary>
public string SelectSubParts { get; set; } = "1";
/// <summary>
/// 是否同时返回未删除和回收站中的数据
/// </summary>
public bool? AllDeleteStatus { get; set; } = true;
/// <summary>
/// 完成时间开始时间
/// </summary>
public string StartCompleteTime { get; set; }
/// <summary>
/// 完成时间结束时间
/// </summary>
public string EndCompleteTime { get; set; }
/// <summary>
/// 是否归档0未归档1已归档
/// </summary>
public string QueryHistory { get; set; } = "0";
/// <summary>
/// 销售平台
/// </summary>
public string PlatName { get; set; }
/// <summary>
/// 申请时间开始时间
/// </summary>
public string ApplyTimeBegin { get; set; }
/// <summary>
/// 申请时间结束时间
/// </summary>
public string ApplyTimeEnd { get; set; }
}
}

View File

@@ -0,0 +1,286 @@
using System;
using System.Linq;
using System.Text;
using SqlSugar;
namespace MyCode.Project.Domain.Model
{
///<summary>
///退换货商品明细表(记录售后订单中的商品变更详情)
///</summary>
[SugarTable("ReturnChangeGoodsDetail")]
public partial class ReturnChangeGoodsDetail
{
public ReturnChangeGoodsDetail(){
}
/// <summary>
/// Desc:主键GUID格式
/// Default:newid()
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true)]
public Guid Id {get;set;}
/// <summary>
/// Desc:售后订单ID关联售后主表
/// Default:
/// Nullable:False
/// </summary>
public long TradeAfterId {get;set;}
/// <summary>
/// Desc:子订单ID关联销售明细
/// Default:
/// Nullable:False
/// </summary>
public long SubTradeId {get;set;}
/// <summary>
/// Desc:商品基础信息ID关联商品主表
/// Default:
/// Nullable:False
/// </summary>
public long GoodsId {get;set;}
/// <summary>
/// Desc:商品系统编号(唯一业务标识)
/// Default:
/// Nullable:True
/// </summary>
public string GoodsNo {get;set;}
/// <summary>
/// Desc:商品全称(显示名称)
/// Default:
/// Nullable:True
/// </summary>
public string GoodsName {get;set;}
/// <summary>
/// Desc:规格ID关联规格表
/// Default:
/// Nullable:True
/// </summary>
public long? SpecId {get;set;}
/// <summary>
/// Desc:规格组合名称(如:颜色:红;尺寸:XL
/// Default:
/// Nullable:True
/// </summary>
public string SpecName {get;set;}
/// <summary>
/// Desc:计量单位件、KG等
/// Default:
/// Nullable:True
/// </summary>
public string Unit {get;set;}
/// <summary>
/// Desc:销售单价(含税,单位:元)
/// Default:
/// Nullable:True
/// </summary>
public decimal? Price {get;set;}
/// <summary>
/// Desc:原始销售数量单位与Unit字段一致
/// Default:
/// Nullable:True
/// </summary>
public decimal? SellCount {get;set;}
/// <summary>
/// Desc:售后原因详细描述
/// Default:
/// Nullable:True
/// </summary>
public string ReasonDesc {get;set;}
/// <summary>
/// Desc:申请退货数量(可含小数)
/// Default:
/// Nullable:True
/// </summary>
public decimal? ReturnCount {get;set;}
/// <summary>
/// Desc:实际退货金额(=退货数量*单价-退货优惠)
/// Default:
/// Nullable:True
/// </summary>
public decimal? ReturnFee {get;set;}
/// <summary>
/// Desc:补发商品数量
/// Default:
/// Nullable:True
/// </summary>
public decimal? SendCount {get;set;}
/// <summary>
/// Desc:退货部分享受的优惠金额
/// Default:
/// Nullable:True
/// </summary>
public decimal? ReturnDiscounts {get;set;}
/// <summary>
/// Desc:补发部分享受的优惠金额
/// Default:
/// Nullable:True
/// </summary>
public decimal? SendDiscounts {get;set;}
/// <summary>
/// Desc:补发商品总金额
/// Default:
/// Nullable:True
/// </summary>
public decimal? SendFee {get;set;}
/// <summary>
/// Desc:理论应退金额(未计算分摊)
/// Default:
/// Nullable:True
/// </summary>
public decimal? ShouldReturnFee {get;set;}
/// <summary>
/// Desc:处理备注信息
/// Default:
/// Nullable:True
/// </summary>
public string Remark {get;set;}
/// <summary>
/// Desc:商品特性标记1-7分别对应定制/虚拟/卡券/代销/预售/序列号/需安装)
/// Default:
/// Nullable:True
/// </summary>
public int? GoodsAttribute {get;set;}
/// <summary>
/// Desc:最后修改时间格式yyyy-MM-dd HH:mm:ss
/// Default:
/// Nullable:True
/// </summary>
public string GmtModified {get;set;}
/// <summary>
/// Desc:记录创建时间格式yyyy-MM-dd HH:mm
/// Default:
/// Nullable:True
/// </summary>
public string GmtCreate {get;set;}
/// <summary>
/// Desc:商品条码(国际标准条码)
/// Default:
/// Nullable:True
/// </summary>
public string Barcode {get;set;}
/// <summary>
/// Desc:销售总金额(=单价*数量)
/// Default:
/// Nullable:True
/// </summary>
public decimal? SellTotal {get;set;}
/// <summary>
/// Desc:实际退货数量(仓库验收后)
/// Default:
/// Nullable:True
/// </summary>
public decimal? DeliveryCount {get;set;}
/// <summary>
/// Desc:组合装标识1=是组合装子商品)
/// Default:0
/// Nullable:True
/// </summary>
public int? IsFit {get;set;}
/// <summary>
/// Desc:赠品标识1=是赠品 0=正常商品)
/// Default:0
/// Nullable:True
/// </summary>
public int? IsGift {get;set;}
/// <summary>
/// Desc:分摊后退货金额(含订单级优惠分摊)
/// Default:
/// Nullable:True
/// </summary>
public decimal? ShareReturnFee {get;set;}
/// <summary>
/// Desc:分摊后补发金额(含订单级优惠分摊)
/// Default:
/// Nullable:True
/// </summary>
public decimal? ShareSendFee {get;set;}
/// <summary>
/// Desc:最终应退金额(含所有优惠和运费分摊)
/// Default:
/// Nullable:True
/// </summary>
public decimal? ShareShouldReturnFee {get;set;}
/// <summary>
/// Desc:货品批次信息JSON格式存储
/// Default:
/// Nullable:True
/// </summary>
public string GoodsBatchInfoList {get;set;}
/// <summary>
/// Desc:电商平台子订单编号(如淘宝子订单号)
/// Default:
/// Nullable:True
/// </summary>
public string SourceSubtradeNo {get;set;}
/// <summary>
/// Desc:次品数量描述5件破损
/// Default:
/// Nullable:True
/// </summary>
public string DefectiveAmount {get;set;}
/// <summary>
/// Desc:品牌名称
/// Default:
/// Nullable:True
/// </summary>
public string BrandName {get;set;}
/// <summary>
/// Desc:商品唯一序列号(用于高端商品追踪)
/// Default:
/// Nullable:True
/// </summary>
public string GoodsSerial {get;set;}
/// <summary>
/// Desc:平台商品ID第三方平台商品编码
/// Default:
/// Nullable:True
/// </summary>
public string PlatGoodsId {get;set;}
/// <summary>
/// Desc:
/// Default:
/// Nullable:True
/// </summary>
public Guid? JackOrdersId {get;set;}
}
}

View File

@@ -67,6 +67,7 @@
<Compile Include="Message\Act\Common\RequestModel.cs" />
<Compile Include="Message\Request\JackYun\CreateAndStockinGetRequestBizData.cs" />
<Compile Include="Message\Request\JackYun\CreateAndStockoutGetRequestBizData.cs" />
<Compile Include="Message\Request\JackYun\ReturnChangeGetRequestBizData.cs" />
<Compile Include="Message\Request\JackYun\OrderTradeFullInfoGetRequestBizData.cs" />
<Compile Include="Message\Request\KingDee\BillDelete.cs" />
<Compile Include="Message\Request\KingDee\BillSave.cs" />
@@ -98,6 +99,7 @@
<Compile Include="Model\JackOrdersItem.cs" />
<Compile Include="Model\PushKingDeeOrder.cs" />
<Compile Include="Model\PushKingDeeOrderItem.cs" />
<Compile Include="Model\ReturnChangeGoodsDetail.cs" />
<Compile Include="Model\SysWorkprocess.cs" />
<Compile Include="Model\WMStoJackyunInventoryMovementView1.cs" />
<Compile Include="Model\YTKJTShopParameter.cs" />
@@ -109,6 +111,7 @@
<Compile Include="Repositories\IPushKingDeeOrderRepository.cs" />
<Compile Include="Repositories\IRepository.cs" />
<Compile Include="Repositories\IRepository`.cs" />
<Compile Include="Repositories\IReturnChangeGoodsDetailRepository.cs" />
<Compile Include="Repositories\ISysWorkprocessRepository.cs" />
<Compile Include="Repositories\IWMStoJackyunInventoryMovementView1Repository.cs" />
<Compile Include="Repositories\IYTKJTShopParameterRepository.cs" />

View File

@@ -20,5 +20,11 @@ namespace MyCode.Project.Domain.Repositories
/// <returns></returns>
List<PushOrderListResp> GetPushOrder();
/// <summary>
/// 获取合并后的吉客云订单
/// </summary>
/// <returns></returns>
List<PushOrderListResp> GetPushReturnOrder();
}
}

View File

@@ -0,0 +1,18 @@
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.Model;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Domain.Message;
namespace MyCode.Project.Domain.Repositories
{
public interface IReturnChangeGoodsDetailRepository : IRepository<ReturnChangeGoodsDetail>
{
}
}

View File

@@ -288,7 +288,12 @@ namespace MyCode.Project.Infrastructure.Enumeration
/// 创建入库申请单并入库
/// </summary>
[Enum("创建入库申请单并入库", "erp.stock.createandstockin")]
CREATEANDSTOCKIN,
CREATEANDSTOCKIN,
/// <summary>
/// 分页查询退换补发单(新)
/// </summary>
[Enum("分页查询退换补发单(新)", "ass-business.returnchange.fullinfoget")]
RETURNCHANGE,
}
}

View File

@@ -0,0 +1,796 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Infrastructure.JackYun
{
public class ReturnChangeData
{
/// <summary>
/// 退货订单
/// </summary>
public List<ReturnChangeListResp> returnChangeList { get; set; }
/// <summary>
/// 总数Integer类型长度4
/// </summary>
public int TotalResults { get; set; }
/// <summary>
/// 每页显示数据量Integer类型长度4
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 当前页码Integer类型长度4
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 敏感数据标识Boolean类型长度10
/// </summary>
public bool SensitiveData { get; set; }
/// <summary>
/// 总数Integer类型长度100
/// </summary>
public int TotalRecords { get; set; }
/// <summary>
/// 分页信息Object类型无长度
/// </summary>
public PageInfo PageInfo { get; set; }
}
/// <summary>
/// 退换补发单结果集合
/// </summary>
public class ReturnChangeListResp
{
/// <summary>
/// 售后单系统Id
/// </summary>
public long TradeAfterId { get; set; }
/// <summary>
/// 售后单编号
/// </summary>
public string ReturnChangeNo { get; set; }
/// <summary>
/// 售后单来源1手工新建4纠纷单5Excel导入6门店7网店下载8错漏9异常件创建
/// </summary>
public int TradeAfterFrom { get; set; }
/// <summary>
/// 售后单状态1000预入库待确认1001待审核1002待收货1003待结算1004已结算待收货1005已收货待结算1007已完成1008已取消1009已拒绝1010待支付1014待退货-待通知退货1015待退货-已通知退货10081已取消-被合并10082已取消-被拆分)
/// </summary>
public string TradeAfterStatus { get; set; }
/// <summary>
/// 系统订单id
/// </summary>
public string TradeId { get; set; }
/// <summary>
/// 系统订单号
/// </summary>
public string TradeNo { get; set; }
/// <summary>
/// 网店订单号
/// </summary>
public string SourceTradeNo { get; set; }
/// <summary>
/// 网点售后单号
/// </summary>
public string SourceTradeAfterNo { get; set; }
/// <summary>
/// 退货仓库id
/// </summary>
public long WarehouseId { get; set; }
/// <summary>
/// 退货仓库编码
/// </summary>
public string WarehouseCode { get; set; }
/// <summary>
/// 退货仓库名称
/// </summary>
public string WarehouseName { get; set; }
/// <summary>
/// 物流公司id
/// </summary>
public long LogisticId { get; set; }
/// <summary>
/// 物流名称
/// </summary>
public string LogisticName { get; set; }
/// <summary>
/// 发货仓库id
/// </summary>
public long SendWarehouseId { get; set; }
/// <summary>
/// 发货仓库名称
/// </summary>
public string SendWarehouseName { get; set; }
/// <summary>
/// 物流单号
/// </summary>
public string MainPostid { get; set; }
/// <summary>
/// 销售渠道id
/// </summary>
public long ShopId { get; set; }
/// <summary>
/// 销售渠道
/// </summary>
public string ShopName { get; set; }
/// <summary>
/// 销售渠道Code
/// </summary>
public string ShopCode { get; set; }
/// <summary>
/// 公司ID
/// </summary>
public long CompanyId { get; set; }
/// <summary>
/// 公司名称
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// 原订单渠道id
/// </summary>
public long SourceShopId { get; set; }
/// <summary>
/// 原订单渠道
/// </summary>
public string SourceShopName { get; set; }
/// <summary>
/// 售后原因描述
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 取消售后原因描述
/// </summary>
public string CancelReasonDesc { get; set; }
/// <summary>
/// 拒绝售后原因描述
/// </summary>
public string RejectReasonDesc { get; set; }
/// <summary>
/// 问题描述
/// </summary>
public string ProbleamDesc { get; set; }
/// <summary>
/// 客户备注
/// </summary>
public string CustomerRemark { get; set; }
/// <summary>
/// 客服备注
/// </summary>
public string ServiceRemark { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public string AuditTime { get; set; }
/// <summary>
/// 收货时间
/// </summary>
public string DeliveryTime { get; set; }
/// <summary>
/// 发货时间
/// </summary>
public string ConsignTime { get; set; }
/// <summary>
/// 货品摘要
/// </summary>
public string Goodslist { get; set; }
/// <summary>
/// 标记id
/// </summary>
public string FlagIds { get; set; }
/// <summary>
/// 标记名称
/// </summary>
public string FlagNames { get; set; }
/// <summary>
/// 登记人id
/// </summary>
public long RegisterId { get; set; }
/// <summary>
/// 登记人
/// </summary>
public string Registrant { get; set; }
/// <summary>
/// 责任人code
/// </summary>
public long ResponsiblePersonCode { get; set; }
/// <summary>
/// 责任人描述
/// </summary>
public string ResponsiblePersonDesc { get; set; }
/// <summary>
/// 三方仓入库单号
/// </summary>
public string StockInNo { get; set; }
/// <summary>
/// 收货单号
/// </summary>
public string DeliveryNo { get; set; }
/// <summary>
/// 收货经办人
/// </summary>
public string DeliveryPerson { get; set; }
/// <summary>
/// 审核人id
/// </summary>
public long AuditorId { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string Auditor { get; set; }
/// <summary>
/// 源仓库id
/// </summary>
public long SourceWarehouseId { get; set; }
/// <summary>
/// 源仓库名称
/// </summary>
public string SourceWarehouseName { get; set; }
/// <summary>
/// 订单摘要
/// </summary>
public string TradeOrderSummary { get; set; }
/// <summary>
/// 冻结标记1冻结0未冻结
/// </summary>
public int IsFreeze { get; set; }
/// <summary>
/// 冻结原因
/// </summary>
public string FreezeReason { get; set; }
/// <summary>
/// 建单时间
/// </summary>
public string GmtCreate { get; set; }
/// <summary>
/// 最后修改时间
/// </summary>
public string GmtModified { get; set; }
/// <summary>
/// 原销售单状态
/// </summary>
public int SourceTradeStatus { get; set; }
/// <summary>
/// 退货货品信息
/// </summary>
public List<JkyReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; }
/// <summary>
/// 售后类型String类型无长度
/// </summary>
public string TradeAfterType { get; set; }
/// <summary>
/// 售后类型说明String类型无长度
/// </summary>
public string TradeAfterTypeExplain { get; set; }
}
public class PageInfo
{
/// <summary>
/// 当前页码
/// </summary>
public int pageIndex { get; set; }
/// <summary>
/// 每页显示数据量
/// </summary>
public int pageSize { get; set; }
/// <summary>
/// 排序字段
/// </summary>
public string sortOrder { get; set; }
/// <summary>
/// 倒序或升序文本
/// </summary>
public string sortField { get; set; }
/// <summary>
/// 总数(
/// </summary>
public int total { get; set; }
}
/// <summary>
/// 货品信息
/// </summary>
public class JkyReturnChangeGoodsDetail
{
/// <summary>
/// 售后订单id
/// </summary>
public long TradeAfterId { get; set; }
/// <summary>
/// 货品id
/// </summary>
public long SubTradeId { get; set; }
/// <summary>
/// 货品编号id
/// </summary>
public long GoodsId { get; set; }
/// <summary>
/// 货品编号
/// </summary>
public string GoodsNo { get; set; }
/// <summary>
/// 货品名称
/// </summary>
public string GoodsName { get; set; }
/// <summary>
/// 规格id
/// </summary>
public long SpecId { get; set; }
/// <summary>
/// 规格名称
/// </summary>
public string SpecName { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 销售单数量
/// </summary>
public decimal SellCount { get; set; }
/// <summary>
/// 售后原因描述
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 退货数量
/// </summary>
public decimal ReturnCount { get; set; }
/// <summary>
/// 退货金额
/// </summary>
public decimal ReturnFee { get; set; }
/// <summary>
/// 发货数量
/// </summary>
public decimal SendCount { get; set; }
/// <summary>
/// 退货优惠
/// </summary>
public decimal ReturnDiscounts { get; set; }
/// <summary>
/// 发货优惠
/// </summary>
public decimal SendDiscounts { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal SendFee { get; set; }
/// <summary>
/// 应退金额
/// </summary>
public decimal ShouldReturnFee { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 货品业务特性1定制生产转生产后发货2虚拟物品/服务无仓储作业3卡券结算冲抵4代销转供应商发货5预售品转预售单6序列号管理单品跟踪7需上门安装发货后转工单
/// </summary>
public int GoodsAttribute { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public string GmtModified { get; set; }
/// <summary>
/// 退换单创建时间
/// </summary>
public string GmtCreate { get; set; }
/// <summary>
/// 条码
/// </summary>
public string Barcode { get; set; }
/// <summary>
/// 金额
/// </summary>
public decimal SellTotal { get; set; }
/// <summary>
/// 实退数量
/// </summary>
public decimal DeliveryCount { get; set; }
/// <summary>
/// 组合装标记1是组合装0不是组合装
/// </summary>
public int IsFit { get; set; }
/// <summary>
/// 赠品标记1是赠品0不是赠品
/// </summary>
public int IsGift { get; set; }
/// <summary>
/// 分摊后退货金额
/// </summary>
public decimal ShareReturnFee { get; set; }
/// <summary>
/// 分摊后发货金额
/// </summary>
public decimal ShareSendFee { get; set; }
/// <summary>
/// 分摊后应退金额
/// </summary>
public decimal ShareShouldReturnFee { get; set; }
/// <summary>
/// 货品批次信息
/// </summary>
public List<GoodsBatchInfo> GoodsBatchInfoList { get; set; }
/// <summary>
/// 网店子订单编号
/// </summary>
public string SourceSubtradeNo { get; set; }
/// <summary>
/// 次品数量
/// </summary>
public string DefectiveAmount { get; set; }
/// <summary>
/// 品牌
/// </summary>
public string BrandName { get; set; }
/// <summary>
/// 唯一码
/// </summary>
public string GoodsSerial { get; set; }
/// <summary>
/// 平台商品ID
/// </summary>
public string PlatGoodsId { get; set; }
}
/// <summary>
/// 货品批次信息
/// </summary>
public class GoodsBatchInfo
{
/// <summary>
/// 批次号
/// </summary>
public string BatchNo { get; set; }
/// <summary>
/// 批次数量
/// </summary>
public decimal BatchAmount { get; set; }
/// <summary>
/// 生产日期
/// </summary>
public string ProductionDate { get; set; }
/// <summary>
/// 到期日期
/// </summary>
public string ExpirationDate { get; set; }
}
/// <summary>
/// 售后订单主表
/// </summary>
public class TradeAfter
{
/// <summary>
/// 售后订单ID
/// </summary>
public long TradeAfterId { get; set; }
/// <summary>
/// 货品信息列表
/// </summary>
public List<TradeAfterGoods> GoodsInfoList { get; set; }
/// <summary>
/// 结算信息
/// </summary>
public ReturnChangePay PaymentInfo { get; set; }
/// <summary>
/// 收件人信息
/// </summary>
public ReturnChangeReceiver ReceiverInfo { get; set; }
/// <summary>
/// 补发销售单号列表
/// </summary>
public List<string> SendTradeNo { get; set; }
/// <summary>
/// 退货销售单号列表
/// </summary>
public List<string> ReturnTradeNo { get; set; }
}
/// <summary>
/// 售后订单货品信息
/// </summary>
public class TradeAfterGoods
{
/// <summary>
/// 货品ID
/// </summary>
public long SubTradeId { get; set; }
/// <summary>
/// 货品编号ID
/// </summary>
public long GoodsId { get; set; }
/// <summary>
/// 货品编号
/// </summary>
public string GoodsNo { get; set; }
/// <summary>
/// 货品名称
/// </summary>
public string GoodsName { get; set; }
/// <summary>
/// 规格ID
/// </summary>
public long SpecId { get; set; }
/// <summary>
/// 规格名称
/// </summary>
public string SpecName { get; set; }
/// <summary>
/// 单位
/// </summary>
public string Unit { get; set; }
/// <summary>
/// 单价
/// </summary>
public decimal Price { get; set; }
/// <summary>
/// 销售单数量
/// </summary>
public decimal SellCount { get; set; }
/// <summary>
/// 售后原因描述
/// </summary>
public string ReasonDesc { get; set; }
/// <summary>
/// 退货数量
/// </summary>
public decimal ReturnCount { get; set; }
/// <summary>
/// 退货金额
/// </summary>
public decimal ReturnFee { get; set; }
/// <summary>
/// 发货数量
/// </summary>
public decimal SendCount { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal SendFee { get; set; }
/// <summary>
/// 应退金额
/// </summary>
public decimal ShouldReturnFee { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 货品批次信息列表
/// </summary>
public List<GoodsBatchInfo> GoodsBatchInfoList { get; set; }
}
/// <summary>
/// 结算信息
/// </summary>
public class ReturnChangePay
{
/// <summary>
/// 退货金额
/// </summary>
public decimal ReturnAccounts { get; set; }
/// <summary>
/// 发货金额
/// </summary>
public decimal SendAccounts { get; set; }
/// <summary>
/// 应退合计
/// </summary>
public decimal ReturnTotal { get; set; }
/// <summary>
/// 结算币种
/// </summary>
public string SettlementCurrency { get; set; }
/// <summary>
/// 结算币种code
/// </summary>
public string SettlementCurrencyCode { get; set; }
/// <summary>
/// 付款状态0未付款1部分付款2已付款
/// </summary>
public int PayStatus { get; set; }
/// <summary>
/// 付款金额
/// </summary>
public decimal PayAccounts { get; set; }
/// <summary>
/// 付款时间
/// </summary>
public string PayTime { get; set; }
}
/// <summary>
/// 收件人信息
/// </summary>
public class ReturnChangeReceiver
{
/// <summary>
/// 客户名称
/// </summary>
public string CustomerName { get; set; }
/// <summary>
/// 客户账户
/// </summary>
public string CustomerAccount { get; set; }
/// <summary>
/// 邮编
/// </summary>
public string Zip { get; set; }
/// <summary>
/// 国家
/// </summary>
public string Country { get; set; }
/// <summary>
/// 省
/// </summary>
public string State { get; set; }
/// <summary>
/// 城市
/// </summary>
public string City { get; set; }
/// <summary>
/// 区县
/// </summary>
public string District { get; set; }
/// <summary>
/// 街道
/// </summary>
public string Town { get; set; }
}
}

View File

@@ -193,9 +193,15 @@ namespace MyCode.Project.Infrastructure.JackYun
/// </summary>
public int apiType { get; set; }
/// <summary>
/// 货品详情
/// 销售货品详情
/// </summary>
public List<GoodsDetailItem> goodsDetail { get; set; }
/// <summary>
/// 退货货品信息
/// </summary>
public List<JkyReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; }
/// <summary>
/// 系统编码
/// </summary>
@@ -247,7 +253,7 @@ namespace MyCode.Project.Infrastructure.JackYun
public string scrollId { get; set; }
}
public class TradeFullinfogetResp
public class TradeFullinfogetResp<T>
{
/// <summary>
///
@@ -256,7 +262,7 @@ namespace MyCode.Project.Infrastructure.JackYun
/// <summary>
///
/// </summary>
public TradeFullinfogetData data { get; set; }
public T data { get; set; }
/// <summary>
///
/// </summary>

View File

@@ -267,6 +267,7 @@
<Compile Include="JackYun\EnumAttribute.cs" />
<Compile Include="JackYun\GoodsDetail.cs" />
<Compile Include="JackYun\JackyunResponse.cs" />
<Compile Include="JackYun\ReturnChangeListResp.cs" />
<Compile Include="JackYun\TradeFullinfogetResp.cs" />
<Compile Include="PayModels\ExtendedGateway.cs" />
<Compile Include="PayModels\FuiouBarcodepay.cs" />

View File

@@ -35,7 +35,7 @@ namespace MyCode.Project.Repositories
FROM [JackOrders] a WITH (NOLOCK)
LEFT JOIN [dbo].[JackOrdersItem] b WITH (NOLOCK)
ON a.id = b.JackOrdersId
WHERE a.status = 0
WHERE a.status = 0 and TradeType in (1,7) and sellCount <> 0
GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [status], CONVERT(NVARCHAR(30),[consignTime],23) ,[goodsNo], [goodsId], [barcode] ,[warehouseId], [TradeType],Unit";
var list = this.SelectList<PushOrderListResp>(sql);
return list;
@@ -43,5 +43,31 @@ GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [s
#endregion
#region GetPushOrder()
/// <summary>
/// 获取合并后的吉客云订单
/// </summary>
/// <returns></returns>
public List<PushOrderListResp> GetPushReturnOrder()
{
string sql = $@"
SELECT [shopCode], [shopName], [shopId], [warehouseName], [warehouseCode],
[status], CONVERT(NVARCHAR(30),[consignTime],23) [consignTime],
[goodsNo], [goodsId],SUM([sellTotal]*-1) [sellTotal],
SUM([returnCount]*-1) [sellCount], SUM([ShareShouldReturnFee]*-1) AS [divideSellTotal],
[barcode], [TradeType] ,[warehouseId],Unit
FROM [JackOrders] a WITH (NOLOCK)
LEFT JOIN [dbo].[ReturnChangeGoodsDetail] b WITH (NOLOCK)
ON a.id = b.JackOrdersId
WHERE a.status = 0 and [TradeType]=8 and returnCount <> 0
GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [status], CONVERT(NVARCHAR(30),[consignTime],23) ,[goodsNo],
[goodsId], [barcode] ,[warehouseId], [TradeType],Unit
ORDER BY [shopCode],[consignTime] desc,[TradeType]
";
var list = this.SelectList<PushOrderListResp>(sql);
return list;
}
#endregion
}
}

View File

@@ -91,6 +91,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PushKingDeeOrderItemRepository.cs" />
<Compile Include="PushKingDeeOrderRepository.cs" />
<Compile Include="ReturnChangeGoodsDetailRepository.cs" />
<Compile Include="SysWorkprocessRepository.cs" />
<Compile Include="WMStoJackyunInventoryMovementView1Repository.cs" />
<Compile Include="YTKJTShopParameterRepository.cs" />

View File

@@ -0,0 +1,26 @@
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.Model;
using MyCode.Project.Domain.Repositories;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.Search;
namespace MyCode.Project.Repositories
{
public class ReturnChangeGoodsDetailRepository: Repository<ReturnChangeGoodsDetail>, IReturnChangeGoodsDetailRepository
{
public ReturnChangeGoodsDetailRepository(MyCodeSqlSugarClient context) : base(context)
{ }
}
}

View File

@@ -22,5 +22,13 @@ namespace MyCode.Project.Services
/// <exception cref="BaseException"></exception>
List<TradesItem> testTradeFullInfoGet(DateTime now);
/// <summary>
/// 退货查询
/// </summary>
/// <param name="now">截止日期</param>
/// <returns></returns>
/// <exception cref="BaseException"></exception>
List<TradesItem> GetReturnChangeList(DateTime now);
}
}

View File

@@ -1,4 +1,5 @@
using MyCode.Project.Domain.Message.Response.Common;
using MyCode.Project.Infrastructure.JackYun;
using MyCode.Project.Repositories.Common;
using System.Collections.Generic;
@@ -18,5 +19,25 @@ namespace MyCode.Project.Services
/// <returns></returns>
string GetAndMergeJackYunOrder(string now);
/// <summary>
/// 调度运行抓吉客云退货订单
/// </summary>
/// <param name="now"></param>
void TaskGetReturnChangeList(string now);
/// <summary>
/// 把吉客云退货订单存进本地数据库
/// </summary>
/// <param name="trades"></param>
void SetReturnOrder(List<TradesItem> trades);
/// <summary>
/// 合并吉客云退货订单到新表
/// </summary>
/// <returns></returns>
string GetAndMergeJackReturnYunOrder(string now);
}
}

View File

@@ -106,7 +106,7 @@ namespace MyCode.Project.Services.Implementation
if (response.code == "200")
{
var orderjson = JsonHelper.ToJson(response.result);
var list1 = JsonHelper.ToObject<TradeFullinfogetResp>(orderjson);
var list1 = JsonHelper.ToObject<TradeFullinfogetResp<TradeFullinfogetData>>(orderjson);
int pageIndex = 1;
@@ -122,7 +122,7 @@ namespace MyCode.Project.Services.Implementation
if (response.code == "200")
{
orderjson = JsonHelper.ToJson(response.result);
list1 = JsonHelper.ToObject<TradeFullinfogetResp>(orderjson);
list1 = JsonHelper.ToObject<TradeFullinfogetResp<TradeFullinfogetData>>(orderjson);
}
}
@@ -139,7 +139,131 @@ namespace MyCode.Project.Services.Implementation
}
#endregion
#region 退
/// <summary>
/// 退货查询
/// </summary>
/// <param name="now">截止日期</param>
/// <returns></returns>
/// <exception cref="BaseException"></exception>
public List<TradesItem> GetReturnChangeList(DateTime now)
{
int total = 1;
var shopConfigs = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C").ToList();
ReturnChangeGetRequestBizData requestBizData = new ReturnChangeGetRequestBizData();
//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");
}
requestBizData.StartModified = "";// DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
requestBizData.StartDeliveryDate = value;
requestBizData.EndDeliveryDate = value1;
requestBizData.EndModified = ""; //DateTime.ParseExact(value1, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
requestBizData.TradeNo = "";
requestBizData.HasTotal = total;
requestBizData.PageSize = 200;
requestBizData.PageIndex = 0;
requestBizData.StartModified = null;// DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
//requestBizData.TradeStatus = 1010;
requestBizData.ShopIds = null; // new long[] { 378761130654261100, 378761130654261100 };
List<int> TradeTypeList = new List<int>();
TradeTypeList.Add(1005);
List<TradesItem> reslut = new List<TradesItem>();
List<ReturnChangeListResp> trades = new List<ReturnChangeListResp>();
TradeTypeList.ForEach(ty =>
{
requestBizData.ProcessStatusList = "";
string lggl = JsonHelper.ToJson(requestBizData);
LogHelper.Info(lggl);
JackyunResponse response = Call(EnumAttribute.GetAttribute(ApiEnum.RETURNCHANGE).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<TradeFullinfogetResp<ReturnChangeData>>(orderjson);
int pageIndex = 1;
int TotalResults = list1.data.TotalResults;
while (requestBizData.PageIndex* requestBizData.PageSize< TotalResults)
{
//list1.data.returnChangeList.ForEach(h => h.TradeType = ty);
trades.AddRange(list1.data.returnChangeList);
requestBizData.PageIndex = pageIndex;
pageIndex++;
Thread.Sleep(100);
response = Call(EnumAttribute.GetAttribute(ApiEnum.RETURNCHANGE).Value, "1.0", requestBizData);
if (response.code == "200")
{
orderjson = JsonHelper.ToJson(response.result);
list1 = JsonHelper.ToObject<TradeFullinfogetResp<ReturnChangeData>>(orderjson);
}
}
}
else
{
string msg = response.msg;
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();
return reslut;
}
#endregion
}

View File

@@ -1,18 +1,14 @@
using MyCode.Project.Domain.Message.Response.JackYun;
using MyCode.Project.Domain.Message.Response.JackYun;
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;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace MyCode.Project.Services.Implementation
{
@@ -24,6 +20,8 @@ namespace MyCode.Project.Services.Implementation
private IPushKingDeeOrderRepository _pushKingDeeOrderRepository;
private IPushKingDeeOrderItemRepository _pushKingDeeOrderItemRepository;
private IYTKJTShopParameterRepository _yTKJTShopParameterRepository;
private IReturnChangeGoodsDetailRepository _ReturnChangeGoodsDetailRepository;
private IWorkProcessService _workProcessService;
public JackYunTaskService(IJackOrdersRepository jackOrdersRepository
@@ -31,6 +29,7 @@ namespace MyCode.Project.Services.Implementation
, IPushKingDeeOrderRepository pushKingDeeOrderRepository
, IPushKingDeeOrderItemRepository pushKingDeeOrderItemRepository
, IYTKJTShopParameterRepository yTKJTShopParameterRepository
, IReturnChangeGoodsDetailRepository returnChangeGoodsDetailRepository
, IJackYunService jackYunService,
IWorkProcessService workProcessService)
{
@@ -39,6 +38,7 @@ namespace MyCode.Project.Services.Implementation
_pushKingDeeOrderItemRepository = pushKingDeeOrderItemRepository;
_jackOrdersRepository = jackOrdersRepository;
_jackOrdersItemRepository = jackOrdersItemRepository;
_ReturnChangeGoodsDetailRepository = returnChangeGoodsDetailRepository;
_jackYunService = jackYunService;
_workProcessService = workProcessService;
}
@@ -125,7 +125,7 @@ namespace MyCode.Project.Services.Implementation
list.ForEach(sheet =>
{
if (pushKingDeeOrders.Where(t => t.ShopId == sheet.ShopId && t.WarehouseId == sheet.WarehouseId
&& t.ConsignTime.Value.ToString("yyyy-MM-dd")==sheet.ConsignTime).Count() > 0)
&& t.ConsignTime.Value.ToString("yyyy-MM-dd")==sheet.ConsignTime && t.TradeType != 8).Count() > 0)
{
return;
}
@@ -178,7 +178,146 @@ namespace MyCode.Project.Services.Implementation
return JsonHelper.ToJson(list);
}
#endregion
#endregion
#region TaskGetReturnChangeList(退)
/// <summary>
/// 调度运行抓吉客云退货订单
/// </summary>
/// <param name="now"></param>
public void TaskGetReturnChangeList(string now)
{
DateTime runTime = DateTime.Parse(now);
var list = _jackYunService.GetReturnChangeList(runTime);
SetReturnOrder(list);
_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "GetAndMergeJackReturnYunOrder", "合并吉客云退货订单到新表", now, 1);
}
#endregion
#region SetReturnOrder(退)
/// <summary>
/// 把吉客云退货订单存进本地数据库
/// </summary>
/// <param name="trades"></param>
[TransactionCallHandler]
public void SetReturnOrder(List<TradesItem> trades)
{
var ids = trades.Select(t => t.tradeId).Distinct().ToList();
ids = _jackOrdersRepository.Queryable().Where(t => ids.Contains(t.TradeId)).Select(t => t.TradeId).Distinct().ToList();
if (ids.Count > 0)
trades = trades.Where(t => !ids.Contains(t.tradeId)).ToList();
List<JackOrders> jackOrdersList = new List<JackOrders>();
List<ReturnChangeGoodsDetail> ordersItemList = new List<ReturnChangeGoodsDetail>();
var shopConfig = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C").ToList();
var shopCodeList = shopConfig.Select(t => t.FSHOPCODE).ToList();
trades.ForEach(t =>
{
if (shopCodeList.Contains(t.shopCode))
{
JackOrders jackOrders = new JackOrders();
jackOrders = AutoMapperHelper.AutoMappToSingle<JackOrders, TradesItem>(t);
jackOrders.Id = Guid.NewGuid();
jackOrders.Status = 0;
jackOrders.UpdateTime = DateTime.Now;
jackOrders.CreateTime = DateTime.Now;
if (t.ReturnChangeGoodsDetail != null)
{
var items = AutoMapperHelper.AutoMappToList< ReturnChangeGoodsDetail, JkyReturnChangeGoodsDetail>(t.ReturnChangeGoodsDetail);
items.ForEach(k =>
{
k.JackOrdersId = jackOrders.Id;
});
jackOrdersList.Add(jackOrders);
ordersItemList.AddRange(items);
}
}
});
if (jackOrdersList.Count > 0)
{
_jackOrdersRepository.Add(jackOrdersList);
_ReturnChangeGoodsDetailRepository.Add(ordersItemList);
}
}
#endregion
#region GetAndMergeJackReturnYunOrder(退)
/// <summary>
/// 合并吉客云退货订单到新表
/// </summary>
/// <returns></returns>
[TransactionCallHandler]
public string GetAndMergeJackReturnYunOrder(string now)
{
var list = _jackOrdersItemRepository.GetPushReturnOrder();
List<string> mesg = new List<string>();
var shopParemList = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C").ToList();
List<PushKingDeeOrderItem> pushKingDeeOrderItems = new List<PushKingDeeOrderItem>();
List<PushKingDeeOrder> pushKingDeeOrders = new List<PushKingDeeOrder>();
list.ForEach(sheet =>
{
if (pushKingDeeOrders.Where(t => t.ShopId == sheet.ShopId && t.WarehouseId == sheet.WarehouseId
&& t.ConsignTime.Value.ToString("yyyy-MM-dd") == sheet.ConsignTime && t.TradeType==8).Count() > 0)
{
return;
}
PushKingDeeOrder pushKingDeeOrder = new PushKingDeeOrder();
pushKingDeeOrder = AutoMapperHelper.AutoMappToSingle<PushKingDeeOrder, PushOrderListResp>(sheet);
pushKingDeeOrder.Id = Guid.NewGuid();
pushKingDeeOrder.CreateTime = DateTime.Now;
pushKingDeeOrder.UpdateTime = DateTime.Now;
pushKingDeeOrders.Add(pushKingDeeOrder);
var tempList = list.Where(t => t.ShopId == sheet.ShopId && t.WarehouseId == sheet.WarehouseId && sheet.ConsignTime == t.ConsignTime).ToList();
tempList.ForEach(item =>
{
PushKingDeeOrderItem pushKingDeeOrderItem = new PushKingDeeOrderItem();
pushKingDeeOrderItem = AutoMapperHelper.AutoMappToSingle<PushKingDeeOrderItem, PushOrderListResp>(item);
pushKingDeeOrderItem.PushKingDeeOrderId = pushKingDeeOrder.Id;
pushKingDeeOrderItem.Id = Guid.NewGuid();
pushKingDeeOrderItems.Add(pushKingDeeOrderItem);
});
//var shopParem = shopParemList.Where(h => h.FSHOPCODE == sheet.ShopId.Value.ToString()&& h.FWAREHOUSE.Value.ToString()==sheet.WarehouseId ).FirstOrDefault();
//if (shopParem != null)
//{
//}
//else
//{
// mesg.Add($@"店铺{sheet.ShopName}没有配置店铺参数或者配置的仓库不是 {sheet.WarehouseCode}");
//}
});
if (pushKingDeeOrders.Count > 0)
{
var oldList = _jackOrdersRepository.Queryable().Where(t => t.Status == 0).ToList();
oldList.ForEach(t =>
{
if (pushKingDeeOrders.Count(h => h.ShopId == t.ShopId && t.WarehouseId == h.WarehouseId) > 0)
{
t.Status = 1;
t.UpdateTime = DateTime.Now;
}
});
oldList = oldList.Where(t => t.Status == 1).ToList();
_jackOrdersRepository.Update(oldList);
_pushKingDeeOrderRepository.Add(pushKingDeeOrders);
_pushKingDeeOrderItemRepository.Add(pushKingDeeOrderItems);
}
pushKingDeeOrders.ForEach(t =>
{
_workProcessService.Add<IOrderPushService>(this.MerchantId, "PushOrderToKingDee", "推送退货订单到云星空或者WMS", t.Id, 1);
Thread.Sleep(300);
});
return JsonHelper.ToJson(list);
}
#endregion
}
}

View File

@@ -143,8 +143,8 @@ namespace MyCode.Project.Services.Implementation
CustomerId = param.FCANGKUHUOZHU, // 货主ID
Sku = n.Barcode,
Barcode = n.Barcode,
OrderQty = n.SellCount,
OrderPrice = Math.Round(n.DivideSellTotal / n.SellCount, 10),
OrderQty =Math.Abs( n.SellCount),
OrderPrice = Math.Abs( Math.Round(n.DivideSellTotal /(n.SellCount), 10)),
ItemId = n.GoodsNo, // 商品
LocationId = param.FWAREHOUSECODE,
CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),

View File

@@ -44,6 +44,7 @@ namespace MyCode.Project.Services.Implementation
DateTime now = DateTime.Now.Date;
_workProcessService.Add<IWMSService>(this.MerchantId, "GetList", "抓取WMS订单到本地数据库", now.AddDays(-3).ToString("yyyy-MM-dd"), 1);
_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "TaskGetJackYunOrder", "调度运行抓吉客云销售订单", now.ToString("yyyy-MM-dd"), 1);
_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "TaskGetReturnChangeList", "调度运行抓吉客云退货订单", now.ToString("yyyy-MM-dd"), 1);
}
#endregion

View File

@@ -5,6 +5,7 @@ using MyCode.Project.Services.Implementation;
using MyCode.Project.Services.IServices;
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Web.Http;
namespace MyCode.Project.WebApi.Controllers
@@ -54,6 +55,19 @@ namespace MyCode.Project.WebApi.Controllers
#endregion
#region 退
/// <summary>
/// 调度运行抓吉客云退货订单
/// </summary>
[HttpGet]
[AllowAnonymous]
public void TaskGetReturnChangeList(string now)
{
_jackYunTaskService.TaskGetReturnChangeList(now);
}
#endregion
#region WMS订单
/// <summary>
/// 抓WMS订单
@@ -78,6 +92,46 @@ namespace MyCode.Project.WebApi.Controllers
}
#endregion
#region 退
/// <summary>
/// 合并吉客云退货订单到新表
/// </summary>
[HttpGet]
[AllowAnonymous]
public string GetAndMergeJackReturnYunOrder(string now)
{
return _jackYunTaskService.GetAndMergeJackReturnYunOrder(now);
}
#endregion
/// <summary>
/// 替换或添加URL中的端口号支持指定协议
/// </summary>
/// <param name="input"></param>
/// <param name="newPort"></param>
/// <param name="protocol"></param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public string ReplaceOrAddPortAdvanced(string input, string newPort, string protocol = "http")
{
// 构建协议特定的模式
string protocolPattern = string.IsNullOrEmpty(protocol) ? @"(https?|ftp)://" : $"{protocol}://";
// 匹配已有端口号
string patternWithPort = $@"({protocolPattern}[^/]+?):\d+";
// 匹配没有端口号
string patternWithoutPort = $@"({protocolPattern}[^/:/]+)(?=/|$)";
// 先尝试替换已有端口号
string result = Regex.Replace(input, patternWithPort, $"$1:{newPort}");
// 如果没有端口号被替换,尝试添加端口号
if (result == input)
result = Regex.Replace(input, patternWithoutPort, $"$1:{newPort}");
return result;
}
//#region 订单查询

View File

@@ -22,9 +22,11 @@
</system.webServer>
<connectionStrings>
<!-- 数据库测试-->
<add name="WMSConn" connectionString="Data Source=172.16.18.87; Initial Catalog=ESB_DTC; User ID=app_k3;Password=Postman2025k3; Connect Timeout=120; MultipleActiveResultSets=True;App=JiKeYun2" providerName="System.Data.SqlClient" />
<add name="YunTongConn" connectionString="Data Source=172.100.1.148; Initial Catalog=AIS20221018145647; User ID=sa;Password=YT3059**!@#; Connect Timeout=120; MultipleActiveResultSets=True;App=JiKeYun1" providerName="System.Data.SqlClient" />
<!--测试MYSQL内网-->
<add name="WMSConn" connectionString="Data Source=127.0.0.1; Initial Catalog=yuntong; User ID=sa;Password=1; Connect Timeout=120; MultipleActiveResultSets=True;App=JiKeYun2" providerName="System.Data.SqlClient" />
<add name="YunTongConn" connectionString="Data Source=127.0.0.1; Initial Catalog=yuntong; User ID=sa;Password=1; Connect Timeout=120; MultipleActiveResultSets=True;App=JiKeYun1" providerName="System.Data.SqlClient" />
<!--测试MYSQL内网-->
<!--<add name="MasterConn" connectionString="" providerName="MySql.Data.MySqlClient" />-->
</connectionStrings>
<appSettings>