tijian_jichuang/Code/SOH.JianYan/frmLisMain.cs
2025-02-20 11:54:48 +08:00

570 lines
20 KiB
C#

using EAS.Services;
using Microsoft.Win32;
using SOH.BLL;
using SOH.Data;
using SOH.Entities;
using SOH.Kernel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SOH.JianYan
{
//C53E054A-2951-410D-9474-4B52306999C7
[ModuleAttribute(ModuleID = "1734022E-1736-4B07-8FFF-0DF0ADA1A8AD", ModuleName = "检验管理")]
public partial class frmLisMain : SOH.Window.baseChildForm
{
public frmLisMain()
{
InitializeComponent();
}
private void cbb_yq_SelectedValueChanged(object sender, EventArgs e)
{
if (cbb_yq.SelectedValue != null)
{
hqyqjdbbh();
showxq();
}
}
protected override void DefWndProc(ref Message m)
{
if (m.Msg == 61135)
{
//EAS.Loggers.TextLogger tl = new EAS.Loggers.TextLogger();
EAS.Loggers.Logger.Info(m.Msg.ToString());
showxq();
}
base.DefWndProc(ref m);
}
List<Process> ps = new List<Process>();
private void frmLisMain_Load(object sender, EventArgs e)
{
clckjb();
dgv_xm.AutoGenerateColumns = false;
var vser = ServiceContainer.GetService<IJianYan>();
string pcname = System.Net.Dns.GetHostName();
var yqs = vser.getYQbyDNMC(pcname);
cbb_yq.DataSource = yqs.Select(t => new { yq = t.yq, yqmc = t.yq + "(" + t.yqmc + ")" }).ToList();
txt_jytm.Tag = false;
yqs.ForEach(t =>
{
try
{
Process p = new Process();
ProcessStartInfo si = new ProcessStartInfo();
si.FileName = Application.StartupPath + "\\DEC\\" + t.yq + "\\SOH.JianYan.DEC_" + t.yqxh + ".exe";
si.CreateNoWindow = false;
p.StartInfo = si;
p.Start();
ps.Add(p);
}
catch
{ }
});
txt_jyys.Text = LoginUser.xm;
}
/// <summary>
/// 处理窗口句柄
/// </summary>
private void clckjb()
{
//throw new NotImplementedException();
var software = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
var soh = software.OpenSubKey("SOH", true);
if (soh == null)
{
soh = software.CreateSubKey("SOH");
}
soh.SetValue("main", (int)this.Handle, RegistryValueKind.DWord);
StreamWriter sw = new StreamWriter(Application.StartupPath + "\\JYMainHande.txt", false, Encoding.Default);
sw.Write(((int)this.Handle).ToString());
sw.Close();
}
private void hqyqjdbbh1()
{
}
private void hqyqjdbbh()
{
//throw new NotImplementedException();
if (cbb_yq.SelectedValue != null)
{
var vser = ServiceContainer.GetService<IJianYan>();
DateTime jyrq = dtp_bbrq.Value;
int maxbbh = vser.getMaxBBH(jyrq, cbb_yq.SelectedValue.ToString());
txt_bbh.Text = maxbbh.ToString();
}
}
private void dtp_bbrq_ValueChanged(object sender, EventArgs e)
{
hqyqjdbbh();
showxq();
}
private void txt_jytm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
txt_jytm.SelectAll();
var vser = ServiceContainer.GetService<IJianYan>();
jy_yhxx yhxx = vser.getyhxxbyyqrqbh(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value, int.Parse(txt_bbh.Text));
bool n = false;
jy_yhxx yh = vser.getyhxxbyjytm(txt_jytm.Text);
if (yhxx == null && yh == null)
{
n = true;
jy_sqd sqd = vser.getsqdbyjytm(txt_jytm.Text);
if (sqd == null)
{
txt_jytm.Text = "";
return;
}
DateTime jyrq = dtp_bbrq.Value;
yhxx = new jy_yhxx();
yhxx.tm = sqd.tm;
yhxx.jytm = sqd.jytm;
txt_xm.Text = yhxx.xm = sqd.xm;
txt_nl.Text = (yhxx.nl = sqd.nl).ToString();
txt_xb.Text = yhxx.xb = sqd.xb;
dtp_cxsj.Value = yhxx.cxsj = sqd.cxsj;
txt_cxyy.Text = yhxx.cxyy = sqd.cxyy;
yhxx.jyrq = new DateTime(jyrq.Year, jyrq.Month, jyrq.Day);
yhxx.csrq = sqd.csrq;
yhxx.bbh = int.Parse(txt_bbh.Text);
yhxx.yqbh = cbb_yq.SelectedValue.ToString();
yhxx.state = 0;
yhxx.jyys = LoginUser.username;
SOH.Data.OperationResult or = vser.regyhxx(yhxx);
if (or.State == 1)
{
culichenggong();
huoqubiaoben();
}
else
{
MessageBox.Show(or.Message);
}
}
else
{
jy_sqd sqd = vser.getsqdbyjytm(txt_jytm.Text);
if (sqd == null)
{
txt_jytm.Text = "";
return;
}
//yhxx=null
//条码没有注册
//sqd存在
//yh纯在
if (yhxx == null && yh != null)
{
MessageBox.Show("当前条码已经登记不能操作!");
return;
}
if ((!string.IsNullOrEmpty(yhxx.jytm)) && sqd.jytm != yhxx.jytm)
{
MessageBox.Show("当前条码已经登记不能操作!");
return;
}
DateTime jyrq = dtp_bbrq.Value;
yhxx = new jy_yhxx();
yhxx.tm = sqd.tm;
yhxx.jytm = sqd.jytm;
txt_xm.Text = yhxx.xm = sqd.xm;
txt_nl.Text = (yhxx.nl = sqd.nl).ToString();
txt_xb.Text = yhxx.xb = sqd.xb;
dtp_cxsj.Value = yhxx.cxsj = sqd.cxsj;
txt_cxyy.Text = yhxx.cxyy = sqd.cxyy;
yhxx.jyrq = new DateTime(jyrq.Year, jyrq.Month, jyrq.Day);
yhxx.csrq = sqd.csrq;
yhxx.bbh = int.Parse(txt_bbh.Text);
yhxx.yqbh = cbb_yq.SelectedValue.ToString();
//yhxx.state = 0;
yhxx.jyys = LoginUser.username;
SOH.Data.OperationResult or = vser.regyhxx(yhxx);
if (or.State == 1)
{
culichenggong();
}
else
{
MessageBox.Show(or.Message);
}
}
showxq();
}
}
private void culichenggong()
{
txt_bbh.Text = (int.Parse(txt_bbh.Text) + 1).ToString();
}
private void huoqubiaoben()
{
//var vser = ServiceContainer.GetService<IJianYan>();
var vser = ServiceContainer.GetService<IJianYan>();
jy_yhxx yhxx = vser.getyhxxbyyqrqbh(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value, int.Parse(txt_bbh.Text));
if (yhxx == null)
{
txt_xm.Text = "";
txt_nl.Text = "";
txt_xb.Text = "";
dtp_cxsj.Value = DateTime.Now;
txt_cxyy.Text = "";
txt_jyys.Text = "";
txt_shys.Text = "";
txt_jytm.Text = "";
}
else
{
huoquxingmu();
txt_jytm.Text = yhxx.jytm;
txt_xm.Text = yhxx.xm;
txt_nl.Text = yhxx.nl.ToString();
txt_xb.Text = yhxx.xb;
try
{
dtp_cxsj.Value = yhxx.cxsj;
}
catch { }
txt_cxyy.Text = yhxx.cxyy;
txt_jyys.Text = yhxx.jyys;
txt_shys.Text = yhxx.shyy;
}
}
private void huoquxingmu()
{
//throw new NotImplementedException();
var vser = ServiceContainer.GetService<IJianYan>();
string jyxm = vser.getjyxm(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value, txt_bbh.Text);
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jyxm);
if (dt.Rows.Count > 0)
{
dt.DefaultView.Sort = "dysx";
}
dgv_xm.DataSource = dt;
if (cbb_yq.SelectedValue.ToString().Trim() != "BW500")
{
double c;
for (int i = 0; i < dgv_xm.Rows.Count; i++)
{
if (dgv_xm.Rows[i].Cells["col_jg"].Value.ToString().Trim().Length > 0)
{
try
{
if (double.TryParse(dgv_xm.Rows[i].Cells["col_jg"].Value.ToString(), out c))
{
//string a = dgv_xm.Rows[i].Cells["col_jg"].ToString();
double value = Convert.ToDouble(dgv_xm.Rows[i].Cells["col_jg"].Value.ToString());
double cksx = Convert.ToDouble(dgv_xm.Rows[i].Cells["col_ckz"].Value.ToString());
double ckxx = Convert.ToDouble(dgv_xm.Rows[i].Cells["col_ckxx"].Value.ToString());
if (value > cksx)
{
dgv_xm.Rows[i].Cells["col_jg"].Style.BackColor = Color.Red;
//dgv_xm.Rows[i].DefaultCellStyle.BackColor = Color.LightPink;
}
if (value < ckxx)
{
dgv_xm.Rows[i].Cells["col_jg"].Style.BackColor = Color.LightGreen;
}
}
}
catch { }
}
}
}
}
private void showxq()
{
throw new NotImplementedException();
var vser = ServiceContainer.GetService<IJianYan>();
List<jy_yhxx> yh = vser.getjyyhxx(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value);
jyyhxxBindingSource.DataSource = yh;
this.bbhS.Text = "";
this.bbhE.Text = "";
}
private void txt_jytm_Enter(object sender, EventArgs e)
{
txt_jytm.Tag = true;
txt_jytm.SelectAll();
}
private void txt_jytm_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && (bool)txt_jytm.Tag)
{
txt_jytm.Tag = false;
txt_jytm.SelectAll();
}
}
private void txt_bbh_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
huoqubiaoben();
}
}
private void dgv_yhxx_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dgvr = dgv_yhxx.Rows[e.RowIndex];
var yh = dgvr.DataBoundItem as jy_yhxx;
txt_bbh.Text = yh.bbh.ToString();
var vser = ServiceContainer.GetService<IJianYan>();
List<jy_sqd_mx> jysqdmx = vser.hqsqdmx(yh.jytm.ToString());
if (jysqdmx != null)
{
jysqdmxBindingSource.DataSource = jysqdmx;
}
huoquxingmu();
huoqubiaoben();
}
private void btn_sh_Click(object sender, EventArgs e)
{
if (dgv_yhxx.SelectedRows.Count <= 0)
{
MessageBox.Show("请选择要上传的信息!");
}
else
{
MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
DialogResult dr = MessageBox.Show("你确定要上传当前数据吗,上传后将不能修改!", "提示", messButton);
if (dr == DialogResult.Cancel)
{
return;
}
else
{
String listm = dgv_yhxx.SelectedRows[0].Cells["col_tmh"].Value.ToString();
String yqh = cbb_yq.SelectedValue.ToString();
var vser = ServiceContainer.GetService<IJianYan>();
OperationResult or = vser.shenhe(listm, yqh, LoginUser.xm, LoginUser.username, short.Parse(LoginUser.yydm));
if (or.State == 0)
{
MessageBox.Show(or.Message);
}
else
{
showxq();
MessageBox.Show("上传成功!");
}
}
}
}
private void frmLisMain_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (Process p in ps)
{
if (!p.HasExited)
p.Kill();
}
}
private void button1_Click(object sender, EventArgs e)
{
MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
DialogResult dr = MessageBox.Show("你确定要上传全部没有上传的数据吗,上传后将不能修改!", "提示", messButton);
var vser = ServiceContainer.GetService<IJianYan>();
if (dr == DialogResult.Cancel)
{
return;
}
else
{
int bbhstart;
int bbhend;
if (!int.TryParse(this.bbhS.Text.Trim(), out bbhstart) || !int.TryParse(this.bbhE.Text.Trim(), out bbhend))
{
MessageBox.Show("请检查上传标本号区间的设置");
return;
}
if (bbhend == 0)
{
bbhend = 999;
}
var yhxx = jyyhxxBindingSource.DataSource as List<jy_yhxx>;
string mess = "";
yhxx.Where(t => t.state == 0 && t.bbh >= bbhstart && t.bbh <= bbhend).ToList().ForEach(t =>
{
String listm = t.jytm;
String yqh = cbb_yq.SelectedValue.ToString();
if (string.IsNullOrEmpty(listm))
{
mess += "仪器" + yqh + "的标本号" + t.bbh + "没有扫码忽略\r\n";
}
else
{
OperationResult or = vser.shenhe(listm, yqh, LoginUser.xm, LoginUser.username, short.Parse(LoginUser.yydm));
if (or.State == 0)
mess += or.Message + "\r\n";
}
});
showxq();
if (string.IsNullOrEmpty(mess))
MessageBox.Show("上传成功!");
else
MessageBox.Show(mess);
}
}
private void btn_del_Click(object sender, EventArgs e)
{
if (dgv_yhxx.SelectedRows.Count == 0)
{
MessageBox.Show("请先选择要删除的标本!");
return;
}
DataGridViewRow dgvr = dgv_yhxx.SelectedRows[0];
var yh = dgvr.DataBoundItem as jy_yhxx;
//txt_bbh.Text = yh.bbh.ToString();
var vser = ServiceContainer.GetService<IJianYan>();
string jyxm = vser.getjyxm(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value, txt_bbh.Text);
//string jyxm = vser.getjyxm(yh.yqbh.ToString(), dtp_bbrq.Value, yh.bbh.ToString());
DataTable dt = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(jyxm);
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
if (!string.IsNullOrEmpty(dr["jg"].ToString()))
{
MessageBox.Show("你选择的标本号已经有结果不能删除!");
return;
}
}
OperationResult or = vser.delyhxx(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value, txt_bbh.Text);
MessageBox.Show(or.Message);
showxq();
}
else
{
OperationResult or = vser.delyhxx(cbb_yq.SelectedValue.ToString(), dtp_bbrq.Value, txt_bbh.Text);
MessageBox.Show(or.Message);
showxq();
}
}
private void button2_Click(object sender, EventArgs e)
{
if (dgv_yhxx.SelectedRows.Count <= 0)
{
MessageBox.Show("请选择要上传的信息!");
}
else
{
MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
DialogResult dr = MessageBox.Show("你确定要上传当前数据吗,上传后将不能修改!", "提示", messButton);
if (dr == DialogResult.Cancel)
{
return;
}
else
{
String listm = dgv_yhxx.SelectedRows[0].Cells["col_tmh"].Value.ToString();
String yqh = cbb_yq.SelectedValue.ToString();
var vser = ServiceContainer.GetService<IJianYan>();
OperationResult or = vser.shenhe2(listm, yqh, LoginUser.xm, LoginUser.username, short.Parse(LoginUser.yydm));
if (or.State == 0)
{
MessageBox.Show(or.Message);
}
else
{
showxq();
MessageBox.Show("上传成功!");
}
}
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dgvr = dataGridView1.Rows[e.RowIndex];
var sqdmx = dgvr.DataBoundItem as jy_sqd_mx;
var vser = ServiceContainer.GetService<IJianYan>();
DataTable jcxms = vser.hqjcxm(sqdmx.zhxmbm.ToString());
if (jcxms.Rows.Count != 0)
{
tjcxmBindingSource.DataSource = jcxms;
}
}
private void dgv_xm_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (dgv.Columns[e.ColumnIndex].Name == "col_jg")
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
private void dgv_xm_CellClick(object sender, DataGridViewCellEventArgs e)
{
this.dgv_xm.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
}
private void dgv_xm_Enter(object sender, EventArgs e)
{
}
private void dgv_xm_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (dgv_xm.Rows.Count != 0)
{
DataGridViewRow dgvxm = dgv_xm.Rows[e.RowIndex];
string yqbm = dgvxm.Cells["yq"].Value.ToString();
string jg = dgvxm.Cells["col_jg"].Value.ToString();
string bbh = dgvxm.Cells["bbhh"].Value.ToString();
string xiangmu = dgvxm.Cells["col_jyxm"].Value.ToString();
var vser = ServiceContainer.GetService<IJianYan>();
vser.jyupdateresult(dtp_bbrq.Value, yqbm, Convert.ToInt32(bbh), jg, xiangmu);
vser.jycalcsample(yqbm, new DateTime(dtp_bbrq.Value.Year, dtp_bbrq.Value.Month, dtp_bbrq.Value.Day), bbh);
huoquxingmu();
}
}
}
}