2025-03-27 15:05:14 +08:00

84 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Configuration;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ReplaceView
{
public partial class MainForm : Form
{
static string strServer = ConfigurationManager.AppSettings["Server"].ToString();
static string strPort = ConfigurationManager.AppSettings["Port"].ToString();
static string strName = ConfigurationManager.AppSettings["Name"].ToString();
static string strUserName = ConfigurationManager.AppSettings["UserName"].ToString();
static string strUserPwd = ConfigurationManager.AppSettings["UserPwd"].ToString();
static OracleHelper _OracleHelper = new OracleHelper(strServer, strPort, strName, strUserName, strUserPwd);
public MainForm()
{
InitializeComponent();
}
private void BtnReplace_Click(object sender, EventArgs e)
{
List<string> SQLStringList = new List<string>();
DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet(@"SELECT * FROM SYS.DBA_TABLES A
WHERE A.OWNER = 'HIGHWAY_EXCHANGE' AND A.TABLE_NAME LIKE 'T_SELLDATA_EXTRA_%' AND
A.TABLE_NAME NOT IN ('T_SELLDATA_EXTRA_COPY')").Tables[0];
foreach (DataRow _DataRow in _DataTable.Rows)
{
string SQLString = string.Format(@"CREATE OR REPLACE VIEW HIGHWAY_EXCHANGE.{0}
(SELLDATA_EXTRA_ID,SELLDATA_TYPE,SELLDATA_DATE,PROVINCE_CODE,SERVERPART_ID,
SERVERPART_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,
MACHINECODE,TICKETCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC,
TAXFEE,LIQUIDATION_AMOUNT,SHARE_PROFIT,DEDUCTION_RATE,COST_RATE,FIELDENUM_VALUE)
AS
SELECT
SELLDATA_EXTRA_ID,SELLDATA_TYPE,SELLDATA_DATE,PROVINCE_CODE,SERVERPART_ID,
SERVERPART_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,MACHINECODE,
TICKETCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC,
TAXFEE,LIQUIDATION_AMOUNT,SHARE_PROFIT,DEDUCTION_RATE,COST_RATE,FIELDENUM_VALUE
FROM
(
SELECT
SELLDATA_ID AS SELLDATA_EXTRA_ID,SELLDATA_TYPE,SELLDATA_DATE,PROVINCE_CODE,SERVERPART_ID,
SERVERPART_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,SHOPCODE,SHOPNAME,MACHINECODE,
TICKETCODE,SELLCOUNT,SELLPRICE,OFFPRICE,FACTAMOUNT,LINENUM,FLAG,SELLDATA_EXTRA_DESC,
HIGHWAY_STORAGE.FUNC_SETTLE_AMOUNT(SELLDATA_DATE,PROVINCE_CODE,
SERVERPARTCODE,SHOPCODE,FACTAMOUNT,LINENUM,1) AS TAXFEE,
HIGHWAY_STORAGE.FUNC_SETTLE_AMOUNT(SELLDATA_DATE,PROVINCE_CODE,
SERVERPARTCODE,SHOPCODE,FACTAMOUNT,LINENUM,3) AS LIQUIDATION_AMOUNT,
HIGHWAY_STORAGE.FUNC_SETTLE_AMOUNT(SELLDATA_DATE,PROVINCE_CODE,
SERVERPARTCODE,SHOPCODE,FACTAMOUNT,LINENUM,2) AS SHARE_PROFIT,
HIGHWAY_STORAGE.FUNC_GETRATE(SELLDATA_DATE,PROVINCE_CODE,
SERVERPARTCODE,SHOPCODE,LINENUM) * 1000 AS DEDUCTION_RATE,
CASE LINENUM WHEN 1005 THEN 2.1 ELSE 2.5 END AS COST_RATE,B.FIELDENUM_VALUE,
ROW_NUMBER()OVER(PARTITION BY TICKETCODE ORDER BY SELLDATA_ID) AS COLNUM
FROM
HIGHWAY_EXCHANGE.{1} A,
PLATFORM_DICTIONARY.T_FIELDENUM@HWS B
WHERE
A.SELLDATA_TYPE IN ('ALIPAY','WECHAT') AND
A.PROVINCE_CODE = B.FIELDENUM_ID AND
SELLDATA_EXTRA_DESC LIKE 'SUCCESS%'
)
WHERE
COLNUM = 1", _DataRow["TABLE_NAME"].ToString().Replace("T_SELLDATA_EXTRA", "V_SELLDATA_EXTRA"),
_DataRow["TABLE_NAME"].ToString());
SQLStringList.Add(SQLString);
}
if (SQLStringList.Count > 0)
{
_OracleHelper.ExecuteSqlTran(SQLStringList);
}
}
}
}