tijian_tieying/web/dccdc.Selfhelp/frm_bgdy.cs
2025-02-20 12:14:39 +08:00

408 lines
16 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 FastReport;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Net;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace dccdc.Selfhelp
{
public partial class frm_bgdy : Form
{
public frm_bgdy()
{
InitializeComponent();
}
public static FastReport.EnvironmentSettings eSet = new EnvironmentSettings();
private void frm_bgdy_MouseClick(object sender, MouseEventArgs e)
{
Rectangle rect = new Rectangle(30, 30, 170, 56);
if (rect.Contains(e.Location))
{
this.Close();
}
}
private void frm_bgdy_MouseMove(object sender, MouseEventArgs e)
{
Rectangle rect = new Rectangle(30, 30, 170, 56);
if (rect.Contains(e.Location))
{
Cursor = Cursors.Hand;
}
else
{
Cursor = Cursors.Default;
}
}
private void frm_bgdy_Load(object sender, EventArgs e)
{
eSet.ReportSettings.ShowProgress = false;
//int a = extend.test(1, 2);
this.TopLevel = true;
int port = 0;
string sport = System.Configuration.ConfigurationManager.AppSettings["commPort"];
if (!int.TryParse(sport, out port))
{
port = 1;
}
try
{
extend.close_comm();
extend.open_comm(port);
extend.send_comm(13);
}
catch (Exception ex)
{
Status s = new Status(ex.Message);
s.ShowDialog();
this.Close();
}
}
/// <summary>
/// 没有读到卡
/// </summary>
int readcard = 0;
/// <summary>
/// 身份证信息
/// </summary>
IDCardInfo info = new IDCardInfo();
int returncode = 0;
int messagecode = 0;
string errmsg = "";
private void t_readcard()
{
//MessageBox.Show("1");
IDCardData CardMsg = new IDCardData();
//extend.Init();
int code = 0;
byte[] photoPath = new byte[260];
int r = extend.Read_IDCard(ref CardMsg, ref photoPath[0], ref code);
if (r == 0 || r == 1)
{
info.Name = CardMsg.Name;
info.Nation = CardMsg.Nation;
info.IDCardNo = CardMsg.IDCardNo;
info.GrantDept = CardMsg.GrantDept;
info.Born = CardMsg.Born;
info.Address = CardMsg.Address;
info.UserLifeEnd = CardMsg.UserLifeEnd;
info.UserLifeBegin = CardMsg.UserLifeBegin;
info.Sex = CardMsg.Sex;
info.reserved = CardMsg.reserved;
info.PhotoFileName = CardMsg.PhotoFileName;
info.FPInfo = System.Text.Encoding.ASCII.GetString(photoPath);
info.FPInfo = info.FPInfo.Replace("\0", "");
if (!string.IsNullOrEmpty(info.PhotoFileName) && System.IO.File.Exists(info.PhotoFileName))
{
FileStream fs = new FileStream(info.PhotoFileName, FileMode.Open);
byte[] bs = new byte[fs.Length];
fs.Read(bs, 0, bs.Length);
fs.Close();
info.Photo = System.Drawing.Image.FromStream(new MemoryStream(bs));
File.Delete(info.PhotoFileName);
}
extend.Close_IDCard();
readcard = 1;
}
else
{
readcard = 1;
returncode = r;
messagecode = code;
extend.send_comm(14);
}
}
private void t_readCard_Tick(object sender, EventArgs e)
{
t_readCard.Enabled = false;
try
{
//int r = extend.Read_IDCard(ref CardMsg, ref photoPath[0], ref code);
readcard = 0;
Thread t = new Thread(t_readcard);
t.Start();
for (int i = 0; i <= 10 * 100; i++)
{
Thread.CurrentThread.Join(10);
Application.DoEvents();
if (readcard == 1)
{
break;
}
}
t.Abort();
if (readcard != 1)
{
extend.Close_IDCard();
Status s = new Status("没有检测到身份证");
s.ShowDialog();
s.Close();
this.Close();
return;
}
int r = returncode;
int code = messagecode;
if (r == 0 || r == 1)
{
/*
IDCardInfo info = new IDCardInfo();
info.Name = CardMsg.Name;
info.Nation = CardMsg.Nation;
info.IDCardNo = CardMsg.IDCardNo;
info.GrantDept = CardMsg.GrantDept;
info.Born = CardMsg.Born;
info.Address = CardMsg.Address;
info.UserLifeEnd = CardMsg.UserLifeEnd;
info.UserLifeBegin = CardMsg.UserLifeBegin;
info.Sex = CardMsg.Sex;
info.reserved = CardMsg.reserved;
info.PhotoFileName = CardMsg.PhotoFileName;
info.FPInfo = System.Text.Encoding.ASCII.GetString(photoPath);
info.FPInfo = info.FPInfo.Replace("\0", "");
if (!string.IsNullOrEmpty(info.PhotoFileName) && System.IO.File.Exists(info.PhotoFileName))
{
FileStream fs = new FileStream(info.PhotoFileName, FileMode.Open);
byte[] bs = new byte[fs.Length];
fs.Read(bs, 0, bs.Length);
fs.Close();
info.Photo = System.Drawing.Image.FromStream(new MemoryStream(bs));
File.Delete(info.PhotoFileName);
}
*/
Status s = new Status("正在查询您的报告信息请稍后", false);
s.Show();
Application.DoEvents();
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8;
string jsonData = wc.DownloadString(extend.URL + "zzj/getBGXX?id=" + info.IDCardNo);
var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<dccdc.Models.ProfessionalExamRegisterModel>>(jsonData);
if (list.Count == 0)
{
//MessageBox.Show("aaaaa");
s.update("没有您的健康证明");
Application.DoEvents();
Thread.Sleep(2000);
s.Close();
this.Close();
return;
}
foreach (var m in list)
{
extend.open_comm(3);
extend.send_comm(15);
/*
* if (rows[i].physical_category == '公共场所') {
if (window.top.Formium.external.Print.finit( "zzjtjzm_gg.frx")) {
window.top.Formium.external.Print.PrintJKZM_GG(rows[i].id, "false");
}
}
else if (rows[i].physical_category == '食品从业') {
if (window.top.Formium.external.Print.finit( "zzjtjzm_sp.frx")) {
window.top.Formium.external.Print.PrintJKZM_SP(rows[i].id, "false");
}
}
else if (rows[i].physical_category == '药品从业') {
if (window.top.Formium.external.Print.finit( "zzjtjzm_yp.frx")) {
window.top.Formium.external.Print.PrintJKZM_YP(rows[i].id, "false");
}
}*/
if (m.physical_category == "食品从业")
{
try
{
jsonData = wc.DownloadString(extend.URL + "professional/getjkzm_sp?zzj=1&ids=" + m.id);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonData);
dt.Columns.Add("photo", typeof(byte[]));
dt.Columns.Add("yzewm", typeof(byte[]));
foreach (DataRow dr in dt.Rows)
{
dr["photo"] = Convert.FromBase64String(dr["img"].ToString());
dr["yzewm"] = Convert.FromBase64String(dr["ewm"].ToString());
}
FastReport.Report re = new FastReport.Report();
re.Load(Application.StartupPath + "\\report\\zzjtjzm_sp.frx");
re.RegisterData(dt, "table");
re.PrintSettings.ShowDialog = false;
try
{
re.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else if (m.physical_category == "公共场所")
{
try
{
jsonData = wc.DownloadString(extend.URL + "professional/getjkzm_gg?zzj=1&ids=" + m.id);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonData);
dt.Columns.Add("photo", typeof(byte[]));
dt.Columns.Add("yzewm", typeof(byte[]));
foreach (DataRow dr in dt.Rows)
{
dr["photo"] = Convert.FromBase64String(dr["img"].ToString());
dr["yzewm"] = Convert.FromBase64String(dr["ewm"].ToString());
}
FastReport.Report re = new FastReport.Report();
re.Load(Application.StartupPath + "\\report\\zzjtjzm_gg.frx");
//re.Load(_reportPath);
re.RegisterData(dt, "table");
re.PrintSettings.ShowDialog = false;
try
{
re.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else if (m.physical_category == "药品从业")
{
try
{
jsonData = wc.DownloadString(extend.URL + "professional/getjkzm_yp?zzj=1&ids=" + m.id);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jsonData);
dt.Columns.Add("photo", typeof(byte[]));
dt.Columns.Add("yzewm", typeof(byte[]));
foreach (DataRow dr in dt.Rows)
{
dr["photo"] = Convert.FromBase64String(dr["img"].ToString());
dr["yzewm"] = Convert.FromBase64String(dr["ewm"].ToString());
}
FastReport.Report re = new FastReport.Report();
//re.Load(_reportPath);
re.Load(Application.StartupPath + "\\report\\zzjtjzm_yp.frx");
re.RegisterData(dt, "table");
re.PrintSettings.ShowDialog = false;
try
{
re.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
/*
var loger = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
for (int i = 0; i < 20; i++)
{
try
{
string path = @"win32_printer.DeviceId='" + readc + "'";
ManagementObject printer = new ManagementObject(path);
printer.Get();
string strRow = "";
//ret = (PrinterStatus)Convert.ToInt32(printer.Properties["PrinterStatus"].Value);
PropertyDataCollection.PropertyDataEnumerator pde = printer.Properties.GetEnumerator();
while (pde.MoveNext())
{
strRow += pde.Current.Name + " : " + Newtonsoft.Json.JsonConvert.SerializeObject(pde.Current.Value) + "\r\n";
//MessageBox.Show(pde.Current.Name + " : " + pde.Current.Value);
//显示的是 属性名 : 属性值 的形式
}
}
catch (Exception ex)
{
loger.Info("A4打印机异常" + ex.Message);
}
Thread.Sleep(500);
Application.DoEvents();
}
*/
s.update("打印体检证明成功!");
Application.DoEvents();
Thread.Sleep(2000);
extend.send_comm(16);
s.Close();
this.Close();
//extend.close_comm();
}
else
{
if (r != -1)
{
Status s = new Status("读取身份证失败:" + code + "_" + r);
s.ShowDialog();
}
this.Close();
}
}
catch (Exception ex)
{
Status s = new Status(ex.Message);
s.ShowDialog();
this.Close();
}
finally
{
extend.send_comm(14);
extend.Close_IDCard();
}
}
private void frm_bgdy_FormClosing(object sender, FormClosingEventArgs e)
{
extend.Close_IDCard();
extend.send_comm(14);
extend.send_comm(16);
extend.close_comm();
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}