• SpringBoot+Vue实现前后端分离的财务管理系统


    文末获取源码

    开发语言:Java
    开发工具:IDEA /Eclipse
    数据库:MYSQL5.7/8.0
    应用服务:Tomcat7/Tomcat8
    是否Maven项目:是
    后端框架:SpringBoot
    前端框架:vue+element等
    JDK版本:jdk1.8
    项目架构:B/S架构

    前言介绍 

    随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,财务管理系统就是信息时代变革中的产物之一。

    任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于java技术、springboot框架、B/S机构、Mysql数据库设计并实现了财务管理系统。系统主要包括首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理等功能模块。

    系统的实现 

    主要对首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理的实现。

    系统总体结构图 

    为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该财务管理系统的功能结构图如下所示:

    系统功能实现 

    系统登录

    管理员和员工进入系统前在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图

    管理员功能模块 

    管理员登录系统后,可以对首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理等功能进行相应的操作管理,如图

    员工管理

    在员工管理页面可以对索引,员工工号,员工姓名,图片,性别,部门,职位,联系方式,入职时间等内容进行详情,修改和删除等操作,如图 

    部门管理

    在部门管理页面可以对索引,部门等信息进行详情,修改和删除等操作,如图 

    员工工资管理

    在员工工资管理页面可以对索引,工资月份,员工工号,部门,基本工资,工龄补贴,加班工资,奖励,罚款,个税,社保代缴,奖惩说明,实发工资,登记时间等内容进行详情,修改,删除等操作,如图 

    工资调整管理

    在工资调整管理页面可以对索引,调整原因,调整额度,调整时间,员工工号,员工姓名,部门等内容进行详情,修改,删除等操作,如图 

    固定资产管理

    在固定资产管理页面可以对索引,资产名称,封面,资产类别,资产状态,资产价值,风险计提,计提原因,登记时间等内容进行详情,修改,删除等操作,如图 

    经营信息管理

    在经营信息管理页面可以对索引,统计月份,营收金额,月产量,前一客户,前一百分比,前二客户,前二百分比,前三客户,前三百分比,登记时间等内容进行详情,修改,删除等操作,如图 

    序时账管理

    在序时账管理页面可以对索引,凭证单号,发票,收支类型,摘要,对方科目,金额,登记时间等内容进行详情,修改,删除等操作,如图 

    年度利润管理

    在年度利润管理页面可以对索引,年度统计,主要收入,只要业务成本,只要业务税金及附加,其他业务利润,营业费用,管理费用,财务费用,投资收益,补贴收益,营业外收入,营业外支出,所得税,净利润,登记时间等内容进行详情,修改,删除等操作,如图

    系统管理

    在公司公告页面可以对索引,标题,图片等内容进行详情,修改和删除等操作;如图 

    员工功能模块

    员工登录进入系统可以对首页,个人中心,员工工资管理,工资调整管理,系统管理等功能进行相应操作,如图 

    个人中心

    在个人信息页面通过填写员工工号,员工姓名,照片,性别,职位,联系方式,入职时间等内容进行个人信息修改操作,如图 

    工资调整管理

    在工资调整管理页面可以对索引,调整原因,调整额度,调整时间,员工工号,员工姓名,部门等内容进行详情操作,如图 

    部分核心代码: 

    1. /**
    2. * 班级
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2022-02-22 12:29:30
    7. */
    8. @RestController
    9. @RequestMapping("/banji")
    10. public class BanjiController {
    11. @Autowired
    12. private BanjiService banjiService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,BanjiEntity banji,
    18. HttpServletRequest request){
    19. EntityWrapper<BanjiEntity> ew = new EntityWrapper<BanjiEntity>();
    20. PageUtils page = banjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banji), params), params));
    21. return R.ok().put("data", page);
    22. }
    23. /**
    24. * 前端列表
    25. */
    26. @IgnoreAuth
    27. @RequestMapping("/list")
    28. public R list(@RequestParam Map<String, Object> params,BanjiEntity banji,
    29. HttpServletRequest request){
    30. EntityWrapper<BanjiEntity> ew = new EntityWrapper<BanjiEntity>();
    31. PageUtils page = banjiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banji), params), params));
    32. return R.ok().put("data", page);
    33. }
    34. /**
    35. * 列表
    36. */
    37. @RequestMapping("/lists")
    38. public R list( BanjiEntity banji){
    39. EntityWrapper<BanjiEntity> ew = new EntityWrapper<BanjiEntity>();
    40. ew.allEq(MPUtil.allEQMapPre( banji, "banji"));
    41. return R.ok().put("data", banjiService.selectListView(ew));
    42. }
    43. /**
    44. * 查询
    45. */
    46. @RequestMapping("/query")
    47. public R query(BanjiEntity banji){
    48. EntityWrapper< BanjiEntity> ew = new EntityWrapper< BanjiEntity>();
    49. ew.allEq(MPUtil.allEQMapPre( banji, "banji"));
    50. BanjiView banjiView = banjiService.selectView(ew);
    51. return R.ok("查询班级成功").put("data", banjiView);
    52. }
    53. /**
    54. * 后端详情
    55. */
    56. @RequestMapping("/info/{id}")
    57. public R info(@PathVariable("id") Long id){
    58. BanjiEntity banji = banjiService.selectById(id);
    59. return R.ok().put("data", banji);
    60. }
    61. /**
    62. * 前端详情
    63. */
    64. @IgnoreAuth
    65. @RequestMapping("/detail/{id}")
    66. public R detail(@PathVariable("id") Long id){
    67. BanjiEntity banji = banjiService.selectById(id);
    68. return R.ok().put("data", banji);
    69. }
    70. /**
    71. * 后端保存
    72. */
    73. @RequestMapping("/save")
    74. public R save(@RequestBody BanjiEntity banji, HttpServletRequest request){
    75. banji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    76. //ValidatorUtils.validateEntity(banji);
    77. banjiService.insert(banji);
    78. return R.ok();
    79. }
    80. /**
    81. * 前端保存
    82. */
    83. @RequestMapping("/add")
    84. public R add(@RequestBody BanjiEntity banji, HttpServletRequest request){
    85. banji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    86. //ValidatorUtils.validateEntity(banji);
    87. banjiService.insert(banji);
    88. return R.ok();
    89. }
    90. /**
    91. * 修改
    92. */
    93. @RequestMapping("/update")
    94. public R update(@RequestBody BanjiEntity banji, HttpServletRequest request){
    95. //ValidatorUtils.validateEntity(banji);
    96. banjiService.updateById(banji);//全部更新
    97. return R.ok();
    98. }
    99. /**
    100. * 删除
    101. */
    102. @RequestMapping("/delete")
    103. public R delete(@RequestBody Long[] ids){
    104. banjiService.deleteBatchIds(Arrays.asList(ids));
    105. return R.ok();
    106. }
    107. /**
    108. * 提醒接口
    109. */
    110. @RequestMapping("/remind/{columnName}/{type}")
    111. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    112. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    113. map.put("column", columnName);
    114. map.put("type", type);
    115. if(type.equals("2")) {
    116. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    117. Calendar c = Calendar.getInstance();
    118. Date remindStartDate = null;
    119. Date remindEndDate = null;
    120. if(map.get("remindstart")!=null) {
    121. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    122. c.setTime(new Date());
    123. c.add(Calendar.DAY_OF_MONTH,remindStart);
    124. remindStartDate = c.getTime();
    125. map.put("remindstart", sdf.format(remindStartDate));
    126. }
    127. if(map.get("remindend")!=null) {
    128. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    129. c.setTime(new Date());
    130. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    131. remindEndDate = c.getTime();
    132. map.put("remindend", sdf.format(remindEndDate));
    133. }
    134. }
    135. Wrapper<BanjiEntity> wrapper = new EntityWrapper<BanjiEntity>();
    136. if(map.get("remindstart")!=null) {
    137. wrapper.ge(columnName, map.get("remindstart"));
    138. }
    139. if(map.get("remindend")!=null) {
    140. wrapper.le(columnName, map.get("remindend"));
    141. }
    142. int count = banjiService.selectCount(wrapper);
    143. return R.ok().put("count", count);
    144. }
    145. }

  • 相关阅读:
    小程序开发设计-第一个小程序:创建小程序项目④
    React Native适配Xcode 15 iOS 17.0+
    Java 基础常见知识点&面试题总结(下),2022 最新版!
    参数优化文档介绍
    java毕业设计乡镇卫生院信息管理mybatis+源码+调试部署+系统+数据库+lw
    儿童台灯怎么选对眼睛最好?2022年的现在如何挑选儿童台灯呢
    【Qt】窗口部件 标准对话框
    代码随想录算法训练营Day 56 || 647. 回文子串、516.最长回文子序列
    【博客451】OVN中的Logical Flow 与 Open Flow
    PyQt5-QListView控件
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/125746348