예제 #1
0
        /// <summary>
        /// 点击规则列表的内容时触发的事件,编辑和删除两项
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgv_wenjianmingrules_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            string ruleName = dgv_wenjianmingrules.Rows[e.RowIndex].Cells["jieximingcheng"].Value.ToString();

            //点击编辑按钮时
            if (dgv_wenjianmingrules.Columns[e.ColumnIndex].Name == "bianjianniu" && e.RowIndex >= 0)
            {
                //获得规则的信息ruleinfo
                RuleInfo myri = new RuleInfo(ruleName, "文件名标准化");
                myri.GetRuleInfo();
                //把ruleinfo传给wjmruleform窗体,立刻加载信息
                WjmRuleForm myform = new WjmRuleForm(myri);
                if (myform.ShowDialog() == DialogResult.OK)
                {
                    //UpdateWenjianmingRules();
                }
            }
            //点击删除按钮时
            if (dgv_wenjianmingrules.Columns[e.ColumnIndex].Name == "shanchuanniu" && e.RowIndex >= 0)
            {
                DialogResult mydr = MessageBox.Show($"是否删除规则 {ruleName} ?", "消息提醒", MessageBoxButtons.YesNoCancel);
                if (mydr == DialogResult.Yes)
                {
                    string str_sql = $"delete from 数据解析库.规则信息表 where 规则名称='{ruleName}' and 删除=0";
                    MySqlHelper.ExecuteNonQuery(SystemInfo._strConn, str_sql);
                    //更新下拉列表
                    ////删除列表成功提示
                    //刷新格则列表显示
                    UpdateRules("文件名标准化", string.Empty, dgv_wenjianmingrules);
                    SelectRules(cbb_formatName1.Text, dgv_wenjianmingrules);
                    MessageBox.Show($"规则 {ruleName} 已删除成功!");
                }
            }
        }
예제 #2
0
        /// <summary>
        /// 点击查重清晰模块下的规则列表时触发的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgv_chachong_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            string ruleName = dgv_chachong.Rows[e.RowIndex].Cells[1].Value.ToString();

            //点击编辑按钮时
            if (e.ColumnIndex == 4 && e.RowIndex >= 0)
            {
                //获得规则的信息ruleinfo
                RuleInfo myri = new RuleInfo(ruleName, "查重清洗");
                myri.GetRuleInfo();
                //把ruleinfo传给wjmruleform窗体,立刻加载信息
                CcqxRuleForm myForm = new CcqxRuleForm(myri);
                if (myForm.ShowDialog() == DialogResult.OK)
                {
                    MessageBox.Show($"规则 {myForm._ruleInfo.ruleName} 保存成功!");
                }
            }
            //点击删除按钮时
            if (e.ColumnIndex == 5 && e.RowIndex >= 0)
            {
                DialogResult mydr = MessageBox.Show($"是否删除规则 {ruleName} ?", "消息提醒", MessageBoxButtons.YesNoCancel);
                if (mydr == DialogResult.Yes)
                {
                    string str_sql = $"delete from 数据解析库.规则信息表 where 规则名称='{ruleName}' and 删除=0";
                    MySqlHelper.ExecuteNonQuery(SystemInfo._strConn, str_sql);
                    //更新下拉列表
                    ////删除列表成功提示
                    //刷新格则列表显示
                    UpdateRules("查重清洗", string.Empty, dgv_chachong);
                    SelectRules(cbb_format3.Text, dgv_chachong);
                    MessageBox.Show($"规则 {ruleName} 已成功删除!");
                }
            }
        }
예제 #3
0
        // GET api/<controller>
        public Hashtable Get()
        {
            Hashtable        res = new Hashtable();
            List <Hashtable> ls  = new List <Hashtable>();
            RuleInfo         ai  = new RuleInfo();

            foreach (rule i in ai.GetRuleInfo(0, 20)) // admin = 1
            {
                Hashtable ht = new Hashtable();
                ht.Add("id", i.id_rule);
                ht.Add("name", i.context);
                ls.Add(ht);
            }
            res.Add("code", 20000);
            res.Add("data", ls);
            return(res);
        }
