public MethodReturnResult GetLot(LotPrintViewModel model) { MethodReturnResult result = new MethodReturnResult(); MethodReturnResult <IList <Lot> > rst = null; IList <Lot> lst = null; using (LotQueryServiceClient client = new LotQueryServiceClient()) { PagingConfig cfg = new PagingConfig() { IsPaging = false, OrderBy = "Key" }; if (string.IsNullOrEmpty(model.LotNumber1)) { cfg.Where = string.Format("Key='{0}'", model.LotNumber); } else { cfg.Where = string.Format("Key>='{0}' AND Key<='{1}'", model.LotNumber, model.LotNumber1); } rst = client.Get(ref cfg); if (rst.Code <= 0 && rst.Data != null) { lst = rst.Data; } else { result.Code = rst.Code; result.Message = rst.Message; result.Detail = rst.Detail; return(result); } } if (lst == null || lst.Count == 0) { result.Code = 2001; string message = string.Format("{0}-{1}", model.LotNumber, model.LotNumber1); result.Message = string.Format(WIPResources.StringResource.LotIsNotExists, message); return(result); } //else if (obj.StateFlag == EnumLotState.Finished) //{ // result.Code = 2002; // result.Message = string.Format("批次({0})已完成。", lotNumber); // return result; //} //else if (obj.Status == EnumObjectStatus.Disabled || obj.DeletedFlag == true) //{ // result.Code = 2003; // result.Message = string.Format("批次({0})已结束。", lotNumber); // return result; //} return(rst); }
public ActionResult Save(LotPrintViewModel model) { MethodReturnResult result = new MethodReturnResult(); try { //获取批值。 result = GetLot(model); if (result.Code > 0) { return(Json(result)); } //获取打印机名称 ClientConfig printer = null; using (ClientConfigServiceClient client = new ClientConfigServiceClient()) { MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName); if (rst.Code > 0) { return(Json(rst)); } printer = rst.Data; } //获取打印条码内容 PrintLabel label = null; using (PrintLabelServiceClient client = new PrintLabelServiceClient()) { MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode); if (rst.Code > 0) { return(Json(rst)); } label = rst.Data; } IList <Lot> lst = (result as MethodReturnResult <IList <Lot> >).Data; //打印动态内容。 dynamic d = new ExpandoObject(); d.PrintQty = model.PrintQty; bool bSuccess = false; using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content)) { //根据打印机类型,调用不同的打印方法。 if (printer.ClientType == EnumClientType.NetworkPrinter) { string[] vals = printer.IPAddress.Split(':'); string port = "9100"; if (vals.Length > 1) { port = vals[1]; } foreach (Lot obj in lst) { d.LotNumber = obj.Key; bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d); } } else if (printer.ClientType == EnumClientType.RawPrinter) { foreach (Lot obj in lst) { d.LotNumber = obj.Key; bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d); } } else { result.Code = 1001; result.Message = "打印失败,打印机类型不正确。"; return(Json(result)); } } //返回打印结果。 if (bSuccess == false) { result.Code = 1001; result.Message = string.Format("批次 {0} - {1} 打印失败。", model.LotNumber, model.LotNumber1); } else { result.Message = string.Format("批次 {0} - {1} 打印操作成功。", model.LotNumber, model.LotNumber1); } } catch (Exception ex) { result.Code = 1000; result.Message = ex.Message; result.Detail = ex.ToString(); } // 如果我们进行到这一步时某个地方出错,则重新显示表单 return(Json(result)); }
public ActionResult Save(LotPrintViewModel model) { MethodReturnResult result = new MethodReturnResult(); try { //获取批值。 result = GetLot(model); if (result.Code > 0) { return(Json(result)); } //获取打印机名称 ClientConfig printer = null; using (ClientConfigServiceClient client = new ClientConfigServiceClient()) { MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName); if (rst.Code > 0) { return(Json(rst)); } printer = rst.Data; } //获取打印条码内容 PrintLabel label = null; using (PrintLabelServiceClient client = new PrintLabelServiceClient()) { MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode); if (rst.Code > 0) { return(Json(rst)); } label = rst.Data; } IList <Lot> lst = (result as MethodReturnResult <IList <Lot> >).Data; //打印动态内容。 dynamic d = new ExpandoObject(); d.PrintQty = model.PrintQty; bool bSuccess = false; DateTime PrintStart = DateTime.Now; using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content)) { //根据打印机类型,调用不同的打印方法。 if (printer.ClientType == EnumClientType.NetworkPrinter) { string[] vals = printer.IPAddress.Split(':'); string port = "9100"; if (vals.Length > 1) { port = vals[1]; } foreach (Lot obj in lst) { PrintStart = DateTime.Now; //打印开始时间 d.LotNumber = obj.Key.ToString().ToUpper().Trim(); bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d); //打印日志 using (PrintLogServiceClient client = new PrintLogServiceClient()) { PrintLog logobj = new PrintLog() { LotNumber = obj.Key, //批次号 ClientName = Request.UserHostAddress, //客户端 PrintQty = model.PrintQty, //打印数量 PrintLabelCode = model.PrintLabelCode, //打印标签代码 PrinterName = model.PrinterName, //打印机名称 PrintType = printer.ClientType.GetDisplayName(), //打印机类型 IsSucceed = true, //打印是否成功 PrintData = "", //打印数据 Creator = User.Identity.Name, //创建人 CreateTime = PrintStart, //创建日期 FinishTime = DateTime.Now //编辑日期 }; result = client.Add(logobj); if (result.Code > 0) { return(Json(result)); } } } } else if (printer.ClientType == EnumClientType.RawPrinter) { foreach (Lot obj in lst) { PrintStart = DateTime.Now; //打印开始时间 d.LotNumber = obj.Key; bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d); //打印日志 using (PrintLogServiceClient client = new PrintLogServiceClient()) { PrintLog logobj = new PrintLog() { LotNumber = obj.Key.ToString().ToUpper().Trim(), //批次号 ClientName = Request.UserHostAddress, //客户端 PrintQty = model.PrintQty, //打印数量 PrintLabelCode = model.PrintLabelCode, //打印标签代码 PrinterName = model.PrinterName, //打印机名称 PrintType = printer.ClientType.GetDisplayName(), //打印机类型 IsSucceed = true, //打印是否成功 PrintData = "", //打印数据 Creator = User.Identity.Name, //创建人 CreateTime = PrintStart, //创建日期 FinishTime = DateTime.Now //编辑日期 }; result = client.Add(logobj); if (result.Code > 0) { return(Json(result)); } } } } else { result.Code = 1001; result.Message = "打印失败,打印机类型不正确。"; return(Json(result)); } } //返回打印结果。 if (bSuccess == false) { result.Code = 1001; result.Message = string.Format("批次 {0} - {1} 打印失败。", model.LotNumber, model.LotNumber1); } else { result.Message = string.Format("批次 {0} - {1} 打印操作成功。", model.LotNumber, model.LotNumber1); } } catch (Exception ex) { result.Code = 1000; result.Message = ex.Message; result.Detail = ex.ToString(); } // 如果我们进行到这一步时某个地方出错,则重新显示表单 return(Json(result)); }