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.
181 lines
6.6 KiB
C#
181 lines
6.6 KiB
C#
using FluentScheduler;
|
|
using POSV.Entity;
|
|
using POSV.HandOver;
|
|
using POSV.HttpApi;
|
|
using POSV.HttpResponse;
|
|
using POSV.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace POSV.Job
|
|
{
|
|
class StoreCostRevenueUpLoadJob : BaseApi, IJob
|
|
{
|
|
private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
|
|
|
|
private bool isRunning = false;
|
|
|
|
public void Execute()
|
|
{
|
|
//上传数据
|
|
UploadStoreCostRevenueObject upload = null;
|
|
try
|
|
{
|
|
if (!Global.Instance.IsLogin)
|
|
{
|
|
logger.Debug("未登录忽略本次上传");
|
|
return;
|
|
}
|
|
|
|
if (!Global.Instance.Online)
|
|
{
|
|
logger.Debug("脱机状态,忽略本次上传");
|
|
return;
|
|
}
|
|
|
|
if (!Global.Instance.AllowUpload)
|
|
{
|
|
logger.Info("正在点单,暂不上传");
|
|
return;
|
|
}
|
|
|
|
if (isRunning)
|
|
{
|
|
logger.Info("上传中,请稍候...");
|
|
return;
|
|
}
|
|
|
|
//交班单信息
|
|
StoreCostRevenue ticket = null;
|
|
|
|
if (!Global.isHaveUpLoadFyy)
|
|
{
|
|
logger.Info("没有需要上传的非营业数据,isHaveUpLoadFyy=false");
|
|
//没有上传的数据之间返回
|
|
return;
|
|
}
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
{
|
|
upload = db.Query<UploadStoreCostRevenueObject>().Where(x => x.SyncStatus == 0).OrderBy(x => x.UploadErrors).Limit(1).FirstOrDefault();
|
|
if (upload != null)
|
|
{
|
|
ticket = upload.StoreCostRevenue;
|
|
}
|
|
else
|
|
{
|
|
logger.Info("没有需要上传的非营业数据,isHaveUpLoadFyy=false");
|
|
//没有要上传的数据
|
|
Global.isHaveUpLoadFyy = false;
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (ticket == null)
|
|
{
|
|
return;
|
|
}
|
|
var uploadObject = new Dictionary<string, object>();
|
|
//前台系统ID
|
|
uploadObject["id"] = ticket.Id;
|
|
uploadObject["storeId"] = ticket.StoreId;// 门店ID
|
|
uploadObject["storeNo"] = ticket.StoreNo;// 门店编号
|
|
uploadObject["storeName"] = ticket.StoreName;// 门店名称
|
|
uploadObject["workId"] = ticket.WorkId;// 员工ID
|
|
uploadObject["workNo"] = ticket.WorkNo;// 员工编号
|
|
uploadObject["workName"] = ticket.WorkName;// 员工名称
|
|
uploadObject["shiftNo"] = ticket.ShiftNo;// 班次
|
|
uploadObject["shiftName"] = ticket.ShiftName;// 班次名称
|
|
uploadObject["posNo"] = ticket.PosNo;// 交单POS
|
|
uploadObject["name"] = ticket.Name;// 收支项目
|
|
uploadObject["money"] = ticket.Money;//金额
|
|
uploadObject["type"] = ticket.Type;// 类型
|
|
uploadObject["description"] = ticket.Description;// 名称
|
|
uploadObject["memo"] = ticket.Memo;// 备注信息
|
|
uploadObject["inputDate"] = ticket.InputDate;// 登记时间
|
|
uploadObject["deviceName"] = ticket.DeviceName;// 设备名称
|
|
uploadObject["deviceMac"] = ticket.DeviceMac;// 设备MAC
|
|
uploadObject["deviceIp"] = ticket.DeviceIp;// 设备IP
|
|
string jsonString = JsonUtils.Serialize(uploadObject);
|
|
this.Uploading(upload ,jsonString);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "非营业数据上传任务异常");
|
|
}
|
|
finally
|
|
{
|
|
isRunning = false;
|
|
}
|
|
|
|
}
|
|
private void Uploading(UploadStoreCostRevenueObject upload, string jsonString)
|
|
{
|
|
try
|
|
{
|
|
logger.Debug("开始上传数据......");
|
|
|
|
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
|
|
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
|
|
|
|
parameters.Add("method", "upload.business.revenue");
|
|
parameters.Add("storeId", Global.Instance.Authc.StoreId);
|
|
parameters.Add("jsonString", jsonString);
|
|
|
|
var ignore = new List<string>();
|
|
ignore.Add("jsonString");
|
|
|
|
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignore));
|
|
|
|
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
|
|
|
|
if (Constant.IsSuccessful(response))
|
|
{
|
|
var result = JsonUtils.Deserialize<EntityResponse<UploadStoreCostRevenueResult>>(response);
|
|
|
|
if (result.Status == 1)
|
|
{
|
|
|
|
if (upload != null)
|
|
{
|
|
upload.SyncStatus = 1;
|
|
|
|
upload.ModifyDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
upload.ModifyUser = Constant.DEFAULT_SYNC_USER;
|
|
|
|
using (var db = Global.Instance.OpenDataBase)
|
|
{
|
|
using (var trans = db.GetTransaction())
|
|
{
|
|
db.Update(upload);
|
|
|
|
trans.Complete();
|
|
}
|
|
}
|
|
}
|
|
logger.Info(result.Message);
|
|
}
|
|
else
|
|
{
|
|
string message = string.Format("<{0}>-{1}", result.ErrCode, result.ErrMessage);
|
|
|
|
logger.Error(string.Format("上传出错:{0}", message));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
string errorMessage = PaserErrors(response);
|
|
|
|
logger.Error(string.Format("报文解析出错:{0}", errorMessage));
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
logger.Error(ex, "非营业数据上传异常");
|
|
}
|
|
}
|
|
}
|
|
}
|