/// <summary>
        /// 查询用户。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnSearch_ClickAsync(object sender, RoutedEventArgs e)
        {
            List <Lib.MemberInfoEntity> MemberList = await DataMemberRepository.ReadMembers(new Lib.MemberSearch()
            {
                Id = InputMemberId
            }).ConfigureAwait(false);

            Dispatcher.Invoke(new Action(() =>
            {
                if (MemberList.Count == 1)
                {
                    Btn_Ok.IsEnabled            = true;
                    PropertyInfo[] TargetAttris = CurMember.GetType().GetProperties();
                    PropertyInfo[] SourceAttris = MemberList[0].GetType().GetProperties();
                    foreach (PropertyInfo item in SourceAttris)
                    {
                        var tempObj = TargetAttris.Where(x => x.Name.Equals(item.Name, StringComparison.Ordinal)).FirstOrDefault();
                        if (tempObj != null)
                        {
                            item.SetValue(CurMember, item.GetValue(MemberList[0]));
                        }
                        Btn_Ok.IsEnabled = true;
                    }
                }
                else
                {
                    AppFuns.ShowMessage("未找到该身份号码的职工信息!");
                }
            }));
        }
        /// <summary>
        /// 导出数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnExport_ClickAsync(object sender, RoutedEventArgs e)
        {
            Button CurBtn = sender as Button;
            List <Lib.MemberInfoEntity> MemberList = await DataMemberRepository.ReadMembers(new MemberSearch()
            {
            });

            if (MemberList == null)
            {
                return;
            }
            System.Windows.Forms.SaveFileDialog fileDialog = new System.Windows.Forms.SaveFileDialog();
            fileDialog.Filter = "Excel|*.xls";
            if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
            {
                return;
            }
            try
            {
                CurBtn.IsEnabled = false;
                OperationMsg     = "正在导出人员信息,请稍候....";
                await Task.Run(() =>
                {
                    NpoiExcel.ExportExcels(fileDialog.FileName, "员工信息", MemberList);
                });

                OperationMsg     = $"人员信息导出....完成,文件为[{fileDialog.FileName}]。";
                CurBtn.IsEnabled = true;
            }
            catch (Exception Ex)
            {
                AppFuns.ShowMessage(Ex.Message, Caption: "失败");
                CurBtn.IsEnabled = true;
            }
        }
Exemple #3
0
        /// <summary>
        /// 初始化各属性值
        /// </summary>
        private async void InitPropsAsync()
        {
            if (string.IsNullOrEmpty(_CurPageViewModel.EntityMember.Id))
            {
                //  AppFuns.ShowMessage("若要开始,请选输入员工身份证号!", "输入不正确")).ShowDialog();
                return;
            }
            var MemberInfo = await DataMemberRepository.ReadEntity(_CurPageViewModel.EntityMember.Id);

            Stream UserHeadStream = null;

            if (MemberInfo != null)  //数据表中已存在该记录。
            {
                _CurPageViewModel.isEditFlag = true;
                _CurPageViewModel            = new CurPageViewModel(MemberInfo);
                //读取用户头像信息
                var UserPhotos = await DataMemberFileRepository.ReadFiles(new MemberFileSearch()
                {
                    UserId   = AppSet.LoginUser.Id,
                    MemberId = _CurPageViewModel.EntityMember.Id,
                    Name     = _CurPageViewModel.EntityMember.Id
                }).ConfigureAwait(false);

                UserPhotos = UserPhotos.OrderByDescending(x => x.UpDateTime);
                if (UserPhotos != null && UserPhotos.Count() > 0)
                {
                    UserHeadStream = await DataMemberFileRepository.DownloadFileStream(UserPhotos.First().Id, null);
                }
            }
            else
            {
                _CurPageViewModel.isEditFlag = false;
            }
            App.Current.Dispatcher.Invoke(() =>
            {
                if (UserHeadStream != null)
                {
                    System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(UserHeadStream);
                    MemoryStream PhotoStream     = new MemoryStream();
                    bitmap.Save(PhotoStream, System.Drawing.Imaging.ImageFormat.Png);
                    _CurPageViewModel.UseHeadImage.BeginInit();
                    //如果希望关闭用于创建 BitmapImage的流,请将 CacheOption 设置为 BitmapCacheOption.OnLoad。
                    //默认 OnDemand 缓存选项保留对流的访问权限,直到需要映像,并且清除由垃圾回收器处理
                    _CurPageViewModel.UseHeadImage.CacheOption  = BitmapCacheOption.OnLoad;
                    _CurPageViewModel.UseHeadImage.StreamSource = PhotoStream;
                    _CurPageViewModel.UseHeadImage.EndInit();
                    PhotoStream.Dispose();
                }

                DataContext = _CurPageViewModel;
            });
        }
