152 lines
8.0 KiB
C#
152 lines
8.0 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Text;
|
||
|
||
namespace WebService.SDK
|
||
{
|
||
public class SellMasterHelper
|
||
{
|
||
/// <summary>
|
||
/// 获取实时流水数据(1小时)
|
||
/// </summary>
|
||
/// <param name="oracleHelper">数据库连接类</param>
|
||
/// <param name="code">授权验证码</param>
|
||
/// <param name="jsonData">查询参数Json集合</param>
|
||
/// <returns></returns>
|
||
public string GetSellMaster(OracleHelper oracleHelper, string code, string jsonData)
|
||
{
|
||
try
|
||
{
|
||
string _ServerPartCode = "";
|
||
try
|
||
{
|
||
_ServerPartCode = code.ToDecrypt();
|
||
}
|
||
catch
|
||
{
|
||
return Newtonsoft.Json.JsonConvert.SerializeObject(new SellMasterResult
|
||
{ ResultCode = 201, ResultDesc = "授权码错误。" });
|
||
}
|
||
JsonData _JsonData = Newtonsoft.Json.JsonConvert.DeserializeObject<JsonData>(jsonData);
|
||
|
||
DateTime _StartDate = DateTime.MinValue;
|
||
if (!string.IsNullOrWhiteSpace(_JsonData.StartDate))
|
||
{
|
||
DateTime.TryParse(_JsonData.StartDate, out _StartDate);
|
||
}
|
||
if (_StartDate == DateTime.MinValue)
|
||
{
|
||
_StartDate = DateTime.Now.AddHours(-1);
|
||
}
|
||
DataTable _SellMasterTable = oracleHelper.ExcuteSqlGetDataSet(
|
||
$@"SELECT A.SELLMASTER_CODE,A.SERVERPARTCODE,
|
||
A.SERVERPART_NAME,A.SHOPCODE,A.SHOPNAME,
|
||
A.MACHINECODE,A.SELLWORKER_CODE,A.SELLWORKER_NAME,
|
||
A.SELLMASTER_DATE,A.SELLMASTER_COUNT,
|
||
A.SELLMASTER_OFFPRICE,A.SELLMASTER_AMOUNT,
|
||
A.CASHPAY,A.BANKPAY,A.MOBILEPAY,B.COMMODITY_BARCODE,
|
||
B.COMMODITY_NAME,B.SELLDETAILS_PRICE,
|
||
SUM(B.SELLDETAILS_COUNT) AS SELLDETAILS_COUNT,
|
||
SUM(B.SELLDETAILS_AMOUNT) AS SELLDETAILS_AMOUNT,
|
||
SUM(B.SELLDETAILS_OFFPRICE) AS SELLDETAILS_OFFPRICE
|
||
FROM HIGHWAY_EXCHANGE.T_SELLMASTER A,
|
||
HIGHWAY_EXCHANGE.T_SELLDETAILS B
|
||
WHERE A.SELLMASTER_CODE = B.SELLMASTER_CODE AND
|
||
A.SERVERPARTCODE = '{_ServerPartCode}' AND
|
||
A.SELLMASTER_DATE >= TO_DATE('{_StartDate.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
|
||
A.SELLMASTER_DATE < TO_DATE('{_StartDate.AddHours(1).ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')
|
||
GROUP BY A.SELLMASTER_CODE,A.SERVERPARTCODE,
|
||
A.SERVERPART_NAME,A.SHOPCODE,A.SHOPNAME,
|
||
A.MACHINECODE,A.SELLWORKER_CODE,A.SELLWORKER_NAME,
|
||
A.SELLMASTER_DATE,A.SELLMASTER_COUNT,
|
||
A.SELLMASTER_OFFPRICE,A.SELLMASTER_AMOUNT,
|
||
A.CASHPAY,A.BANKPAY,A.MOBILEPAY,B.COMMODITY_BARCODE,
|
||
B.COMMODITY_NAME,B.SELLDETAILS_PRICE").Tables[0];
|
||
var SellMasterList =
|
||
from t in _SellMasterTable.AsEnumerable()
|
||
group t by new
|
||
{
|
||
SELLMASTER_CODE = t.Field<string>("SELLMASTER_CODE"),
|
||
} into m
|
||
select new
|
||
{
|
||
m.Key.SELLMASTER_CODE
|
||
};
|
||
List<Model.ServerPartSellMasterModel> ServerPartSellMasterData = new List<Model.ServerPartSellMasterModel>();
|
||
SellMasterList.ToList().ForEach(p =>
|
||
{
|
||
DataRow[] _DataRow = _SellMasterTable.Select("SELLMASTER_CODE='" + p.SELLMASTER_CODE + "'");
|
||
if (_DataRow != null && _DataRow.Count() > 0)
|
||
{
|
||
Model.ServerPartSellMasterModel _SellMaster = new Model.ServerPartSellMasterModel();
|
||
_SellMaster.ServerPartCode = _DataRow[0]["SERVERPARTCODE"].ToString();
|
||
_SellMaster.ServerPartName = _DataRow[0]["SERVERPART_NAME"].ToString();
|
||
_SellMaster.ShopCode = _DataRow[0]["SHOPCODE"].ToString();
|
||
_SellMaster.ShopName = _DataRow[0]["SHOPNAME"].ToString();
|
||
_SellMaster.MachineCode = _DataRow[0]["MACHINECODE"].ToString();
|
||
_SellMaster.SellWorkerCode = _DataRow[0]["SELLWORKER_CODE"].ToString();
|
||
_SellMaster.SellWorerName = _DataRow[0]["SELLWORKER_NAME"].ToString();
|
||
_SellMaster.SellMasterCode = _DataRow[0]["SELLMASTER_CODE"].ToString();
|
||
_SellMaster.TotalCount = decimal.Parse(_DataRow[0]["SELLMASTER_COUNT"].ToString());
|
||
_SellMaster.TotalAmount = decimal.Parse(_DataRow[0]["SELLMASTER_AMOUNT"].ToString());
|
||
_SellMaster.TotalDiscount = decimal.Parse(_DataRow[0]["SELLMASTER_OFFPRICE"].ToString());
|
||
_SellMaster.CashPay = decimal.Parse(_DataRow[0]["CASHPAY"].ToString());
|
||
_SellMaster.BankPay = decimal.Parse(_DataRow[0]["BANKPAY"].ToString());
|
||
_SellMaster.MobilePay = decimal.Parse(_DataRow[0]["MOBILEPAY"].ToString());
|
||
_SellMaster.SellMasterDate = _DataRow[0]["SELLMASTER_DATE"].ToString();
|
||
List<Model.SellDetail> _SellDetailList = new List<Model.SellDetail>();
|
||
for (int i = 0; i < _DataRow.Count(); i++)
|
||
{
|
||
Model.SellDetail _SellDetail = new Model.SellDetail();
|
||
_SellDetail.CommodityBarcode = _DataRow[i]["COMMODITY_BARCODE"].ToString();
|
||
_SellDetail.CommodityName = _DataRow[i]["COMMODITY_NAME"].ToString();
|
||
_SellDetail.SellCount = decimal.Parse(_DataRow[i]["SELLDETAILS_COUNT"].ToString());
|
||
_SellDetail.Price = decimal.Parse(_DataRow[i]["SELLDETAILS_PRICE"].ToString());
|
||
_SellDetail.SellAmount = decimal.Parse(_DataRow[i]["SELLDETAILS_AMOUNT"].ToString());
|
||
_SellDetail.Discount = decimal.Parse(_DataRow[i]["SELLDETAILS_OFFPRICE"].ToString());
|
||
_SellDetailList.Add(_SellDetail);
|
||
}
|
||
_SellMaster.SellDetails = _SellDetailList;
|
||
ServerPartSellMasterData.Add(_SellMaster);
|
||
}
|
||
});
|
||
return Newtonsoft.Json.JsonConvert.SerializeObject(
|
||
new SellMasterResult
|
||
{
|
||
ResultCode = 100,
|
||
ResultDesc = "查询成功。",
|
||
PageIndex = 1,
|
||
PageSize = ServerPartSellMasterData.Count(),
|
||
TotalCount = ServerPartSellMasterData.Count(),
|
||
Data = ServerPartSellMasterData
|
||
});
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
return Newtonsoft.Json.JsonConvert.SerializeObject(new SellMasterResult
|
||
{ ResultCode = 999, ResultDesc = "系统错误:" + ex.Message });
|
||
}
|
||
}
|
||
}
|
||
public class SellMasterResult
|
||
{
|
||
public int ResultCode { get; set; }
|
||
public string ResultDesc { get; set; }
|
||
public int PageIndex { get; set; }
|
||
public int PageSize { get; set; }
|
||
public int TotalCount { get; set; }
|
||
public List<Model.ServerPartSellMasterModel> Data { get; set; }
|
||
}
|
||
|
||
public class JsonData
|
||
{
|
||
/// <summary>
|
||
/// 交易记录起始时间
|
||
/// </summary>
|
||
public string StartDate { get; set; }
|
||
|
||
}
|
||
}
|