|
|
|
|
using FluentScheduler;
|
|
|
|
|
using POSV.HttpApi;
|
|
|
|
|
using POSV.ServiceCenter;
|
|
|
|
|
using POSV.ShoppingCart;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
|
|
|
|
namespace POSV.Job
|
|
|
|
|
{
|
|
|
|
|
public class ServiceCenterUploadJob : BaseApi, IJob
|
|
|
|
|
{
|
|
|
|
|
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
|
|
|
|
|
|
|
|
|
private bool isRunning = false;
|
|
|
|
|
|
|
|
|
|
public void Execute()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var centerStatus = Global.Instance.EnableServiceCenter;
|
|
|
|
|
if (!centerStatus.Item1)
|
|
|
|
|
{
|
|
|
|
|
//服务中心未启用、配置不正确
|
|
|
|
|
logger.Debug(centerStatus.Item2);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!Global.Instance.IsLogin)
|
|
|
|
|
{
|
|
|
|
|
logger.Debug("未登录忽略本次上传");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isRunning)
|
|
|
|
|
{
|
|
|
|
|
logger.Debug("执行中,请稍候...");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
isRunning = true;
|
|
|
|
|
|
|
|
|
|
if (!Global.isHaveCenterTicket)
|
|
|
|
|
{
|
|
|
|
|
logger.Info("没有需要同步到服务中心的订单*,isHaveCenterTicket=false");
|
|
|
|
|
//没有要上传的数据
|
|
|
|
|
Global.isHaveCenterTicket = true;
|
|
|
|
|
//没有上传的数据之间返回
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
|
|
|
{
|
|
|
|
|
string sql = @"select distinct p.* from pos_order p
|
|
|
|
|
inner join pos_order_item i on p.tradeNo = i.tradeNo
|
|
|
|
|
where p.orderStatus = 4 and i.chuxianFlag = 1 and i.chuxianQty < i.quantity and p.finishDate <= '{0}'
|
|
|
|
|
and p.finishDate >= '{1}'
|
|
|
|
|
order by p.finishDate limit 1;";
|
|
|
|
|
//只上传20分钟前的数据,避免定时任务及时上传最新订单造成重复上传
|
|
|
|
|
var waitUpload = db.Query<OrderObject>(string.Format(sql, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), DateTime.Now.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss")));
|
|
|
|
|
if (waitUpload == null || waitUpload.ToList().Count == 0)
|
|
|
|
|
{
|
|
|
|
|
logger.Debug("没有需要同步到服务中心的订单**,isHaveCenterTicket=false");
|
|
|
|
|
//没有要上传的数据
|
|
|
|
|
Global.isHaveCenterTicket = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
foreach (var order in waitUpload)
|
|
|
|
|
{
|
|
|
|
|
logger.Info($"订单[{order.TradeNo}]同步到服务中心成功,isHaveCenterTicket=true");
|
|
|
|
|
UploadSCNewOrder.UploadNewOrder2SC4KDS(order.TradeNo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logger.Error(ex, "销售订单上传服务中心异常");
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
isRunning = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|