schangxiang@126.com
2025-08-13 a97a624c1fb269a059f97629076433c46b4e8b4c
LA24030_LuLiPackageLine_Print/LA24030_LuLiPackageLine_PrintService/WindowsFormsApplication1/Form1.cs
@@ -24,6 +24,7 @@
{
    public partial class Form1 : Form
    {
        public static string prePrintSuccessPackage = "";//上一个打印成功的包号
        //自动打印线程
        Thread AutoPrint, Colors;
@@ -252,7 +253,7 @@
                    this.tb_Msg.Text = "出现异常:" + ex.Message;
                    Log4NetHelper.WriteErrorLog(LogType.Print, "Print 出现异常:" + ex.Message, ex);
                }
                Thread.Sleep(2 * 1000);//休眠2秒
                Thread.Sleep(10 * 1000);//休眠10秒 ,2秒改为10秒 【Editby shaocx,2025-08-05】
            }
        }
@@ -312,46 +313,56 @@
                    Dictionary<string, object> data = new Dictionary<string, object>();
                    if (printClassifyEnum == PrintClassifyEnum.包装条码)
                    {
                        data.Add("Info4", item.Info4 ?? "");//合同单号
                        //data.Add("Info4", item.Info4 ?? "");//合同单号
                        data.Add("Info5", item.Info5 ?? "");//生产单号
                        data.Add("Info6", "第" + (item.Info6 ?? "") + "包");//第几包
                        data.Add("bar", item.PackageCode);//二维码(包号)
                        data.Add("bar", item.PackageCode ?? "");//二维码(包号)
                        data.Add("Info7", item.Info7 ?? "");//经销店
                        data.Add("Info8", item.Info8 ?? "");//产品
                        data.Add("Info9", item.PackageCode ?? "");//包装编码
                        data.Add("Info10", item.Info10 ?? "");//客户名称
                        data.Add("Info11", item.Info11 ?? "");//自提or发货 
                        data.Add("Info12", "包装明细 部件总数" + item.Info12 ?? "");//部件明细
                        data.Add("Info13", item.Info13 ?? "");//当前包面积
                        data.Add("Info12", "包装明细 [板件总数" + (item.Info12 ?? "") + "]");//部件明细
                        //data.Add("Info13", item.Info13 ?? "");//当前包面积
                        data.Add("printTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                        var finsiList = mycontext.mes_package_gather.Where(x => x.Info5 == item.Info5 && x.UpiStatus >= (int)UpiStatusEnum.已合包).ToList();
                        double leijisaomiaomj = 0;
                        foreach (var aa in finsiList)
                        {
                            if (!string.IsNullOrEmpty(aa.Info13))
                            {
                                leijisaomiaomj += Convert.ToDouble(aa.Info13);
                            }
                        }
                        if (!string.IsNullOrEmpty(item.Info13))
                        {
                            leijisaomiaomj += Convert.ToDouble(item.Info13);
                        }
                        data.Add("leijisaomiaomj", leijisaomiaomj);//累计扫描面积
                        //var finsiList = mycontext.mes_package_gather.Where(x => x.Info5 == item.Info5 && x.UpiStatus >= (int)UpiStatusEnum.已合包).ToList();
                        //double leijisaomiaomj = 0;
                        //foreach (var aa in finsiList)
                        //{
                        //    if (!string.IsNullOrEmpty(aa.Info13))
                        //    {
                        //        leijisaomiaomj += Convert.ToDouble(aa.Info13);
                        //    }
                        //}
                        //不计算本次的
                        //if (!string.IsNullOrEmpty(item.Info13))
                        //{
                        //    leijisaomiaomj += Convert.ToDouble(item.Info13);
                        //}
                        //data.Add("leijisaomiaomj", leijisaomiaomj);//累计扫描面积
                        //查询下 包数据
                        var mylist = mycontext.mes_batchOrderUPI_new.Where(x => x.PackageCode == item.PackageCode).ToList();
                        var gg = mylist.GroupBy(x => x.DetailName);
                        var gg = mylist.GroupBy(x => new { x.DetailName, x.Info16 });
                        int i = 0;
                        int maxCount = 10;
                        if (gg.Count() > 10)
                        {
                            errMsg = $"打印错误 打印机名称{_PrinterName},错误信息:打印超出了限制条数,最大不能超过{maxCount}条,实际{gg.Count()}条";
                            Log4NetHelper.WriteErrorLog(LogType.Print, errMsg, null);
                            return;
                        }
                        foreach (var g in gg)
                        {
                            i++;
                            data.Add("detail_" + i, g.Key ?? "");//部件名称
                            data.Add("detail_" + i + "_length", g.ToList().First().Info16 ?? "");//部件尺寸
                            data.Add("detail_" + i, g.Key.DetailName ?? "");//部件名称
                            data.Add("detail_" + i + "_length", g.Key.Info16 ?? "");//部件尺寸
                            data.Add("detail_" + i + "_number", g.ToList().Count());//部件数量
                        }
                        for (int p = (i + 1); p <= 6; p++)
                        //这个地方是将剩下的数据 清空
                        //最大值改为 10  【Editby shaocx,2025-03-31】
                        for (int p = (i + 1); p <= maxCount; p++)
                        {
                            data.Add("detail_" + p, "");//部件名称
                            data.Add("detail_" + p + "_length", "");//部件尺寸
@@ -366,14 +377,24 @@
                    //调用打印接口
                    bool isSuccess = false;
                    using (iWarePrintService.PrintBaseService.PrintWcfServiceClient client = new iWarePrintService.PrintBaseService.PrintWcfServiceClient())
                    {
                        //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_一维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg);
                        //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_二维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg);
                        isSuccess = client.Print3(data, item.PrintSheetNum, printConfig.PrintTemplateAddr, _PrinterName, out errMsg);
                    if (prePrintSuccessPackage == item.PackageCode)
                    {//如果是连续打印,则不调用打印服务,解决重复打印的问题 【Editby shaocx,2025-08-13】
                        isSuccess = true;//强制认为打印成功!
                    }
                    else
                    {
                        using (iWarePrintService.PrintBaseService.PrintWcfServiceClient client = new iWarePrintService.PrintBaseService.PrintWcfServiceClient())
                        {
                            //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_一维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg);
                            //isSuccess = client.Print3(data, 1, @"D:\打印程序\跟踪码打印模板\跟踪码打印模板_二维码.btw", "ZDesigner ZD888-203dpi ZPL", out errMsg);
                            isSuccess = client.Print3(data, item.PrintSheetNum, printConfig.PrintTemplateAddr, _PrinterName, out errMsg);
                        }
                    }
                    if (isSuccess)
                    {
                        prePrintSuccessPackage = item.PackageCode;
                        item.PrintStatus = 1;//打印状态(0:未打印 1:已打印)
                        item.PrintNum = (item.PrintNum) + 1;