一、目标
针对设备运行类型的项目,核心是围绕设备的运行、保养、故障、维修四个模块完成其核心代码。
本人负责保养管理的核心模块撰写,主要的业务逻辑有:
1、针对设备投入使用后保养生命周期开始,保养后结束上一次生命周期,开启下一次;
2、在其保养生命周期中可能会产生已经达到保养周期、将要达到保养(预警周期)、未达到保养周期(保养超时)的情况;
3、找到一种方式将需要预警的或已经达到保养时间的设备生成预警记录;
4、设备在保养后同时需要生成该设备的保养记录
5、在删除设备信息时同时更新预警表;
二、里程碑
2023年09月22日-2023年09月23日:服务器架构调试,版本git管理仓库构建,协作开发环境搭建;
2023年09月26日:设备保养预警保养方式一从前端到后端的查询结果测试(完成浏览器页面部分搭建)
2023年09月28日:设备保养预警保养定时器定时更新功能代码实现
2023年10月9日:定时更新预警表添加查询是否有效字段
2023年10月12日:设备删除时调用更新预警表方法,传入id数组
三、实际问题解决
1、考虑到一台设备在已经达到保养条件并生成预警后,而在定时器更新数据之前删除设备信息,此时应同步预警表,在这里有两种解决方式:
第一、暴力终止。一旦删除主表信息,则一并对其子表(单只预警表)进行逻辑删除;
第二、缓和重选。要求必须先完成上一次保养才能对其主表的设备进行逻辑删除
从生命周期的角度来说,方式二更符合业务操作,但代码实现更复杂,涉及的功能模块和多表操作更复杂,因此从提高性能的角度,选择方式一更加合理。
2.在敲定一种设备只能使用一种保养方式的前提下,在修改按时长保养的设备信息(该设备还未生成预警),他的预设时长不应小于该设备的运行时长。
3、在进行下一次保养选择保养方式按周期保养,提交的提醒周期不应大于保养到期周期
4、理论上删除主表设备信息,而对应该设备保养已经生成的保养记录应该保留,两者分离。