2025-03-28 09:49:56 +08:00

152 lines
8.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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