예제 #4
0
        /// <summary>
        /// 点击开始按钮时触发的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lbl_kaishi_Click(object sender, EventArgs e)
        {
            //修改程序状态为执行,刷新状态信息
            lbl_zhuangtai.Text   = "正在进行数据解析……";
            lbl_kaishi.Enabled   = false;
            lbl_kaishi.BackColor = Color.Gray;
            statue = 1;

            //获得文件夹下所有的文件名
            for (int i = folderIndex; i < dgv_task.Rows.Count; i++)
            {
                folderIndex = i;//时刻记录当前程序执行到的文件夹位置
                string   folder = dgv_task.Rows[i].Cells[1].Value.ToString();
                string[] files  = Directory.GetFiles(folder);
                for (int k = fileIndex; k < files.Length; k++)
                {
                    //计算百分率
                    double _processRate = 100 * Convert.ToDouble(k + 1) / Convert.ToDouble(files.Length);
                    dgv_task.Rows[i].Cells[3].Value = $"{_processRate.ToString("00.00")}%";
                    Application.DoEvents();

                    //如果用户终止了或者暂停了程序,就跳出循环
                    if (statue == 0 || statue == 2)
                    {
                        return;
                    }
                    fileIndex = k;//时刻记录当前程序执行到的文件位置
                    string file = files[k];
                    #region  1、文件名格式标准化

                    /*1、开始文件名格式标准化*/
                    string path         = Path.GetDirectoryName(file);
                    string fileOriginal = Path.GetFileNameWithoutExtension(file);
                    string extension    = Path.GetExtension(file);
                    string filename     = string.Empty;//用于存放改后的文件名
                    //判断“文件名标准化”格式,如果不是“无”,则进行文件名格式标准化

                    if (!SystemInfo._userInfo._wjmbzh.Equals("无"))
                    {
                        //拆分出路径和文件名
                        ///拆分后的文件名集合,对list进行处理,如果是\d星,那么要和前一项合并
                        List <string> list = Regex.Split(fileOriginal, @"\.").ToList();
                        for (int j = 0; j < list.Count; j++)
                        {
                            if (Regex.IsMatch(list[j], @"\d星"))
                            {
                                list[j] = $"{list[j - 1] }.{list[j]}";
                                list.RemoveAt(j - 1);
                                break;
                            }
                        }
                        //获得文件名标准格式下的所有rule名称
                        FormatInfo fi = new FormatInfo(SystemInfo._userInfo._wjmbzh);
                        fi.GetFormatInfo();
                        List <string> rules = Regex.Split(fi._formatSet, @"\|").ToList();
                        //对每一个rule循环,获得设置root
                        foreach (string rule in rules)
                        {
                            RuleInfo myri = new RuleInfo(rule, "文件名标准化");
                            myri.GetRuleInfo();
                            WjmRuleRoot myroot = ((WjmRuleRoot)myri._root);
                            //判断位置,得到操作目标,对每种可能的目标进行判断操作
                            if (myroot.position[0].Equals("整个文件名"))
                            {
                                //对操作目标进行操作
                                if (!myroot.delete.Trim().Equals(string.Empty))
                                {
                                    filename = Regex.Replace(fileOriginal, myroot.delete.Trim(), "");
                                }
                                else if (!myroot.replace0.Trim().Equals(string.Empty))
                                {
                                    filename = Regex.Replace(fileOriginal, myroot.replace0.Trim(), myroot.replace);
                                }
                            }
                            else if (myroot.position[0].Equals("文件名前"))
                            {
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    filename = $"{myroot.newText}{fileOriginal}";
                                }
                            }
                            else if (myroot.position[0].Equals("文件名后"))
                            {
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    filename = $"{fileOriginal}{myroot.newText}";
                                }
                            }
                            else if (Regex.IsMatch(myroot.position[0], @"文件名第\d项前"))
                            {
                                //获得数字,然后获得目标文本
                                int    index  = Convert.ToInt32(Regex.Match(myroot.position[0], @"\d").Value);
                                string target = list[index - 1];
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    target = $"{myroot.newText.Trim()}{target}";
                                }
                                list[index - 1] = target;
                                filename        = string.Join(".", list);
                            }
                            else if (Regex.IsMatch(myroot.position[0], @"文件名第\d项后"))
                            {
                                //获得数字,然后获得目标文本
                                int    index  = Convert.ToInt32(Regex.Match(myroot.position[0], @"\d").Value);
                                string target = list[index - 1];
                                //新增内容
                                if (!myroot.newText.Trim().Equals(string.Empty))
                                {
                                    target = $"{target}{myroot.newText.Trim()}";
                                }
                                list[index - 1] = target;
                                filename        = string.Join(".", list);
                            }
                            //给文件改名
                            File.Move($"{file}", $"{path}\\{filename}{extension}");
                        }
                    }
                    else//如果不进行文件名标准化,那么新得文件名和原先一样
                    {
                        filename = fileOriginal;
                    }
                    string currentFilename = $"{path}\\{filename}{extension}";

                    #endregion



                    #region 2、文档格式标准化
                    //判断“文档格式标准化”格式,如果用户不是选择了“无”,则执行文件格式标准化
                    if (!SystemInfo._userInfo._wjbzh.Equals("无"))
                    {
                        //获得标准化规则
                        FormatInfo _format = new FormatInfo(SystemInfo._userInfo._wjbzh);
                        _format.GetFormatInfo();
                        string   _rule     = Regex.Split(_format._formatSet, @"\|")[0];
                        RuleInfo _ruleInfo = new RuleInfo(_rule, "格式标准化");
                        _ruleInfo.GetRuleInfo();
                        BzhRuleRoot _root = _ruleInfo._root as BzhRuleRoot;
                        //调整文档格式,包括大标题,副标题,正文,一级标题,二级标题,三级标题,页边距,
                        MyMethod.UpdateFormat2(currentFilename, _root);

                        //文本标注,暂时 放一放
                    }


                    #endregion

                    #region 3、查重清洗
                    //判断用户选择的查重清洗格式,如果不等于,则进行查重清洗
                    if (!SystemInfo._userInfo._ccqx.Equals("无"))
                    {
                    }

                    #endregion
                    #region 4、基础解析
                    //判断用户选择的基础解析格式,如果不等于无,则进行基础解析
                    JJDocument _jjDoc = new JJDocument(currentFilename);

                    if (!SystemInfo._userInfo._jcjx.Equals("无"))
                    {
                        var listbase = _jjDoc.GetBaseAnalysis();
                        _jjDoc.SaveList2Excel(listbase);
                    }


                    #endregion

                    #region 5、内容解析
                    //判断用户选择的内容解析格式,如果不等于无,则进行内容解析
                    if (!SystemInfo._userInfo._nrjx.Equals("无"))
                    {
                        var listneirong = _jjDoc.GetNeirongAnalysis();
                        _jjDoc.SaveList2Excel(listneirong);
                    }

                    #endregion
                    #region 6、大数据版
                    //判断用户选择的大数据版,如果不等于无,则进行大数据版
                    if (!SystemInfo._userInfo._dsjb.Equals("无"))
                    {
                    }
                    #endregion
                }
            }
            //执行完成提示,完成并将系统状态还原为0
            statue             = 0;
            lbl_kaishi.Enabled = true;

            lbl_kaishi.ForeColor = Color.White;
            lbl_kaishi.BackColor = Color.MediumSeaGreen;
            lbl_zhuangtai.Text   = "已就绪,请点击\"开始\"执行解析";
            MessageBox.Show("本次数据处理已完成!");
        }