最近几乎每隔一天笔者就会发布一篇公众号文章,很明显的正向反馈也来了,一方面是公众号每天都有新的粉丝添加关注,每天的流量费也在慢慢地涨。最令我惊喜的是上周三把一篇刚公众号文章SpringBoot 整合 Vue3 与 Element-Plus 完成系统页面表单和表格功能开发 分享到自己的朋友圈后,就有一个之前给我推荐工作的技术小哥找我一起做一个小区智慧物业系统。
这个项目本身是一个开源系统,但是如果要把它做成商用产品销售出去还有很多功能需要完善。由于笔者最近也没上班, 就答应他一起做这个项目,目前已经把项目在本地搭建起来,接下来就是要完成系统的一个物业发票开票功能。
HC小区管理系统是一套saas物业管理的系统,包括 房产、业主、 费用 (可以线上缴费)、报修(可以线上报修)、投诉建议、采购、巡检、停车、门径、道闸、监控、工作流、问卷和公告等功能。
这个智慧物业系统为了方便给不同角色的用户使用,分了以下几个客户端。
物业系统前端体验地址:http://demo.homecommunity.cn
-- 开发者密码修改为admin
update u_user set `password` = '3ad352384261cbc2c7462210dbb3ce61' where name = 'dev';
主要系统功能请查看功能清单:http://bbs.homecommunity.cn/pages/bbs/topic.html?topicId=10202204245986034
笔者目前只在本地跑起来了物业系统后端项目和物业系统前端项目
运行物业系统后端项目
运行物业系统后端项目服务需要先从gitee
仓库地址: https://gitee.com/wuxw7/MicroCommunity Fork 一个个人仓库,然后再将fork后的仓库代码地址:https://gitee.com/username/MicroCommunity.git克隆到开发者个人硬盘空间
1)搭建Mysql
、Redis
以及Kafka消息服务
Mysql
要求安装5.7以上版本,不过现在普遍都用8.0版本的Mysql
了,接着创建hc_community
和TT
两个数据库以及hc_community
和TT
两个用户分别作为hc_community
和TT
两个数据库的属主,然后使用Navicat Premium 16
客户端工具分别在两个数据库的查询窗口中执行doc/db
目录下hc_community.sql
和 TT.sql
两个文件中的sql
脚步。 使用root
用户创建数据库和用户的SQL
脚本如下:
create database hc_community default character set utf8mb4;
create user 'hc_community'@'%' IDENTIFIED BY 'hc12345678';
GRANT CREATE,DROP,ALTER,INSERT,UPDATE,SELECT,DELETE on hc_community.* to 'hc_community'@'%' with grant OPTION;
create database TT default character set utf8mb4;
create user 'TT'@'%' IDENTIFIED BY 'hc12345678';
GRANT CREATE,DROP,ALTER,INSERT,UPDATE,SELECT,DELETE on TT.* to 'TT'@'%' with grant OPTION;
FLUSH PRIVILEGES;
redis
安装:我们可以参考Redis中文网上的安装教程https://www.redis.net.cn/tutorial/3503.html 完成Redis
的安装,安装的Redis
要求3.2以上,笔者安装的是6.0版本的Redis
ZooKeeper
和Kafka消息队列服务的安装。目前官方最新的Kafka
稳定版本是3.7版本,并需要安装在Linux
环境中,需要下载的安装包是kafka_2.13-3.7.0.tgz
以上Mysql
、Redis
和 Kafka
的安装都非常简单。
2)修改项目JVM启动参数和基础服务连接配置
完成以上服务的安装后就可以使用IDEA
打开MicroCommunity
项目,先完成依赖下载到本地Maven仓库,这个项目的模块比较多,启动时需要的内存也比较大,需要在项目的启动VM
参数中增加如下几个参数配置
-Xms2048m
-Xmx4096m
-XX:ReservedCodeCacheSize=2048m
-XX:+UseG1GC
因项目启动时需要占用的内存比较大,因此将堆初始内存调整为2G
,堆最大内存调整为4G
,保留的代码缓存也调整到2G
,并使用G1垃圾收集器。
以SpringBoot
的形式启动后台项目时默认激活的是debug
环境,因此需要修改springboot/src/main/resource
目录下的
application-debug.yml
配置文件中的 dev.zk.java110.com
和 dev.kafka.java110.com
等链接zookeeper
和kafka
服务的域名统一改为部署kafka
服务的云服务器的ip地址,当然也可以换成自己备份的公网服务器域名。还有连接redis
服务的ip
地址192.168.1.108
改为localhost
;另外还需要将dataSource-debug.yml
文件中连接Mysql
数据库服务的ip
地址192.168.1.108
也改为localhost
。
3)执行编译和打包
先执行changeBootEnvWindow.ba
t 脚本文件(Windows 系统) 或 changeBootEnvLinux.s
h 脚本文件(mac 或者linux系统)将service服务下的 pom-boot.xml
的内容 写到 pom.xml 文件中。这一步必须在项目启动之前,否则项目启动会失败的。
然后在项目的根目录下执行项目代码的编译和打包Maven命令
mvn clean install
mvn clean package
4)启动服务
运行 BootApplicationStart.java
启动类中的main方法完成后台服务的启动。
运行物业系统前端项目
首先从gitee
仓库地址: https://gitee.com/java110/MicroCommunityWeb Fork 一个个人仓库,然后再将fork后的仓库代码地址:https://gitee.com/username/MicroCommunityWeb.git 克隆到开发者个人硬盘空间
然后按以下步骤完成物业系统前端项目的启动
1)在根目录下通过右键->git bash here 打开一个命令控制台,执行npm install
命令完成项目nodejs
依赖包的安装
2)修改app.js
中的ip
和端口信息
app.use('/callComponent', proxy('http://localhost:8008', opts));
app.use('/app', proxy('http://localhost:8008', opts));
app.use('/ws', createProxyMiddleware({
target: 'http://localhost:8008',
changeOrigin: true,
ws: true
}));
然后执行 npm start
命令,出现如下:
> micrcommunityweb@0.0.0 start
> node ./bin/www
然后在浏览器中输入:http://localhost:3000 会进入系统用户登录界面
输入用户名和密码:admin/admin 及 验证码 后点击下面的登录按钮登录成功后进入如下图所示的平台数据页面
可以看到admin
用户登录成功后进入的系统和下面这个视频上作者演示给我们的菜单不一致,开发票页面需要给业主分配房屋后才能进行操作。因此需要我们进行一些额外的操作,经过笔者的一番摸索需要经过下面才能给业主添加房产。
1)进入数据->物业公司菜单页面,点击任意物业公司记录行中操作列中的登录按钮,在弹出的密码确认对话框中输入admin
账户的密码
2)登录成功后进入HC
物业系统页面,我们可以看到左边的菜单也发生了明显的变化
3)点击房产->业主信息菜单页进入到业主信息界面,点击右边的添加业主按钮会打开添加业主的表单对话框
上传业主照片功能还有待后台部署FTP文件服务器才能正常使用。
添加完业主信息后点击保存按钮回到业主信息页面就可以看到已经有业主数据了
4)进入房产->房屋管理 菜单页,点击左上角的添加楼栋
5)回到房产->房屋管理 菜单界面,选中右边我们新建的楼栋,然后点击上面的添加单元按钮,在弹出的添加单元对话框中输入单元信息
点击保存后可以看到楼栋节点下面出现了单元子节点
6)选中楼栋下面的单元节点,点击添加房屋按钮,在弹出的添加房屋表单中输入房屋信息
房屋状态选择已交房, 业主栏点击右边的选择业主按钮在弹出的选择业主对话框中选择我们之前添加的业主
选中业主后回到添加房屋表单界面后点击右下角的提交按钮后就可以看到楼栋单元对应的房屋信息
7)添加费用项
缴费前需要先添加费用项目,进入费用->费用项设置菜单界面,选中物业费后点击右边的添加按钮会打开添加物业收费项对话框
在弹出的添加对话框表单中输入具体的物业收费项信息
点击右下角的保存按钮后就可以看到添加的费用项数据了
8)添加发票抬头
开发票的时候需要有发票抬头,因此在没有发票抬头可选的情况下需要先添加发票抬头
进入房产->发票抬头菜单界面,点击右边的添加按钮进入添加发票抬头表单界面,填写发票抬头信息
点击保存后可以看到刚才添加的发票抬头数据
在此之前笔者已经为业主张三创建了一个企业为江苏银河物业管理公司的发票抬头
9)房屋业主账户预存
回到房产->房屋管理管理选中0301栋下面的1单元对应的房屋记录对应的操作列中的业务受理按钮
点击业务受理按钮跳转到业主业务受理界面
在业务受理界面点击账户预存按钮跳转到业主信息页面
点击右边操作列中的预存 按钮弹出添加预存表单对话框
输入预存金额并选择支付方式和账户类型后点击保存按钮
10)业主缴费
然后我们继续回到物业受理页面点击创建费用按钮下面的欠费缴费按钮
进入缴费确认页面
点击右边的的缴费按钮弹出收费确认对话框,选择支付方式,点击确认收费按钮即可
缴费成功后会弹出缴费成功的提示消对话框,点击打印收据即可看到收据单
继续点击右边的打印按钮可以打印出pdf格式的收据
11)提交发票
回到房产->发票菜单页
点击申请按钮跳转页面后选中发票抬头后带出业主刚才缴纳过的物业费用记录
点击下面的提交按钮后回到申请发票数据页面
选中待审核状态的发票记录,点击操作列中的审核按钮进行发票审核
审核完后发票记录就变为发票号待上传状态,接下来的上传发票之前的生成发票需求就是需要我们调用诺诺发票去完成的事情
由于本文篇幅有限,对于如何使用这个物业系统笔者就不多做介绍了。关于HC智慧物业系统的每个菜单页面该如何操作可以通过查看HC小区物业文档链接:http://bbs.homecommunity.cn/document.html?docId=102022031484710001 去进一步了解如何使用HC智慧物业系统。