You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
3.1 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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;
}
}
}
}