Exemple #4
0
        /// <summary>
        /// 查询待发放信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnSearchClickAsync(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(mSearch.Id))
            {
                return;
            }
            List <Lib.MemberInfoEntity> Members = await DataMemberRepository.ReadMembers(mSearch);

            if (Members == null || Members.Count < 1)
            {
                return;
            }
            //读取用户头像信息
            MemoryStream             UserHeadStream = null;
            IEnumerable <MemberFile> UserPhotos     = await DataMemberFileRepository.ReadFiles(new MemberFileSearch()
            {
                UserId   = AppSet.LoginUser.Id,
                MemberId = Members[0].Id,
                Name     = Members[0].Id
            });

            UserPhotos = UserPhotos.OrderByDescending(x => x.UpDateTime);
            if (UserPhotos != null && UserPhotos.Count() > 0)
            {
                Stream TempStream = await DataMemberFileRepository.DownloadFileStream(UserPhotos.First().Id, null);

                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(TempStream);
                UserHeadStream = new MemoryStream();
                bitmap.Save(UserHeadStream, System.Drawing.Imaging.ImageFormat.Png);
                TempStream.Dispose();

                //TempBitMap = new BitmapImage();
                //TempBitMap.BeginInit();
                //TempBitMap.CacheOption = BitmapCacheOption.OnLoad;
                //TempBitMap.StreamSource = UserHeadStream;
                //TempBitMap.EndInit();
                //TempBitMap.Freeze();
                //UserHeadStream.Dispose();
            }
            string DateStr = $"打印日期:{DateTime.Now:yyy-MM-dd}";

            CreateFlowDoc("PrintMemberSheetFlowDot.xaml", null, DateStr, UserHeadStream, Members[0], P_DocWidth: 793, P_DocHeight: 1122);
        }
Exemple #5
0
        /// <summary>
        /// 删除选定记录。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void btn_Delete_ClickAsync(object sender, RoutedEventArgs e)
        {
            if (RecordDataGrid.SelectedItem is Lib.MemberInfoEntity SelectMember)
            {
                if (SelectMember != null && AppFuns.ShowMessage($"确定要删除[{SelectMember.Name}]信息吗?", "确认", showYesNo: true))
                {
                    ExcuteResult excuteResult = await DataMemberRepository.DeleteMember(SelectMember).ConfigureAwait(false);

                    if (excuteResult.State == 0)
                    {
                        await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { _PageViewModel.EntityList.Remove(SelectMember); }));;
                    }
                    else
                    {
                        AppFuns.ShowMessage(excuteResult.Msg, Caption: "失败");
                    }
                }
            }
        }
