示例#1
0
        /// <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();
        }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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();
                }
            }
        }
示例#4
0
        /// <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);
        }
示例#5
0
 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));//标签补打
     }
 }
示例#6
0
        /// <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");
        }
示例#8
0
        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));
            }
        }
示例#9
0
        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);
        }
示例#11
0
        /// <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);
        }
示例#12
0
        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);
            }
        }