using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TransmissionClient
{
public class DataBaseUpdate
{
private readonly Transmission.SDK.OracleHelper OracleHelper;
public DataBaseUpdate(Transmission.SDK.OracleHelper oracleHelper)
{
OracleHelper = oracleHelper;
}
#region 方法 -> 数据库表新增
public bool CreateTable(string tableName)
{
try
{
switch (tableName.ToUpper())
{
case "T_SELLDATA_EXTRA_HIS"://移动支付交易记录历史表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA_HIS
(SELLDATA_ID NUMBER(9,0) NOT NULL,SELLDATA_TYPE VARCHAR2(50),
SELLDATA_DATE TIMESTAMP(7),SERVERPARTCODE VARCHAR2(10),
SHOPCODE VARCHAR2(6),MACHINECODE VARCHAR2(6),
TICKETCODE VARCHAR2(50),WORKERCODE VARCHAR2(6),
COMMODITY_CODE VARCHAR2(4000),SELLCOUNT NUMBER(16,2),
SELLPRICE NUMBER(16,2),OFFPRICE NUMBER(16,2),FACTAMOUNT NUMBER(16,2),
LINENUM NUMBER(9,0) DEFAULT 1 NOT NULL,FLAG NUMBER(1,0) DEFAULT 0,
SELLDATA_EXTRA_DESC VARCHAR2(2000),TRANSFER_STATE NUMBER(4,0))");
break;
case "T_UPEXCEPTION"://收银异常稽核数据上传配置表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_UPEXCEPTION
(UPEXCEPTION_ID NUMBER(9,0) NOT NULL,SERVERPARTCODE VARCHAR2(20),
SERVERPARTNAME VARCHAR2(200),SHOPCODE VARCHAR2(20),
SHOPNAME VARCHAR2(200),BUSINESSTYPE VARCHAR2(200),
EXCEPTIONTYPE VARCHAR2(50),EXCEPTIONTYPENAME VARCHAR2(100),
ISUPLOAD NUMBER(4,0) DEFAULT 1,UPEXCEPTION_DESC VARCHAR2(2000))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_UPEXCEPTION
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "TR_UPEXCEPTION"://收银异常稽核数据上传配置触发器
OracleHelper.ExecuteSqlTran(@"CREATE OR REPLACE TRIGGER HIGHWAY_EXCHANGE.TR_UPEXCEPTION
BEFORE INSERT
ON HIGHWAY_EXCHANGE.T_UPEXCEPTION
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN SELECT HIGHWAY_EXCHANGE.SEQ_UPEXCEPTION.NEXTVAL INTO :NEW.UPEXCEPTION_ID FROM DUAL; END;");
break;
case "T_BUSINESSCONFIG"://业态统一收银配置表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_BUSINESSCONFIG
( BUSINESSCONFIG_ID NUMBER(9, 0) NOT NULL,SERVERPARTCODE VARCHAR2(50),
SERVERPARTNAME VARCHAR2(200),BUSINESSTYPE VARCHAR2(50),
BUSINESSTYPENAME VARCHAR2(200),CONFIGURATION_NAME VARCHAR2(2000),
CONFIGURATION_VALUES VARCHAR2(2000),CONFIGURATION_DATE DATE,
BUSINESSCONFIG_DESC VARCHAR2(2000))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_BUSINESSCONFIG
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_SALESANALYSIS"://客单区段数据统计表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_SALESANALYSIS
( SALESANALYSIS_ID NUMBER(9,0) NOT NULL,SALESANALYSIS_CODE VARCHAR2(200),
PROVINCE_ID NUMBER(9,0),PROVINCE_CODE VARCHAR2(50),PROVINCE_NAME VARCHAR2(200),
SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(50),SERVERPART_NAME VARCHAR2(200),
BUSINESSTYPE VARCHAR2(50),SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(50),
SHOPNAME VARCHAR2(200),SALESANALYSIS_DATE DATE,SALESANALYSIS_TYPE NUMBER(8,0),
SALEAMOUNT_START NUMBER(16,6),SALEAMOUNT_END NUMBER(16,6),TICKET_COUNT NUMBER(16,6),
TOTAL_COUNT NUMBER(16,6),TOTAL_AMOUNT NUMBER(16,6),COMMODITY_COUNT NUMBER(16,6),
MALE_TICKET NUMBER(16,6),MALE_COUNT NUMBER(16,6),MALE_AMOUNT NUMBER(16,6),
FEMALE_TICKET NUMBER(16,6),FEMALE_COUNT NUMBER(16,6),FEMALE_AMOUNT NUMBER(16,6),
SALESANALYSIS_DESC VARCHAR2(2000),TRANSFER_STATE NUMBER(4,0))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_SALESANALYSIS
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_COMMODITYANALYSIS"://爆款/推荐商品统计表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_COMMODITYANALYSIS
( COMMODITYANALYSIS_ID NUMBER(9,0) NOT NULL,COMMODITYANALYSIS_CODE VARCHAR2(200),
PROVINCE_ID NUMBER(9,0),PROVINCE_CODE VARCHAR2(50),PROVINCE_NAME VARCHAR2(200),
SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(50),SERVERPART_NAME VARCHAR2(200),
BUSINESSTYPE VARCHAR2(50),SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(50),
SHOPNAME VARCHAR2(200),COMMODITY_CODE VARCHAR2(50),COMMODITY_BARCODE VARCHAR2(50),
COMMODITY_NAME VARCHAR2(200),COMMODITYANALYSIS_DATE DATE,AGE_START NUMBER(16,0),
AGE_END NUMBER(16,0),MALE_TICKET NUMBER(16,6),MALE_COUNT NUMBER(16,6),FEMALE_TICKET NUMBER(16,6),
FEMALE_COUNT NUMBER(16,6),TICKET_COUNT NUMBER(16,6),TOTAL_COUNT NUMBER(16,6),
TOTAL_AMOUNT NUMBER(16,6),COMMODITYANALYSIS_DESC VARCHAR2(2000),TRANSFER_STATE NUMBER(4,0))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_COMMODITYANALYSIS
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_CUSTOMERANALYSIS"://客群消费区段统计表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_CUSTOMERANALYSIS
( CUSTOMERANALYSIS_ID NUMBER(9,0) NOT NULL,CUSTOMERANALYSIS_CODE VARCHAR2(200),
PROVINCE_ID NUMBER(9,0),PROVINCE_CODE VARCHAR2(50),PROVINCE_NAME VARCHAR2(200),
SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(50),SERVERPART_NAME VARCHAR2(200),
BUSINESSTYPE VARCHAR2(50),SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(50),
SHOPNAME VARCHAR2(200),CUSTOMERANALYSIS_DATE DATE,AGE_START NUMBER(16,0),
AGE_END NUMBER(16,0),AMOUNT_START NUMBER(16,6),AMOUNT_END NUMBER(16,6),
TICKET_COUNT NUMBER(16,6),TOTAL_COUNT NUMBER(16,6),TOTAL_AMOUNT NUMBER(16,6),
MALE_AMOUNT NUMBER(16,6),MALE_COUNT NUMBER(16,6),FEMALE_AMOUNT NUMBER(16,6),
FEMALE_COUNT NUMBER(16,6),CUSTOMERANALYSIS_DESC VARCHAR2(2000),TRANSFER_STATE NUMBER(4,0))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_CUSTOMERANALYSIS
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_SALESINTERVALANALYSIS"://客单时段区段消费统计表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_SALESINTERVALANALYSIS
( SALESINTERVALANALYSIS_ID NUMBER(9,0) NOT NULL,SALESINTERVALANALYSIS_CODE VARCHAR2(200),
PROVINCE_ID NUMBER(9,0),PROVINCE_CODE VARCHAR2(50),PROVINCE_NAME VARCHAR2(200),
SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(50),SERVERPART_NAME VARCHAR2(200),
BUSINESSTYPE VARCHAR2(50),SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(50),
SHOPNAME VARCHAR2(200),DATE_START DATE,DATE_END DATE,AMOUNT_START NUMBER(16,6),
AMOUNT_END NUMBER(16,6),TICKET_COUNT NUMBER(16,6),TOTAL_AMOUNT NUMBER(16,6),
TOTAL_COUNT NUMBER(16,6),AGE_START NUMBER(16,0),AGE_END NUMBER(16,0),AGE_TICKET NUMBER(16,6),
AGE_COUNT NUMBER(16,6),AGE_AMOUNT NUMBER(16,6),MALE_TICKET NUMBER(16,6),MALE_COUNT NUMBER(16,6),
MALE_AMOUNT NUMBER(16,6),FEMALE_TICKET NUMBER(16,6),FEMALE_COUNT NUMBER(16,6),
FEMALE_AMOUNT NUMBER(16,6),SALESINTERVALANALYSIS_DESC VARCHAR2(2000),TRANSFER_STATE NUMBER(4,0))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_SALESINTERVALANALYSIS
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_COMMODITYANALYSISSET"://客单时段区段消费统计配置表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_COMMODITYANALYSISSET
( COMMODITYANALYSISSET_ID NUMBER(9,0) NOT NULL,PROVINCE_ID NUMBER(9,0),
PROVINCE_CODE VARCHAR2(50),PROVINCE_NAME VARCHAR2(200),SERVERPART_ID NUMBER(9,0),
SERVERPART_CODE VARCHAR2(50),SERVERPART_NAME VARCHAR2(200),BUSINESSTYPE VARCHAR2(50),
COMMODITY_CODE VARCHAR2(50),COMMODITY_BARCODE VARCHAR2(50),COMMODITY_NAME VARCHAR2(200),
COMMODITYANALYSISSET_DATE DATE,COMMODITYANALYSISSET_DESC VARCHAR2(2000))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_COMMODITYANALYSISSET
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_ABNORMALITY"://异常操作稽核记录主表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_ABNORMALITY
( ABNORMALITY_ID NUMBER(9,0) NOT NULL,ABNORMALITY_CODE VARCHAR2(100),
ABNORMALITY_PCODE VARCHAR2(100),PROVINCE_ID NUMBER(9,0),PROVINCE_CODE VARCHAR2(20),
PROVINCE_NAME VARCHAR2(50),SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(10),
SERVERPART_NAME VARCHAR2(50),BUSINESSTYPE VARCHAR2(20),BUSINESS_NAME VARCHAR2(50),
SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(20),SHOPNAME VARCHAR2(50),
MACHINECODE VARCHAR2(10),MANAGER_CODE VARCHAR2(10),SELLWORK_CODE VARCHAR2(10),
ABNORMALITY_TIME DATE,ABNORMALITY_START DATE,ABNORMALITY_TYPE NUMBER(9,0),
SERIAL_CODE VARCHAR2(10),COMMODITY_ROWCOUNT NUMBER(16,6),COMMOTITY_COUNT NUMBER(16,6),
TOTALAMOUNT NUMBER(16,6),ACTUALAMOUNT NUMBER(16,6),ABNORMALITY_DESC VARCHAR2(2000),
TRANSFER_STATE NUMBER(4,0),APPROVE_STAFF VARCHAR2(100),APPROVE_INFO VARCHAR2(2000),
APPROVE_DATE DATE,LOGGUID VARCHAR2(100))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_ABNORMALITY
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_ABNORMALITYDETAIL"://异常操作稽核记录详情表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_ABNORMALITYDETAIL
( ABNORMALITYDETIL_ID NUMBER(9,0) NOT NULL,ABNORMALITYDETIL_CODE VARCHAR2(100),
ABNORMALITY_CODE VARCHAR2(100),COMMODITY_CODE VARCHAR2(10),COMMODITY_BARCODE VARCHAR2(30),
COMMODITY_TYPE VARCHAR2(50),COMMODITY_NAME VARCHAR2(200),COMMODITY_COUNT NUMBER(16,6),
COMMODITY_PRICE NUMBER(16,6),TOTALDISCOUNT NUMBER(16,6),TOTALAMOUNT NUMBER(16,6),
LINENUM NUMBER(4,0),OPERATEDATE DATE,ABNORMALITYDETILS_DESC VARCHAR2(2000),
ABNORMALITY_STATE NUMBER(4,0),TRANSFER_STATE NUMBER(4,0))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_ABNORMALITYDETAIL
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_ABNOEMALITYANALYSIS"://异常操作稽核记录统计表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_ABNOEMALITYANALYSIS
( ABNOEMALITYANALYSIS_ID NUMBER(9,0) NOT NULL,ABNOEMALITYANALYSIS_CODE VARCHAR2(100),
PROVINCE_ID NUMBER(9,0),PROVINCE_CODE VARCHAR2(20),PROVINCE_NAME VARCHAR2(50),
SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(20),SERVERPART_NAME VARCHAR2(50),
BUSINESSTYPE VARCHAR2(20),BUSINESS_NAME VARCHAR2(50),SERVERPARTSHOP_ID NUMBER(9,0),
SHOPCODE VARCHAR2(20),SHOPNAME VARCHAR2(50),MACHINECODE VARCHAR2(20),OPERATEDATE DATE,
ENDACCOUNT_START DATE,ENDACCOUNT_END DATE,ABNOEMALITY_TYPE NUMBER(9,0),
ABNOEMALITY_COUNT NUMBER(16,6),ABNOEMALITY_TOTALCOUNT NUMBER(16,6),TICKETCOUNT NUMBER(16,6),
TOTALCOUNT NUMBER(16,6),ABNOEMALITYANALYSIS_DESC VARCHAR2(2000),TRANSFER_STATE NUMBER(4,0))");
OracleHelper.ExecuteSqlTran(@"CREATE SEQUENCE HIGHWAY_EXCHANGE.SEQ_ABNOEMALITYANALYSIS
INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER ");
break;
case "T_AUDITTASKS"://稽核任务计划表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_AUDITTASKS
(AUDITTASKS_ID NUMBER(9,0) NOT NULL,SERVERPART_ID NUMBER(9,0),SERVERPARTCODE VARCHAR2(10),
SERVERPART_NAME VARCHAR2(200),SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(6),
SHOPNAME VARCHAR2(50),BUSINESSTYPE VARCHAR2(200),BUSINESSTYPE_NAME VARCHAR2(50),
AUDITTASKS_STARTDATE DATE,AUDITTASKS_ENDDATE DATE,AUDITTASKS_DURATION NUMBER(9,2),
AUDITTASKS_COUNT NUMBER(9,0),AUDITTASKS_INTERVAL NUMBER(9,2),AUDITTASKS_ISVALID NUMBER(4,0),
AUDITTASKS_TYPE NUMBER(4,0),AUDITTASKS_FIRSTTIME NUMBER(4,0),AUDITTASKS_SECONDTIME NUMBER(4,0),
AUDITTASKS_THIRDTIME NUMBER(4,0),OPERATE_DATE DATE,STAFF_ID NUMBER(9,0),STAFF_NAME VARCHAR2(50),
AUDITTASKS_DESC VARCHAR2(2000),STRATTIME NUMBER(9,0),ENDTIME NUMBER(9,0),
CONSTRAINT PK_T_AUDITTASKS PRIMARY KEY (AUDITTASKS_ID) USING INDEX)");
break;
case "T_AUDITTASKSDETILS"://稽核任务明细表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_AUDITTASKSDETILS
(AUDITTASKSDETILS_ID NUMBER(9,0) NOT NULL,AUDITTASKS_ID NUMBER(9,0),
STRATTIME NUMBER(9,0),ENDTIME NUMBER(9,0),OPERATE_DATE DATE,
STAFF_ID NUMBER(9,0),STAFF_NAME VARCHAR2(200),AUDITTASKS_DESC VARCHAR2(2000))");
break;
case "T_COMPANYAUTHORIZE"://企业单位消费门店权限表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_COMPANYAUTHORIZE
(COMPANYAUTHORIZE_ID NUMBER(9,0) NOT NULL,COMPANY_ID NUMBER(9,0),
PROVINCE_CODE NUMBER(8,0),SERVERPART_ID NUMBER(9,0),SERVERPART_CODE VARCHAR2(50),
SERVERPART_NAME VARCHAR2(50),SERVERPARTSHOP_ID NUMBER(9,0),SHOPCODE VARCHAR2(50),
SHOPNAME VARCHAR2(50),STAFF_ID NUMBER(9,0),STAFF_NAME VARCHAR2(50),OPERATE_DATE DATE,
CONSTRAINT PK_T_COMPANYAUTHORIZE PRIMARY KEY (COMPANYAUTHORIZE_ID) USING INDEX)");
break;
case "T_COMMODITYEX_EX"://新业态商品信息表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_COMMODITYEX_EX
(COMMODITY_ID NUMBER(9, 0) NOT NULL,SERVERPARTCODE VARCHAR2(10),
COMMODITY_TYPECODE VARCHAR2(50),COMMODITY_TYPENAME VARCHAR2(50),
COMMODITY_CODE VARCHAR2(20),COMMODITY_BARCODE VARCHAR2(30),
COMMODITY_NAME VARCHAR2(200),COMMODITY_EN VARCHAR2(20),
COMMODITY_RULE VARCHAR2(50),COMMODITY_UNIT VARCHAR2(100),
COMMODITY_RETAILPRICE NUMBER(16, 2),COMMODITY_MEMBERPRICE NUMBER(16, 2),
CANCHANGEPRICE NUMBER(1, 0),METERINGMETHOD NUMBER(1, 0),
BUSINESSTYPE NUMBER(6, 0),GUARANTEE_DAY NUMBER(9, 0),REMINDER_DAY NUMBER(9, 0),
COMMODITY_HOTKEY VARCHAR2(10),USERDEFINEDTYPE_ID NUMBER(9, 0),
PRINT_DATE TIMESTAMP(7),CONTAINER_CODE VARCHAR2(2000),
COMMODITY_SYMBOL VARCHAR2(200),COMMODITY_STATE NUMBER(1, 0),
COMMODITY_DESC VARCHAR2(2000),OPERATE_DATE TIMESTAMP(7),
TRANSFER_STATE NUMBER(4, 0),DATA_SOURCE NUMBER(1, 0),
CONSTRAINT UK_COMMODITYEX_EX UNIQUE(SERVERPARTCODE,COMMODITY_BARCODE,BUSINESSTYPE) USING INDEX)");
break;
case "T_SALESPROMOTE_EX"://新促销活动信息表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_SALESPROMOTE_EX
(SALESPROMOTE_EX_ID NUMBER(9,0) NOT NULL,PROMOTION_ID NUMBER(9,0),
RTMEMBERSHIP_ID NUMBER(9,0),SERVERPARTCODE VARCHAR2(10),SHOPCODE VARCHAR2(6),
MACHINECODE VARCHAR2(6),SALESPROMOTE_STARTDATE DATE,SALESPROMOTE_ENDDATE DATE,
SALESPROMOTE_TYPE NUMBER(8,0),SALESPROMOTE_NAME VARCHAR2(2000),
THRESHOLD_AMOUNT NUMBER(16,2),DISCOUNT_RATE NUMBER(16,2),COMMODITY_CODE VARCHAR2(2000),
CONDITION_SKU VARCHAR2(2000),SALESPROMOTE_VIP NUMBER(4,0),SALESPROMOTE_STATE NUMBER(4,0),
TICKET_PREFIX VARCHAR2(50),SALESPROMOTE_DATE DATE,SALESPROMOTE_DESC VARCHAR2(2000))");
break;
case "T_SELLWORKER_EX"://新收银员工号表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_SELLWORKER_EX
(
SELLWORKER_EX_ID NUMBER(9,0) NOT NULL,
SERVERPARTCODE VARCHAR2(10),
SELLWORKERCODE VARCHAR2(10),
SELLWORKERNAME VARCHAR2(20),
PROWERRIGHT VARCHAR2(255),
SHOPCODE VARCHAR2(6),
DOWNLOADDATE DATE,
FLAG NUMBER(1,0) DEFAULT 0,
VALID NUMBER(1,0),
SELLWORKERPASSWORD VARCHAR2(20),
DISCOUNT_RATE NUMBER(4,2),
DATA_SOURCE NUMBER(1,0),
CONSTRAINT UK_T_SELLWORKER_EX UNIQUE (SERVERPARTCODE, SELLWORKERCODE) USING INDEX)");
break;
case "T_SHOPMESSAGE_EX"://新门店信息表
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_SHOPMESSAGE_EX
(
SHOPMESSAGE_EX_ID NUMBER(9,0),
SERVERPARTSHOP_ID NUMBER(9,0) NOT NULL,
SERVERPART_CODE VARCHAR2(10),
SHOPCODE VARCHAR2(6),
SHOPNAME VARCHAR2(50),
BUSINESSTYPE VARCHAR2(200),
BUSINESSTYPE_NAME VARCHAR2(500),
UNIFORM_TYPE NUMBER(8,0) DEFAULT 1,
SERVERPARTSHOP_STATE NUMBER(8,0),
DOWNLOADDATE DATE,
SHOPMESSAGE_EX_DESC VARCHAR2(2000),
CONSTRAINT PK_T_SHOPMESSAGE_EX PRIMARY KEY (SERVERPARTSHOP_ID) USING INDEX)");
break;
case "T_PROMOTION"://促销活动信息新表-2021.04
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_PROMOTION
(
PROMOTION_ID NUMBER(9,0) NOT NULL,
SERVERPARTCODE VARCHAR2(10),
SHOPCODE VARCHAR2(10),
PROMOTION_STARTDATE DATE,
PROMOTION_ENDDATE DATE,
PROMOTION_TYPE NUMBER(4,0),
PROMOTION_NAME VARCHAR2(2000),
TICKET_PREFIX VARCHAR2(50),
COMMODITY_MAIN VARCHAR2(2000),
COMMODITY_MAINAMOUNT VARCHAR2(2000),
COMMODITY_AUXILIARY VARCHAR2(2000),
COMMODITY_AUXILIARYAMOUNT VARCHAR2(2000),
PROMOTION_EXPLAIN VARCHAR2(2000),
PROMOTION_STATE NUMBER(4,0),
PROMOTION_DATE DATE,
PROMOTION_DESC VARCHAR2(2000),
CONSTRAINT UK_T_PROMOTION UNIQUE (PROMOTION_ID, SERVERPARTCODE, SHOPCODE) USING INDEX)");
break;
case "T_PROMOTIONRECORD"://促销流水记录新表-2021.04
OracleHelper.ExecuteSqlTran(@"CREATE TABLE HIGHWAY_EXCHANGE.T_PROMOTIONRECORD
(
PROMOTIONRECORD_ID NUMBER(9,0) NOT NULL,
PROMOTIONRECORD_CODE VARCHAR2(100),
PROMOTION_ID NUMBER(9,0),
PROMOTION_NAME VARCHAR2(2000),
SERVERPARTCODE VARCHAR2(10),
SHOPCODE VARCHAR2(10),
MACHINECODE VARCHAR2(10),
PROMOTIONRECORD_DATE DATE,
PROMOTIONRECORD_COMMODITY VARCHAR2(2000),
PROMOTIONRECORD_COUNT NUMBER(16,6),
PROMOTIONRECORD_AMOUNT NUMBER(16,6),
PROMOTIONRECORD_OFFAMOUNT NUMBER(16,6),
PROMOTIONRECORD_DESC VARCHAR2(2000),
TRANSFER_STATE NUMBER(4,0)
)");
break;
}
return true;
}
catch(Exception ex)
{
Transmission.SDK.LogHelper.WriteServiceLog($"表[{tableName}]创建失败:{ex.Message}");
return false;
}
}
#endregion
#region 方法 -> 数据库表字段检测
///
/// 表字段检测
///
///
///
public bool AlterTableColumn(string tableName)
{
List _TableColumnList = new List();
// HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW CASHIER_CODE,CASHIER_NAME
switch (tableName.ToUpper())
{
case "T_SHOPMESSAGE_EX":
#region 门店信息表
//是否接受统一定价管理(0:否;1:是)
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "UNIFORMMANAGE_TYPE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 1,
DATA_SCALE = 0
});
//是否上传稽核数据(0:否;1:是)
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "AUDIT_UPLOADSTATE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 1,
DATA_SCALE = 0
});
//是否上传营收数据(0:否;1:是)
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "REVENUE_UPLOADSTATE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 1,
DATA_SCALE = 0
});
//是否记录优惠折扣(0:不记异常稽核;1:记录异常稽核)
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "RECORD_DISCOUNT",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 1,
DATA_SCALE = 0
});
//销售数量上限(是否存在销售数量异常的条件)
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "SALECOUNT_LIMIT",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 9,
DATA_SCALE = 0
});
//销售金额上限(是否存在销售金额异常的条件)
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "SALEAMOUNT_LIMIT",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 9,
DATA_SCALE = 0
});
//业主单位内码
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "OWNERUNIT_ID",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 9,
DATA_SCALE = 0
});
//业主单位名称
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_SHOPMESSAGE_EX",
COLUMN_NAME = "OWNERUNIT_NAME",
DATA_TYPE = Model.OracleDataType.VARCHAR2,
DATA_LENGTH = 100
});
#endregion
//执行数据表字段检测添加
return CheckTableColumn("HIGHWAY_EXCHANGE", "T_SHOPMESSAGE_EX", _TableColumnList);
case "T_ENDACCOUNT":
#region PB系统日结账表
//收银员工号
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT",
COLUMN_NAME = "CASHIER_CODE",
DATA_TYPE = Model.OracleDataType.VARCHAR2,
DATA_LENGTH = 20
});
//收银员姓名
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT",
COLUMN_NAME = "CASHIER_NAME",
DATA_TYPE = Model.OracleDataType.VARCHAR2,
DATA_LENGTH = 200
});
//日结账单唯一标识编码
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT",
COLUMN_NAME = "ENDACCOUNT_CODE",
DATA_TYPE = Model.OracleDataType.VARCHAR2,
DATA_LENGTH = 100
});
#endregion
//执行数据表字段检测添加
return CheckTableColumn("HIGHWAY_EXCHANGE", "T_ENDACCOUNT", _TableColumnList);
case "T_ENDACCOUNT_NEW":
#region C#系统日结账表
//收银员工号
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT_NEW",
COLUMN_NAME = "CASHIER_CODE",
DATA_TYPE = Model.OracleDataType.VARCHAR2,
DATA_LENGTH = 20
});
//收银员姓名
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT_NEW",
COLUMN_NAME = "CASHIER_NAME",
DATA_TYPE = Model.OracleDataType.VARCHAR2,
DATA_LENGTH = 200
});
//是否有稽查记录
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT_NEW",
COLUMN_NAME = "AUDIT_STATE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 8,
DATA_SCALE = 0
});
//是否有香烟类销售记录
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT_NEW",
COLUMN_NAME = "CIGARETTE_STATE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 8,
DATA_SCALE = 0
});
//是否有促销活动流水记录
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT_NEW",
COLUMN_NAME = "PROMOTION_STATE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 8,
DATA_SCALE = 0
});
//是否有在线订单记录
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_ENDACCOUNT_NEW",
COLUMN_NAME = "ONLINEBILL_STATE",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 8,
DATA_SCALE = 0
});
#endregion
//执行数据表字段检测添加
return CheckTableColumn("HIGHWAY_EXCHANGE", "T_ENDACCOUNT_NEW", _TableColumnList);
case "T_MOBILE_PAY":
#region 移动支付记录表
//移动支付交易记录服务商
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_MOBILE_PAY",
COLUMN_NAME = "MOBILEPAY_OPERATORS",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 8,
DATA_SCALE = 0
});
#endregion
//执行数据表字段检测添加
return CheckTableColumn("HIGHWAY_EXCHANGE", "T_MOBILE_PAY", _TableColumnList);
case "T_AUDITTASKS":
#region 智能稽核任务表
//智能稽核提醒时段起始时间
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_AUDITTASKS",
COLUMN_NAME = "STRATTIME",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 9,
DATA_SCALE = 0
});
//智能稽核提醒时段结束时间
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_AUDITTASKS",
COLUMN_NAME = "ENDTIME",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 9,
DATA_SCALE = 0
});
#endregion
//执行数据表字段检测添加
return CheckTableColumn("HIGHWAY_EXCHANGE", "T_AUDITTASKS", _TableColumnList);
case "T_STATEFEEDBACK"://状态反馈表字段检查列表
#region 状态反馈表
//现金交易统计字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "CURRENT_CASHPAY",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 16,
DATA_SCALE = 6
});
//移动支付交易统计字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "CURRENT_MOBILEPAY",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 16,
DATA_SCALE = 6
});
//支付宝交易统计字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "CURRENT_ALIPAY",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 16,
DATA_SCALE = 6
});
//微信支付交易统计字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "CURRENT_WECHAT",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 16,
DATA_SCALE = 6
});
//云闪付交易统计字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "CURRENT_UNIONPAY",
DATA_TYPE = Model.OracleDataType.NUMBER,
DATA_PRECISION = 16,
DATA_SCALE = 6
});
//收银机商品数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "COMMODITY_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机门店数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "SHOPMESSAGE_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机工号数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "SELLWORKER_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机促销活动数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "SALESPROMOTE_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机稽核任务数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "AUDITTASK_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机日结数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "ENDACCOUNT_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机现场稽查数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "INSPECTION_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机交班数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "PERSONSELL_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机日结单品数据版本字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "COMMODITYSALE_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
//收银机软件有效期字段
_TableColumnList.Add(new Model.TableColumnModel
{
OWNER = "HIGHWAY_EXCHANGE",
TABLE_NAME = "T_STATEFEEDBACK",
COLUMN_NAME = "EXPIRYDATE_VERSION",
DATA_TYPE = Model.OracleDataType.DATE
});
#endregion
//执行数据表字段检测添加
return CheckTableColumn("HIGHWAY_EXCHANGE", "T_STATEFEEDBACK", _TableColumnList);
}
return false;
}
#endregion
#region 方法 -> 数据库表字段检查更新方法
///
/// 数据库表字段检查更新方法
///
/// 数据表所属的用户名
/// 数据表的表名称
/// 需要校验新增的字段属性列表
///
private bool CheckTableColumn(string owner, string tableName,
List tableColumnList)
{
try
{
System.Data.DataTable _ColumnNameTable = OracleHelper.ExcuteSqlGetDataSet(
$@"SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS
WHERE OWNER = '{owner}' AND
TABLE_NAME = '{tableName}' ").Tables[0];
List _ColumnList = new List();
foreach (var _Column in tableColumnList)
{
if (_ColumnNameTable.Select($"COLUMN_NAME = '{_Column.COLUMN_NAME}'").Count() == 0)
{
_ColumnList.Add(CreateAlterSQL(_Column));
}
}
if (_ColumnList.Count > 0)
{
OracleHelper.ExecuteSqlTran(_ColumnList);
}
return true;
}
catch(Exception ex)
{
Transmission.SDK.LogHelper.WriteServiceLog($"表[{tableName}]字段添加失败:{ex.Message}");
return false;
}
}
#endregion
#region 方法 -> 生成表字段添加SQL语句
///
/// 生成表字段添加语句
///
/// 需要添加的表字段信息
///
private string CreateAlterSQL(Model.TableColumnModel tableColumn)
{
switch (tableColumn.DATA_TYPE)
{
case Model.OracleDataType.DATE:
return $"ALTER TABLE {tableColumn.OWNER}.{tableColumn.TABLE_NAME} " +
$"ADD {tableColumn.COLUMN_NAME} DATE";
case Model.OracleDataType.NUMBER:
return $"ALTER TABLE {tableColumn.OWNER}.{tableColumn.TABLE_NAME} " +
$"ADD {tableColumn.COLUMN_NAME} NUMBER({tableColumn.DATA_PRECISION},{tableColumn.DATA_SCALE})";
case Model.OracleDataType.VARCHAR2:
return $"ALTER TABLE {tableColumn.OWNER}.{tableColumn.TABLE_NAME} " +
$"ADD {tableColumn.COLUMN_NAME} VARCHAR2({tableColumn.DATA_LENGTH})";
default:
return string.Empty;
}
}
#endregion
}
}