Exemple #6
0
        /// <summary>
        /// 查询指定条件的记录
        /// </summary>
        /// <returns></returns>
        private async System.Threading.Tasks.Task SearchMember()
        {
            List <Lib.MemberInfoEntity> MemberList = await DataMemberRepository.ReadMembers(_PageViewModel.mSearch);

            if (MemberList == null)
            {
                AppFuns.SetStateBarText("查询过程出现错误,请重试!");
                return;
            }
            if (MemberList.Count < 1)
            {
                _PageViewModel.EntityList.Clear();
            }
            else
            {
                MemberList.Sort((x, y) => x.OrderIndex - y.OrderIndex);

                _PageViewModel.EntityList.Clear();
                MemberList.ForEach(e => { _PageViewModel.EntityList.Add(e); });
            }
            AppFuns.SetStateBarText($"共查询到记录:{_PageViewModel.EntityList.Count}条");
        }
        /// <summary>
        /// 查询待发放信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnSearchClickAsync(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(_MemberSearch.Id))
            {
                return;
            }
            List <Lib.MemberInfoEntity> Members = await DataMemberRepository.ReadMembers(_MemberSearch);

            if (Members == null || Members.Count < 1)
            {
                AppFuns.ShowMessage("未找到此用户信息!");
                return;
            }
            AppFuns.SetStateBarText($"查看或打印[{Members[0].Name}]信息表。");

            _FixedDocVM = new FixedDocViewModel(Members[0]);
            await _FixedDocVM.InitPropsAsync();

            //设定打印标题
            _FixedDocVM.PrintCaption = $"事 业 编 制 人 员 基 本 情 况 表";
            if (_FixedDocVM.CurMember.MemberType.Equals("劳动合同制"))
            {
                _FixedDocVM.PrintCaption = $"劳 动 用 工 人 员 基 本 情 况 表";
            }
            if (_FixedDocVM.CurMember.MemberType.Equals("劳务派遣制"))
            {
                _FixedDocVM.PrintCaption = $"劳 务 用 工 人 员 基 本 情 况 表";
            }
            //设定打印日期
            _FixedDocVM.PrintDate = DateTime.Now;
            //导入格式模板
            string SheetTemplet = "PrintMemberSheetFixedDot.xaml";

            _FixedDoc = (FixedDocument)Application.LoadComponent(new Uri($"/Office.Work.Platform;component/Member/{SheetTemplet}", UriKind.RelativeOrAbsolute));
            _FixedDoc.AddPages();
            _FixedDoc.DataContext    = _FixedDocVM;
            docViewer.Document       = _FixedDoc;
            this.BtnExport.IsEnabled = true;
        }
            /// <summary>
            /// 查询数据
            /// </summary>
            /// <returns></returns>
            public async Task SearchRecords()
            {
                if (string.IsNullOrWhiteSpace(SearchCondition.MemberId))
                {
                    return;
                }
                //1.先查询用户信息
                List <Lib.MemberInfoEntity> TempMembers = await DataMemberRepository.ReadMembers(new MemberSearch()
                {
                    Id = SearchCondition.MemberId
                }).ConfigureAwait(false);

                if (TempMembers != null && TempMembers.Count > 0)
                {
                    CurMember = TempMembers[0];
                }
                if (CurMember == null)
                {
                    AppFuns.ShowMessage("未找到此用户信息!");
                    return;
                }
                if (SearchCondition != null)
                {
                    List <Lib.MemberScore> MemberScoreList = await DataMemberScoreRepository.GetRecords(SearchCondition);


                    App.Current.Dispatcher.Invoke(() =>
                    {
                        MemberScores.Clear();
                        MemberScoreList?.ToList().ForEach(e =>
                        {
                            e.Member = CurMember;
                            MemberScores.Add(e);
                        });
                    });
                }
            }
Exemple #9
0
        /// <summary>
        /// 保存职工的基本信息
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnSaveBasicClickAsync(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(_CurPageViewModel.EntityMember.Id))
            {
                AppFuns.ShowMessage("员工的身份证号必须输入!");
                Tb_UserId.Focus();
                return;
            }
            if (string.IsNullOrWhiteSpace(_CurPageViewModel.EntityMember.Name))
            {
                AppFuns.ShowMessage("员工的姓名必须输入!");
                Tb_UserName.Focus();
                return;
            }
            ExcuteResult excuteResult;

            if (_CurPageViewModel.isEditFlag)
            {
                excuteResult = await DataMemberRepository.UpdateEntity(_CurPageViewModel.EntityMember);

                AppFuns.ShowMessage(excuteResult.Msg);
            }
            else
            {
                excuteResult = await DataMemberRepository.AddEntity(_CurPageViewModel.EntityMember);

                if (excuteResult.State == 0)
                {
                    //保存成功表示可以进行编辑了,即其他控件可以保存了。
                    _CurPageViewModel.isEditFlag = true;
                    //只传递两个字段信息,不实际读取(因为此时没有必要读取)
                    InitUcControlFilesAsync(false);
                    AppFuns.ShowMessage(excuteResult.Msg);
                }
            }
        }
