Exemple #1
0
        private void bgwImport_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            LogInfo          li     = e.Argument as LogInfo;
            StreamReader     sr     = new StreamReader(li.path);
            string           content;

            string[] contents = new string[4];

            int count      = 0;
            int rightcount = 0;

            string idcard;
            string oldregion;
            string newregion = li.regioncode;
            string oldpath;
            string newpath;
            string drive = @"f:\";

            string newroot;

            while ((content = sr.ReadLine()) != null)
            {
                count++;
                contents  = content.Split(',');
                idcard    = contents[0];
                oldregion = contents[3];
                oldpath   = ERecordPath.GetERecordPath(idcard, "130523", drive);
                newpath   = ERecordPath.GetERecordPath(idcard, newregion, drive);
                if (File.Exists(oldpath))
                {
                    if (!File.Exists(newpath))
                    {
                        newroot = Path.GetDirectoryName(newpath);
                        if (!Directory.Exists(newroot))
                        {
                            Directory.CreateDirectory(newroot);
                        }
                        rightcount++;
                        File.Move(oldpath, newpath);
                    }
                    else
                    {
                        File.Delete(oldpath);
                    }
                }
                lblStatus.Invoke(appendMessage, idcard + ":" + rightcount.ToString() + "/" + count);
            }
        }
Exemple #2
0
        private void bgwImport_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            ErecordInfo      ei     = e.Argument as ErecordInfo;

            lblStatus.Invoke(appendMessage, "开始导入...");
            string idcard;

            //   SqlCommand cmd = new SqlCommand();

            //DataRowView dr = cbxRegionCode.SelectedItem as DataRowView;
            //string regioncode = dr["code"].ToString();
            //string drive = cbxDrives.Text;
            //string oldERecordRoot = txtPath.Text;

            string newpath;
            string newroot;


            int wuxianRegionCount = 0;
            int wuxianRootCount   = 0;
            int wuxianCount       = 0;
            int wuxianTotal       = 0;


            int ageRegionCount = 0;
            int ageRootCount   = 0;
            int ageCount       = 0;
            int ageTotal       = 0;

            int          total  = 0;
            StreamWriter sw     = new StreamWriter("log.csv", true);
            Random       rd     = new Random();
            string       region = "";
            int          year;
            const int    yearMax = 1965;

            string[]      regions    = new string[] { "市本级", "内丘电子档案-城镇职工-20671", "内丘新农保电子档案-时代提取-114987", "邢台县电子档案-时代提取-170512", "任县电子档案-时代提取-179537", "沙河档案交接分拣196038" };
            List <string> regionList = new List <string>();

            for (int i = 0; i < regions.Length; i++)
            {
                regionList.Add(regions[i]);
            }

            try
            {
                foreach (string path in Directory.EnumerateFiles(ei.oldroot + @"\", "*.jpg", SearchOption.AllDirectories))
                {
                    if (path.Split('\\').Length > 3)
                    {
                        idcard = Path.GetFileNameWithoutExtension(path).Trim();
                        year   = Convert.ToInt32(idcard.Substring(6, 4));
                        region = path.Split('\\')[2];
                        if (year >= yearMax && !Idcard.CheckIDCard15(idcard))
                        {
                            if (region != path.Split('\\')[2])
                            {
                                ageRegionCount++;
                                ageCount     = 0;
                                ageRootCount = 0;
                            }
                            if (ageCount == 5000)
                            {
                                ageCount = 0;
                                ageRootCount++;
                            }
                            newpath = ERecordPath.GetERecordPathTemp(ei.drive, "五十岁以下", region, ageRootCount.ToString(), idcard);
                            newroot = Path.GetDirectoryName(newpath);
                            if (!Directory.Exists(newroot))
                            {
                                Directory.CreateDirectory(newroot);
                            }
                            if (!File.Exists(newpath))
                            {
                                ageCount++;
                                ageTotal++;
                                File.Copy(path, newpath, true);
                                WriteLogToCSV(sw, idcard + "," + path + "," + region);// + ei.type.ToString() + "," + ei.regioncode);
                            }
                        }
                        //if (year < yearMax || Idcard.CheckIDCard15(idcard))
                        //{
                        //    if (region != path.Split('\\')[2])
                        //    {
                        //        ageRegionCount++;
                        //        ageCount = 0;
                        //        ageRootCount = 0;
                        //    }
                        //    if (ageCount == 5000)
                        //    {
                        //        ageCount = 0;
                        //        ageRootCount++;
                        //    }
                        //    newpath = ERecordPath.GetERecordPathTemp(ei.drive, "50岁和15位", region, ageRootCount.ToString(), idcard);
                        //    newroot = Path.GetDirectoryName(newpath);
                        //    if (!Directory.Exists(newroot))
                        //    {
                        //        Directory.CreateDirectory(newroot);
                        //    }
                        //    if (!File.Exists(newpath))
                        //    {
                        //        ageCount++;
                        //        ageTotal++;
                        //        File.Copy(path, newpath, true);
                        //        WriteLogToCSV(sw, idcard + "," + path + "," + region);// + ei.type.ToString() + "," + ei.regioncode);
                        //    }

                        //}
                        //else if (regionList.Contains(region) && Idcard.IsIdcard(idcard) && IsGet(rd))
                        //{
                        //    if (region != path.Split('\\')[2])
                        //    {
                        //        wuxianRegionCount++;
                        //        wuxianRootCount = 0;
                        //        wuxianCount = 0;
                        //    }
                        //    if (wuxianCount == 5000)
                        //    {
                        //        wuxianCount = 0;
                        //        wuxianRootCount++;
                        //    }

                        //    newpath = ERecordPath.GetERecordPathTemp(ei.drive, "五县抽调", region, wuxianRootCount.ToString(), idcard);
                        //    newroot = Path.GetDirectoryName(newpath);
                        //    if (!Directory.Exists(newroot))
                        //    {
                        //        Directory.CreateDirectory(newroot);
                        //    }
                        //    if (!File.Exists(newpath))
                        //    {
                        //        wuxianCount++;
                        //        wuxianTotal++;
                        //        File.Copy(path, newpath, true);
                        //        WriteLogToCSV(sw, idcard + "," + path + "," + region);// + ei.type.ToString() + "," + ei.regioncode);
                        //    }
                        //}

                        total++;
                        lblStatus.Invoke(appendMessage, "50岁:" + ageRegionCount + "/" + ageRootCount + "/" + ageCount + "/" + ageTotal +
                                         "。\n五县:" + wuxianRegionCount + "/" + wuxianRootCount + "/" + wuxianCount + "/" + wuxianTotal + "\t" + "总数:" + total);
                    }
                }
                lblStatus.Invoke(appendMessage, "完成" + total);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                sw.Close();
            }
        }