private void QualityControl()
        {
            Project = Application.Current.Properties["SelectedProject"] as Project;

            if (Project == null || !"1".Equals(Project.Type))
            {
                MessageBox.Show("请选择楼盘项目", "提示");
                return;
            }
            var view = new TaskInfoDialog();
            TaskInfoDialogViewModel TaskInfoDialog = TaskInfoDialogViewModel.getInstance();
            var result = DialogHost.Show(view, "RootDialog");

            QualityControlTask task = new QualityControlTask();

            try
            {
                task.Project = Project;
                task.Ongo();
            }
            catch (Exception ex)
            {
                ErrorDialogViewModel.getInstance().show(ex);
                return;
            }
        }
        public TaskInfoDialog()
        {
            InitializeComponent();
            DataContext = TaskInfoDialogViewModel.getInstance();

            // 解决鼠标中轴滚动问题
            UseTheScrollViewerScrolling(Messages);
        }
Exemplo n.º 3
0
        public void Ongo()
        {
            try
            {
                TaskInfoDialog = TaskInfoDialogViewModel.getInstance();
                TaskMessage taskMessage = new TaskMessage();
                taskMessage.Title    = "导出项目:" + Project.ProjectName;
                taskMessage.Progress = 0.0;
                TaskInfoDialog.Messages.Insert(0, taskMessage);


                Task task = new Task(() =>
                {
                    try
                    {
                        exportRegistration.TaskMessage  = taskMessage;
                        exportRegistration.SaveFileName = SaveFileName;
                        exportRegistration.Project      = Project;
                        exportRegistration.write();
                    }
                    catch (Exception ex)
                    {
                        ErrorMsg.Add(ex.Message);
                    }
                    ErrorMsg.AddRange(exportRegistration.ErrorMsg);
                });
                task.Start();
                task.ContinueWith(t =>
                {
                    ThreadPool.QueueUserWorkItem(delegate
                    {
                        SynchronizationContext.SetSynchronizationContext(new
                                                                         System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher));
                        SynchronizationContext.Current.Post(pl =>
                        {
                            foreach (var error in ErrorMsg)
                            {
                                taskMessage.DetailMessages.Add(error);
                            }
                            if (ErrorMsg != null && ErrorMsg.Count > 0)
                            {
                                taskMessage.DetailMessages.Add("导出失败");
                            }
                            else
                            {
                                taskMessage.Progress = 100.00;
                                taskMessage.DetailMessages.Add("导出成功");
                            }
                        }, null);
                    });
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void Ongo()
        {
            try
            {
                TaskInfoDialog = TaskInfoDialogViewModel.getInstance();
                //TaskInfoDialog.Messages.Add("开始质检项目:" + Project.ProjectName);
                TaskMessage taskMessage = new TaskMessage();
                taskMessage.Title    = "质检项目:" + Project.ProjectName;
                taskMessage.Progress = 0.0;
                TaskInfoDialog.Messages.Insert(0, taskMessage);
                Task task = new Task(() =>
                {
                    //Thread.Sleep(2000);

                    QualityControl qualityControl = new QualityControl();
                    qualityControl.Project        = ProjectDal.InitialRealEstateProject(Project);
                    qualityControl.TaskMessage    = taskMessage;
                    try
                    {
                        ErrorMsg.AddRange(qualityControl.Check());
                    }
                    catch (Exception ex)
                    {
                        ErrorMsg.Add(ex.Message);
                    }
                });
                task.Start();
                task.ContinueWith(t =>
                {
                    ThreadPool.QueueUserWorkItem(delegate
                    {
                        SynchronizationContext.SetSynchronizationContext(new
                                                                         System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher));
                        SynchronizationContext.Current.Post(pl =>
                        {
                            foreach (var error in ErrorMsg)
                            {
                                taskMessage.DetailMessages.Add(error);
                            }
                            if (ErrorMsg != null && ErrorMsg.Count > 0)
                            {
                                taskMessage.DetailMessages.Add("质检不通过");
                                Project.State      = "0";
                                Project.UptateTime = DateTime.Now;
                                ProjectDal.Modify(Project);
                            }
                            else
                            {
                                taskMessage.DetailMessages.Add("质检合格");
                                Project.State      = "1";
                                Project.UptateTime = DateTime.Now;
                                ProjectDal.Modify(Project);
                            }
                        }, null);
                    });
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void Ongo()
        {
            try
            {
                TaskInfoDialog = TaskInfoDialogViewModel.getInstance();
                TaskMessage taskMessage = new TaskMessage();
                taskMessage.Title    = "导出项目:" + Project.ProjectName;
                taskMessage.Progress = 0.0;
                TaskInfoDialog.Messages.Insert(0, taskMessage);

                NaturalBuildingDal naturalBuildingDal = new NaturalBuildingDal();
                LogicalBuildingDal logicalBuildingDal = new LogicalBuildingDal();
                FloorDal           floorDal           = new FloorDal();
                HouseholdDal       householdDal       = new HouseholdDal();
                ObligeeDal         obligeeDal         = new ObligeeDal();
                MortgageDal        mortgageDal        = new MortgageDal();
                SequestrationDal   sequestrationDal   = new SequestrationDal();

                Task task = new Task(() =>
                {
                    try
                    {
                        book.Project          = Project;
                        book.TaskMessage      = taskMessage;
                        book.NaturalBuildings = naturalBuildingDal.GetListBy(t => t.ProjectID == Project.ID);
                        book.LogicalBuildings = logicalBuildingDal.GetListBy(t => t.ProjectID == Project.ID);
                        book.Floors           = floorDal.GetListBy(t => t.ProjectID == Project.ID);
                        book.Households       = householdDal.GetListBy(t => t.ProjectID == Project.ID);
                        book.Obligees         = obligeeDal.GetListBy(t => t.ProjectID == Project.ID);
                        if ("2".Equals(Project.OwnershipType))
                        {
                            book.Mortgages      = mortgageDal.GetListBy(t => t.ProjectID == Project.ID);
                            book.Sequestrations = sequestrationDal.GetListBy(t => t.ProjectID == Project.ID);
                        }

                        book.Open(TemplateFileName);
                        book.Write();
                        //book.SaveAsExcel(SaveFileName);
                    }
                    catch (Exception ex)
                    {
                        ErrorMsg.Add(ex.Message);
                    }
                    ErrorMsg.AddRange(book.ErrorMsg);
                });
                task.Start();
                task.ContinueWith(t =>
                {
                    ThreadPool.QueueUserWorkItem(delegate
                    {
                        SynchronizationContext.SetSynchronizationContext(new
                                                                         System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher));
                        SynchronizationContext.Current.Post(pl =>
                        {
                            foreach (var error in ErrorMsg)
                            {
                                taskMessage.DetailMessages.Add(error);
                            }
                            if (ErrorMsg != null && ErrorMsg.Count > 0)
                            {
                                taskMessage.DetailMessages.Add("导出失败");
                            }
                            else
                            {
                                string bufferPath = System.AppDomain.CurrentDomain.BaseDirectory + @"Buffer\" + Path.GetFileName(SaveFileName);
                                try
                                {
                                    book.SaveAsExcel(bufferPath);

                                    //// 压缩成报盘
                                    //ZipHelper zipHelper = new ZipHelper();
                                    //zipHelper.ZipFile(SaveFileName.Replace(".bpf", ".xls"), SaveFileName, 5, 500);
                                    //// 删除excel
                                    //File.Delete(SaveFileName.Replace(".bpf", ".xls"));

                                    if (Path.GetExtension(bufferPath) == ".xls")
                                    {
                                        File.Copy(bufferPath, SaveFileName, true);
                                        File.Delete(bufferPath);
                                    }
                                    else if (Path.GetExtension(bufferPath) == ".bpf")
                                    {
                                        File.Copy(bufferPath.Replace(".xls", ".bpf"), SaveFileName.Replace(".xls", ".bpf"), true);
                                        File.Delete(bufferPath.Replace(".xls", ".bpf"));
                                    }

                                    taskMessage.Progress = 100.00;
                                    taskMessage.DetailMessages.Add("导出成功");
                                }
                                catch (Exception ex)
                                {
                                    taskMessage.DetailMessages.Add(ex.Message + ex.StackTrace);
                                }
                            }
                        }, null);
                    });
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void Ongo()
        {
            try
            {
                TaskInfoDialog = TaskInfoDialogViewModel.getInstance();
                String FileName = Path.GetFileName(FullPath);
                //TaskInfoDialog.Messages.Add("开始导入:" + FileName);
                TaskMessage taskMessage = new TaskMessage();
                taskMessage.Title    = "导入项目:" + FileName;
                taskMessage.Progress = 0.0;
                TaskInfoDialog.Messages.Insert(0, taskMessage);
                Task task = new Task(() =>
                {
                    ImportRealEstateBook import = new ImportRealEstateBook();
                    import.FileName             = FullPath;
                    import.Read();

                    bool canContinue = import.ReadInformation();

                    if (canContinue)
                    {
                        taskMessage.Progress = 50.00;
                        //var naturalEffective = NaturalEffective(import.ZRZList);
                        var isNaturalBuildingUnique = IsNaturalBuildingUnique(import.NaturalBuildings);
                        var isHouseholdUnique       = IsHouseholdUnique(import.Households);
                        if (isNaturalBuildingUnique && isHouseholdUnique)
                        {
                            Project project       = InitialProject();
                            ProjectDal projectDal = new ProjectDal();
                            NaturalBuildingDal naturalBuildingDal = new NaturalBuildingDal();
                            LogicalBuildingDal logicalBuildingDal = new LogicalBuildingDal();
                            FloorDal floorDal         = new FloorDal();
                            HouseholdDal householdDal = new HouseholdDal();
                            ObligeeDal obligeeDal     = new ObligeeDal();
                            try
                            {
                                foreach (var naturalBuilding in import.NaturalBuildings)
                                {
                                    naturalBuilding.ID         = Guid.NewGuid();
                                    naturalBuilding.ProjectID  = project.ID;
                                    naturalBuilding.UpdateTime = DateTime.Now;
                                    naturalBuildingDal.Add(naturalBuilding);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorMsg.Add("自然幢数据异常:" + ex.Message);
                            }
                            try
                            {
                                foreach (var logicalBuilding in import.LogicalBuildings)
                                {
                                    logicalBuilding.ID         = Guid.NewGuid();
                                    logicalBuilding.ProjectID  = project.ID;
                                    logicalBuilding.UpdateTime = DateTime.Now;
                                    logicalBuildingDal.Add(logicalBuilding);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorMsg.Add("逻辑幢数据异常:" + ex.Message);
                            }
                            try
                            {
                                foreach (var floor in import.Floors)
                                {
                                    floor.ID         = Guid.NewGuid();
                                    floor.ProjectID  = project.ID;
                                    floor.UpdateTime = DateTime.Now;
                                    floorDal.Add(floor);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorMsg.Add("层数据异常:" + ex.Message);
                            }
                            try
                            {
                                foreach (var household in import.Households)
                                {
                                    household.ID         = Guid.NewGuid();
                                    household.ProjectID  = project.ID;
                                    household.UpdateTime = DateTime.Now;
                                    householdDal.Add(household);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorMsg.Add("户数据异常:" + ex.Message);
                            }
                            try
                            {
                                foreach (var obligee in import.Obligees)
                                {
                                    obligee.ID         = Guid.NewGuid();
                                    obligee.ProjectID  = project.ID;
                                    obligee.UpdateTime = DateTime.Now;
                                    obligeeDal.Add(obligee);
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorMsg.Add("权利人数据异常:" + ex.Message);
                            }
                            try
                            {
                                projectDal.Add(project);
                            }
                            catch (Exception ex)
                            {
                                ErrorMsg.Add("项目数据异常:" + ex.Message);
                            }
                        }
                    }
                    ErrorMsg.AddRange(import.ErrorMsg);
                });
                task.Start();
                task.ContinueWith(t =>
                {
                    ThreadPool.QueueUserWorkItem(delegate
                    {
                        SynchronizationContext.SetSynchronizationContext(new
                                                                         System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher));
                        SynchronizationContext.Current.Post(pl =>
                        {
                            foreach (var error in ErrorMsg)
                            {
                                taskMessage.DetailMessages.Add(error);
                            }
                            if (ErrorMsg != null && ErrorMsg.Count > 0)
                            {
                                taskMessage.DetailMessages.Add("导入失败");
                            }
                            else
                            {
                                taskMessage.Progress = 100.00;
                                taskMessage.DetailMessages.Add("导入成功");
                                // 刷新项目列表
                            }
                        }, null);
                    });
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private void ImportDictionary()
        {
            var view   = new TaskInfoDialog();
            var result = DialogHost.Show(view, "RootDialog");

            TaskInfoDialogViewModel taskInfoDialog = TaskInfoDialogViewModel.getInstance();
            TaskMessage             taskMessage    = new TaskMessage();

            taskMessage.Title    = "执行导入字典目录任务";
            taskMessage.Progress = 0.0;
            taskInfoDialog.Messages.Add(taskMessage);
            Task task = new Task(() =>
            {
                App.Current.Dispatcher.Invoke((Action)(() =>
                {
                    taskMessage.DetailMessages.Add("开始导入。。");
                }));

                // 导入BDCS_CONSTCLS
                BaseDal <CONSTCLS> baseDal = new BaseDal <CONSTCLS>();
                StreamReader sr            = new StreamReader(@"C:\Users\Administrator\Desktop\BDCS_CONSTCLS 1.txt", Encoding.Default);
                String line;
                int index = 0;
                while ((line = sr.ReadLine()) != null)
                {
                    string[] s     = line.Split(',');
                    CONSTCLS c     = new CONSTCLS();
                    c.MBBSM        = int.Parse(s[0].Trim());
                    c.CONSTSLSID   = int.Parse(s[1].Trim());
                    c.CONSTCLSNAME = s[2].Trim();
                    c.CONSTCLSTYPE = s[3].Trim();
                    c.BZ           = s[4].Trim();
                    baseDal.Add(c);
                    index++;
                    double per           = index / 79.0 * 100;
                    taskMessage.Progress = per;
                    App.Current.Dispatcher.Invoke((Action)(() =>
                    {
                        taskMessage.DetailMessages.Add("字典目录表:进度" + per.ToString("#0.#0") + "%");
                    }));
                }

                index = 0;
                taskMessage.Progress     = 0.0;
                BaseDal <CONST> baseDal2 = new BaseDal <CONST>();
                StreamReader sr2         = new StreamReader(@"C:\Users\Administrator\Desktop\BDCS_CONST 1.txt", Encoding.Default);
                String line2;
                while ((line2 = sr2.ReadLine()) != null)
                {
                    string[] s   = line2.Split(',');
                    CONST c      = new CONST();
                    c.MBBSM      = int.Parse(s[0].Trim());
                    c.CONSTSLSID = int.Parse(s[1].Trim());
                    c.CONSTVALUE = s[2].Trim();
                    c.CONSTTRANS = s[3].Trim();
                    if (s[4].Trim() != "")
                    {
                        c.PARENTNODE = int.Parse(s[4].Trim());
                    }
                    else
                    {
                        c.PARENTNODE = null;
                    }
                    if (s[5].Trim() != "")
                    {
                        c.CONSTORDER = int.Parse(s[5].Trim());
                    }
                    else
                    {
                        c.CONSTORDER = null;
                    }
                    c.BZ           = s[6].Trim();
                    c.CREATETIME   = null;
                    c.MODIFYTIME   = null;
                    c.REPORTVALUE  = s[9].Trim();
                    c.GJCONSTTRANS = s[10].Trim();
                    c.SFSY         = s[11].Trim();
                    c.GJVALUE      = s[12].Trim();

                    baseDal2.Add(c);
                    index++;
                    double per = index / 1918.0 * 100;

                    taskMessage.Progress = per;
                    App.Current.Dispatcher.Invoke((Action)(() =>
                    {
                        taskMessage.DetailMessages.Add("字典表:进度" + per.ToString("#0.#0") + "%");
                    }));
                }
            });

            task.Start();
            task.ContinueWith(t =>
            {
                ThreadPool.QueueUserWorkItem(delegate
                {
                    SynchronizationContext.SetSynchronizationContext(new
                                                                     System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher));
                    SynchronizationContext.Current.Post(pl =>
                    {
                        taskMessage.DetailMessages.Add("导入完成。");
                    }, null);
                });
            });
        }