Exemple #10
0
        /// <summary>
        /// 更新员工的工作信息、受教育信息、更新备注信息等。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnUpdateClickAsync(object sender, RoutedEventArgs e)
        {
            ExcuteResult excuteResult = await DataMemberRepository.UpdateEntity(_CurPageViewModel.EntityMember);

            AppFuns.ShowMessage(excuteResult.Msg);
        }
        private async void BtnSelectFile_Click(object sender, RoutedEventArgs e)
        {
            Button CurBtn   = sender as Button;
            int    AddCount = 0;

            // 在WPF中, OpenFileDialog位于Microsoft.Win32名称空间
            Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog
            {
                Filter = "Excel Files|*.xls;*.xlsx"
            };
            if (dialog.ShowDialog() == true)
            {
                CurBtn.IsEnabled = false;
                try
                {
                    System.IO.FileInfo theExcelFile = new System.IO.FileInfo(dialog.FileName);
                    OperationMsg = $"正在从文件[{theExcelFile.FullName}]中导入人员信息,请稍候....";

                    await Task.Run(async() =>
                    {
                        DataTable UserTable = NpoiExcel.ReadStreamToDataTable(theExcelFile.OpenRead(), null, true);

                        if (UserTable != null && UserTable.Rows.Count > 0)
                        {
                            Lib.MemberInfoEntity tempMember = new Lib.MemberInfoEntity();
                            PropertyInfo[] Attri            = tempMember.GetType().GetProperties();

                            for (int i = 0; i < UserTable.Rows.Count; i++)
                            {
                                tempMember = new Lib.MemberInfoEntity();
                                foreach (PropertyInfo item in Attri)
                                {
                                    //获取该属性的描述特性值(比如:[Description("身份证号")]中的 "身份证号" )
                                    object[] objs          = item.GetCustomAttributes(typeof(DescriptionAttribute), true);
                                    string PropDescription = ((DescriptionAttribute)objs[0]).Description;
                                    if (UserTable.Columns.Contains(PropDescription) && UserTable.Rows[i][PropDescription] != null)
                                    {
                                        StringBuilder dateStr = new StringBuilder(UserTable.Rows[i][PropDescription].ToString());
                                        switch (item.PropertyType.FullName)
                                        {
                                        case "System.DateTime":
                                            if (!DateTime.TryParse(dateStr.ToString(), out DateTime tempDateTime))
                                            {
                                                //处理Excel中数据不规范情况。
                                                dateStr = dateStr.Replace('.', '/');
                                                dateStr = dateStr.Replace('-', '/');
                                                dateStr = dateStr.Replace('—', '/');
                                                dateStr = dateStr.Replace('。', '/');
                                                if (dateStr.Length < 8)
                                                {
                                                    dateStr.Append("/01");
                                                }
                                            }
                                            if (DateTime.TryParse(dateStr.ToString(), out tempDateTime))
                                            {
                                                item.SetValue(tempMember, tempDateTime);
                                            }
                                            break;

                                        case "System.Int32":
                                            if (int.TryParse(dateStr.ToString(), out int tempIntValue))
                                            {
                                                item.SetValue(tempMember, tempIntValue);
                                            }
                                            break;

                                        case "System.String":
                                            item.SetValue(tempMember, UserTable.Rows[i][PropDescription].ToString());
                                            break;

                                        default:
                                            continue;
                                        }
                                    }
                                }
                                if (!string.IsNullOrEmpty(tempMember.Id))
                                {
                                    tempMember.UserId         = AppSet.LoginUser.Id;
                                    ExcuteResult excuteResult = await DataMemberRepository.AddOrUpdate(tempMember).ConfigureAwait(false);
                                    if (excuteResult.State == 0)
                                    {
                                        AddCount++;
                                        OperationMsg = $"正在从文件[{theExcelFile.FullName}]中导入人员信息,已导入[{AddCount}]条信息。";
                                    }
                                }
                            }
                        }
                    });//Task Finish

                    OperationMsg     = $"人员信息导入成功,共导入[{AddCount}]条信息。";
                    CurBtn.IsEnabled = true;
                }
                catch (Exception VE)
                {
                    AppFuns.ShowMessage("出现错误:" + VE.Message, Caption: "错误", isErr: true);
                    CurBtn.IsEnabled = true;
                    return;
                }
            }
        }