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

732 lines
45 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TransmissionClient
{
public class DataBaseUpdate
{
readonly Transmission.SDK.OracleHelper OracleHelper;
public DataBaseUpdate(Transmission.SDK.OracleHelper oracleHelper)
{
OracleHelper = oracleHelper;
}
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;
}
}
/// <summary>
/// 表字段检测
/// </summary>
/// <param name="tableName"></param>
/// <returns></returns>
public bool AlterTableColumn(string tableName)
{
List<Model.TableColumnModel> _TableColumnList = new List<Model.TableColumnModel>();
// HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW CASHIER_CODE,CASHIER_NAME
switch (tableName.ToUpper())
{
case "T_SHOPMESSAGE_EX":
#region
//是否接受统一定价管理(01是)
_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
});
//是否上传稽核数据(01是)
_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
});
//是否上传营收数据(01是)
_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;
}
/// <summary>
/// 数据库表字段检查更新方法
/// </summary>
/// <param name="owner">数据表所属的用户名</param>
/// <param name="tableName">数据表的表名称</param>
/// <param name="tableColumnList">需要校验新增的字段属性列表</param>
/// <returns></returns>
private bool CheckTableColumn(string owner, string tableName,
List<Model.TableColumnModel> 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<string> _ColumnList = new List<string>();
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;
}
}
/// <summary>
/// 生成表字段添加语句
/// </summary>
/// <param name="tableColumn">需要添加的表字段信息</param>
/// <returns></returns>
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;
}
}
}
}