基于JAVA+Vue+SpringBoot+MySQL的企业项目合同信息系统,包含了合同审批模块、合同签订模块、合同预定模块和合同数据可视化模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,企业项目合同信息系统基于角色的访问控制,给企业管理员、合同专员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
在现代企业中,企业之间沟通往来主要以各式各样的合同形式进行,因此,企业应该高度重视合同管理。设计主要包括企业合同管理系统的搭建,基于系统的搭建,可以通过网络进行签订、履行、变更、解除合同等,以及获得与合同相关正确的各种统计分析。
企业项目合同信息管理系统基于Java语言开发,采用前后端分离的技术架构,前端采用Vue.js,后端采用SpringBoot框架,采用MySQL数据库。
企业项目合同信息管理系统的功能性需求主要包含数据中心模块、合同审批模块、合同签订模块、合同预警模块、数据可视化模块这五大模块,其中数据可视化模块不建立数据表,系统是基于浏览器运行的web管理后端,其中各个模块详细说明如下:
数据中心模块包含了企业项目合同信息管理系统的系统基础配置,如登录用户的管理、运营公司组织架构的管理、用户菜单权限的管理、系统日志的管理、公用文件云盘的管理。
其中登录用户管理模块,由管理员负责运维工作,管理员可以对登录用户进行增加、删除、修改、查询操作。
组织架构,指的是运营公司的组织架构,该模块适用于管理这些组织架构的部门层级和员工的部门归属情况。
用户菜单权限管理模块,用于管理不同权限的用户,拥有哪些具体的菜单权限。
系统日志的管理,用于维护用户登入系统的记录,方便定位追踪用户的操作情况。
公用云盘管理模块,用于统一化维护企业项目合同信息管理系统中的图片,如合同签订文件、合同照片等等。
合同审批模块用于对合同的审批数据进行管理,员工如果要发起合同签署,首先需要发起合同审批,当领导审批通过后才可以进行合同签订,其中合同审批包括合同标题、甲方、乙方、合同源文件、审批状态、审批人、审批时间、创建人等,员工可以在合同审批模块中发起合同审批,管理员可以对员工发起的审批进行审核操作。
当员工发起的合同审批完成后,员工就可以在合同签订模块中进行签订,上传签订后的PDF文件,合同签订模块包括合同标题、甲方、乙方、合同文件、签订状态、签订人、签订时间、创建人等,员工可以在合同签订模块中发起签订,管理员可以查询所有员工进行的合同签订情况,下载合同文件。
合同预警模块用于对合同的有效期限数据进行管理,合同一般会指定有效期间,过了有效期限就不在生效,如果未及时发现可能会对企业造成损失,所以设计了合同预警模块,其中包括合同标题、甲方、乙方、合同文件、剩余天数、签订人、签订时间、创建人等,管员工可以查看自己发起的合同预警数据,管理员可以查看所有的合同预警数据。
数据可视化模块用于可视化的对合同情况进行预览,主要是对自己名下的合同进行数据分析,分为已签订、已审批和未审批,采用饼图的方式进行展示。
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询合同")
public Result<IPage<Agreement>> getByPage(@ModelAttribute Agreement agreement ,@ModelAttribute PageVo page){
QueryWrapper<Agreement> qw = new QueryWrapper<>();
User currUser = securityUtil.getCurrUser();
QueryWrapper<User> userQw = new QueryWrapper<>();
userQw.eq("id",currUser.getId());
userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
if(iUserService.count(userQw) < 1L) {
qw.eq("sign_id",currUser.getId());
}
if(!ZwzNullUtils.isNull(agreement.getTitle())) {
qw.like("title",agreement.getTitle());
}
if(!ZwzNullUtils.isNull(agreement.getFirstParty())) {
qw.like("first_party",agreement.getFirstParty());
}
if(!ZwzNullUtils.isNull(agreement.getSecondParty())) {
qw.like("second_party",agreement.getSecondParty());
}
if(!ZwzNullUtils.isNull(agreement.getAuditStatus())) {
qw.eq("audit_status",agreement.getAuditStatus());
}
if(!ZwzNullUtils.isNull(agreement.getSignStatus())) {
qw.eq("sign_status",agreement.getSignStatus());
}
long zwzNowCuo = System.currentTimeMillis() / 1000;
IPage<Agreement> data = iAgreementService.page(PageUtil.initMpPage(page),qw);
for (Agreement vo : data.getRecords()) {
long cuo = zwzDateToCuo(vo.getDate());
vo.setDateTemp((cuo - zwzNowCuo) / DAY_CUO);
}
return new ResultUtil<IPage<Agreement>>().setData(data);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增合同")
public Result<Agreement> insert(Agreement agreement){
User currUser = securityUtil.getCurrUser();
agreement.setAuditStatus("未审批");
agreement.setAuditUser("");
agreement.setAuditTime("");
agreement.setSignStatus("未签订");
agreement.setFile2("");
agreement.setSignTime("");
agreement.setSignId(currUser.getId());
agreement.setSignUser(currUser.getNickname());
iAgreementService.saveOrUpdate(agreement);
return new ResultUtil<Agreement>().setData(agreement);
}
@RequestMapping(value = "/audit", method = RequestMethod.POST)
@ApiOperation(value = "审批合同")
public Result<Object> audit(@RequestParam String id){
Agreement as = iAgreementService.getById(id);
if(as == null) {
return ResultUtil.error("合同不存在");
}
User currUser = securityUtil.getCurrUser();
as.setAuditStatus("已审批");
as.setAuditTime(DateUtil.now());
as.setAuditUser(currUser.getNickname());
iAgreementService.saveOrUpdate(as);
return ResultUtil.success();
}
@RequestMapping(value = "/notAudit", method = RequestMethod.POST)
@ApiOperation(value = "驳回合同")
public Result<Object> notAudit(@RequestParam String id){
Agreement as = iAgreementService.getById(id);
if(as == null) {
return ResultUtil.error("合同不存在");
}
User currUser = securityUtil.getCurrUser();
as.setAuditStatus("已驳回");
as.setAuditTime(DateUtil.now());
as.setAuditUser(currUser.getNickname());
iAgreementService.saveOrUpdate(as);
return ResultUtil.success();
}
@RequestMapping(value = "/sign", method = RequestMethod.POST)
@ApiOperation(value = "签订合同")
public Result<Object> sign(@RequestParam String id,@RequestParam String fileUrl){
Agreement as = iAgreementService.getById(id);
if(as == null) {
return ResultUtil.error("合同不存在");
}
as.setSignStatus("已签订");
as.setFile2(fileUrl);
as.setSignTime(DateUtil.now());
iAgreementService.saveOrUpdate(as);
return ResultUtil.success();
}
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!