You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
233 lines
10 KiB
233 lines
10 KiB
using AttachmentDemo.Helper; |
|
using AttachmentDemo.Model; |
|
using KAttachmentDemo.Helper; |
|
using KGIS.Framework.DBOperator; |
|
using Refit; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Configuration; |
|
using System.Data; |
|
using System.Data.SQLite; |
|
using System.IO; |
|
using System.Linq; |
|
using System.Security.Cryptography; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Windows; |
|
using System.Windows.Controls; |
|
using System.Windows.Data; |
|
using System.Windows.Documents; |
|
using System.Windows.Input; |
|
using System.Windows.Media; |
|
using System.Windows.Media.Imaging; |
|
using System.Windows.Navigation; |
|
using System.Windows.Shapes; |
|
|
|
namespace AttachmentDemo |
|
{ |
|
/// <summary> |
|
/// MainWindow.xaml 的交互逻辑 |
|
/// </summary> |
|
public partial class MainWindow : Window |
|
{ |
|
//string baseUrl = @"http://dp.kingoit.com:90/";// @"https://localhost:44382/"; |
|
string baseUrl = ConfigurationManager.AppSettings["BaseUrl"].ToString(); |
|
List<Certificate> oldCertificateInfo = new List<Certificate>(); |
|
List<AttachmentInfo> oldAttachmentInfo = new List<AttachmentInfo>(); |
|
|
|
DataView DtFjxx = new DataView(); |
|
DataView DtJmxx = new DataView(); |
|
public MainWindow() |
|
{ |
|
InitializeComponent(); |
|
dataGridFJ.ItemsSource = DtFjxx; |
|
dataGridJMXX.ItemsSource = DtJmxx; |
|
} |
|
|
|
private void btChange_Click(object sender, RoutedEventArgs e) |
|
{ |
|
stateLabel.Content = ""; |
|
GetJMXXMessage(out oldCertificateInfo); |
|
GetFJMessage(out oldAttachmentInfo); |
|
|
|
Change(); |
|
} |
|
private async void Change() |
|
{ |
|
try |
|
{ |
|
await Login(); |
|
var taskwebpi = RestService.For<IWebAPI>(AuthHttpClient.Instance); |
|
string path = string.Format(tbFilePath.Text); |
|
KGIS.Framework.DBOperator.IRDBHelper rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + path, DatabaseType.SQLite); |
|
//附件信息表更新 |
|
var aulistFj = await taskwebpi.GetAttachmentInfo(oldAttachmentInfo); |
|
if (oldAttachmentInfo != null&& oldAttachmentInfo.Count > 0) |
|
{ |
|
if (aulistFj.Code == 200) |
|
{ |
|
//说明 1、如果返回数据中的某一条 ZSDM = "" 并且JYM = "" 说明该条数据 临时校验失败 |
|
//说明 2、如果返回数据中的某一条 ZSDM = "" 并且JYM = "提交原始校验码" 说明该条数据 正式签名失败 |
|
for (int i = 0; i < aulistFj.Data.Count; i++) |
|
{ |
|
if (aulistFj.Data[i].ZSDM == "" && (aulistFj.Data[i].JYM == "" || aulistFj.Data[i].JYM == "提交原始校验码")) |
|
{ |
|
DtFjxx.Table.Rows[i]["ZT"] = "失败"; |
|
continue; |
|
} |
|
else if (aulistFj.Data[i].ZSDM == oldAttachmentInfo[i].ZSDM && aulistFj.Data[i].JYM == oldAttachmentInfo[i].JYM) |
|
{ |
|
DtFjxx.Table.Rows[i]["ZT"] = "转换值与原始值相同"; |
|
continue; |
|
} |
|
string sql = string.Format("update FJ set JYM='{0}', ZSDM='{1}' where BSM = '{2}' ", aulistFj.Data[i].JYM, aulistFj.Data[i].ZSDM, aulistFj.Data[i].BSM); |
|
rdbHelper.ExecuteSQL(sql); |
|
DtFjxx.Table.Rows[i]["JYM"] = aulistFj.Data[i].JYM; |
|
DtFjxx.Table.Rows[i]["ZSDM"] = aulistFj.Data[i].ZSDM; |
|
DtFjxx.Table.Rows[i]["ZT"] = "成功"; |
|
} |
|
} |
|
} |
|
//加密信息表更新 |
|
for (int i = 0; i < DtJmxx.Table.Rows.Count; i++) |
|
{ |
|
var aulistJmxx = await taskwebpi.GetCertificateInfo(oldCertificateInfo[i].ZSDM); |
|
if (aulistJmxx.Code == 200) |
|
{ |
|
if (aulistJmxx.Data.ZSDM == "" || aulistJmxx.Data.ZSDM == null) |
|
{ |
|
DtJmxx.Table.Rows[i]["ZT"] = "失败"; |
|
continue; |
|
} |
|
else if (aulistJmxx.Data.ZSDM == oldCertificateInfo[i].ZSDM && aulistJmxx.Data.SZZS == oldCertificateInfo[i].SZZS |
|
&& aulistJmxx.Data.ZSBFJGDM == oldCertificateInfo[i].ZSBFJGDM && aulistJmxx.Data.ZSBFJGGY == oldCertificateInfo[i].ZSBFJGGY |
|
&& aulistJmxx.Data.QKLFWDZ == oldCertificateInfo[i].QKLFWDZ) |
|
{ |
|
DtJmxx.Table.Rows[i]["ZT"] = "转换值与原始值相同"; |
|
continue; |
|
} |
|
string sql = string.Format("update JMXX set ZSDM='{0}', SZZS='{1}', ZSBFJGDM='{2}', ZSBFJGGY='{3}', QKLFWDZ='{4}' where ZSDM = '{5}' ", |
|
aulistJmxx.Data.ZSDM, aulistJmxx.Data.SZZS, aulistJmxx.Data.ZSBFJGDM, aulistJmxx.Data.ZSBFJGGY, aulistJmxx.Data.QKLFWDZ, oldCertificateInfo[i].ZSDM); |
|
rdbHelper.ExecuteSQL(sql); |
|
DtJmxx.Table.Rows[i]["ZSDM"] = aulistJmxx.Data.ZSDM; |
|
DtJmxx.Table.Rows[i]["SZZS"] = aulistJmxx.Data.SZZS; |
|
DtJmxx.Table.Rows[i]["ZSBFJGDM"] = aulistJmxx.Data.ZSBFJGDM; |
|
DtJmxx.Table.Rows[i]["ZSBFJGGY"] = aulistJmxx.Data.ZSBFJGGY; |
|
DtJmxx.Table.Rows[i]["QKLFWDZ"] = aulistJmxx.Data.QKLFWDZ; |
|
DtJmxx.Table.Rows[i]["ZT"] = "成功"; |
|
} |
|
else |
|
DtJmxx.Table.Rows[i]["ZT"] = "失败"; |
|
} |
|
rdbHelper.DisConnect(); |
|
stateLabel.Content = "状态:执行完成"; |
|
} |
|
catch (Exception e) |
|
{ |
|
stateLabel.Content = "状态:执行失败!" + e.Message; |
|
return; |
|
} |
|
} |
|
|
|
private void btSelectFile_Click(object sender, RoutedEventArgs e) |
|
{ |
|
IRDBHelper dbHelper = null; |
|
try |
|
{ |
|
System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog(); |
|
if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//注意,此处一定要手动引入System.Window.Forms空间,否则你如果使用默认的DialogResult会发现没有OK属性 |
|
{ |
|
tbFilePath.Text = openFileDialog.FileName; |
|
dbHelper = RDBFactory.CreateDbHelper("Data Source=" + openFileDialog.FileName, DatabaseType.SQLite); |
|
DtFjxx.Table = dbHelper.ExecuteDatatable("FJXX", "select * from FJ", true); |
|
DtFjxx.Table.Columns.Add("ZT"); |
|
|
|
DtJmxx.Table = dbHelper.ExecuteDatatable("JMXX", "select * from JMXX", true); |
|
DtJmxx.Table.Columns.Add("ZT"); |
|
|
|
dbHelper.DisConnect(); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
|
|
} |
|
} |
|
|
|
private void GetFJMessage(out List<AttachmentInfo> oldAttachmentInfo) |
|
{ |
|
oldAttachmentInfo = new List<AttachmentInfo>(); |
|
try |
|
{ |
|
foreach (System.Data.DataRow dr in DtFjxx.Table.Rows) |
|
{ |
|
var attachmentInfo = new AttachmentInfo() |
|
{ |
|
BSM = dr["BSM"].ToString().Trim(), |
|
FJHXZ = dr["FJHXZ"].ToString().Trim(), |
|
FJMC = dr["FJMC"].ToString().Trim(), |
|
Latitude = dr["Latitude"].ToString().Trim(), |
|
Longitude = dr["Longitude"].ToString().Trim(), |
|
PSFYJ = dr["PSFYJ"].ToString().Trim(), |
|
PSHGJ = dr["PSHGJ"].ToString().Trim(), |
|
PSJD = dr["PSJD"].ToString().Trim(), |
|
PSRY = dr["PSRY"].ToString().Trim(), |
|
PSSJ = dr["PSSJ"].ToString().Trim(), |
|
TBBSM = dr["TBBSM"].ToString().Trim(), |
|
TBLX = dr["TBLX"].ToString().Trim(), |
|
XZQDM = dr["XZQDM"].ToString().Trim(), |
|
ZSDM = dr["ZSDM"].ToString().Trim(), |
|
JYM = dr["JYM"].ToString().Trim() |
|
}; |
|
oldAttachmentInfo.Add(attachmentInfo); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
|
|
return; |
|
} |
|
} |
|
private void GetJMXXMessage(out List<Certificate> oldCertificateInfo) |
|
{ |
|
oldCertificateInfo = new List<Certificate>(); |
|
try |
|
{ |
|
foreach (System.Data.DataRow dr in DtJmxx.Table.Rows) |
|
{ |
|
var certificateInfo = new Certificate() |
|
{ |
|
ZSDM = dr["ZSDM"].ToString().Trim(), |
|
SZZS = dr["SZZS"].ToString().Trim(), |
|
ZSBFJGDM = dr["ZSBFJGDM"].ToString().Trim(), |
|
ZSBFJGGY = dr["ZSBFJGGY"].ToString().Trim(), |
|
QKLFWDZ = dr["QKLFWDZ"].ToString().Trim() |
|
}; |
|
oldCertificateInfo.Add(certificateInfo); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
|
|
return; |
|
} |
|
} |
|
|
|
private async Task Login() |
|
{ |
|
//验证用户名密码 |
|
var gitHubApi = RestService.For<IWebAPI>(baseUrl); |
|
var userdata = await gitHubApi.Login(new UserContext() |
|
{ |
|
LoginName = "licAdmin", |
|
Password = Md5Helper.Md5("Kingo_It#7739@93")//这个密码是固定的 最后由其他字符串解密后得到 //Base64Helper.EncodeBase64("Kingo_It#7739@93")//采用MD5加密 |
|
}); |
|
if (userdata.Code == 200) |
|
{ |
|
AuthHttpClient.SetHttpClient(baseUrl, userdata.Data.TokenStr);//data 为token |
|
} |
|
} |
|
|
|
|
|
} |
|
}
|
|
|