终于又回到了熟悉的地产行业,正好又是一个几乎从零开始的地产项目,合同也只签了几份,新地方,新气象,打算把Fms-Java改造成适合地产开发的内容,然后在新公司使用了。
由于原来是项目-预算-合同-结算-凭证的数据结构,那么现在只需要略微进行修改,将中间的预算改成开发成本的大项,简化掉结算这层。依然保留虚拟预算和虚拟合同的功能。这样就可以按照大类来统计对应的开发成本,税金等功能。
可见整体改动的思路很清晰,逻辑上的改动不会太大,反向从最底层的凭证记录一层层修改回来即可,当然工作量还是不小的。
前期准备
熟悉我的朋友知道,之前也编写过多个版本的用于地产项目的系统。虽然我写Java
很久了,不过这还是第一次来使用Java
后端来做合同管理系统,虽然没做前后端分离,但感觉还是用Java
开发更舒服一些,毕竟Python
没有像maven
这样的构建工具,加上Java
自己折腾的细节可以很多,外加Spring
提供了Spring Security
用来管理权限,比Django
自己写要容易点。对我个人的技术提升来说,接下来如果需要的话,研究一下如何使用Java
来操作excel
文件。
修改重置密码邮件的发送邮箱
原来的发送重置密码的邮箱是sinochemfms@163.com
,这次决定还是换成一个比较中性的邮箱名称,省得以后再改了:fms_reset_password@163.com
,唯一需要注意的就是使用程序去连接网易的邮箱,需要生成授权码来当成连接密码,而不是使用自己创建的邮箱密码。由于也不用收信,所以就只开通了SMTP
服务即可。
更新一下初始写入数据的dataInitialize.sql
中邮件相关内容:
INSERT INTO option(create_time, option_key, option_value, update_time)
VALUES (CURRENT_TIMESTAMP, 'emailUsername', 'fms_reset_password@163.com', CURRENT_TIMESTAMP)
ON CONFLICT (option_key) DO NOTHING;
INSERT INTO option(create_time, option_key, option_value, update_time)
VALUES (CURRENT_TIMESTAMP, 'emailPassword', '*************', CURRENT_TIMESTAMP)
ON CONFLICT (option_key) DO NOTHING;
试验了一下,没有问题。
更新Logo
这个就用新的PNG
图片替换掉原来的图片即可,还需要稍微自己剪裁一下。这一次做了三个尺寸,分别是300*300
、256*256
、128*128
。由于logo
主要是用在登录页面,还有导航条,试验了一下,128*128
大小的图片放在登录页面比较好。
然后还遇到了favicon.ico
死活加载不出来的问题,后来直接把链接改成了PNG
图片,如下:
<link rel="shortcut icon" href="#" th:href="@{/img/logo_small_size.png}"/>
就可以了。然后把导航条的logo
也修改了一下,直接使用小号的图片即可。
把上边的东西都commit
掉之后,新拉一个分支,开始正儿八经的修改了。
重构思路
由于原来是按照工程项目-预算-合同-结算-明细记录来组织的,现在就不需要结算了。修改的思路如下:
- 重新组织数据结构,预算-合同多对一的方式不再需要
- 由于层级关系非常清晰,因此URL可以重新组织的简单一些
- 不再使用多余的VO和BO,直接通过业务类来组装某一个层级的完整数据。这也是建立在数据量不大的基础上。
- 重构页面,在合同列表页面加上分页展示的功能。
接下来就干起来了。