From de4a33e00e406ebad5bb79f1ad04472f1d272a79 Mon Sep 17 00:00:00 2001
From: yuyubo <1870149533@qq.com>
Date: Sat, 23 Aug 2025 16:27:17 +0800
Subject: [PATCH] 1
---
.../MyCode.Project.Domain/Model/JackOrders.cs | 234 ++++++++
.../Model/PushKingDeeOrder.cs | 122 +++++
.../Model/SysWorkprocess.cs | 140 +++--
.../Model/YTKJTShopParameter.cs | 209 +++++++
.../MyCode.Project.Domain.csproj | 8 +-
.../Repositories/IJackOrdersRepository.cs | 18 +
.../IPushKingDeeOrderRepository.cs | 18 +
.../IYTKJTShopParameterRepository.cs | 18 +
.../MyCode.Project.GenerateCode/App.config | 4 +-
.../JackOrdersRepository.cs | 26 +
.../MyCode.Project.Repositories.csproj | 4 +-
.../PushKingDeeOrderRepository.cs | 26 +
.../YTKJTShopParameterRepository.cs | 26 +
.../Jobs/EveryJob.cs | 8 +-
.../IServices/IJackYunService.cs | 10 -
.../IServices/ILiQiongHaiService.cs | 10 +
.../IServices/IYuyuboService.cs | 10 +
.../IServices/IZhuBinService.cs | 10 +
.../Implementation/JackYunService.cs | 75 ---
.../Implementation/LiQiongHaiService.cs | 21 +
.../Implementation/WorkProcessService.cs | 516 ++++++++++++------
.../Implementation/YuyuboService.cs | 20 +
.../Implementation/ZhuBinService.cs | 20 +
.../MyCode.Project.Services.csproj | 10 +-
Reportapi/MyCode.Project.WebApi/Web.config | 4 +-
25 files changed, 1244 insertions(+), 323 deletions(-)
create mode 100644 Reportapi/MyCode.Project.Domain/Model/JackOrders.cs
create mode 100644 Reportapi/MyCode.Project.Domain/Model/PushKingDeeOrder.cs
create mode 100644 Reportapi/MyCode.Project.Domain/Model/YTKJTShopParameter.cs
create mode 100644 Reportapi/MyCode.Project.Domain/Repositories/IJackOrdersRepository.cs
create mode 100644 Reportapi/MyCode.Project.Domain/Repositories/IPushKingDeeOrderRepository.cs
create mode 100644 Reportapi/MyCode.Project.Domain/Repositories/IYTKJTShopParameterRepository.cs
create mode 100644 Reportapi/MyCode.Project.Repositories/JackOrdersRepository.cs
create mode 100644 Reportapi/MyCode.Project.Repositories/PushKingDeeOrderRepository.cs
create mode 100644 Reportapi/MyCode.Project.Repositories/YTKJTShopParameterRepository.cs
delete mode 100644 Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs
create mode 100644 Reportapi/MyCode.Project.Services/IServices/ILiQiongHaiService.cs
create mode 100644 Reportapi/MyCode.Project.Services/IServices/IYuyuboService.cs
create mode 100644 Reportapi/MyCode.Project.Services/IServices/IZhuBinService.cs
delete mode 100644 Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs
create mode 100644 Reportapi/MyCode.Project.Services/Implementation/LiQiongHaiService.cs
create mode 100644 Reportapi/MyCode.Project.Services/Implementation/YuyuboService.cs
create mode 100644 Reportapi/MyCode.Project.Services/Implementation/ZhuBinService.cs
diff --git a/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs b/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs
new file mode 100644
index 0000000..2c63a24
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Model/JackOrders.cs
@@ -0,0 +1,234 @@
+using System;
+using System.Linq;
+using System.Text;
+using SqlSugar;
+
+namespace MyCode.Project.Domain.Model
+{
+ ///
+ ///
+ ///
+ [SugarTable("JackOrders")]
+ public partial class JackOrders
+ {
+ public JackOrders(){
+
+
+ }
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(IsPrimaryKey=true,ColumnName="id")]
+ public Guid Id {get;set;}
+
+ ///
+ /// Desc:销售单id(吉客云内码)
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="tradeId")]
+ public string TradeId {get;set;}
+
+ ///
+ /// Desc:平台优惠
+ /// Default:0
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="couponFee")]
+ public decimal? CouponFee {get;set;}
+
+ ///
+ /// Desc:实付金额
+ /// Default:0
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="realFee")]
+ public decimal? RealFee {get;set;}
+
+ ///
+ /// Desc:店铺编码
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopCode")]
+ public string ShopCode {get;set;}
+
+ ///
+ /// Desc:发货单单号
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="orderNo")]
+ public string OrderNo {get;set;}
+
+ ///
+ /// Desc:订单编号
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="tradeNo")]
+ public string TradeNo {get;set;}
+
+ ///
+ /// Desc:是否删除(0:否;1:是)
+ /// Default:0
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="isDelete")]
+ public int? IsDelete {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="mainPostid")]
+ public string MainPostid {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="companyName")]
+ public string CompanyName {get;set;}
+
+ ///
+ /// Desc:标记名称
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="flagNames")]
+ public string FlagNames {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopName")]
+ public string ShopName {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="warehouseName")]
+ public string WarehouseName {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="warehouseCode")]
+ public string WarehouseCode {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="logisticName")]
+ public string LogisticName {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="tradeFrom")]
+ public int? TradeFrom {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="warehouseId")]
+ public string WarehouseId {get;set;}
+
+ ///
+ /// Desc:店铺id
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopId")]
+ public long? ShopId {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopTypeCode")]
+ public string ShopTypeCode {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="apiType")]
+ public int? ApiType {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:DateTime.Now
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="createTime")]
+ public DateTime? CreateTime {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:DateTime.Now
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="updateTime")]
+ public DateTime? UpdateTime {get;set;}
+
+ ///
+ /// Desc:0=未处理 1=已合并 2=已推送
+ /// Default:0
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="status")]
+ public int? Status {get;set;}
+
+ ///
+ /// Desc:支付时间
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="payTime")]
+ public DateTime? PayTime {get;set;}
+
+ ///
+ /// Desc:发货时间
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="consignTime")]
+ public DateTime? ConsignTime {get;set;}
+
+ ///
+ /// Desc:销售单状态(1010:待审核;1020:审核中;1030:预售;1050:待复核;2000:备货等待;2010:备货等待等补货;2020:服务等待;2030:备货等待等生产;2040:采购等待;3010:虚拟发货;4110:待发货待递交;4111:待发货递交中;4112:待发货已递交;4113:待发货-递交失败;4121:待发货-取消中;4122:待发货已取消;4123:待发货取消失败;4130:待发货部分发货;4040:代销发货待递交;4041:代销发货已递交;5010:已取消;5020:已取消被合并;5030:已取消被拆分;6000:发货在途;9090:已完成)
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="tradeStatus")]
+ public int? TradeStatus {get;set;}
+
+ ///
+ /// Desc:订单类型 销售单类型(1:零售业务;2:代发货(来自分销商);3:预售订单;4:周期性订购;5:代销售(供货商发货);6:现款现货;7:售后发货;8:售后退货;9:批发业务(B2B);10:试销业务;11:错漏调整;12:仅退款;13:销售返利;14:大B2B业务;15物流买赔;16销售对账差异 91:自定义1;92:自定义2;93:自定义3...100:自定义10)
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? TradeType {get;set;}
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Domain/Model/PushKingDeeOrder.cs b/Reportapi/MyCode.Project.Domain/Model/PushKingDeeOrder.cs
new file mode 100644
index 0000000..a1ab7c5
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Model/PushKingDeeOrder.cs
@@ -0,0 +1,122 @@
+using System;
+using System.Linq;
+using System.Text;
+using SqlSugar;
+
+namespace MyCode.Project.Domain.Model
+{
+ ///
+ ///
+ ///
+ [SugarTable("PushKingDeeOrder")]
+ public partial class PushKingDeeOrder
+ {
+ public PushKingDeeOrder(){
+
+
+ }
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(IsPrimaryKey=true,ColumnName="id")]
+ public Guid Id {get;set;}
+
+ ///
+ /// Desc:店铺编码
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopCode")]
+ public string ShopCode {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopName")]
+ public string ShopName {get;set;}
+
+ ///
+ /// Desc:店铺id
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="shopId")]
+ public long? ShopId {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="warehouseName")]
+ public string WarehouseName {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="warehouseCode")]
+ public string WarehouseCode {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:DateTime.Now
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="createTime")]
+ public DateTime? CreateTime {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:DateTime.Now
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="updateTime")]
+ public DateTime? UpdateTime {get;set;}
+
+ ///
+ /// Desc:0=未处理 1=已合并 2=已推送
+ /// Default:0
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="status")]
+ public int? Status {get;set;}
+
+ ///
+ /// Desc:发货时间
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="consignTime")]
+ public DateTime? ConsignTime {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="warehouseId")]
+ public string WarehouseId {get;set;}
+
+ ///
+ /// Desc:订单类型 销售单类型(1:零售业务;2:代发货(来自分销商);3:预售订单;4:周期性订购;5:代销售(供货商发货);6:现款现货;7:售后发货;8:售后退货;9:批发业务(B2B);10:试销业务;11:错漏调整;12:仅退款;13:销售返利;14:大B2B业务;15物流买赔;16销售对账差异 91:自定义1;92:自定义2;93:自定义3...100:自定义10)
+ /// Default:
+ /// Nullable:True
+ ///
+ public int? TradeType {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(IsIdentity=true)]
+ public int Sheet {get;set;}
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Domain/Model/SysWorkprocess.cs b/Reportapi/MyCode.Project.Domain/Model/SysWorkprocess.cs
index 7428bcf..7074b4f 100644
--- a/Reportapi/MyCode.Project.Domain/Model/SysWorkprocess.cs
+++ b/Reportapi/MyCode.Project.Domain/Model/SysWorkprocess.cs
@@ -6,9 +6,9 @@ using SqlSugar;
namespace MyCode.Project.Domain.Model
{
///
- ///
+ ///工作调度
///
- [SugarTable("sys_workprocess")]
+ [SugarTable("SysWorkProcess")]
public partial class SysWorkprocess
{
public SysWorkprocess(){
@@ -16,100 +16,124 @@ namespace MyCode.Project.Domain.Model
}
///
- /// Desc:主键
+ /// Desc:ID
/// Default:
/// Nullable:False
///
- [SugarColumn(IsPrimaryKey=true,ColumnName="id")]
- public long Id {get;set;}
+ [SugarColumn(IsPrimaryKey=true)]
+ public Guid ID {get;set;}
///
- /// Desc:路径
+ /// Desc:对应的商家。
/// Default:
/// Nullable:False
///
- [SugarColumn(ColumnName="type_path")]
- public string TypePath {get;set;}
+ public Guid MerchantID {get;set;}
///
- /// Desc:最后修改时间
+ /// Desc:执行类型。1=类对象,2=存储过程
/// Default:
/// Nullable:False
///
- [SugarColumn(ColumnName="edit_time")]
- public DateTime EditTime {get;set;}
-
- ///
- /// Desc:数字越小,优先级越高
- /// Default:0
- /// Nullable:False
- ///
- [SugarColumn(ColumnName="priority")]
- public int Priority {get;set;}
-
- ///
- /// Desc:类型1:函数
- /// Default:
- /// Nullable:False
- ///
- [SugarColumn(ColumnName="func_type")]
public int FuncType {get;set;}
///
- /// Desc:异常信息
- /// Default:NULL
- /// Nullable:True
- ///
- [SugarColumn(ColumnName="exception_info")]
- public string ExceptionInfo {get;set;}
-
- ///
- /// Desc:备注信息
- /// Default:NULL
- /// Nullable:True
- ///
- [SugarColumn(ColumnName="remark")]
- public string Remark {get;set;}
-
- ///
- /// Desc:执行情况,0:等待执行 1:执行中 9:执行成功 2:执行失败
+ /// Desc:执行的类
/// Default:
- /// Nullable:False
+ /// Nullable:True
///
- [SugarColumn(ColumnName="status")]
- public int Status {get;set;}
+ public string FuncClass {get;set;}
+
+ ///
+ /// Desc:执行的模块
+ /// Default:
+ /// Nullable:True
+ ///
+ public string FuncMethod {get;set;}
///
/// Desc:参数信息
- /// Default:NULL
+ /// Default:
/// Nullable:True
///
- [SugarColumn(ColumnName="parameter_info")]
- public string ParameterInfo {get;set;}
+ public string ParamInfo {get;set;}
///
- /// Desc:方法名
+ /// Desc:执行时间
+ /// Default:
+ /// Nullable:True
+ ///
+ public DateTime? ExecuteTime {get;set;}
+
+ ///
+ /// Desc:重试次数
/// Default:
/// Nullable:False
///
- [SugarColumn(ColumnName="method_name")]
- public string MethodName {get;set;}
+ public int RetryCount {get;set;}
///
- /// Desc:公司ID
+ /// Desc:异常信息
+ /// Default:
+ /// Nullable:True
+ ///
+ public string ExceptionInfo {get;set;}
+
+ ///
+ /// Desc:执行状态。0=等待,1=执行,2=异常暂停,3=执行完成
/// Default:
/// Nullable:False
///
- [SugarColumn(ColumnName="company_id")]
- public long CompanyId {get;set;}
+ public int FuncStatus {get;set;}
+
+ ///
+ /// Desc:创建人
+ /// Default:
+ /// Nullable:False
+ ///
+ public string Creater {get;set;}
///
/// Desc:创建时间
- /// Default:NULL
+ /// Default:
+ /// Nullable:False
+ ///
+ public DateTime CreateTime {get;set;}
+
+ ///
+ /// Desc:编辑人
+ /// Default:
+ /// Nullable:False
+ ///
+ public string Editor {get;set;}
+
+ ///
+ /// Desc:编辑时间
+ /// Default:
+ /// Nullable:False
+ ///
+ public DateTime EditTime {get;set;}
+
+ ///
+ /// Desc:备注
+ /// Default:
/// Nullable:True
///
- [SugarColumn(ColumnName="create_time")]
- public DateTime? CreateTime {get;set;}
+ public string Remark {get;set;}
+
+ ///
+ /// Desc:数字越小,优先级越高
+ /// Default:5
+ /// Nullable:True
+ ///
+ public int? Priority {get;set;}
+
+ ///
+ /// Desc:程序执行结果返回内容
+ /// Default:
+ /// Nullable:True
+ ///
+ public string Result {get;set;}
}
}
diff --git a/Reportapi/MyCode.Project.Domain/Model/YTKJTShopParameter.cs b/Reportapi/MyCode.Project.Domain/Model/YTKJTShopParameter.cs
new file mode 100644
index 0000000..856449d
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Model/YTKJTShopParameter.cs
@@ -0,0 +1,209 @@
+using System;
+using System.Linq;
+using System.Text;
+using SqlSugar;
+
+namespace MyCode.Project.Domain.Model
+{
+ ///
+ ///
+ ///
+ [SugarTable("YTKJ_t_ShopParameter")]
+ public partial class YTKJTShopParameter
+ {
+ public YTKJTShopParameter(){
+
+
+ }
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(IsPrimaryKey=true)]
+ public long FID {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:False
+ ///
+ public string FBILLNO {get;set;}
+
+ ///
+ /// Desc:审核状态 C=已审核
+ /// Default:
+ /// Nullable:False
+ ///
+ public string FDOCUMENTSTATUS {get;set;}
+
+ ///
+ /// Desc:门店编码
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_SHOPCODE")]
+ public string FSHOPCODE {get;set;}
+
+ ///
+ /// Desc:门店名称
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_SHOPNAME")]
+ public string FSHOPNAME {get;set;}
+
+ ///
+ /// Desc:
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_YTKJ_TEXT2")]
+ public string FYTKJTEXT2 {get;set;}
+
+ ///
+ /// Desc:是否同步金蝶
+ /// Default:1
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_SYNCHRONIZEKINGDEE")]
+ public string FSYNCHRONIZEKINGDEE {get;set;}
+
+ ///
+ /// Desc:是否同步WMS
+ /// Default:1
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_SYNCHRONIZEWMS")]
+ public string FSYNCHRONIZEWMS {get;set;}
+
+ ///
+ /// Desc:销售客户
+ /// Default:0
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_SALESCUSTOMERS")]
+ public int FSALESCUSTOMERS {get;set;}
+
+ ///
+ /// Desc:发货仓库ID
+ /// Default:0
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_WAREHOUSE")]
+ public int FWAREHOUSE {get;set;}
+
+ ///
+ /// Desc:仓库货主
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_CANGKUHUOZHU")]
+ public string FCANGKUHUOZHU {get;set;}
+
+ ///
+ /// Desc:公司ID
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_COMPANYID")]
+ public string FCOMPANYID {get;set;}
+
+ ///
+ /// Desc:发货大仓
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_DACANG")]
+ public string FDACANG {get;set;}
+
+ ///
+ /// Desc:税率
+ /// Default:0
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_TAXRATE")]
+ public decimal FTAXRATE {get;set;}
+
+ ///
+ /// Desc:创建日期
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="F_YTKJ_CREATEDATE")]
+ public DateTime? FYTKJCREATEDATE {get;set;}
+
+ ///
+ /// Desc:修改日期
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="F_YTKJ_MODIFYDATE")]
+ public DateTime? FYTKJMODIFYDATE {get;set;}
+
+ ///
+ /// Desc:审核日期
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="F_AUDITDATE")]
+ public DateTime? FAUDITDATE {get;set;}
+
+ ///
+ /// Desc:创建人
+ /// Default:0
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_YTKJ_CREATORID")]
+ public int FYTKJCREATORID {get;set;}
+
+ ///
+ /// Desc:修改人
+ /// Default:0
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_YTKJ_MODIFIERID")]
+ public int FYTKJMODIFIERID {get;set;}
+
+ ///
+ /// Desc:审核人
+ /// Default:0
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_AUDITOR")]
+ public int FAUDITOR {get;set;}
+
+ ///
+ /// Desc:仓库编码
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_WAREHOUSE_CODE")]
+ public string FWAREHOUSECODE {get;set;}
+
+ ///
+ /// Desc:仓库名称
+ /// Default:
+ /// Nullable:False
+ ///
+ [SugarColumn(ColumnName="F_WAREHOUSE_NAME")]
+ public string FWAREHOUSENAME {get;set;}
+
+ ///
+ /// Desc:销售员ID
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="F_SALER")]
+ public long? FSALER {get;set;}
+
+ ///
+ /// Desc:销售组织ID
+ /// Default:
+ /// Nullable:True
+ ///
+ [SugarColumn(ColumnName="F_SALE_ORGID")]
+ public int? FSALEORGID {get;set;}
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj
index 619f0df..72d2153 100644
--- a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj
+++ b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj
@@ -77,14 +77,18 @@
-
+
+
+
+
+
-
+
diff --git a/Reportapi/MyCode.Project.Domain/Repositories/IJackOrdersRepository.cs b/Reportapi/MyCode.Project.Domain/Repositories/IJackOrdersRepository.cs
new file mode 100644
index 0000000..4dad171
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Repositories/IJackOrdersRepository.cs
@@ -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 IJackOrdersRepository : IRepository
+ {
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Domain/Repositories/IPushKingDeeOrderRepository.cs b/Reportapi/MyCode.Project.Domain/Repositories/IPushKingDeeOrderRepository.cs
new file mode 100644
index 0000000..b1933ee
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Repositories/IPushKingDeeOrderRepository.cs
@@ -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 IPushKingDeeOrderRepository : IRepository
+ {
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Domain/Repositories/IYTKJTShopParameterRepository.cs b/Reportapi/MyCode.Project.Domain/Repositories/IYTKJTShopParameterRepository.cs
new file mode 100644
index 0000000..15106e6
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Repositories/IYTKJTShopParameterRepository.cs
@@ -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 IYTKJTShopParameterRepository : IRepository
+ {
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.GenerateCode/App.config b/Reportapi/MyCode.Project.GenerateCode/App.config
index fdf7d2a..35fc290 100644
--- a/Reportapi/MyCode.Project.GenerateCode/App.config
+++ b/Reportapi/MyCode.Project.GenerateCode/App.config
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/Reportapi/MyCode.Project.Repositories/JackOrdersRepository.cs b/Reportapi/MyCode.Project.Repositories/JackOrdersRepository.cs
new file mode 100644
index 0000000..621a990
--- /dev/null
+++ b/Reportapi/MyCode.Project.Repositories/JackOrdersRepository.cs
@@ -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 JackOrdersRepository: Repository, IJackOrdersRepository
+ {
+ public JackOrdersRepository(MyCodeSqlSugarClient 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 a5f09b3..19a8647 100644
--- a/Reportapi/MyCode.Project.Repositories/MyCode.Project.Repositories.csproj
+++ b/Reportapi/MyCode.Project.Repositories/MyCode.Project.Repositories.csproj
@@ -86,11 +86,13 @@
+
+
-
+
diff --git a/Reportapi/MyCode.Project.Repositories/PushKingDeeOrderRepository.cs b/Reportapi/MyCode.Project.Repositories/PushKingDeeOrderRepository.cs
new file mode 100644
index 0000000..ae45f55
--- /dev/null
+++ b/Reportapi/MyCode.Project.Repositories/PushKingDeeOrderRepository.cs
@@ -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 PushKingDeeOrderRepository: Repository, IPushKingDeeOrderRepository
+ {
+ public PushKingDeeOrderRepository(MyCodeSqlSugarClient context) : base(context)
+ { }
+
+
+
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/Reportapi/MyCode.Project.Repositories/YTKJTShopParameterRepository.cs b/Reportapi/MyCode.Project.Repositories/YTKJTShopParameterRepository.cs
new file mode 100644
index 0000000..146b90b
--- /dev/null
+++ b/Reportapi/MyCode.Project.Repositories/YTKJTShopParameterRepository.cs
@@ -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 YTKJTShopParameterRepository: Repository, IYTKJTShopParameterRepository
+ {
+ public YTKJTShopParameterRepository(MyCodeSqlSugarClient context) : base(context)
+ { }
+
+
+
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/Reportapi/MyCode.Project.ScheduleTask/Jobs/EveryJob.cs b/Reportapi/MyCode.Project.ScheduleTask/Jobs/EveryJob.cs
index 5fcd2d4..cd3e6da 100644
--- a/Reportapi/MyCode.Project.ScheduleTask/Jobs/EveryJob.cs
+++ b/Reportapi/MyCode.Project.ScheduleTask/Jobs/EveryJob.cs
@@ -12,17 +12,17 @@ namespace MyCode.Project.ScheduleTask.Jobs
public class EveryJob : IJob
{
- private readonly IWorkProcessService _workProcessService;
+ //private readonly IWorkProcessService _workProcessService;
- public EveryJob(IWorkProcessService workProcessService)
+ public EveryJob( )
{
- _workProcessService = workProcessService;
+
}
public void Execute(IJobExecutionContext context)
{
- _workProcessService.Execute();
+ //_workProcessService.Execute();
}
}
}
diff --git a/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs b/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs
deleted file mode 100644
index 42baf83..0000000
--- a/Reportapi/MyCode.Project.Services/IServices/IJackYunService.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using MyCode.Project.Infrastructure.JackYun;
-
-namespace MyCode.Project.Services
-{
- public interface IJackYunService
- {
- JackyunResponse Call(string method, string version, BaseRequestBizData bizData);
-
- }
-}
diff --git a/Reportapi/MyCode.Project.Services/IServices/ILiQiongHaiService.cs b/Reportapi/MyCode.Project.Services/IServices/ILiQiongHaiService.cs
new file mode 100644
index 0000000..e2b7613
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/IServices/ILiQiongHaiService.cs
@@ -0,0 +1,10 @@
+using MyCode.Project.Infrastructure.JackYun;
+
+namespace MyCode.Project.Services
+{
+ public interface ILiQiongHaiService
+ {
+
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/IServices/IYuyuboService.cs b/Reportapi/MyCode.Project.Services/IServices/IYuyuboService.cs
new file mode 100644
index 0000000..5f68dad
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/IServices/IYuyuboService.cs
@@ -0,0 +1,10 @@
+using MyCode.Project.Infrastructure.JackYun;
+
+namespace MyCode.Project.Services
+{
+ public interface IYuyuboService
+ {
+
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/IServices/IZhuBinService.cs b/Reportapi/MyCode.Project.Services/IServices/IZhuBinService.cs
new file mode 100644
index 0000000..fa692d2
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/IServices/IZhuBinService.cs
@@ -0,0 +1,10 @@
+using MyCode.Project.Infrastructure.JackYun;
+
+namespace MyCode.Project.Services
+{
+ public interface IZhuBinService
+ {
+
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs b/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs
deleted file mode 100644
index e0544e9..0000000
--- a/Reportapi/MyCode.Project.Services/Implementation/JackYunService.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using MyCode.Project.Domain.Message.Request.JackYun;
-using MyCode.Project.Infrastructure.Common;
-using MyCode.Project.Infrastructure.JackYun;
-using System;
-
-namespace MyCode.Project.Services.Implementation
-{
- public class JackYunService : ServiceBase //, IJackYunService
- {
- ///
- /// 请求开放平台服务
- ///
- /// 开放接口方法名
- /// 开放接口版本号(null表示默认)
- /// 请求业务数据
- /// OpenResponse返回对象
- public JackyunResponse Call(string method, string version, BaseRequestBizData bizData)
- {
- //接口返回值
- JackyunResponse response = null;
- //返回值字符串
- string strResponse = null;
- try
- {
- //请求吉客云开放接口。
- strResponse = JackyunOpenHttpUtils.Post(method, version, bizData);
- }
- catch (Exception ex)
- {
- response = new JackyunResponse();
- response.onFail(ex.Message, "CLIENT_EXCEPTION");
- return response;
- }
-
- return JsonHelper.ToObject(strResponse);
- }
-
-
- #region 订单查询
-
- ///
- /// 订单查询
- ///
-
- public void testTradeFullInfoGet()
- {
- Byte total = 0;
- OrderTradeFullInfoGetRequestBizData requestBizData = new OrderTradeFullInfoGetRequestBizData();
- string value = "2019-06-05 12:00:00";
- requestBizData.startModified = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- string value1 = "2019-09-05 12:00:00";
- requestBizData.endModified = DateTime.ParseExact(value1, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.tradeNo = "JY201906050001,JY201906050002";
- requestBizData.hasTotal = total;
- requestBizData.pageSize = 50;
- requestBizData.pageIndex = 0;
- requestBizData.fields = "tradeNo,orderNo";
- requestBizData.startCreated = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.endCreated = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.startAuditTime = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.endAuditTime = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.startConsignTime = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.endConsignTime = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- requestBizData.tradeStatus = Convert.ToByte(1010);
- requestBizData.tradeType = 1;
- requestBizData.sourceTradeNos = "10,026,635,314";
- requestBizData.shopIds = new long[] { 378761130654261100, 378761130654261100 };
-
- //JackyunResponse response = Call(EnumAttribute.GetAttribute(ApiEnum.TRADEFULLINFOGET).Value, "", requestBizData);
- //Console.Out.WriteLine("订单查询接口响应信息=" + JsonUtils.ToJson(response));
- }
-
- #endregion
- }
-}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/LiQiongHaiService.cs b/Reportapi/MyCode.Project.Services/Implementation/LiQiongHaiService.cs
new file mode 100644
index 0000000..d1d1e1f
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/Implementation/LiQiongHaiService.cs
@@ -0,0 +1,21 @@
+using MyCode.Project.Domain.Message.Request.JackYun;
+using MyCode.Project.Domain.Repositories;
+using MyCode.Project.Infrastructure.Common;
+using MyCode.Project.Infrastructure.JackYun;
+using System;
+
+namespace MyCode.Project.Services.Implementation
+{
+ public class LiQiongHaiService : ServiceBase //, ILiQiongHaiService
+ {
+
+ private IPushKingDeeOrderRepository _pushKingDeeOrderRepository;
+
+ public LiQiongHaiService(IPushKingDeeOrderRepository pushKingDeeOrderRepository)
+ {
+ _pushKingDeeOrderRepository = pushKingDeeOrderRepository;
+ }
+
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/WorkProcessService.cs b/Reportapi/MyCode.Project.Services/Implementation/WorkProcessService.cs
index 4f74734..36fbecc 100644
--- a/Reportapi/MyCode.Project.Services/Implementation/WorkProcessService.cs
+++ b/Reportapi/MyCode.Project.Services/Implementation/WorkProcessService.cs
@@ -7,6 +7,7 @@ using MyCode.Project.Infrastructure.Enumeration;
using MyCode.Project.Infrastructure.Exceptions;
using MyCode.Project.Infrastructure.Extensions;
using MyCode.Project.Infrastructure.UnityExtensions;
+using MyCode.Project.Repositories;
using MyCode.Project.Repositories.Common;
using System;
using System.Collections.Generic;
@@ -20,118 +21,169 @@ namespace MyCode.Project.Services.Implementation
{
public class WorkProcessService : ServiceBase, IWorkProcessService
{
- #region 初始化
- private readonly ISysWorkprocessRepository _sysWorkprocessRepository;
- private readonly ISysWorkprocessHistoryRepository _sysWorkprocessHistoryRepository;
+ private ISysWorkProcessRepository _SysWorkProcessRepository;
- public WorkProcessService(ISysWorkprocessRepository sysWorkprocessRepository,
- ISysWorkprocessHistoryRepository sysWorkprocessHistoryRepository)
+ private static object locker = new object(); //创建锁
+ public WorkProcessService(ISysWorkProcessRepository SysWorkProcessRepository)
{
- _sysWorkprocessRepository = sysWorkprocessRepository;
- _sysWorkprocessHistoryRepository = sysWorkprocessHistoryRepository;
+ _SysWorkProcessRepository = SysWorkProcessRepository;
}
+
+
+ #region Add(添加调度)
+ ///
+ /// 添加调度
+ ///
+ /// 执行类
+ /// 商家ID
+ /// 方法名
+ /// 备注
+ /// 参数信息
+ /// 执行类型
+ public void Add(Guid merchantId, string methodName, string remark = "", object entity = null, int priority = 5, FuncType funcType = FuncType.Method) where T : class
+ {
+ Add(merchantId, typeof(T), methodName, remark, entity, funcType, priority);
+ }
+
+ ///
+ /// 添加调度
+ ///
+ /// 商家ID
+ /// 执行类
+ /// 方法名
+ /// 备注
+ /// 参数信息
+ /// 执行类型
+ public void Add(Guid merchantId, Type type, string methodName, string remark = "", object entity = null, FuncType funcType = FuncType.Method, int priority = 5)
+ {
+ string typePath = string.Format("{0}, {1}", type.FullName, type.Assembly.GetName().Name);
+ string paramInfo = entity == null
+ ? ""
+ : entity is string || entity is Guid || entity is int || entity is long || entity is decimal ||
+ entity is float || entity is double
+ ? entity.SafeString()
+ : JsonHelper.ToJson(entity);
+ Add(merchantId, typePath, methodName, remark, paramInfo, funcType, priority);
+ }
+
+ ///
+ /// 添加调度任务
+ ///
+ /// 商家ID
+ /// 类型路径,如:Lxm.IServices.IWorkProcessService, Lxm.Services
+ /// 方法名
+ /// 备注
+ /// 参数信息
+ /// 执行类型
+ public void Add(Guid merchantId, string typePath, string methodName, string remark = "", string paramInfo = "",
+ FuncType funcType = FuncType.Method, int priority = 5)
+ {
+ if (this._SysWorkProcessRepository.Exists(funcType, merchantId, typePath, methodName, paramInfo) && methodName != "RunWechatVSKingDee")
+ {
+ return;
+ }
+ SysWorkProcess entity = new SysWorkProcess();
+ entity.ID = Guid.NewGuid();
+ entity.MerchantID = merchantId;
+ entity.FuncType = funcType.Value();
+ entity.FuncClass = typePath;
+ entity.FuncMethod = methodName;
+ entity.ParamInfo = paramInfo;
+ entity.FuncStatus = FuncStatus.Waiting.Value();
+ entity.Remark = remark;
+ entity.RetryCount = 0;
+ entity.Creater = "系统调度";
+ entity.CreateTime = DateTime.Now;
+ entity.Editor = "系统调度";
+ entity.EditTime = DateTime.Now;
+ entity.Priority = priority;
+ this._SysWorkProcessRepository.Add(entity);
+ }
+
#endregion
+
#region SelectInitWorkProcess(返回前几十条数据)
- public List SelectInitWorkProcess(int top)
+ public List SelectInitWorkProcess(int top)
{
- var result = _sysWorkprocessRepository.Queryable()
- .Where(p => p.Status == (int)WorkProcessStatus.Init)
+
+ return _SysWorkProcessRepository.Queryable()
+ .Where(p => p.FuncStatus == (int)WorkProcessStatus.Waiting && (p.Priority == 1 || p.Priority == null))
.Take(top)
.OrderBy(p => p.Priority)
- .OrderBy(p => p.EditTime).ToList();
-
- return result;
+ .OrderBy(p => p.CreateTime).ToList();
}
#endregion
#region Add(批量添加)
- public void Add(List workProcess)
+ public void Add(List workProcess)
{
- _sysWorkprocessRepository.Add(workProcess);
+ _SysWorkProcessRepository.Add(workProcess);
}
#endregion
#region RestratStopProcess(重新启用所有暂停了的调度,这里不需要事务,因为修改失败也不影响)
public void RestratStopProcess()
{
- var list = _sysWorkprocessRepository.SelectList(p => p.Status == (int)WorkProcessStatus.Stop);
+ var list = _SysWorkProcessRepository.SelectList(p => p.FuncStatus == (int)WorkProcessStatus.Pause);
list.ForEach(x => {
- x.Status = (int)WorkProcessStatus.Running;
+ x.FuncStatus = (int)WorkProcessStatus.Running;
x.EditTime = DateTime.Now;
- _sysWorkprocessRepository.Update(x);
-
});
+ _SysWorkProcessRepository.Update(list);
}
#endregion
#region RestartStopProcess(重新启用某个暂停了的调度)
[TransactionCallHandler]
- public void RestartStopProcess(long workprocessId)
+ public void RestartStopProcess(Guid workprocessId)
{
+ var workprocess = _SysWorkProcessRepository.SelectFirst(p => p.ID == workprocessId);
- var workprocess = _sysWorkprocessRepository.SelectFirst(p => p.Id == workprocessId);
+ if (workprocess.FuncStatus != (int)WorkProcessStatus.Pause) { throw new BaseException("当前进程状态不是停止"); }
- if (workprocess.Status != (int)WorkProcessStatus.Stop) { throw new BaseException("当前进程状态不是停止"); }
-
- workprocess.Status = (int)WorkProcessStatus.Init;
+ workprocess.FuncStatus = (int)WorkProcessStatus.Running;
workprocess.EditTime = DateTime.Now;
- _sysWorkprocessRepository.Update(workprocess);
+ _SysWorkProcessRepository.Update(workprocess);
}
#endregion
- #region ProcessHandleExpire(进行执行超时)
- ///
- /// 进程执行超时
- ///
- public void ProcessHandleExpire()
- {
- var time = DateTime.Now.AddMinutes(-10);
-
- var count = _sysWorkprocessRepository.Count(p => p.Status == (int)WorkProcessStatus.Running && p.EditTime <= time);
-
- if (count > 0) { DingDingHelper.SendMsg($"有超时的进程任务产生,条数:{count}"); }
- }
- #endregion
-
#region 清空历史数据
- [TransactionCallHandler]
public void ClearHistoryTask()
{
var historyDate = DateTime.Now.AddDays(-7);
- var historyData = _sysWorkprocessRepository.SelectList(p => p.CreateTime < historyDate);
-
- if (historyData == null || historyData.Count == 0) { return; }
-
- _sysWorkprocessRepository.Add(historyData, "sys_workprocess_history");
-
- _sysWorkprocessRepository.DeleteByIds(historyData.Select(p => p.Id).ToArray());
+ _SysWorkProcessRepository.Delete(p => p.FuncStatus == (int)WorkProcessStatus.Complete && p.EditTime < historyDate);
}
#endregion
#region ExecuteSingle(执行单个)
- public void ExecuteSingle(SysWorkprocess process)
+ public void ExecuteSingle(SysWorkProcess process)
{
- var type = UnityHelper.GetUnityContainer().Resolve(Type.GetType(process.TypePath));
+ var type = UnityHelper.GetUnityContainer().Resolve(Type.GetType(process.FuncClass));
- MethodInfo method = type.GetType().GetMethod(process.MethodName);
+ MethodInfo method = type.GetType().GetMethod(process.FuncMethod);
+ object result = new object();
- if (!string.IsNullOrEmpty(process.ParameterInfo))
+ if (!string.IsNullOrEmpty(process.ParamInfo))
{
- method.Invoke(type, new object[] { process.ParameterInfo });
+ result = method.Invoke(type, new object[] { process.ParamInfo });
}
else
{
- method.Invoke(type, new object[] { });
+ result = method.Invoke(type, new object[] { });
}
-
- process.Status = (int)WorkProcessStatus.Finished;
+ if (result == null)
+ result = "";
+ process.FuncStatus = (int)WorkProcessStatus.Complete;
+ process.ExecuteTime = DateTime.Now;
+ process.ExceptionInfo = string.Empty;
process.EditTime = DateTime.Now;
- _sysWorkprocessRepository.Update(process);
+ process.Result = JsonHelper.ToJson(result);
+ _SysWorkProcessRepository.Update(process);
}
#endregion
@@ -140,18 +192,94 @@ namespace MyCode.Project.Services.Implementation
public void Execute()
{
+ lock (locker)
+ {
+ var client = UnityHelper.GetService();
+ var list = SelectInitWorkProcess(5);
+
+ //先将这10个任务改成运行中
+ if (list != null && list.Count > 0)
+ {
+ var updateList = list.Select(p => new SysWorkProcess { ID = p.ID, FuncStatus = (int)WorkProcessStatus.Running });
+
+ _SysWorkProcessRepository.Update(updateList.ToList(), it => new { it.FuncStatus });
+ }
+
+ foreach (var process in list)
+ {
+ //这里开启事务,同时才开启
+ client.Ado.BeginTran();
+
+ #region 执行一个任务
+ try
+ {
+ ExecuteSingle(process);
+
+ client.Ado.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ client.Ado.RollbackTran();
+
+ while (ex.InnerException != null)
+ {
+ ex = ex.InnerException;
+ }
+
+ process.FuncStatus = (int)WorkProcessStatus.ExceptionStop;
+ process.EditTime = DateTime.Now;
+ process.ExecuteTime = DateTime.Now;
+ if (ex is BaseException)
+ {
+ process.ExceptionInfo = ex.Message;
+ }
+ else
+ {
+ process.ExceptionInfo = ex.ToString();
+ }
+
+ _SysWorkProcessRepository.Update(process);
+ }
+ #endregion
+ }
+ }
+ }
+ #endregion
+
+ #region SelectOtherInitWorkProcess(返回优先级大于2的前几十条数据)
+ ///
+ /// 获取优先级3,4,5的调度
+ ///
+ ///
+ ///
+ public List SelectOtherInitWorkProcess(int top)
+ {
+
+ return _SysWorkProcessRepository.Queryable()
+ .Where(p => p.FuncStatus == (int)WorkProcessStatus.Waiting && p.Priority > 2 && p.Priority <= 5)
+ .Take(top)
+ .OrderBy(p => p.Priority)
+ .OrderBy(p => p.CreateTime).ToList();
+ }
+ #endregion
+
+ #region ExecuteOther(调度执行优先级比较低的任务)
+ ///
+ /// 调度执行优先级比较低的任务
+ ///
+ public void ExecuteOther()
+ {
var client = UnityHelper.GetService();
- var list = SelectInitWorkProcess(10);
+ var list = SelectOtherInitWorkProcess(20);
- //先将这20个任务改成运行中
+ //先将这10个任务改成运行中
if (list != null && list.Count > 0)
{
- DateTime now = DateTime.Now;
- var updateList = list.Select(p => new SysWorkprocess { Id = p.Id, Status = (int)WorkProcessStatus.Running, EditTime = now });
+ var updateList = list.Select(p => new SysWorkProcess { ID = p.ID, FuncStatus = (int)WorkProcessStatus.Running });
- _sysWorkprocessRepository.Update(updateList.ToList(), it => new { it.Status, it.EditTime });
+ _SysWorkProcessRepository.Update(updateList.ToList(), it => new { it.FuncStatus });
}
foreach (var process in list)
@@ -175,8 +303,9 @@ namespace MyCode.Project.Services.Implementation
ex = ex.InnerException;
}
- process.Status = (int)WorkProcessStatus.Stop;
+ process.FuncStatus = (int)WorkProcessStatus.ExceptionStop;
process.EditTime = DateTime.Now;
+ process.ExecuteTime = DateTime.Now;
if (ex is BaseException)
{
process.ExceptionInfo = ex.Message;
@@ -186,124 +315,181 @@ namespace MyCode.Project.Services.Implementation
process.ExceptionInfo = ex.ToString();
}
- _sysWorkprocessRepository.Update(process);
-
- DingDingHelper.SendMsg(process.ExceptionInfo);
- }
- finally
- {
- client.Ado.Context.Queues.Clear();
+ _SysWorkProcessRepository.Update(process);
}
#endregion
+ }
+ }
+ #endregion
+ #region SelectPriority2InitWorkProcess(返回优先级等于2的前几十条数据)
+ ///
+ /// 返回优先级等于2的前几十条数据
+ ///
+ ///
+ ///
+ public List SelectPriority2InitWorkProcess(int top)
+ {
+
+ return _SysWorkProcessRepository.Queryable()
+ .Where(p => p.FuncStatus == (int)WorkProcessStatus.Waiting && p.Priority == 2)
+ .Take(top)
+ .OrderBy(p => p.Priority)
+ .OrderBy(p => p.CreateTime).ToList();
+ }
+ #endregion
+
+ #region ExecutePriority2Work(调度执行优先级等于2的任务)
+ ///
+ /// 调度执行优先级等于2的任务
+ ///
+ public void ExecutePriority2Work()
+ {
+ var client = UnityHelper.GetService();
+
+ var list = SelectPriority2InitWorkProcess(10);
+
+ //先将这10个任务改成运行中
+ if (list != null && list.Count > 0)
+ {
+ var updateList = list.Select(p => new SysWorkProcess { ID = p.ID, FuncStatus = (int)WorkProcessStatus.Running });
+
+ _SysWorkProcessRepository.Update(updateList.ToList(), it => new { it.FuncStatus });
}
- }
- #endregion
-
- #region Add(添加调度)
-
- ///
- /// 添加调度
- ///
- /// 执行类
- /// 商家ID
- /// 方法名
- /// 备注
- /// 参数信息
- /// 执行类型
- public void Add(string methodName,long companyId, object entity = null, string remark = "", FuncType funcType = FuncType.Function, Priority priority = Priority.Low)
- {
- Add(typeof(T), companyId,methodName, remark, entity, funcType, priority);
- }
- #endregion
-
- #region Add(添加调度)
- ///
- /// 添加调度
- ///
- /// 商家ID
- /// 执行类
- /// 方法名
- /// 备注
- /// 参数信息
- /// 执行类型
- public void Add(Type type,long companyId, string methodName, string remark = "", object entity = null, FuncType funcType = FuncType.Function, Priority priority = Priority.Low)
- {
- string typePath = string.Format("{0}, {1}", type.FullName, type.Assembly.GetName().Name);
- string paramInfo = entity == null
- ? ""
- : entity is string || entity is Guid || entity is int || entity is long || entity is decimal ||
- entity is float || entity is double
- ? entity.ToString()
- : entity.ToJson();
- Add(typePath,companyId, methodName, remark, paramInfo, funcType, priority);
- }
- #endregion
-
- #region AddQueue(添加进程调度)
- public void AddQueue(string methodName, long companyId,object entity = null,FuncType funcType = FuncType.Function, Priority priority = Priority.Low)
- {
- var type = typeof(T);
-
- string typePath = string.Format("{0}, {1}", type.FullName, type.Assembly.GetName().Name);
-
- string paramInfo = entity == null
- ? ""
- : entity is string || entity is Guid || entity is int || entity is long || entity is decimal ||
- entity is float || entity is double
- ? entity.ToString()
- : entity.ToJson();
-
- var workProcess = new SysWorkprocess()
+ foreach (var process in list)
{
- Id = IdHelper.GetNewId(),
- FuncType = (byte)funcType,
- TypePath = typePath,
- MethodName = methodName,
- ParameterInfo = paramInfo,
- Status = (int)WorkProcessStatus.Init,
- EditTime = DateTime.Now,
- Priority = (byte)priority,
- CreateTime = DateTime.Now,
- CompanyId = companyId
-
- };
+ //这里开启事务,同时才开启
+ client.Ado.BeginTran();
- _sysWorkprocessRepository.AddQueue(workProcess);
+ #region 执行一个任务
+ try
+ {
+ ExecuteSingle(process);
+
+ client.Ado.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ client.Ado.RollbackTran();
+
+ while (ex.InnerException != null)
+ {
+ ex = ex.InnerException;
+ }
+
+ process.FuncStatus = (int)WorkProcessStatus.ExceptionStop;
+ process.EditTime = DateTime.Now;
+ process.ExecuteTime = DateTime.Now;
+ if (ex is BaseException)
+ {
+ process.ExceptionInfo = ex.Message;
+ }
+ else
+ {
+ process.ExceptionInfo = ex.ToString();
+ }
+
+ _SysWorkProcessRepository.Update(process);
+ }
+ #endregion
+ //Thread.Sleep(300);
+
+
+ }
}
#endregion
- #region Add(添加调度)
+ #region SelectSmsInitWorkProcess(获取优先级6的短信调度)
///
- /// 添加调度任务
+ /// 获取优先级6的短信调度
///
- /// 商家ID
- /// 类型路径,如:Lxm.IServices.IWorkProcessService, Lxm.Services
- /// 方法名
- /// 备注
- /// 参数信息
- /// 执行类型
- public void Add(string typePath,long companyId, string methodName, string remark = "", string paramInfo = "",
- FuncType funcType = FuncType.Function,
- Priority priority = Priority.Low)
+ ///
+ ///
+ public List SelectPriority6WorkProcess(int top)
{
+ DateTime days = DateTime.Now.Date;
+ return _SysWorkProcessRepository.Queryable()
+ .Where(p => p.FuncStatus == (int)WorkProcessStatus.Waiting && p.Priority == 6)
+ .Take(top)
+ .OrderBy(p => p.Priority)
+ .OrderBy(p => p.CreateTime).ToList();
+ }
+ #endregion
- var entity = new SysWorkprocess()
+ #region ExecutePriority6(调度执行优先级=6的任务)
+ ///
+ /// 调度执行优先级=6的任务
+ ///
+ public void ExecutePriority6()
+ {
+ var client = UnityHelper.GetService();
+
+ var list = SelectPriority6WorkProcess(20);
+
+ //先将这10个任务改成运行中
+ if (list != null && list.Count > 0)
{
- Id = IdHelper.GetNewId(),
- FuncType = (byte)funcType,
- TypePath = typePath,
- MethodName = methodName,
- ParameterInfo = paramInfo,
- Status = (int)WorkProcessStatus.Init,
- Remark = remark,
- EditTime = DateTime.Now,
- Priority = (byte)priority,
- CreateTime = DateTime.Now,
- CompanyId = companyId
- };
- _sysWorkprocessRepository.Add(entity);
+ var updateList = list.Select(p => new SysWorkProcess { ID = p.ID, FuncStatus = (int)WorkProcessStatus.Running });
+
+ _SysWorkProcessRepository.Update(updateList.ToList(), it => new { it.FuncStatus });
+ }
+
+ foreach (var process in list)
+ {
+ //这里开启事务,同时才开启
+ client.Ado.BeginTran();
+
+ #region 执行一个任务
+ try
+ {
+ ExecuteSingle(process);
+
+ client.Ado.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ client.Ado.RollbackTran();
+
+ while (ex.InnerException != null)
+ {
+ ex = ex.InnerException;
+ }
+
+ process.FuncStatus = (int)WorkProcessStatus.ExceptionStop;
+ process.EditTime = DateTime.Now;
+ process.ExecuteTime = DateTime.Now;
+ if (ex is BaseException)
+ {
+ process.ExceptionInfo = ex.Message;
+ }
+ else
+ {
+ process.ExceptionInfo = ex.ToString();
+ }
+
+ _SysWorkProcessRepository.Update(process);
+ }
+ #endregion
+ }
+ }
+ #endregion
+
+ #region RetryTask(重试失败的任务)
+ ///
+ /// 重试失败的任务
+ ///
+ public void RetryTask()
+ {
+ DateTime today = DateTime.Now.Date.AddDays(-1);
+ var list = _SysWorkProcessRepository.Queryable().Where(t => t.FuncStatus == 4 && t.RetryCount <= 10
+ && t.CreateTime >= today).OrderBy(t => t.EditTime).Take(20).ToList();
+ list.ForEach(t =>
+ {
+ t.RetryCount = t.RetryCount + 1;
+ t.FuncStatus = 0;
+ });
+ _SysWorkProcessRepository.Update(list);
}
#endregion
}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/YuyuboService.cs b/Reportapi/MyCode.Project.Services/Implementation/YuyuboService.cs
new file mode 100644
index 0000000..c56fcf9
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/Implementation/YuyuboService.cs
@@ -0,0 +1,20 @@
+using MyCode.Project.Domain.Message.Request.JackYun;
+using MyCode.Project.Domain.Repositories;
+using MyCode.Project.Infrastructure.Common;
+using MyCode.Project.Infrastructure.JackYun;
+using System;
+
+namespace MyCode.Project.Services.Implementation
+{
+ public class YuyuboService : ServiceBase //,// IJackYunService
+ {
+
+ private IJackOrdersRepository _jackOrdersRepository;
+
+ public YuyuboService(IJackOrdersRepository jackOrdersRepository)
+ {
+ _jackOrdersRepository = jackOrdersRepository;
+ }
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/ZhuBinService.cs b/Reportapi/MyCode.Project.Services/Implementation/ZhuBinService.cs
new file mode 100644
index 0000000..0ca2138
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/Implementation/ZhuBinService.cs
@@ -0,0 +1,20 @@
+using MyCode.Project.Domain.Message.Request.JackYun;
+using MyCode.Project.Domain.Repositories;
+using MyCode.Project.Infrastructure.Common;
+using MyCode.Project.Infrastructure.JackYun;
+using System;
+
+namespace MyCode.Project.Services.Implementation
+{
+ public class ZhuBinService : ServiceBase //, IZhuBinService
+ {
+
+ private IYTKJTShopParameterRepository _yTKJTShopParameterRepository;
+
+ public ZhuBinService(IYTKJTShopParameterRepository yTKJTShopParameterRepository)
+ {
+ _yTKJTShopParameterRepository = yTKJTShopParameterRepository;
+ }
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj
index 575118e..262fe1b 100644
--- a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj
+++ b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj
@@ -115,19 +115,21 @@
-
+
+
+
-
-
+
+
+
-
diff --git a/Reportapi/MyCode.Project.WebApi/Web.config b/Reportapi/MyCode.Project.WebApi/Web.config
index af28f3d..fba5b9f 100644
--- a/Reportapi/MyCode.Project.WebApi/Web.config
+++ b/Reportapi/MyCode.Project.WebApi/Web.config
@@ -25,8 +25,8 @@
-
-
+
+