一、摘要
1.1 項目介紹
基于JAVA+Vue+SpringBoot+MySQL的企業(yè)項目合同信息系統(tǒng),包含了合同審批模塊、合同簽訂模塊、合同預(yù)定模塊和合同數(shù)據(jù)可視化模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,企業(yè)項目合同信息系統(tǒng)基于角色的訪問控制,給企業(yè)管理員、合同專員使用,可將權(quán)限精確到按鈕級別,您可以自定義角色并分配權(quán)限,系統(tǒng)適合設(shè)計精確的權(quán)限約束需求。
1.2 項目錄屏
二、功能模塊
在現(xiàn)代企業(yè)中,企業(yè)之間溝通往來主要以各式各樣的合同形式進(jìn)行,因此,企業(yè)應(yīng)該高度重視合同管理。設(shè)計主要包括企業(yè)合同管理系統(tǒng)的搭建,基于系統(tǒng)的搭建,可以通過網(wǎng)絡(luò)進(jìn)行簽訂、履行、變更、解除合同等,以及獲得與合同相關(guān)正確的各種統(tǒng)計分析。
企業(yè)項目合同信息管理系統(tǒng)基于Java語言開發(fā),采用前后端分離的技術(shù)架構(gòu),前端采用Vue.js,后端采用SpringBoot框架,采用MySQL數(shù)據(jù)庫。
企業(yè)項目合同信息管理系統(tǒng)的功能性需求主要包含數(shù)據(jù)中心模塊、合同審批模塊、合同簽訂模塊、合同預(yù)警模塊、數(shù)據(jù)可視化模塊這五大模塊,其中數(shù)據(jù)可視化模塊不建立數(shù)據(jù)表,系統(tǒng)是基于瀏覽器運行的web管理后端,其中各個模塊詳細(xì)說明如下:
2.1 數(shù)據(jù)中心模塊
數(shù)據(jù)中心模塊包含了企業(yè)項目合同信息管理系統(tǒng)的系統(tǒng)基礎(chǔ)配置,如登錄用戶的管理、運營公司組織架構(gòu)的管理、用戶菜單權(quán)限的管理、系統(tǒng)日志的管理、公用文件云盤的管理。
其中登錄用戶管理模塊,由管理員負(fù)責(zé)運維工作,管理員可以對登錄用戶進(jìn)行增加、刪除、修改、查詢操作。
組織架構(gòu),指的是運營公司的組織架構(gòu),該模塊適用于管理這些組織架構(gòu)的部門層級和員工的部門歸屬情況。
用戶菜單權(quán)限管理模塊,用于管理不同權(quán)限的用戶,擁有哪些具體的菜單權(quán)限。
系統(tǒng)日志的管理,用于維護(hù)用戶登入系統(tǒng)的記錄,方便定位追蹤用戶的操作情況。
公用云盤管理模塊,用于統(tǒng)一化維護(hù)企業(yè)項目合同信息管理系統(tǒng)中的圖片,如合同簽訂文件、合同照片等等。
2.2 合同審批模塊
合同審批模塊用于對合同的審批數(shù)據(jù)進(jìn)行管理,員工如果要發(fā)起合同簽署,首先需要發(fā)起合同審批,當(dāng)領(lǐng)導(dǎo)審批通過后才可以進(jìn)行合同簽訂,其中合同審批包括合同標(biāo)題、甲方、乙方、合同源文件、審批狀態(tài)、審批人、審批時間、創(chuàng)建人等,員工可以在合同審批模塊中發(fā)起合同審批,管理員可以對員工發(fā)起的審批進(jìn)行審核操作。
2.3 合同簽訂模塊
當(dāng)員工發(fā)起的合同審批完成后,員工就可以在合同簽訂模塊中進(jìn)行簽訂,上傳簽訂后的PDF文件,合同簽訂模塊包括合同標(biāo)題、甲方、乙方、合同文件、簽訂狀態(tài)、簽訂人、簽訂時間、創(chuàng)建人等,員工可以在合同簽訂模塊中發(fā)起簽訂,管理員可以查詢所有員工進(jìn)行的合同簽訂情況,下載合同文件。
2.4 合同預(yù)警模塊
合同預(yù)警模塊用于對合同的有效期限數(shù)據(jù)進(jìn)行管理,合同一般會指定有效期間,過了有效期限就不在生效,如果未及時發(fā)現(xiàn)可能會對企業(yè)造成損失,所以設(shè)計了合同預(yù)警模塊,其中包括合同標(biāo)題、甲方、乙方、合同文件、剩余天數(shù)、簽訂人、簽訂時間、創(chuàng)建人等,管員工可以查看自己發(fā)起的合同預(yù)警數(shù)據(jù),管理員可以查看所有的合同預(yù)警數(shù)據(jù)。
2.5 數(shù)據(jù)可視化模塊
數(shù)據(jù)可視化模塊用于可視化的對合同情況進(jìn)行預(yù)覽,主要是對自己名下的合同進(jìn)行數(shù)據(jù)分析,分為已簽訂、已審批和未審批,采用餅圖的方式進(jìn)行展示。
三、系統(tǒng)設(shè)計
3.1 用例設(shè)計
3.2 數(shù)據(jù)庫設(shè)計
3.2.1 合同審批表
3.2.2 合同簽訂表
3.2.3 合同預(yù)警表
四、系統(tǒng)展示
五、核心代碼
5.1 查詢合同
@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);
}
5.2 新增合同
@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);
}
5.3 審批合同
@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();
}
5.4 駁回合同
@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();
}
5.5 簽訂合同
@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();
}
六、免責(zé)說明
- 本項目僅供個人學(xué)習(xí)使用,商用授權(quán)請聯(lián)系博主,否則后果自負(fù)。
- 博主擁有本軟件構(gòu)建后的應(yīng)用系統(tǒng)全部內(nèi)容所有權(quán)及獨立的知識產(chǎn)權(quán),擁有最終解釋權(quán)。
- 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復(fù),相關(guān)意見會酌情考慮,但沒有一定被采納的承諾或保證。
下載本系統(tǒng)代碼或使用本系統(tǒng)的用戶,必須同意以下內(nèi)容,否則請勿下載!文章來源:http://www.zghlxwxcb.cn/news/detail-778013.html
- 出于自愿而使用/開發(fā)本軟件,了解使用本軟件的風(fēng)險,且同意自己承擔(dān)使用本軟件的風(fēng)險。
- 利用本軟件構(gòu)建的網(wǎng)站的任何信息內(nèi)容以及導(dǎo)致的任何版權(quán)糾紛和法律爭議及后果和博主無關(guān),博主對此不承擔(dān)任何責(zé)任。
- 在任何情況下,對于因使用或無法使用本軟件而導(dǎo)致的任何難以合理預(yù)估的損失(包括但不僅限于商業(yè)利潤損失、業(yè)務(wù)中斷與業(yè)務(wù)信息丟失),博主概不承擔(dān)任何責(zé)任。
- 必須了解使用本軟件的風(fēng)險,博主不承諾提供一對一的技術(shù)支持、使用擔(dān)保,也不承擔(dān)任何因本軟件而產(chǎn)生的難以預(yù)料的問題的相關(guān)責(zé)任。
文章來源地址http://www.zghlxwxcb.cn/news/detail-778013.html
到了這里,關(guān)于【開源】基于JAVA的企業(yè)項目合同信息系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!