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

174 lines
6.9 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using UpdateListBuilder;
namespace HighWaySoftRelease
{
public partial class FormMain : Form
{
public static string host = ConfigurationManager.AppSettings["host"];
public static string port = ConfigurationManager.AppSettings["port"];
public static string service_name = ConfigurationManager.AppSettings["service_name"];
public static string dbname = ConfigurationManager.AppSettings["dbname"];
public static string UserName = ConfigurationManager.AppSettings["UserName"];
public static string UserPwd = ConfigurationManager.AppSettings["UserPwd"];
OracleHelper _OracleHelper = new OracleHelper(host, service_name, UserName, UserPwd);
public FormMain()
{
InitializeComponent();
getserverpartlist();
getVersionList();
}
private void getVersionList()
{
string _SelectSql = "SELECT SOFTVERSION_ID,SOFTVERSION_BUILD,SOFTVERSION_VERSION,SOFTVERSION_NAME FROM " +
dbname + ".T_SOFTVERSION ORDER BY SOFTVERSION_BUILD DESC";
try
{
DataTable _VersionTable = _OracleHelper.ExcuteSqlGetDataSet(_SelectSql, "T_SOFTVERSION").Tables[0];
cobVersion.DataSource = _VersionTable;
cobVersion.ValueMember = "SOFTVERSION_VERSION";
cobVersion.DisplayMember = "SOFTVERSION_NAME";
}
catch
{
MessageBox.Show("服务器连接失败,程序将自动退出");
Environment.Exit(0);
}
}
///<summary>
/// 加载服务区列表
/// </summary>
private void getserverpartlist()
{
string _strsql = "SELECT PROVINCE_CODE,PROVINCE_NAME FROM " + dbname +
".T_SOFTUPDATE GROUP BY PROVINCE_CODE,PROVINCE_NAME ORDER BY PROVINCE_CODE ASC";
if (!treeView1.Nodes.ContainsKey("全国"))
{
TreeNode root = new TreeNode("全国");
root.Name = "全国";
treeView1.Nodes.Add(root);
treeView1.ExpandAll();
using (DataTable dt = _OracleHelper.ExcuteSqlGetDataSet(_strsql, "t_softupdate").Tables["t_softupdate"])
{
if (dt.Rows.Count > 0)
{
foreach (DataRow row in dt.Rows)
{
TreeNode node = new TreeNode("[" + row["province_code"].ToString() + "]" + row["province_name"].ToString());
node.Name = row["province_code"].ToString();
if (!root.Nodes.ContainsKey(node.Name))
{
root.Nodes.Add(node);
_strsql = "SELECT DISTINCT SERVERPART_CODE,SERVERPART_NAME,SOFTUPDATE_VERSION " +
"FROM " + dbname + ".T_SOFTUPDATE WHERE PROVINCE_CODE = '" +
row["province_code"].ToString() + "' ORDER BY SERVERPART_CODE ASC";
using (DataTable dtServerPart = _OracleHelper.ExcuteSqlGetDataSet(_strsql, "serverpart").Tables["serverpart"])
{
if (dtServerPart.Rows.Count > 0)
{
foreach (DataRow serverrow in dtServerPart.Rows)
{
TreeNode clicknode = new TreeNode("(" + serverrow["softupdate_version"].ToString() + ")[" +
serverrow["serverpart_code"].ToString() + "]" + serverrow["serverpart_name"].ToString());
clicknode.Name = serverrow["serverpart_code"].ToString();
if (!node.Nodes.ContainsKey(clicknode.Name))
{
node.Nodes.Add(clicknode);
}
}
}
}
}
}
}
}
}
}
/// <summary>
/// 需要更新的服务区
/// </summary>
private string UpdateServerPart()
{
string code = "";
foreach (TreeNode root in treeView1.Nodes)
{
if (root.Checked)
{
if (root.Name == "全国")
{
code = "ALL";
break;
}
}
else
{
foreach (TreeNode node in root.Nodes)
{
//if (node.Checked)
//{
// foreach (TreeNode clicknode in node.Nodes)
// {
// code += (code == ""?"":"|") + clicknode.Name;
// }
//}
//else
//{
foreach (TreeNode clicknode in node.Nodes)
{
if (clicknode.Checked)
{
code += (code == "" ? "" : "|") + clicknode.Name;
}
}
//}
}
}
}
return code;
}
private void btnEnter_Click(object sender, EventArgs e)
{
if(UpdateServerPart()=="")
{
MessageBox.Show("请勾选需要更新的服务区");
return;
}
string _Version = cobVersion.SelectedValue.ToString();
if(_Version=="")
{
MessageBox.Show("请选择需要更新的版本号");
return;
}
string _strsql = "UPDATE " + dbname + ".T_SOFTUPDATE SET SOFTUPDATE_VERSION = '" + _Version +
"',SOFTUPDATE_DATE = TO_DATE('" + DateTime.Now.ToString() + "','YYYY/MM/DD HH24:MI:SS') " +
(UpdateServerPart() == "ALL" ? "" : "WHERE SERVERPART_CODE IN ('" + UpdateServerPart().Replace("|", "','") + "')");
try
{
_OracleHelper.ExcuteSql(_strsql);
MessageBox.Show("系统更新推送成功");
}
catch
{
MessageBox.Show("系统更新推送失败,请重试");
}
}
}
}