/// <summary> /// 补打 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void revPrintBTN_Click(object sender, EventArgs e) { var rows = this.printInfoDG.SelectedRows; if (rows.Count > 1) { MessageBox.Show("请选择一行打印"); return; } if (rows.Count == 1 && rows[0].DataBoundItem == null) { MessageBox.Show("选中的一行没有数据,请检查!"); return; } if (rows.Count < 1) { MessageBox.Show("你还未选中,请选择一行打印"); return; } packageInfo selectModel = (packageInfo)rows[0].DataBoundItem; PrintDocument printDocument = new PrintDocument(); printDocument.PrinterSettings = new PrinterSettings(); printDocument.DefaultPageSettings = new PageSettings(); printDocument.PrintController = new StandardPrintController(); printDocument.PrintPage += this.GetPrintPageEventHandler(selectModel, "补打"); printDocument.Print(); }
/// <summary> /// 增加包源文件 /// </summary> /// <param name="info">包源文件</param> public void AddPackage(packageInfo info) { //拷贝文件 info.CurrentDir.CopyDir(CurrentPath); //新增包源 List <packageInfo> temp = packageInfos.packageInfoArry.ToList(); temp.Add(info); packageInfos.packageInfoArry = temp.ToArray(); SavePackageConfig(); }
/// <summary> /// 打印 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void PrintBtn_Click(object sender, EventArgs e) { string msg = string.Empty; #region 组装验证数据 packageData = new packageInfo(); packageData.spec = jhspeci.Text.Trim();//商品名 packageData.description = mat_desc.Text.Trim(); packageData.mNo = MaterialNo.Text.Trim(); packageData.standard = "FZ/T 51004-2011"; packageData.bNo = batch_no.Text.Trim(); packageData.workLine = txt_workLine.Text.Trim(); packageData.grade = txt_grade.Text.Trim(); packageData.hiddenProduct = oldMat.Text.Trim(); packageData.packType = packType.Text.Trim(); if (string.IsNullOrEmpty(txt_nbtWeight.Text.Trim())) { packageData.nbtWeight = 0; } else { packageData.nbtWeight = Convert.ToDecimal(txt_nbtWeight.Text.Trim()); } packageData.SILONUM = siloNum.Text.Trim();//料仓号 #endregion if (!PrintValidating.Verification(packageData, ref msg, txt_page.Text)) { MessageBox.Show(msg); return; } int page = Convert.ToInt32(txt_page.Text); for (int i = 0; i < page; i++) { var packageDao = SqlSugarDB.Instance <packageInfo>(); var packageInfo = packageDao.Query().First(p => p.seriesNo.Equals(sn.Text.Trim())); if (packageInfo != null) { sn.Text = packagebll.GetSNInfo(UserBLL.userInfo.WorkLine, dic[siloNum.Text], PROCESSNUM.Text.Trim()).Value; MessageBox.Show("已经自动重置最大箱号!请继续点击打印!"); return; } else { PrintDocument pdt = new PrintDocument(); pdt.PrinterSettings = new PrinterSettings(); pdt.DefaultPageSettings = new PageSettings(); pdt.PrintController = new StandardPrintController(); PageSettings ps = pdt.DefaultPageSettings; pdt.PrintPage += GetPrintPageEventHandler(); pdt.Print(); } } }
/// <summary> /// 获取标签打印数据 /// </summary> /// <returns></returns> private packageInfo GetPrintPackageInfo() { var printModel = new packageInfo(); DateTime now = DateTime.Now; #region 标签打印数据组装 //printModel.ORD_NO = txt_ORD_NO.Text; printModel.spec = jhspeci.Text.Trim(); printModel.description = mat_desc.Text.Trim(); printModel.newNo = oldMat.Text.Trim(); printModel.productDesc = englishDesc.Text.Trim(); var matDao = SqlSugarDB.Instance <MatMaping>(); var matMapingModel = matDao.Query().First(p => p.CustomMat == MaterialNo.Text.Trim()); printModel.mNo = matMapingModel.Mat_ID; printModel.standard = "FZ/T 51004-2011"; printModel.bNo = batch_no.Text.Trim(); printModel.workLine = txt_workLine.Text.Trim(); printModel.SILONUM = dic[siloNum.Text.Trim()]; printModel.grade = txt_grade.Text.Trim(); printModel.characteristic = chracteristicsTB.Text.Trim(); printModel.PROCESSNUM = PROCESSNUM.Text.Trim(); printModel.nbtWeight = Convert.ToDecimal(txt_nbtWeight.Text.Trim()); printModel.productDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); printModel.packageDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); printModel.timestamps = now; printModel.packType = packType.Text.Trim(); if (com_packageType.Text.Trim().Equals("生产下线")) { printModel.packageType = 1; } else { printModel.packageType = 0; } printModel.productDate = Convert.ToDateTime(txt_productDate.Text.Trim()); printModel.comments = remark.Text.Trim(); printModel.ISExport = false; //是否出口 printModel.ISViceProduct = false; //是否副产品 printModel.BOX_TYPE = 0; //纸箱类型 printModel.workShop = UserBLL.userInfo.WorkLine; printModel.wksplit = UserBLL.userInfo.WorkLine; printModel.warehouseNo = UserBLL.userInfo.CenterWareHouse; printModel.CREATEUSER = printModel.MODIFYUSER = UserBLL.userInfo.UserName; printModel.CREATEDATE = printModel.MODIFYDATE = now; //string fg = siloNum.Text.Split('-')[0].Substring(1, siloNum.Text.Split('-')[0].Length - 1) + (!string.IsNullOrEmpty(printModel.PROCESSNUM.Trim()) ? printModel.PROCESSNUM : "00"); printModel.seriesNo = sn.Text; printModel.pack_Ex1 = string.IsNullOrEmpty(customSn.Text) ? printModel.seriesNo : customSn.Text;//客户箱号 #endregion return(printModel); }
public PrintPageEventHandler GetPrintPageEventHandler(packageInfo printModel = null, string type = null) { packageData = printModel; if (packageData == null && GetPrintPackageInfo() != null) { packageData = GetPrintPackageInfo(); } if (string.IsNullOrEmpty(type)) { return(new PrintPageEventHandler(PrintExecute));//正常打印 } else { return(new PrintPageEventHandler(revPrintExecute));//标签补打 } }
/// <summary> /// 删除 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void printInfoDelBTN_Click(object sender, EventArgs e) { if (printInfoDG.SelectedRows.Count <= 0) { MessageBox.Show("至少选中一行数据"); return; } int index = printInfoDG.CurrentRow.Index; List <packageInfo> list = new List <packageInfo>(); foreach (DataGridViewRow item in printInfoDG.SelectedRows) { packageInfo packageModel = (packageInfo)item.DataBoundItem; if (packageModel.STATE == 9) { MessageBox.Show("选中数据已经被删除,不能重复删除!"); return; } packageModel.STATE = 9; list.Add(packageModel); } if (MessageBox.Show("确认删除" + printInfoDG.SelectedRows.Count + "条物料记录?", "此删除可恢复", MessageBoxButtons.YesNo) == DialogResult.Yes) { var rv = packagebll.DeletePrintInfo(list); if (rv.IsSuccess) { foreach (DataGridViewRow item in printInfoDG.SelectedRows) { item.DefaultCellStyle.BackColor = Color.Red; this.NoChecked(printInfoDG); } } MessageBox.Show(rv.Msg); } else { list.ForEach(o => { if (o.STATE == 9) { o.STATE = 0; } }); } //refrshBTN_Click(sender, e); }
public override void Execute() { log.Info("Start extracting"); try { string[] list = File.ReadAllLines("input.txt"); foreach (string s in list) { string[] line = s.Split(';'); packageInfo p = new packageInfo(line[0].Replace("\"",""),line[1].Replace("\"","")); extractPackages(p); } log.Info("Finish extracting"); } catch (Exception ex) { log.Error(ex); Console.WriteLine(ex); } log.Info("End extracting"); }
public ReturnValue AddPackageInfo(packageInfo packageModel) { ReturnValue rv = new ReturnValue(); var packageDao = SqlSugarDB.Instance <packageInfo>(); //var packageDao = new DBHelper<packageInfo>(); try { if (AfterPrinted != null) { var package = packageDao.Query().First(p => p.seriesNo.Equals(packageModel.seriesNo)); if (package != null) { throw new Exception(string.Format("箱号:{0}已经存在,可能已经打印过了,请检查!", packageModel.seriesNo)); } var result = packageDao.Insert(packageModel).ExecuteCommand(); if (result > 0) { string sdt = packageModel.seriesNo.Substring(0, packageModel.seriesNo.Length - 5); int nextSnPre = packageModel.seriesNo.Substring(packageModel.seriesNo.Length - 5, 5).ObjToInt() + 1; string nextSeriesNo = sdt + nextSnPre.ToString().PadLeft(5, '0'); this.AfterPrinted(true, nextSeriesNo); return(rv.Success("")); } else { return(rv.Fail("打印记录添加失败!")); } } else { return(rv.Fail("打印后续执行委托时异常!")); } } catch (Exception e) { return(rv.Fail(e.Message)); } }
public static void PrintImplementation(packageInfo printModel, string customMat, PrintPageEventArgs e) { Graphics g = e.Graphics; Pen p4 = new Pen(Color.Black, 4); //定义了一个蓝色,宽度为的画笔 Pen p2 = new Pen(Color.Black, 2); //定义了一个蓝色,宽度为的画笔 //g.DrawLine(p, 10, 10, 300, 10);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100) g.DrawRectangle(p4, 15, 20, 360, 438); //在画板上画矩形,起始坐标为(10,10),宽为,高为 g.DrawLine(p2, 15, 113, 376, 113); //横线 g.DrawLine(p2, 15, 168, 376, 168); //横线 g.DrawLine(p2, 15, 226, 376, 226); //横线 g.DrawLine(p2, 15, 284, 376, 284); //横线 g.DrawLine(p2, 15, 334, 224, 334); //横线 g.DrawLine(p2, 15, 390, 224, 390); //横线 //g.DrawLine(p2, 218, 108, 218, 284);//竖线 //g.DrawLine(p2, 126, 285, 126, 390);//竖线 g.DrawLine(p2, 225, 285, 225, 458);//竖线 Font Font9 = new Font("微软雅黑", 9, FontStyle.Regular); Font Font13 = new Font("微软雅黑", 13, FontStyle.Bold); Font Font15 = new Font("微软雅黑", 15, FontStyle.Bold); Font Font16 = new Font("微软雅黑", 16, FontStyle.Bold); Font Font11 = new Font("微软雅黑", 11, FontStyle.Bold); System.Drawing.Brush bush = new SolidBrush(Color.Black);//填充的颜色 StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; Font Font19 = new Font("微软雅黑", 19, FontStyle.Bold); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.spec) ? "尼龙粒-全消光" : printModel.spec), Font19, bush, new Rectangle(15, 20, 360, 40), sf); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.productDesc) ? "POLYAMIDE 6 FD CHIP" : printModel.productDesc), Font19, bush, new Rectangle(15, 53, 360, 40), sf); g.DrawString(string.Format("执行标准 EXECUTIVE STANDARD {0}", string.IsNullOrEmpty(printModel.standard) ? "DTY FZ/T54007-2009" : printModel.standard), Font9, bush, new Rectangle(10, 81, 360, 40), sf); g.DrawString("批号", Font9, bush, 21, 125); g.DrawString("LOT.NO", Font9, bush, 19, 146); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.newNo) ? "FNC103" : printModel.newNo), Font16, bush, 100, 126); g.DrawString("物料号", Font9, bush, 19, 179); g.DrawString("M.NO", Font9, bush, 19, 198); g.DrawString(string.Format("{0}", customMat ?? ""), Font16, bush, 100, 185); g.DrawString("批次", Font9, bush, 19, 234); g.DrawString("B.NO", Font9, bush, 19, 254); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.bNo) ? "LHC1708071" : printModel.bNo), Font16, bush, 100, 238); g.DrawString("等级", Font9, bush, 19, 289); g.DrawString("GRADE", Font9, bush, 19, 309); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.grade) ? "AA" : printModel.grade), Font16, bush, 100, 292); g.DrawString("净重", Font9, bush, 19, 341); g.DrawString("N.W", Font9, bush, 19, 361); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.nbtWeight.ToString()) ? "820 KG" : printModel?.nbtWeight + " KG"), Font16, bush, new Rectangle(80, 345, 130, 31), sf); g.DrawImage(Create_ImgCode2(@"" + 1 + ";;" + printModel.mNo + ";" + printModel.bNo + ";" + printModel.grade + ";" + printModel.nbtWeight + ";" + printModel.seriesNo + ";" + printModel?.packageDate + ";" + printModel.SILONUM + ";" + printModel.PROCESSNUM + ";;", 6), new Rectangle(232, 292, 134, 130)); g.DrawString("Made In China", Font9, bush, new Rectangle(230, 425, 130, 24), sf); g.DrawString("袋号", Font9, bush, 22, 396); g.DrawString("C.NO", Font9, bush, 55, 396); g.DrawString(string.Format("{0}", string.IsNullOrEmpty(printModel.pack_Ex1) ? printModel.seriesNo : printModel.pack_Ex1), Font15, bush, new Rectangle(15, 408, 210, 46), sf); }
/// <summary> /// 打印验证 /// </summary> /// <returns>返回是否通过 ref Msg</returns> public static bool Verification(packageInfo model, ref string Msg, string page) { bool isPass = true; if (string.IsNullOrEmpty(model.spec)) { Msg = "商品名不能为空!"; return(false); } if (string.IsNullOrEmpty(model.description)) { Msg = "物料描述不能为空!"; return(false); } if (string.IsNullOrEmpty(model.mNo)) { Msg = "物料号不能为空!"; return(false); } var matDao = SqlSugarDB.Instance <MatMaping>(); var matMapingModel = matDao.Query().First(p => p.CustomMat == model.mNo); if (matMapingModel == null) { Msg = "物料号" + model.mNo + "未维护有对应关系的新物料,请检查!"; return(false); } if (string.IsNullOrEmpty(model.standard)) { Msg = "执行标准不能为空!"; return(false); } if (string.IsNullOrEmpty(model.bNo)) { Msg = "批次号不能为空!"; return(false); } if (string.IsNullOrEmpty(model.workLine)) { Msg = "生产线不能为空!"; return(false); } if (string.IsNullOrEmpty(model.grade)) { Msg = "等级不能为空!"; return(false); } if (string.IsNullOrEmpty(model.hiddenProduct)) { Msg = "批号不能为空!"; return(false); } if (string.IsNullOrEmpty(model.nbtWeight.ToString()) || !IsNumeric(model.nbtWeight.ToString())) { Msg = "净重不能为空,或者不是数字!"; return(false); } if (string.IsNullOrEmpty(model.SILONUM)) { Msg = "料仓号不能为空!"; return(false); } if (string.IsNullOrEmpty(page) || !IsUnsign(page)) { Msg = "张数为空或者不是正整数!"; return(false); } if (string.IsNullOrEmpty(model.packType)) { Msg = "类型不能为空!"; return(false); } return(isPass); }
/// <summary> /// 安装IIS包文件 /// </summary> /// <param name="packageInfo"></param> /// <returns></returns> public bool Install(packageInfo packageInfo) { ServiceController service = ServiceController.GetServices("127.0.0.1").FirstOrDefault(x => x.ServiceName == "W3SVC"); if (service is null) { throw new InvalidOperationException("服务器尚未安装 IIS 服务模块!"); } if (!System.IO.Directory.Exists(packageInfo.CurrentDir)) { throw new InvalidOperationException("IIS安装指定目录不存在!"); } AddSecurityControll2Folder(packageInfo.CurrentDir); try { iisdata iisdata = JsonConvert.DeserializeObject <iisdata>(packageInfo.OtherInfo); ServerManager iismanager = new ServerManager(); //判断应用程序池是否存在 if (iismanager.ApplicationPools[iisdata.WebName] != null) { //移除应用程序池 iismanager.ApplicationPools.Remove(iismanager.ApplicationPools[iisdata.WebName]); } //判断web应用程序是否存在 if (iismanager.Sites[iisdata.WebName] != null) { ///移除应用程序 iismanager.Sites.Remove(iismanager.Sites[iisdata.WebName]); } //建立web应用程序(第二个参数为安装文件的地址) iismanager.Sites.Add(iisdata.WebName, packageInfo.CurrentDir, iisdata.Port); //添加web应用程序池 ApplicationPool pool = iismanager.ApplicationPools.Add(iisdata.WebName); #region 应用程序池配置 //pool.StartMode = StartMode.AlwaysRunning;//启动模式 pool.Recycling.PeriodicRestart.Schedule.Add(new TimeSpan(03, 00, 00)); //凌晨回收一次资源 pool.Cpu.Limit = 50000; //限制最大CPU 50% //pool.Cpu.Action = ProcessorAction.ThrottleUnderLoad;//竞争cpu时限制使用最大cpu 百分比 //设置web应用程序池的Framework版本(注意版本号大小写问题) pool.ManagedRuntimeVersion = "v4.0"; //设置是否启用32为应用程序 pool.Enable32BitAppOnWin64 = true; ///设置专用内存限制 1G 超出释放一次 pool.Recycling.PeriodicRestart.PrivateMemory = 512000 * 2; #endregion //设置web网站的应用程序池 var website = iismanager.Sites[iisdata.WebName]; website.Applications[0].ApplicationPoolName = iisdata.WebName; if (!string.IsNullOrEmpty(iisdata.Domain)) { string str = website.Bindings[0].Host.Split(new char[] { '.' })[0]; string bindingInformation = $"*:{iisdata.Port}:{str}{iisdata.Domain}"; website.Bindings.Add(bindingInformation, "http"); } //提交更改 iismanager.CommitChanges(); } catch (Exception ex) { throw ex; } return(true); }
protected void extractPackages(packageInfo p) { try { log.Info("Start extracting package " + p.path); string outDir = Global.Instance.config.OutPutDirectory; if (!Directory.Exists(outDir)) Directory.CreateDirectory(outDir); byte[] zipBytes = File.ReadAllBytes(p.path); byte[] xtdd_file; using (var s = new MemoryStream(zipBytes)) using (ZipFile zip = new ZipFile(s)) { ZipEntry xtddEntry = null; foreach (ZipEntry z in zip) { if (Path.GetExtension(z.Name).ToLower() == ".xtdd") { if (xtddEntry == null) xtddEntry = z; else throw new Exception("More than one files in archiev"); } } if (xtddEntry == null) throw new Exception("Non report into archive"); using (Stream s1 = zip.GetInputStream(xtddEntry)) using (BinaryReader br = new BinaryReader(s1)) xtdd_file = br.ReadBytes((int)xtddEntry.Size); } string extacted_name = Path.Combine(outDir, p.uid + ".xtdd"); File.WriteAllBytes(extacted_name, xtdd_file); Console.WriteLine(extacted_name); log.Info("Coping package to " + extacted_name); } catch(Exception ex) { log.Error(ex); } }