资源下载地址:https://download.csdn.net/download/sheziqiong/91443817
资源下载地址:https://download.csdn.net/download/sheziqiong/91443817
项目简介
本项目使用Blazor框架作为前端,后端使用Asp.Net Core作为服务器。本项目基本上实现了,员工信息管理,员工人事调动管理系统、员工加班管理系统、员工请假管理系统、员工考勤管理系统、员工工资管理系统等相关功能和系统。
本项目的大部分功能已经进行了闭环,实现了基本的增、删、改、查等数据库操作。使用Sql Server作为数据库的容器。
基于Asp.Net实现的新型的人力资源管理WEB平台系统
项目亮点
本项目基础功能已经全部闭环,可以有一个基础的交互。同时本项目也算一个C#全栈项目!分为两种用户使用功能,(1)普通用户:可以发起一些部门申请,资金考核申请等(2)管理员用户:可以来审核普通用户发起的申请,同时修改一些数据库的相关信息。
本项目在设计上拥有相关的亮点,下面将从“前端”和“后端”两大部分,进行相关的介绍。
前端
- ✨C#+JavaScript语言编写!
- ✨PWA渐进式 Web 应用!
- ✨动态响应设计,匹配电脑端和手机端!
- ✨优雅的界面设计(虽然不知道到底算不算)
本项目使用Blazor框架进行编写,并且配置了PWA等相关功能,所以现在它可以作为一个APP安装在了自己的计算机中。同时,前端大部分代码使用了C#编写,也使用了例如Inject注入等一些特性。是的,你没有听错,得益于WebAssembly的支持,现在可以使用C#来替代JavaScript来编写代码。并且性能还可以。同时也使用了一些CSS小技巧,例如::Before
等伪类实现功能。(虽然听起来有点基础)。也在前端中,分装了一些,组件来使用,了解了Razor的生命周期。
后端
- ✨Asp.Net Core后端服务器实现!(是的,这是一个C#全栈项目)
- ✨MVC设计架构,WebApi实现。
- ✨本来想封装一个自己的ActionResult,但是突然觉得校验很麻烦,所以只实现了一半qwq。
- ✨数据库实现:实现了几张表格,并且可以很好的链接在一起,使用left join查询等。
- ✨服务器程序启动了静态资源文件支持,可以用于做一台资源服务器,并且配置了Json的生成避免产生Cycles。
后端服务器同时也实现了一些和数据库打交道的方式,下文将详细给出使使用方法和配置数据库的教程。
实机截图

主界面设计

新增请假管理

查看我的请假历史和进度

批准回复我的请假要求

薪水计算器,可以根据部门所制定的规则计算当下的所应该领取的工资

审核自己的下属,工资发放的情况
软件设计和结构组成
软件设计
内部设计了一套人员管理系统,有两类人员,一种是管理员,一种是普通用户。
普通用户可以发起申请,比如请假,考勤,调动等。
其中,不同的申请,可以选择不同的审核人。例如一些工资申请,只能有你的上司进行审核。其他的人不可以进行审核。
然后,管理员审核通过后,普通员工就可以进行调换部门,进行请假销假,而管理员也可以进行一些文件的查看,回复一些消息和通知。
管理员也可以制定一些新的部门考核规定,比如上班时间的规定之类的。
普通用户在打卡的时候,也可以看到自己是不是迟到等。
对于请假方面,我在上学的时候请假比较多,所以我知道,如果用户不能成果销假,那么就不可以进行新的请假,所以你要是想新增请假,就会收到下图的通知。
主界面设计
当然了,本系统的一些其他功能,例如:用户修改名字,修改头像,这些都是支持的。
结构组成
本软件分为:Clinet、Server、Model组成,分别对应,前端、后端、中间模型层。
Client端:
本项目的前端使用了Ant-Design开源框架。对于组件通知而言,我使用了一些[parameter]
来传递组件之间的参数。同时我也使用了一些委托delegete
来跨组件进行通信。
总之,前端无外乎就是,美术设计,组件通信,还有前后端的交互。有了组件,很多页面也可以抽象为一个单独的部分,供其他部分来进行使用。
下图展示的是,当本项目第一次加载时候,控制台会显示加载很多DLL,Thanks To WebAssembly技术,曾经可以跑在本地的一些.Net代码,现在也可以跑在浏览器里面啦!看到这些dll加载还是很令人,身心愉悦的哎!
Server端:
在服务器端,主要是编写Controller
控制器和Action
方法等。
通过配置依赖注入和一些代码的生命周期,可以很方便使用[Inject]
来进行使用,实在很方便啊!
后端通过编写一些WebApi
来实现Get
和Post
请求。然后配置服务器为静态资源服务器,来保存服务器获得的文件信息。比如上传头像,就需要把文件保存在自己电脑的磁盘里面,然后数据库写入文件的相对位置,然后前端获得链接后,展示资源,或者来下载资源。
其实,还有一些功能没有实现完整,通过校验人员登录信息,可以很方便进行登录者管理和后端Api不受到攻击。
同时数据库也可以做一个加密,现在的数据库设计还有很多不足的地方,需要继续进行改进。
比如通过Cookie和JWT来进行持久化验证。但是我一想这是一个数据库作业,我还有图形学等着我去征服,所以,我先不这么做了,可能我以后也不会去互联网工作哎!(算法赛高!)
Model:
这里就是链接Server和Client的地方了,在这两个层面上交互,需要一套统一的结构,要不然自己写解析岂不是要累死累活的。所以我并不打算这么做。
然后是,我使用JSON来传递数据,也就是不停的序列化,和反序列化一下,就OK了~
比如以下的SQL关系配置,需要了解各个Object之间的约束关系,然后来设计数据库。可以参考附录,方老师发布的那份作业要求。
ALTER TABLE [dbo].[AddWOMs] CHECK CONSTRAINT [FK_AddWOMs_StaffInfos_StaffId]
创建表格的时候也是差不多的
CREATE TABLE [dbo].[AddMoves](
[Id] [int] IDENTITY(1,1) NOT NULL,
[StaffId] [int] NULL,
[Created] [datetime2](7) NULL,
[ToDepartmentId] [int] NULL,
[Reason] [nvarchar](max) NOT NULL,
[AcceptFlag] [int] NOT NULL,
CONSTRAINT [PK_AddMoves] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
(好吧,其实这是手动在SqlServer一步步配置的,然后最后用脚本Task导出的配置文件里面的内容,让小熊一口气写成这样我也写不出来啊哈哈哈)
总体
总体来说,本项目的难度层面其实并不高,完成方老师的一个选题(emm,好吧,或者两个选题),基本上后面的也就是信手拈来了,但是需要你真正理解了数据库的设计,然后啥FK啊,约束条件啊~这些稍微理解,掌握一下,就没什么问题了。
难度不高,但是练练手,和熟练度,还是挺不错的一种选题,强烈建议自己写一遍代码,查查资料,收获还是很多的啦!😘
使用指南
软件安装
- clone本项目到本地
- 双击项目文件夹中的.sln文件来运行项目
- 生成数据库并且配置数据库连接字符串
enjoy it!
数据库的配置
本项目使用MsSql数据库,2019版本。
- 使用sql脚本生成数据库,位于本项目文件夹的“SqlServer_CreateDataBase.sql”文件。
- 修改连接字符串,位于本项目的“Program.cs”(是那个服务器的Program.cs不要搞错了)文件。
点击下载:SqlServer_CreateDataBase.sql
builder.Services.AddDbContext<EpMainContext>(opt => {
opt.UseSqlServer("Server=POWERBEARPC;Database=EmployeeLeaveDB;Trusted_Connection=True;MultipleActiveResultSets=true;Trust Server Certificate=true");
});
如上,您需要修改opt.UseSqlServer
括号里面的内容,填写自己数据库的连接字符串和数据库的名字。
资源下载地址:https://download.csdn.net/download/sheziqiong/91443817
资源下载地址:https://download.csdn.net/download/sheziqiong/91443817