Fms-Java版开发实录:33 重构系统为适合地产公司的版本

Fms-Java版开发实录:33 重构系统为适合地产公司的版本

走到哪里,系统写到哪里。自己动手,丰衣足食。

终于又回到了熟悉的地产行业,正好又是一个几乎从零开始的地产项目,合同也只签了几份,新地方,新气象,打算把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;

试验了一下,没有问题。

这个就用新的PNG图片替换掉原来的图片即可,还需要稍微自己剪裁一下。这一次做了三个尺寸,分别是300*300256*256128*128。由于logo主要是用在登录页面,还有导航条,试验了一下,128*128大小的图片放在登录页面比较好。

然后还遇到了favicon.ico死活加载不出来的问题,后来直接把链接改成了PNG图片,如下:

<link rel="shortcut icon" href="#" th:href="@{/img/logo_small_size.png}"/>

就可以了。然后把导航条的logo也修改了一下,直接使用小号的图片即可。

把上边的东西都commit掉之后,新拉一个分支,开始正儿八经的修改了。

重构思路

由于原来是按照工程项目-预算-合同-结算-明细记录来组织的,现在就不需要结算了。修改的思路如下:

  1. 重新组织数据结构,预算-合同多对一的方式不再需要
  2. 由于层级关系非常清晰,因此URL可以重新组织的简单一些
  3. 不再使用多余的VO和BO,直接通过业务类来组装某一个层级的完整数据。这也是建立在数据量不大的基础上。
  4. 重构页面,在合同列表页面加上分页展示的功能。

接下来就干起来了。

LICENSED UNDER CC BY-NC-SA 4.0
Comment