using Newtonsoft.Json.Linq;
using OperatingData.SDK;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
namespace TableDataService.Method
{
public class UploadMethod
{
#region 方法 -> 数据上传子项
///
///
///
/// 数据库连接
/// 上传的表名称
/// 上传的数据集合,json字符串
/// 服务区编码、门店编码、机器编码数据集合
/// 字段暂不使用
///
public static string DataUploading(OracleHelper _OracleHelper, string tableName,
string jsonString, string[] codes, int maxDataQuantity = 4)
{
string strBack = string.Empty; //返回内容
string _ISCheckData = string.Empty; //存储未上传必填项的数据集
string[] _RequiredDatas = null; //定义上传数据的必填项内容
bool isReplaceColumnName = false; //是否需要替换字段名称
try
{
//营收数据相关新表
/* T_SELLMASTER 销售流水主表【后续删除】
* T_SELLDETAILS 销售流水详情表【后续删除】
* T_ENDACCOUNT_NEW 日结报表
* T_PERSONSELL_NEW 收银交班表
* T_COMMODITYSALE_NEW 单品销售表【改成文本传输】
* T_COMMODITYSALE_EXTAR 特殊单品报表【后续删除】
* T_DATACOLLECTION 十分钟营收数据表【后续迁移】
*/
//营收数据相关旧表【云端传输删除】
/* T_SELLDATA 销售流水表【旧】
* T_TRANSFER_SELLDATA 销售流水集合表【旧】
* T_ENDACCOUNT 日结账期表【旧】
* T_PERSONSELL 收银员交班表【旧】
* T_COMMODITYSALE 单品报表【旧】
* T_TRANSFER_SALE 单品数据集合【旧】
* T_EXCEPTION 异常稽核数据表【旧】
*/
//收银稽核相关表
/* T_ABNORMALITY 异常操作记录主表【改成文本传输】
* T_ABNORMALITYDETAIL 异常操作稽核统计表【改成文本传输】
* T_ABNOEMALITYANALYSIS 异常操作稽核统计表【改成文本传输】
*/
//移动支付相关表
/* T_SELLDATA_EXTRA 离线移动支付交易记录表【收银前端删除】
* T_MOBILE_PAY 收银前端异常移动支付数据表【改成文本传输】
*/
//会员促销相关表
/* T_CONSUMPTIONRECORD 促销流水表【后续删除】
* T_PROMOTIONRECORD 促销流水表-2021.04新增,未启用
* T_RECHARGERECORD 企业内部会员消费记录表【商业集团食堂离线支付交易记录】【收银前端删除】
*/
//客群分析相关表【重新设置,规划传输链路】
/* T_CUSTOMERINFO 客群分析数据表
* T_CUSTOMERANALYSIS 客单时段统计表
* T_COMMODITYANALYSIS 推荐单品统计表
* T_SALESANALYSIS 客单区段统计表
* T_SALESINTERVALANALYSIS 客单时段统计表
*/
/* T_BUSINESSTIME 门店营业时间表【删除】
* T_USERSATISFACTION 满意度评价【删除】
* T_ADVERTFEEDBACK 广告播放情况【删除】
* T_TRANSMISSIONERROR 数据传输异常记录表【删除】
* T_TRANSFERSTATISTICS 数据传输上传统计表【删除】
* T_COMMODITYEX_NEW 收银机本地商品数据表【用于比对数据下发状况,未正式启用】【删除】
*/
switch (tableName)
{
case "HIGHWAY_EXCHANGE.T_SELLMASTER":
#region HIGHWAY_EXCHANGE.T_SELLMASTER 销售流水主表
//必填项
_RequiredDatas = new string[] { "SELLMASTER_ID", "SELLMASTER_CODE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataSellmaster =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataSellmaster != null && _DataSellmaster.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataSellmaster.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataSellmaster.Min(p => p.SELLMASTER_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataSellmaster.Max(p => p.SELLMASTER_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SELLMASTER_CODE FROM HIGHWAY_EXCHANGE.T_SELLMASTER
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
MACHINECODE = '{codes[3]}' AND SELLMASTER_DATE BETWEEN TO_DATE('{codes[4]}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') ").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.SELLMASTER _SELLMASTER in _DataSellmaster)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select($" SELLMASTER_CODE = '{_SELLMASTER.SELLMASTER_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_SELLMASTER);
continue;
}
}
//需更新的集合
_InsertList.Add(_SELLMASTER);
}
if (_InsertList.Count + _UpdateList.Count == _DataSellmaster.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_SELLMASTER");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_SELLDETAILS":
#region HIGHWAY_EXCHANGE.T_SELLDETAILS 销售流水详情表
//必填项
_RequiredDatas = new string[] { "SELLDETAILS_ID", "SELLMASTER_CODE", "CREATE_DATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataSelldetails = JsonHelper.JSONStringToListUTC(jsonString);
if (_DataSelldetails != null && _DataSelldetails.Count > 0)
{
var _MinDate = _DataSelldetails.Min(p => p.CREATE_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataSelldetails.Max(p => p.CREATE_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SELLMASTER_CODE,COMMODITY_CODE,LINENUM
FROM HIGHWAY_EXCHANGE.T_SELLDETAILS
WHERE CREATE_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.SELLDETAILS _SELLDETAILS in _DataSelldetails)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" SELLMASTER_CODE = '{_SELLDETAILS.SELLMASTER_CODE}' AND " +
$" COMMODITY_CODE = '{_SELLDETAILS.COMMODITY_CODE}' AND " +
$" LINENUM = '{_SELLDETAILS.LINENUM}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_SELLDETAILS);
continue;
}
}
//需更新的集合
_InsertList.Add(_SELLDETAILS);
}
if (_InsertList.Count + _UpdateList.Count == _DataSelldetails.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_SELLDETAILS");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW":
#region HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW 日结报表
//设置必填项:日结账单内码【ENDACCOUNT_ID】、日结账单编码(唯一值)ENDACCOUNT_CODE
_RequiredDatas = new string[] { "ENDACCOUNT_ID", "ENDACCOUNT_CODE" };
//验证上传的数据中是否缺失必填项
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
//存储缺失必填项的数据
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
//解析json字符串,转化为数据对象ENDACCOUNT_NEW
List _DataEndaccount_new =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataEndaccount_new != null && _DataEndaccount_new.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataEndaccount_new.Select(p => new
{
p.SERVERPARTCODE, //服务区编码
p.SHOPCODE, //门店编码
p.MACHINECODE //机器编码
}).Distinct().ToArray();
//获取上传的服务区门店机器信息集合,用于获取已上传至服务器的日结数据
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") +
_ShopCodeTemp.SERVERPARTCODE.Trim() +
_ShopCodeTemp.SHOPCODE.Trim() +
_ShopCodeTemp.MACHINECODE.Trim() + "'";
}
//获取上传的数据集中最小的日结时间
var _MinDate = _DataEndaccount_new.Min(p => p.STARTDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
//获取上传的数据集中最大的日结时间
var _MaxDate = _DataEndaccount_new.Max(p => p.STARTDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//查询最小和最大日结时间范围内,该服务区门店的日结数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ENDACCOUNT_ID,ENDACCOUNT_CODE
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW
WHERE SERVERPARTCODE || SHOPCODE || MACHINECODE IN ({_strShopCode}) AND
STARTDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
List _ContinueList = new List();//不需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
//遍历日结数据集合,获取需要插入的集合、更新的集合、过滤还未结账的数据集合
foreach (Model.EXCHANGE.ENDACCOUNT_NEW _ENDACCOUNT_NEW in _DataEndaccount_new)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
//判断日结数据是否已上传
_DataRows = _DataTable.Select($" ENDACCOUNT_CODE = '{_ENDACCOUNT_NEW.ENDACCOUNT_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
if (_ENDACCOUNT_NEW.ENDDATE == null)
{
//记录已存在、不需要更新的数据(正在进行的账期数据)
_ContinueList.Add(_ENDACCOUNT_NEW);
}
else
{
//记录已存在、需更新的数据
_UpdateList.Add(_ENDACCOUNT_NEW);
}
continue;
}
}
//需更新的集合
_InsertList.Add(_ENDACCOUNT_NEW);
}
//判断数据完整性,插入集合数量+更新集合数量+过滤集合数量=总数据量
if (_InsertList.Count + _UpdateList.Count + _ContinueList.Count == _DataEndaccount_new.Count)
{
if (_InsertList.Count > 0)
{
//执行日结数据插入语句
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW");
}
if (_UpdateList.Count > 0)
{
try
{
//执行日结数据更新语句
OperationDataHelper.UpdateTableData(
_OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW",
new string[] { "ENDACCOUNT_CODE" });
}
catch (Exception)
{
//出现异常,返回更新失败的集合
strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
break;
}
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW":
#region HIGHWAY_EXCHANGE.T_PERSONSELL_NEW 收银交班表
//必填项
_RequiredDatas = new string[] { "PERSONSELL_ID", "ENDACCOUNT_CODE", "WOKER_NUMBER" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataPersonsell_new =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataPersonsell_new != null && _DataPersonsell_new.Count > 0)
{
//从上传的数据中获取服务区、门店、收银机号信息,用于服务器已有数据读取和判断
string str_DataCode = "";
var _DataCodeList = _DataPersonsell_new.Select(p => new
{
p.SERVERPARTCODE,
p.SHOPCODE,
p.MACHINECODE
}).Distinct().ToArray();
foreach (var _DataCodeTemp in _DataCodeList)
{
str_DataCode += (string.IsNullOrWhiteSpace(str_DataCode) ? "'" : ",'") +
_DataCodeTemp.SERVERPARTCODE.Trim() +
_DataCodeTemp.SHOPCODE.Trim() +
_DataCodeTemp.MACHINECODE.Trim() + "'";
}
//获取上传的数据中最小的账期时间
var _MinDate = _DataPersonsell_new.Min(p => p.STARTDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
//获取上传的数据中最大的账期时间
var _MaxDate = _DataPersonsell_new.Max(p => p.STARTDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT PERSONSELL_ID,ENDACCOUNT_CODE,WOKER_NUMBER
FROM HIGHWAY_EXCHANGE.T_PERSONSELL_NEW
WHERE SERVERPARTCODE || SHOPCODE || MACHINECODE IN ({str_DataCode}) AND
STARTDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.PERSONSELL_NEW _PERSONSELL_NEW in _DataPersonsell_new)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ENDACCOUNT_CODE = '{_PERSONSELL_NEW.ENDACCOUNT_CODE}' AND " +
$" WOKER_NUMBER = {_PERSONSELL_NEW.WOKER_NUMBER}");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_PERSONSELL_NEW);
continue;
}
}
//需更新的集合
_InsertList.Add(_PERSONSELL_NEW);
}
if (_InsertList.Count + _UpdateList.Count == _DataPersonsell_new.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW");
}
if (_UpdateList.Count > 0)
{
try
{
OperationDataHelper.UpdateTableData(
_OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW",
new string[] { "ENDACCOUNT_CODE", "WOKER_NUMBER" });
}
catch (Exception)
{
strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
break;
}
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW":
#region HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW 单品销售表
//必填项
_RequiredDatas = new string[] { "COMMODITYSALE_ID", "ENDACCOUNT_CODE", "CREATE_DATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataCommoditysale_new =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataCommoditysale_new != null && _DataCommoditysale_new.Count > 0)
{
var _MinDate = _DataCommoditysale_new.Min(p => p.CREATE_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataCommoditysale_new.Max(p => p.CREATE_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ENDACCOUNT_CODE,COMMODITY_CODE,WOKER_NUMBER
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW
WHERE CREATE_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') ").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.COMMODITYSALE_NEW _COMMODITYSALE_NEW in _DataCommoditysale_new)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ENDACCOUNT_CODE = '{_COMMODITYSALE_NEW.ENDACCOUNT_CODE}' AND " +
$" COMMODITY_CODE = '{_COMMODITYSALE_NEW.COMMODITY_CODE}' AND " +
$" WOKER_NUMBER = '{_COMMODITYSALE_NEW.WOKER_NUMBER}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_COMMODITYSALE_NEW);
continue;
}
}
//需更新的集合
_InsertList.Add(_COMMODITYSALE_NEW);
}
if (_InsertList.Count + _UpdateList.Count == _DataCommoditysale_new.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR":
#region HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR 特殊单品报表
//必填项
_RequiredDatas = new string[] { "COMMODITYSALE_ID", "STARTDATE",
"ENDDATE", "SERVERPARTCODE", "SHOPCODE", "MACHINECODE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataCommoditysale_extar =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataCommoditysale_extar != null && _DataCommoditysale_extar.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataCommoditysale_extar.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataCommoditysale_extar.Min(p => p.STARTDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataCommoditysale_extar.Max(p => p.STARTDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT COMMODITYSALE_ID,STARTDATE,ENDDATE,
SERVERPARTCODE,SHOPCODE,MACHINECODE
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
STARTDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.COMMODITYSALE_EXTAR _COMMODITYSALE_EXTAR in _DataCommoditysale_extar)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" COMMODITYSALE_ID = {_COMMODITYSALE_EXTAR.COMMODITYSALE_ID} AND " +
$" STARTDATE = '{_COMMODITYSALE_EXTAR.STARTDATE.ToString()}' AND " +
$" ENDDATE = '{_COMMODITYSALE_EXTAR.ENDDATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_COMMODITYSALE_EXTAR.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_COMMODITYSALE_EXTAR.SHOPCODE}' AND " +
$" MACHINECODE = '{_COMMODITYSALE_EXTAR.MACHINECODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_COMMODITYSALE_EXTAR);
continue;
}
}
//需更新的集合
_InsertList.Add(_COMMODITYSALE_EXTAR);
}
if (_InsertList.Count + _UpdateList.Count == _DataCommoditysale_extar.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR");
}
//if (_UpdateList.Count > 0)
//{
// try
// {
// OperationDataHelper.UpdateTableData(
// _OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR",
// new string[] { "COMMODITYSALE_ID", "STARTDATE", "ENDDATE",
// "SERVERPARTCODE", "SHOPCODE", "MACHINECODE" });
// }
// catch (Exception)
// {
// strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
// JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
// break;
// }
//}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_DATACOLLECTION":
#region HIGHWAY_EXCHANGE.T_DATACOLLECTION 十分钟营收数据表
//必填项
_RequiredDatas = new string[] { "DATACOLLECTION_ID", "MACADDRESS", "DATACOLLECTION_DATE", "DATACOLLECTION_TYPE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataDatacollection = JsonHelper.JSONStringToListUTC(jsonString);
if (_DataDatacollection != null && _DataDatacollection.Count > 0)
{
var _MinDate = _DataDatacollection.Min(p => p.DATACOLLECTION_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataDatacollection.Max(p => p.DATACOLLECTION_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT MACADDRESS,DATACOLLECTION_DATE
FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION
WHERE SERVERPARTCODE = '{codes[0]}' AND DATACOLLECTION_TYPE IN (1000,2000) AND
DATACOLLECTION_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.DATACOLLECTION _DATACOLLECTION in _DataDatacollection)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select($" MACADDRESS = '{_DATACOLLECTION.MACADDRESS}' AND " +
$" DATACOLLECTION_DATE = '{_DATACOLLECTION.DATACOLLECTION_DATE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_DATACOLLECTION);
continue;
}
}
//需插入的集合
_InsertList.Add(_DATACOLLECTION);
}
if (_InsertList.Count + _UpdateList.Count == _DataDatacollection.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_DATACOLLECTION");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_PROMOTIONRECORD":
#region HIGHWAY_EXCHANGE.T_PROMOTIONRECORD 促销流水表-2021.04新增,未启用
_RequiredDatas = new string[]
{
"PROMOTIONRECORD_ID",
"PROMOTIONRECORD_CODE",
"PROMOTION_ID",
"SERVERPARTCODE",
"SHOPCODE"
};
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataPromotionRecord =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataPromotionRecord != null && _DataPromotionRecord.Count > 0)
{
//从上传的数据中获取服务区、门店、收银机号信息,用于服务器已有数据读取和判断
string str_DataCode = "";
var _DataCodeList = _DataPromotionRecord.Select(p => new
{
p.SERVERPARTCODE,
p.SHOPCODE,
p.MACHINECODE
}).Distinct().ToArray();
foreach (var _DataCodeTemp in _DataCodeList)
{
str_DataCode += (string.IsNullOrWhiteSpace(str_DataCode) ? "'" : ",'") +
_DataCodeTemp.SERVERPARTCODE.Trim() +
_DataCodeTemp.SHOPCODE.Trim() +
_DataCodeTemp.MACHINECODE.Trim() + "'";
}
var _MinDate = _DataPromotionRecord.Min(p => p.PROMOTIONRECORD_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataPromotionRecord.Max(p => p.PROMOTIONRECORD_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT PROMOTIONRECORD_ID,PROMOTIONRECORD_CODE
FROM HIGHWAY_EXCHANGE.T_PROMOTIONRECORD
WHERE SERVERPARTCODE||SHOPCODE||MACHINECODE IN({str_DataCode}) AND PROMOTIONRECORD_DATE BETWEEN
TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.PROMOTIONRECORD _PROMOTIONRECORD in _DataPromotionRecord)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" PROMOTIONRECORD_ID = '{_PROMOTIONRECORD.PROMOTIONRECORD_ID.ToString()}' AND " +
$" PROMOTIONRECORD_CODE = '{_PROMOTIONRECORD.PROMOTIONRECORD_CODE}' ");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_PROMOTIONRECORD);
continue;
}
}
//需插入的集合
_InsertList.Add(_PROMOTIONRECORD);
}
if (_InsertList.Count + _UpdateList.Count == _DataPromotionRecord.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_PROMOTIONRECORD");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_CONSUMPTIONRECORD":
#region HIGHWAY_EXCHANGE.T_CONSUMPTIONRECORD 促销流水表
_RequiredDatas = new string[]
{
"CONSUMPTIONRECORD_DATE",
"SERVERPART_CODE",
"SHOPCODE",
"MACHINECODE",
"TICKET_CODE",
"COMMODITY_CODE",
"LINE_NUMBER"
};
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataConsumptionRecord =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataConsumptionRecord != null && _DataConsumptionRecord.Count > 0)
{
var _MinDate = _DataConsumptionRecord.Min(p => p.CONSUMPTIONRECORD_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataConsumptionRecord.Max(p => p.CONSUMPTIONRECORD_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT CONSUMPTIONRECORD_DATE,SERVERPART_CODE,SHOPCODE,
MACHINECODE,TICKET_CODE,COMMODITY_CODE,LINE_NUMBER
FROM HIGHWAY_EXCHANGE.T_CONSUMPTIONRECORD
WHERE SERVERPART_CODE = '{codes[0]}' AND CONSUMPTIONRECORD_DATE BETWEEN
TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.CONSUMPTIONRECORD _CONSUMPTIONRECORD in _DataConsumptionRecord)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" CONSUMPTIONRECORD_DATE = '{_CONSUMPTIONRECORD.CONSUMPTIONRECORD_DATE.ToString()}' AND " +
$" SERVERPART_CODE = '{_CONSUMPTIONRECORD.SERVERPART_CODE}' AND " +
$" SHOPCODE = '{_CONSUMPTIONRECORD.SHOPCODE}' AND " +
$" MACHINECODE = '{_CONSUMPTIONRECORD.MACHINECODE}' AND " +
$" TICKET_CODE = '{_CONSUMPTIONRECORD.TICKET_CODE}' AND " +
$" COMMODITY_CODE = '{_CONSUMPTIONRECORD.COMMODITY_CODE}' AND " +
$" LINE_NUMBER = '{_CONSUMPTIONRECORD.LINE_NUMBER}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_CONSUMPTIONRECORD);
continue;
}
}
//需插入的集合
_InsertList.Add(_CONSUMPTIONRECORD);
}
if (_InsertList.Count + _UpdateList.Count == _DataConsumptionRecord.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_CONSUMPTIONRECORD");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_MOBILE_PAY":
#region HIGHWAY_EXCHANGE.T_MOBILE_PAY 收银前端异常移动支付数据表
//必填项
_RequiredDatas = new string[] { "MOBILE_PAY_ID", "MOBILEPAY_TYPE", "TICKET_CODE", "MOBILEPAY_DATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataMobile_Pay =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataMobile_Pay != null && _DataMobile_Pay.Count > 0)
{
var _MinDate = _DataMobile_Pay.Min(p => p.MOBILEPAY_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataMobile_Pay.Max(p => p.MOBILEPAY_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT MOBILE_PAY_ID,MOBILEPAY_TYPE,TICKET_CODE
FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY
WHERE SERVERPARTCODE = '{codes[0]}' AND MOBILEPAY_DATE BETWEEN
TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.MOBILE_PAY _MOBILE_PAY in _DataMobile_Pay)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" MOBILE_PAY_ID = {_MOBILE_PAY.MOBILE_PAY_ID} AND " +
$" MOBILEPAY_TYPE = '{_MOBILE_PAY.MOBILEPAY_TYPE}' AND " +
$" TICKET_CODE = '{_MOBILE_PAY.TICKET_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_MOBILE_PAY);
continue;
}
}
//需更新的集合
_InsertList.Add(_MOBILE_PAY);
}
if (_InsertList.Count + _UpdateList.Count == _DataMobile_Pay.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_MOBILE_PAY");
}
if (_UpdateList.Count > 0)
{
try
{
OperationDataHelper.UpdateTableData(
_OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_MOBILE_PAY",
new string[] { "MOBILE_PAY_ID", "MOBILEPAY_TYPE", "TICKET_CODE" });
}
catch (Exception)
{
strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
break;
}
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_SELLDATA":
#region HIGHWAY_EXCHANGE.T_SELLDATA 销售流水表【旧】
//必填项
_RequiredDatas = new string[] { "SELLDATA_ID", "SELLDATA_DATE", "SERVERPARTCODE",
"SHOPCODE", "MACHINECODE", "TICKETCODE", "WORKERCODE", "COMMODITY_CODE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataSelldata = JsonHelper.JSONStringToListUTC(jsonString);
if (_DataSelldata != null && _DataSelldata.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataSelldata.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataSelldata.Min(p => p.SELLDATA_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataSelldata.Max(p => p.SELLDATA_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SELLDATA_ID,SELLDATA_DATE,SERVERPARTCODE,
SHOPCODE,MACHINECODE,TICKETCODE,LINENUM
FROM HIGHWAY_EXCHANGE.T_SELLDATA
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
SELLDATA_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.SELLDATA _SELLDATA in _DataSelldata)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" SELLDATA_DATE = '{_SELLDATA.SELLDATA_DATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_SELLDATA.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_SELLDATA.SHOPCODE}' AND " +
$" MACHINECODE = '{_SELLDATA.MACHINECODE}' AND " +
$" TICKETCODE = '{_SELLDATA.TICKETCODE}' AND " +
$" LINENUM = {_SELLDATA.LINENUM}");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_SELLDATA);
continue;
}
}
//需更新的集合
_InsertList.Add(_SELLDATA);
}
if (_InsertList.Count + _UpdateList.Count == _DataSelldata.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_SELLDATA");
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA":
#region HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA 销售流水集合表
_RequiredDatas = new string[] { "TRANSFER_ID", "SELLDATA_DATE", "SERVERPARTCODE",
"SHOPCODE", "MACHINECODE", "TICKETCODE", "WORKERCODE", "SELLCOUNT",
"OFFPRICE", "FACTAMOUNT", "TRANSFER_FIRSTDATAS" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataTransferSell =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataTransferSell != null && _DataTransferSell.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataTransferSell.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataTransferSell.Min(p => p.SELLDATA_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataTransferSell.Max(p => p.SELLDATA_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT TRANSFER_ID,SELLDATA_DATE,SERVERPARTCODE,
SHOPCODE,MACHINECODE,TICKETCODE
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
SELLDATA_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.TRANSFER_SELLDATA _TRANSFER_SELLDATA in _DataTransferSell)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" SELLDATA_DATE = '{_TRANSFER_SELLDATA.SELLDATA_DATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_TRANSFER_SELLDATA.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_TRANSFER_SELLDATA.SHOPCODE}' AND " +
$" MACHINECODE = '{_TRANSFER_SELLDATA.MACHINECODE}' AND " +
$" TICKETCODE = '{_TRANSFER_SELLDATA.TICKETCODE}' AND " +
$" TRANSFER_ID = {_TRANSFER_SELLDATA.TRANSFER_ID}");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_TRANSFER_SELLDATA);
continue;
}
}
//需插入的集合
_InsertList.Add(_TRANSFER_SELLDATA);
}
if (_InsertList.Count + _UpdateList.Count == _DataTransferSell.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA");
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT":
#region HIGHWAY_EXCHANGE.T_ENDACCOUNT 日结账期表【旧】
//必填项
try
{
if (_OracleHelper.ExcuteSqlGetDataSet(
@"SELECT 1 FROM ALL_TAB_COLUMNS
WHERE OWNER = 'HIGHWAY_EXCHANGE' AND
TABLE_NAME = 'T_ENDACCOUNT' AND
COLUMN_NAME = 'SERVERPART_CODE'").Tables[0].Rows.Count > 0)
{
isReplaceColumnName = true;
}
}
catch { }
_RequiredDatas = new string[]
{
"ENDACCOUNT_ID",
"ENDACCOUNT_STARTDATE",
"SERVERPARTCODE",
"SHOPCODE",
"MACHINECODE" ,
"FLAG"
};
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
if (isReplaceColumnName)
{
jsonString = jsonString.Replace("SERVERPARTCODE", "SERVERPART_CODE");
List _DataEndaccount =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataEndaccount != null && _DataEndaccount.Count > 0)
{
string str_DataCode = "";
//获取数据包中的服务区、门店、收银机号信息
var _DataCodeList = _DataEndaccount.Select(p => new
{
p.SERVERPART_CODE,
p.SHOPCODE,
p.MACHINECODE
}).Distinct().ToArray();
//拼接组成区服已有数据查询条件值
foreach (var _DataCodeTemp in _DataCodeList)
{
str_DataCode += (string.IsNullOrWhiteSpace(str_DataCode) ? "'" : ",'") +
_DataCodeTemp.SERVERPART_CODE.Trim() +
_DataCodeTemp.SHOPCODE.Trim() +
_DataCodeTemp.MACHINECODE.Trim() + "'";
}
//获取数据包中最小时间
var _MinDate = _DataEndaccount.Min(p => p.ENDACCOUNT_STARTDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
//获取数据包中最大时间
var _MaxDate = _DataEndaccount.Max(p => p.ENDACCOUNT_STARTDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//获取数据包中包含的服务区门店中已上传过的数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ENDACCOUNT_ID,ENDACCOUNT_STARTDATE,
SERVERPART_CODE,SHOPCODE,MACHINECODE,FLAG
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT
WHERE SERVERPART_CODE || SHOPCODE || MACHINECODE IN ({str_DataCode}) AND ENDACCOUNT_STARTDATE BETWEEN
TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.HIGHWAY.ENDACCOUNT_SC _ENDACCOUNT in _DataEndaccount)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ENDACCOUNT_ID = {_ENDACCOUNT.ENDACCOUNT_ID} AND " +
$" ENDACCOUNT_STARTDATE = '{_ENDACCOUNT.ENDACCOUNT_STARTDATE.ToString()}' AND " +
$" SERVERPART_CODE = '{_ENDACCOUNT.SERVERPART_CODE}' AND " +
$" SHOPCODE = '{_ENDACCOUNT.SHOPCODE}' AND " +
$" MACHINECODE = '{_ENDACCOUNT.MACHINECODE}' AND " +
$" FLAG = {_ENDACCOUNT.FLAG}");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_ENDACCOUNT);
continue;
}
}
//需更新的集合
_InsertList.Add(_ENDACCOUNT);
}
if (_InsertList.Count + _UpdateList.Count == _DataEndaccount.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_ENDACCOUNT");
}
if (_UpdateList.Count > 0)
{
try
{
OperationDataHelper.UpdateTableData(
_OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_ENDACCOUNT",
new string[] { "ENDACCOUNT_ID", "ENDACCOUNT_STARTDATE", "SERVERPART_CODE", "SHOPCODE", "MACHINECODE", "FLAG" });
}
catch (Exception)
{
strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
break;
}
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
}
else
{
List _DataEndaccount =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataEndaccount != null && _DataEndaccount.Count > 0)
{
string str_DataCode = "";
//获取数据包中的服务区、门店、收银机信息
var _DataCodeList = _DataEndaccount.Select(p => new
{
p.SERVERPARTCODE,
p.SHOPCODE,
p.MACHINECODE
}).Distinct().ToArray();
//拼接组成已上传数据查询条件值
foreach (var _DataCodeTemp in _DataCodeList)
{
str_DataCode += (string.IsNullOrWhiteSpace(str_DataCode) ? "'" : ",'") +
_DataCodeTemp.SERVERPARTCODE.Trim() +
_DataCodeTemp.SHOPCODE.Trim() +
_DataCodeTemp.MACHINECODE.Trim() + "'";
}
//获取数据包中最小时间
var _MinDate = _DataEndaccount.Min(p => p.ENDACCOUNT_STARTDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
//获取数据包中最大时间
var _MaxDate = _DataEndaccount.Max(p => p.ENDACCOUNT_STARTDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ENDACCOUNT_ID,ENDACCOUNT_STARTDATE,
SERVERPARTCODE,SHOPCODE,MACHINECODE,FLAG
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT
WHERE SERVERPARTCODE || SHOPCODE || MACHINECODE IN ({str_DataCode}) AND
ENDACCOUNT_STARTDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.HIGHWAY.ENDACCOUNT _ENDACCOUNT in _DataEndaccount)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ENDACCOUNT_ID = {_ENDACCOUNT.ENDACCOUNT_ID} AND " +
$" ENDACCOUNT_STARTDATE = '{_ENDACCOUNT.ENDACCOUNT_STARTDATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_ENDACCOUNT.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_ENDACCOUNT.SHOPCODE}' AND " +
$" MACHINECODE = '{_ENDACCOUNT.MACHINECODE}' AND " +
$" FLAG = {_ENDACCOUNT.FLAG}");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_ENDACCOUNT);
continue;
}
}
//需更新的集合
_InsertList.Add(_ENDACCOUNT);
}
if (_InsertList.Count + _UpdateList.Count == _DataEndaccount.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_ENDACCOUNT");
}
if (_UpdateList.Count > 0)
{
try
{
OperationDataHelper.UpdateTableData(
_OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_ENDACCOUNT",
new string[] { "ENDACCOUNT_ID", "ENDACCOUNT_STARTDATE",
"SERVERPARTCODE", "SHOPCODE", "MACHINECODE", "FLAG" });
}
catch (Exception)
{
strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
break;
}
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_PERSONSELL":
#region HIGHWAY_EXCHANGE.T_PERSONSELL 收银员交班表【旧】
//必填项
_RequiredDatas = new string[] { "PERSONSELL_ID", "SERVERPARTCODE", "SHOPCODE", "MACHINECODE", "STARTDATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataPersonsell =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataPersonsell != null && _DataPersonsell.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataPersonsell.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataPersonsell.Min(p => p.STARTDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataPersonsell.Max(p => p.STARTDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT PERSONSELL_ID,SERVERPARTCODE,
SHOPCODE,MACHINECODE,STARTDATE
FROM HIGHWAY_EXCHANGE.T_PERSONSELL
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
STARTDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.HIGHWAY.PERSONSELL _PERSONSELL in _DataPersonsell)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" PERSONSELL_ID = {_PERSONSELL.PERSONSELL_ID} AND " +
$" STARTDATE = '{_PERSONSELL.STARTDATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_PERSONSELL.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_PERSONSELL.SHOPCODE}' AND " +
$" MACHINECODE = '{_PERSONSELL.MACHINECODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_PERSONSELL);
continue;
}
}
//需更新的集合
_InsertList.Add(_PERSONSELL);
}
if (_InsertList.Count + _UpdateList.Count == _DataPersonsell.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_PERSONSELL");
}
if (_UpdateList.Count > 0)
{
try
{
OperationDataHelper.UpdateTableData(
_OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_PERSONSELL",
new string[] { "PERSONSELL_ID", "SERVERPARTCODE", "SHOPCODE",
"MACHINECODE", "STARTDATE" });
}
catch (Exception)
{
strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
break;
}
}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_COMMODITYSALE":
#region HIGHWAY_EXCHANGE.T_COMMODITYSALE 单品报表【旧】
//必填项
_RequiredDatas = new string[] { "COMMODITYSALE_ID", "STARTDATE",
"ENDDATE", "SERVERPARTCODE", "SHOPCODE" ,"COMMODITY_CODE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataCommoditysale =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataCommoditysale != null && _DataCommoditysale.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataCommoditysale.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataCommoditysale.Min(p => p.ENDDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataCommoditysale.Max(p => p.ENDDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT COMMODITYSALE_ID,STARTDATE,ENDDATE,
SERVERPARTCODE,SHOPCODE,MACHINECODE,COMMODITY_CODE
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
ENDDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.HIGHWAY.COMMODITYSALE _COMMODITYSALE in _DataCommoditysale)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" STARTDATE = '{_COMMODITYSALE.STARTDATE.ToString()}' AND " +
$" ENDDATE = '{_COMMODITYSALE.ENDDATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_COMMODITYSALE.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_COMMODITYSALE.SHOPCODE}' AND " +
$" COMMODITY_CODE = '{_COMMODITYSALE.COMMODITY_CODE}' AND " +
$" COMMODITYSALE_ID = {_COMMODITYSALE.COMMODITYSALE_ID}");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_COMMODITYSALE);
continue;
}
}
//需更新的集合
_InsertList.Add(_COMMODITYSALE);
}
if (_InsertList.Count + _UpdateList.Count == _DataCommoditysale.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_COMMODITYSALE");
}
//if (_UpdateList.Count > 0)
//{
// try
// {
// OperationDataHelper.UpdateTableData(
// _OracleHelper, _UpdateList, "HIGHWAY_EXCHANGE.T_COMMODITYSALE",
// new string[] { "STARTDATE", "ENDDATE", "SERVERPARTCODE", "SHOPCODE", "COMMODITY_CODE" });
// }
// catch (Exception)
// {
// strBack = "{\"error\": 2 ,\"msg\": \"添加成功,更新失败!\",\"rows\":" +
// JsonHelper.ListToJson(_UpdateList, "rows", false) + "}";
// break;
// }
//}
//添加、更新成功无需传递任何参数。
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_TRANSFER_SALE":
#region HIGHWAY_EXCHANGE.T_TRANSFER_SALE 单品数据集合
//必填项
_RequiredDatas = new string[] { "TRANSFER_ID", "SERVERPARTCODE", "TRANSFER_FIRSTDATAS" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataTransfer_sale =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataTransfer_sale != null && _DataTransfer_sale.Count > 0)
{
var _MinDate = _DataTransfer_sale.Min(p => p.ENDDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataTransfer_sale.Max(p => p.ENDDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
string.Format(@"SELECT TRANSFER_ID,SERVERPARTCODE,
SHOPCODE,STARTDATE,ENDDATE,TRANSFER_FIRSTDATAS
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE
WHERE SERVERPARTCODE = '{0}' AND ENDDATE BETWEEN
TO_DATE('{1}','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS')",
codes[0], _MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss"),
_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss"))).Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.TRANSFER_SALE _TRANSFER_SALE in _DataTransfer_sale)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" TRANSFER_ID = {_TRANSFER_SALE.TRANSFER_ID} AND " +
$" SERVERPARTCODE = '{_TRANSFER_SALE.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_TRANSFER_SALE.SHOPCODE}' AND " +
$" ENDDATE = '{_TRANSFER_SALE.ENDDATE}' AND " +
$" TRANSFER_FIRSTDATAS = '{_TRANSFER_SALE.TRANSFER_FIRSTDATAS}' ");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_TRANSFER_SALE);
continue;
}
}
//需更新的集合
_InsertList.Add(_TRANSFER_SALE);
}
if (_InsertList.Count + _UpdateList.Count == _DataTransfer_sale.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_TRANSFER_SALE");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_EXCEPTION":
#region HIGHWAY_EXCHANGE.T_EXCEPTION 异常稽核数据表【旧】
//必填项
_RequiredDatas = new string[] { "EXCEPTION_ID", "EXCEPTION_DATE",
"SERVERPARTCODE", "SHOPCODE", "MACHINECODE", "EXCEPTIONTYPE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataException = JsonHelper.JSONStringToListUTC(jsonString);
if (_DataException != null && _DataException.Count > 0)
{
var _MinDate = _DataException.Min(p => p.EXCEPTION_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataException.Max(p => p.EXCEPTION_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.MinValue)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT EXCEPTION_ID,EXCEPTION_DATE,SERVERPARTCODE,
SHOPCODE,MACHINECODE,EXCEPTIONTYPE
FROM HIGHWAY_EXCHANGE.T_EXCEPTION
WHERE SERVERPARTCODE = '{codes[0]}' AND EXCEPTION_DATE BETWEEN
TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.EXCEPTION _EXCEPTION in _DataException)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" EXCEPTION_ID = {_EXCEPTION.EXCEPTION_ID} AND " +
$" EXCEPTION_DATE = '{_EXCEPTION.EXCEPTION_DATE.ToString()}' AND " +
$" SERVERPARTCODE = '{_EXCEPTION.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_EXCEPTION.SHOPCODE}' AND " +
$" MACHINECODE = '{_EXCEPTION.MACHINECODE}' AND " +
$" EXCEPTIONTYPE = '{_EXCEPTION.EXCEPTIONTYPE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_EXCEPTION);
continue;
}
}
//需更新的集合
_InsertList.Add(_EXCEPTION);
}
if (_InsertList.Count + _UpdateList.Count == _DataException.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_EXCEPTION");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_ABNORMALITY":
#region HIGHWAY_EXCHANGE.T_ABNORMALITY 异常操作记录主表
//必填项
_RequiredDatas = new string[] { "ABNORMALITY_CODE", "SERVERPART_CODE", "SHOPCODE",
"ABNORMALITY_TIME", "ABNORMALITY_TYPE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataAbnormality =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataAbnormality != null && _DataAbnormality.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataAbnormality.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataAbnormality.Min(p => p.ABNORMALITY_TIME);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataAbnormality.Max(p => p.ABNORMALITY_TIME);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ABNORMALITY_CODE
FROM HIGHWAY_EXCHANGE.T_ABNORMALITY
WHERE SERVERPART_CODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
ABNORMALITY_TIME BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.ABNORMALITY _ABNORMALITY in _DataAbnormality)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ABNORMALITY_CODE = '{_ABNORMALITY.ABNORMALITY_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_ABNORMALITY);
continue;
}
}
//需更新的集合
_InsertList.Add(_ABNORMALITY);
}
if (_InsertList.Count + _UpdateList.Count == _DataAbnormality.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_ABNORMALITY", true,
"ABNORMALITY_ID", "HIGHWAY_EXCHANGE.SEQ_ABNORMALITY.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_ABNORMALITYDETAIL":
#region HIGHWAY_EXCHANGE.T_ABNORMALITYDETAIL 异常操作稽核统计表
//必填项
_RequiredDatas = new string[] { "ABNORMALITYDETIL_CODE", "ABNORMALITY_CODE",
"COMMODITY_CODE", "COMMODITY_BARCODE", "OPERATEDATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataAbnormalityDetail =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataAbnormalityDetail != null && _DataAbnormalityDetail.Count > 0)
{
var _MinDate = _DataAbnormalityDetail.Min(p => p.OPERATEDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataAbnormalityDetail.Max(p => p.OPERATEDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ABNORMALITYDETIL_CODE
FROM HIGHWAY_EXCHANGE.T_ABNORMALITYDETAIL
WHERE ABNORMALITYDETIL_CODE LIKE '{codes[0] + codes[1] + "%"}' AND
OPERATEDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.ABNORMALITYDETAIL _ABNORMALITYDETAIL in _DataAbnormalityDetail)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ABNORMALITYDETIL_CODE = '{_ABNORMALITYDETAIL.ABNORMALITYDETIL_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_ABNORMALITYDETAIL);
continue;
}
}
//需更新的集合
_InsertList.Add(_ABNORMALITYDETAIL);
}
if (_InsertList.Count + _UpdateList.Count == _DataAbnormalityDetail.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_ABNORMALITYDETAIL", true,
"ABNORMALITYDETIL_ID", "HIGHWAY_EXCHANGE.SEQ_ABNORMALITYDETAIL.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_ABNOEMALITYANALYSIS":
#region HIGHWAY_EXCHANGE.T_ABNOEMALITYANALYSIS 异常操作稽核统计表
//必填项
_RequiredDatas = new string[] { "ABNOEMALITYANALYSIS_CODE", "SERVERPART_CODE",
"SHOPCODE", "ENDACCOUNT_START", "ENDACCOUNT_END", "ABNOEMALITY_TYPE",
"OPERATEDATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataAbnoemalityAnalysis =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataAbnoemalityAnalysis != null && _DataAbnoemalityAnalysis.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataAbnoemalityAnalysis.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataAbnoemalityAnalysis.Min(p => p.OPERATEDATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataAbnoemalityAnalysis.Max(p => p.OPERATEDATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ABNOEMALITYANALYSIS_CODE
FROM HIGHWAY_EXCHANGE.T_ABNOEMALITYANALYSIS
WHERE SERVERPART_CODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
OPERATEDATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.ABNOEMALITYANALYSIS _ABNOEMALITYANALYSIS in _DataAbnoemalityAnalysis)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" ABNOEMALITYANALYSIS_CODE = '{_ABNOEMALITYANALYSIS.ABNOEMALITYANALYSIS_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_ABNOEMALITYANALYSIS);
continue;
}
}
//需更新的集合
_InsertList.Add(_ABNOEMALITYANALYSIS);
}
if (_InsertList.Count + _UpdateList.Count == _DataAbnoemalityAnalysis.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_ABNOEMALITYANALYSIS", true,
"ABNOEMALITYANALYSIS_ID", "HIGHWAY_EXCHANGE.SEQ_ABNOEMALITYANALYSIS.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_CUSTOMERINFO":
#region HIGHWAY_EXCHANGE.T_CUSTOMERINFO 客群分析数据表
//必填项
_RequiredDatas = new string[] { "SELLMASTER_CODE", "SERVERPARTCODE", "ACQUISITION_TIME" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataCustomerinfo =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataCustomerinfo != null && _DataCustomerinfo.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataCustomerinfo.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataCustomerinfo.Min(p => p.ACQUISITION_TIME);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataCustomerinfo.Max(p => p.ACQUISITION_TIME);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SELLMASTER_CODE,ACQUISITION_TIME,
SERVERPARTCODE,SHOPCODE,MACHINECODE
FROM HIGHWAY_EXCHANGE.T_CUSTOMERINFO
WHERE SERVERPARTCODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
MACHINECODE = '{codes[3]}' AND ACQUISITION_TIME BETWEEN
TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.CUSTOMERINFO _CUSTOMERINFO in _DataCustomerinfo)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" SELLMASTER_CODE = '{_CUSTOMERINFO.SELLMASTER_CODE}' AND " +
$" ACQUISITION_TIME = '{_CUSTOMERINFO.ACQUISITION_TIME.ToString()}' AND " +
$" SERVERPARTCODE = '{_CUSTOMERINFO.SERVERPARTCODE}' AND " +
$" SHOPCODE = '{_CUSTOMERINFO.SHOPCODE}' AND " +
$" MACHINECODE = '{_CUSTOMERINFO.MACHINECODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_CUSTOMERINFO);
continue;
}
}
//需更新的集合
_InsertList.Add(_CUSTOMERINFO);
}
if (_InsertList.Count + _UpdateList.Count == _DataCustomerinfo.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData_OracleParameter(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_CUSTOMERINFO");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_CUSTOMERANALYSIS":
#region HIGHWAY_EXCHANGE.T_CUSTOMERANALYSIS 客单时段统计表
//必填项
_RequiredDatas = new string[] { "CUSTOMERANALYSIS_CODE", "SERVERPART_CODE",
"SHOPCODE", "BUSINESSTYPE", "CUSTOMERANALYSIS_DATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataCustomerAnalysis =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataCustomerAnalysis != null && _DataCustomerAnalysis.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataCustomerAnalysis.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataCustomerAnalysis.Min(p => p.CUSTOMERANALYSIS_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataCustomerAnalysis.Max(p => p.CUSTOMERANALYSIS_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT CUSTOMERANALYSIS_CODE
FROM HIGHWAY_EXCHANGE.T_CUSTOMERANALYSIS
WHERE SERVERPART_CODE = '{codes[0]}' AND SHOPCODE = ({_strShopCode}) AND
CUSTOMERANALYSIS_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.CUSTOMERANALYSIS _CUSTOMERANALYSIS in _DataCustomerAnalysis)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" CUSTOMERANALYSIS_CODE = '{_CUSTOMERANALYSIS.CUSTOMERANALYSIS_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_CUSTOMERANALYSIS);
continue;
}
}
//需更新的集合
_InsertList.Add(_CUSTOMERANALYSIS);
}
if (_InsertList.Count + _UpdateList.Count == _DataCustomerAnalysis.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_CUSTOMERANALYSIS", true,
"CUSTOMERANALYSIS_ID", "HIGHWAY_EXCHANGE.SEQ_CUSTOMERANALYSIS.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_SALESANALYSIS":
#region HIGHWAY_EXCHANGE.T_SALESANALYSIS 客单区段统计表
//必填项
_RequiredDatas = new string[] { "SALESANALYSIS_CODE", "SERVERPART_CODE",
"SHOPCODE", "SALESANALYSIS_DATE", "SALEAMOUNT_START", "SALEAMOUNT_END" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataSalesAnalysis =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataSalesAnalysis != null && _DataSalesAnalysis.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataSalesAnalysis.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataSalesAnalysis.Min(p => p.SALESANALYSIS_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataSalesAnalysis.Max(p => p.SALESANALYSIS_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SALESANALYSIS_CODE
FROM HIGHWAY_EXCHANGE.T_SALESANALYSIS
WHERE SERVERPART_CODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
SALESANALYSIS_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.SALESANALYSIS _SALESANALYSIS in _DataSalesAnalysis)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" SALESANALYSIS_CODE = '{_SALESANALYSIS.SALESANALYSIS_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_SALESANALYSIS);
continue;
}
}
//需更新的集合
_InsertList.Add(_SALESANALYSIS);
}
if (_InsertList.Count + _UpdateList.Count == _DataSalesAnalysis.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_SALESANALYSIS", true,
"SALESANALYSIS_ID", "HIGHWAY_EXCHANGE.SEQ_SALESANALYSIS.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_COMMODITYANALYSIS":
#region HIGHWAY_EXCHANGE.T_COMMODITYANALYSIS 推荐单品统计表
//必填项
_RequiredDatas = new string[] { "COMMODITYANALYSIS_CODE", "SERVERPART_CODE",
"BUSINESSTYPE","SHOPCODE", "COMMODITY_CODE", "COMMODITYANALYSIS_DATE" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataCommodityAnalysis =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataCommodityAnalysis != null && _DataCommodityAnalysis.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataCommodityAnalysis.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataCommodityAnalysis.Min(p => p.COMMODITYANALYSIS_DATE);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataCommodityAnalysis.Max(p => p.COMMODITYANALYSIS_DATE);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT COMMODITYANALYSIS_CODE
FROM HIGHWAY_EXCHANGE.T_COMMODITYANALYSIS
WHERE SERVERPART_CODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
COMMODITYANALYSIS_DATE BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.COMMODITYANALYSIS _COMMODITYANALYSIS in _DataCommodityAnalysis)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" COMMODITYANALYSIS_CODE = '{_COMMODITYANALYSIS.COMMODITYANALYSIS_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_COMMODITYANALYSIS);
continue;
}
}
//需更新的集合
_InsertList.Add(_COMMODITYANALYSIS);
}
if (_InsertList.Count + _UpdateList.Count == _DataCommodityAnalysis.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_COMMODITYANALYSIS", true,
"COMMODITYANALYSIS_ID", "HIGHWAY_EXCHANGE.SEQ_COMMODITYANALYSIS.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
case "HIGHWAY_EXCHANGE.T_SALESINTERVALANALYSIS":
#region HIGHWAY_EXCHANGE.T_SALESINTERVALANALYSIS 客单时段统计表
//必填项
_RequiredDatas = new string[] { "SALESINTERVALANALYSIS_CODE", "SERVERPART_CODE",
"SHOPCODE", "DATE_START", "DATE_END","AMOUNT_START", "AMOUNT_END" };
_ISCheckData = ISCheckData(jsonString, _RequiredDatas);
if (_ISCheckData != null)
{
strBack = _ISCheckData;
break;
}
List _DataSalesIntervalAnalysis =
JsonHelper.JSONStringToListUTC(jsonString);
if (_DataSalesIntervalAnalysis != null && _DataSalesIntervalAnalysis.Count > 0)
{
string _strShopCode = "";
var _ShopCodeList = _DataSalesIntervalAnalysis.Select(p => p.SHOPCODE).Distinct().ToArray();
foreach (var _ShopCodeTemp in _ShopCodeList)
{
_strShopCode += (string.IsNullOrWhiteSpace(_strShopCode) ? "'" : ",'") + _ShopCodeTemp.Trim() + "'";
}
var _MinDate = _DataSalesIntervalAnalysis.Min(p => p.DATE_END);
if (_MinDate == null || _MinDate.Value == DateTime.MinValue)
{
_MinDate = DateTime.Now;
}
var _MaxDate = _DataSalesIntervalAnalysis.Max(p => p.DATE_END);
if (_MaxDate == null || _MaxDate.Value == DateTime.Now)
{
_MaxDate = DateTime.Now;
}
//该服务区所有数据
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT SALESINTERVALANALYSIS_CODE
FROM HIGHWAY_EXCHANGE.T_SALESINTERVALANALYSIS
WHERE SERVERPART_CODE = '{codes[0]}' AND SHOPCODE IN ({_strShopCode}) AND
DATE_END BETWEEN TO_DATE('{_MinDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_MaxDate.Value.ToString("yyyy/MM/dd HH:mm:ss")}','YYYY/MM/DD HH24:MI:SS')").Tables[0];
List _InsertList = new List();//需插入的集合
List _UpdateList = new List();//需更新的集合
DataRow[] _DataRows = null; //临时DataRow数组
foreach (Model.EXCHANGE.SALESINTERVALANALYSIS _SALESINTERVALANALYSIS in _DataSalesIntervalAnalysis)
{
if (_DataTable != null && _DataTable.Rows.Count > 0)
{
_DataRows = _DataTable.Select(
$" SALESINTERVALANALYSIS_CODE = '{_SALESINTERVALANALYSIS.SALESINTERVALANALYSIS_CODE}'");
if (_DataRows != null && _DataRows.Length > 0)
{
//记录已存在、需更新的数据
_UpdateList.Add(_SALESINTERVALANALYSIS);
continue;
}
}
//需更新的集合
_InsertList.Add(_SALESINTERVALANALYSIS);
}
if (_InsertList.Count + _UpdateList.Count == _DataSalesIntervalAnalysis.Count)
{
if (_InsertList.Count > 0)
{
OperationDataHelper.InsertTableData(
_OracleHelper, _InsertList, "HIGHWAY_EXCHANGE.T_SALESINTERVALANALYSIS", true,
"SALESINTERVALANALYSIS_ID", "HIGHWAY_EXCHANGE.SEQ_SALESINTERVALANALYSIS.NEXTVAL");
}
strBack = "{\"error\": 1 ,\"msg\": \"添加成功!\",\"rows\":[]}";
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:数据分割失败!\",\"rows\":[]}";
}
}
else
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
#endregion
break;
break;
default:
strBack = "{\"error\": -1 ,\"msg\": \"数据上传表类型不正确\",\"rows\":[]}";
break;
}
}
catch (Exception ex)
{
strBack = "{\"error\": -1 ,\"msg\": \"添加失败:" + ex.Message + "\",\"rows\":[]}";
}
return strBack;
}
#endregion
#region 方法 -> 检查必要参数
///
/// 检查必要参数
///
///
///
///
private static string ISCheckData(string jsonString, string[] _RequiredDatas, int maxDataQuantity = 4)
{
if (!string.IsNullOrEmpty(jsonString))
{
JArray _JsonArray = JArray.Parse(jsonString);
if (_JsonArray.Count > maxDataQuantity * 100)
{
return "{\"error\": -1 ,\"msg\": \"添加失败:json数据包不可超过400条数据\",\"rows\":[]}";
}
for (int i = 0; i < _JsonArray.Count; i++)
{
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
foreach (string _RequiredData in _RequiredDatas)
{
if ((_Json.Property(_RequiredData.ToUpper()) == null && _Json.Property(_RequiredData.ToLower()) == null) ||
(_Json.Property(_RequiredData.ToUpper()) != null && _Json.Property(_RequiredData.ToUpper()).Value.ToString() == "") ||
(_Json.Property(_RequiredData.ToLower()) != null && _Json.Property(_RequiredData.ToLower()).Value.ToString() == ""))
{
return "{\"error\": -1 ,\"msg\": \"添加失败:第" + (i + 1) +
"组数据中,JSON缺少必要参数:" + _RequiredData + "\",\"rows\":[]}";
}
}
}
return null;
}
else
{
return "{\"error\": -1 ,\"msg\": \"添加失败:JSON参数解析异常!\",\"rows\":[]}";
}
}
#endregion
}
}