123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using WDProduceTool.CNPrintTemplateData;
- using WDProduceTool.Common;
- using WDProduceTool.Context;
- using WDProduceTool.controls;
- using WDProduceTool.Model;
- using WDProduceTool.Service;
- using WDProduceTool.Utils;
- namespace WDProduceTool.Forms
- {
- public partial class FrmThermometerCoding : Form
- {
- ProduceService service = null;
- private List<WdThermometerCategory> categories = new List<WdThermometerCategory>();
- private List<WdThermometerSchedual> scheduals = new List<WdThermometerSchedual>();
- private List<WdPrinterSolution> thermometerSolution = new List<WdPrinterSolution>();
- public FrmThermometerCoding()
- {
- InitializeComponent();
- service = new ProduceService();
- initComponents();
- }
- private void initComponents()
- {
- using (WdSqliteDbContext context = new WdSqliteDbContext())
- {
- categories = context.WdThermometerCategorySet.ToList();
- scheduals = context.WdThermometerSchedualSet.ToList();
- cb_model.DataSource = categories;
- cb_model.DisplayMember = "name";
- cb_model.ValueMember = "union_id";
- cb_model.AutoCompleteMode = AutoCompleteMode.None;
- if (categories.Count > 0)
- {
- cb_model.SelectedIndex = 0;
- }
-
- cb_schedual.DataSource = scheduals;
- cb_schedual.DisplayMember = "schedual_name";
- cb_schedual.ValueMember = "union_id";
- cb_schedual.AutoCompleteMode = AutoCompleteMode.None;
- if (scheduals.Count > 0)
- {
- cb_schedual.SelectedIndex = 0;
- }
-
- string printName = ParamConfigHelper.GetParamByName(Constants.PRINTER_NAME);
- List<string> prints = PrintHelper.GetLocalPrinters();
- string defaultPrint = PrintHelper.GetDefaultPrinter();
- cb_printer.DataSource = prints;
- if (!string.IsNullOrEmpty(printName))
- {
- int pindex = prints.IndexOf(printName);
- cb_printer.SelectedIndex = pindex;
- }
- cb_operate.SelectedIndex = 0;
- this.dataGridView1.AutoGenerateColumns = false; // 防止自由生成所有数据列
- this.dataGridView1.AllowUserToAddRows = false;
- DatagridViewCheckBoxHeaderCell cbHeader = new DatagridViewCheckBoxHeaderCell();
- cbHeader.Value = "全选";
- cbHeader.OnCheckBoxClicked += new CheckBoxClickedHandler(cbHeader_OnCheckBoxClicked);
- DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn();
- checkbox.Name = "IsChecked";
- checkbox.TrueValue = true;
- checkbox.FalseValue = false;
- checkbox.DataPropertyName = "IsChecked";
- dataGridView1.Columns.Insert(0, checkbox);
- // 防止自由生成所有数据列
- dataGridView1.Columns.Add("name", "体温枪名称"); // 手动添加某列
- dataGridView1.Columns.Add("model", "体温枪型号");
- dataGridView1.Columns.Add("serial_no", "出厂编号");
- dataGridView1.Columns.Add("security_code", "防伪码");
- dataGridView1.Columns.Add("batch_number", "生产批号");
- dataGridView1.Columns.Add("schedual_code", "生产班次");
- dataGridView1.Columns.Add("number", "批次序号");
- dataGridView1.Columns.Add("produce_date", "生产日期");
- dataGridView1.Columns.Add("uploaded", "是否已上传");
- dataGridView1.Columns.Add("security_printed", "已打印防伪标贴");
- dataGridView1.Columns.Add("qc_printed", "已打印合格证");
- dataGridView1.Columns.Add("union_id", "union_id");
- dataGridView1.Columns.Add("expiration", "使用期限");
- dataGridView1.Columns[0].HeaderCell = cbHeader;
- dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
- dataGridView1.Columns[0].Width = 100;
- dataGridView1.Columns[1].DataPropertyName = "name";
- dataGridView1.Columns[2].DataPropertyName = "model";
- dataGridView1.Columns[3].DataPropertyName = "serial_no";
- dataGridView1.Columns[4].DataPropertyName = "security_code";
- dataGridView1.Columns[5].DataPropertyName = "batch_number";
- dataGridView1.Columns[6].DataPropertyName = "schedual_code";
- dataGridView1.Columns[7].DataPropertyName = "number";
- dataGridView1.Columns[8].DataPropertyName = "produce_date";
- dataGridView1.Columns[9].DataPropertyName = "uploaded";
- dataGridView1.Columns[10].DataPropertyName = "security_printed";
- dataGridView1.Columns[10].Width = 130;
- dataGridView1.Columns[11].DataPropertyName = "qc_printed";
- dataGridView1.Columns[11].Width = 130;
- dataGridView1.Columns[12].DataPropertyName = "union_id";
- dataGridView1.Columns[12].Visible = false;
- dataGridView1.Columns[13].DataPropertyName = "expiration";
- dataGridView1.Columns[13].Width = 120;
- BindData();
- thermometerSolution = context.WdPrinterSolutionSet.Where(p=>p.dev_value==10 || p.dev_value==11).ToList();
- }
- }
- private void cbHeader_OnCheckBoxClicked(bool state)
- {
- //这一句很重要结束编辑状态
- dataGridView1.EndEdit();
- if (dataGridView1.Rows.Count > 0)
- {
- for (int i = 0; i < dataGridView1.Rows.Count; i++)
- {
- dataGridView1.Rows[i].Cells[0].Value = state;
- }
- }
- }
- private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
- {
- switch (e.ColumnIndex)
- {
- case 9:
- case 10:
- case 11:
- if (e.Value != null && e.Value.ToString() == "True")
- {
- e.Value = "是";
- e.CellStyle.ForeColor = Color.DarkTurquoise;
- }
- else
- {
- e.Value = "否";
- e.CellStyle.ForeColor = Color.Red;
- }
- break;
- case 8:
- if (e.Value != null && !String.IsNullOrEmpty(e.Value.ToString()))
- {
- var dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
- dtDateTime = dtDateTime.AddMilliseconds(long.Parse(e.Value.ToString()) * 1000);
- e.Value = dtDateTime.ToString("yyyy/MM/dd");
- }
- break;
- }
- }
- private void BindData()
- {
- List<WdThermometerProduced> source = service.GetWdThemometerProduceds();
- dataGridView1.DataSource = source;
- }
- private void txt_qty_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (!Char.IsDigit(e.KeyChar) && e.KeyChar != 8 &&
- e.KeyChar != 1 && e.KeyChar != 3 && e.KeyChar != 22)
- {
- e.Handled = true;
- }
- }
- private void btn_generate_Click(object sender, EventArgs e)
- {
- if (cb_model.SelectedItem == null)
- {
- MessageBox.Show("请选择体温枪型号", "系统提示");
- return;
- }
- if (cb_schedual.SelectedItem == null)
- {
- MessageBox.Show("请选择生产班次", "系统提示");
- return;
- }
- if (String.IsNullOrEmpty(txt_qty.Text))
- {
- MessageBox.Show("请输入生产数量", "系统提示");
- return;
- }
- if (cb_operate.SelectedItem==null)
- {
- MessageBox.Show("请选择操作类型", "系统提示");
- return;
- }
-
- WdThermometerCategory wdThermometerCategory =(WdThermometerCategory)cb_model.SelectedItem;
- WdThermometerSchedual wdThermometerSchedual = (WdThermometerSchedual)cb_schedual.SelectedItem;
- int qty = int.Parse(txt_qty.Text);
- DateTime date = date_time_picker.Value;
- JObject result = service.GenerateCodes(wdThermometerCategory, wdThermometerSchedual, qty,date);
- if(result.Value<Boolean>("success"))
- {
- BindData();
- }
- else
- {
- MessageBox.Show(result.Value<String>("message"), "系统提示");
- }
-
- }
- private void btn_choose_unprint_Click(object sender, EventArgs e)
- {
- String operate = cb_operate.SelectedItem.ToString();
- int cellIndex = 10;
- if (operate == "合格证")
- {
- cellIndex = 11;
- }
- else
- {
- cellIndex = 10;
- }
- if (dataGridView1.Rows.Count > 0)
- {
- for (int i = 0; i < dataGridView1.Rows.Count; i++)
- {
- if (!(bool)dataGridView1.Rows[i].Cells[cellIndex].Value)
- {
- dataGridView1.Rows[i].Cells[0].Value = true;
- }
- else
- {
- dataGridView1.Rows[i].Cells[0].Value = false;
- }
-
- }
- }
- }
- private void btn_delete_choosed_Click(object sender, EventArgs e)
- {
- List<string> checkIds = new List<string>();
- //取得选中的行
- for (int i = 0; i < dataGridView1.Rows.Count; i++)
- {
- if (dataGridView1.Rows[i].Cells[0].Value != null && (bool)dataGridView1.Rows[i].Cells[0].Value == true)
- {
- checkIds.Add(dataGridView1.Rows[i].Cells[12].Value.ToString());
- }
- }
- if (checkIds.Count == 0)
- {
- MessageBox.Show("请勾选要删除的数据行!");
- return;
- }
- service.deleteThermometerProduced(checkIds);
- BindData();
- }
- private void btn_print_choosed_Click(object sender, EventArgs e)
- {
- List<string> checkIds = new List<string>();
- //取得选中的行
- for (int i = 0; i < dataGridView1.Rows.Count; i++)
- {
- if (dataGridView1.Rows[i].Cells[0].Value != null && (bool)dataGridView1.Rows[i].Cells[0].Value == true)
- {
- checkIds.Add(dataGridView1.Rows[i].Cells[12].Value.ToString());
- }
- }
- if (checkIds.Count == 0)
- {
- MessageBox.Show("请勾选要打印的数据行!");
- return;
- }
- List<WdThermometerProduced> checkThermometerProduced = (dataGridView1.DataSource as List<WdThermometerProduced>).Where(p => checkIds.Contains(p.union_id)).ToList();
- if(checkThermometerProduced.Count >0)
- {
- foreach(var wdThermometerProduced in checkThermometerProduced)
- {
- printLabel(wdThermometerProduced);
- }
-
- }
- }
- private void btn_upload_choosed_Click(object sender, EventArgs e)
- {
-
- JObject result = service.UploadThermometerProduced();
- if ((bool)result["success"])
- {
- MessageBox.Show("上传成功!", "系统提示");
- BindData();
- }
- else
- {
- MessageBox.Show("上传失败!", "系统提示");
- return;
- }
-
- }
- private void printLabel(WdThermometerProduced wdThermometerProduced)
- {
- try
- {
- String operate = cb_operate.SelectedItem.ToString();
- WdPrinterSolution printerSolution = null;
- if (thermometerSolution.Count == 0)
- {
- MessageBox.Show("没有打印模板,请联系管理员设置", "系统提示");
- return;
- }
- object printData = null;
- if (operate == "合格证")
- {
- printData = new ThermometerQCData(wdThermometerProduced);
- printerSolution = thermometerSolution.FirstOrDefault(p => p.dev_value == 11);
- }
- else
- {
- printData = new ThermometerSecurityData(wdThermometerProduced);
- printerSolution = thermometerSolution.FirstOrDefault(p => p.dev_value == 10);
- }
- if(printerSolution == null)
- {
- MessageBox.Show("没有打印模板,请联系管理员设置", "系统提示");
- return;
- }
- string serverUrl = Constants.serverUrl + "/";
- //打印标签
- if (wdThermometerProduced != null)
- {
-
- var doc = CNPrintCommandHelper.getPrintDocument(
- printData,
- serverUrl + printerSolution.template_url);
- int qty = 1;
- CNPrint.PrintDocument[] documents = new CNPrint.PrintDocument[qty];
- for (int i = 0; i < qty; i++)
- {
- CNPrint.PrintDocument copydoc = doc.Clone() as CNPrint.PrintDocument;
- copydoc.documentID = MongoDB.Bson.ObjectId.GenerateNewId().ToString();
- documents[i] = copydoc;
- }
- var printTask = CNPrintCommandHelper.getPrintTaskCommand(cb_printer.SelectedItem.ToString(), false, "pdf", 1, 1, documents);
- //发送打印指令
- WebsocketClient.Instance.SendMessageAsync(JsonConvert.SerializeObject(printTask));
- if(operate == "合格证")
- {
- wdThermometerProduced.qc_printed = true;
- }
- else
- {
- wdThermometerProduced.security_printed = true;
- }
-
- service.updateWdThermomoeterProduced(wdThermometerProduced);
- }
-
- }
- catch (Exception e)
- {
- }
- }
- }
- }
|