07-08-01 上班第一天

今天正式开始上班了~~

其实在这儿这么多天,没有什么特别的感觉。不过今天意义重大,值得一记!

java项目中有个业务,需要从OD人员零点以后下班的数据记录中统计出风险;OdLastTime是OD人员零点以后下班的数据记录对象,OdRisk是OD风险对象。OdLastTime和OdRisk中都有workId是每个人的工号,OdRisk中还有weekStart字段表示统计开始时间,weekStart和workId可以组成风险的唯一值,用来避免重复。下面是具体的数据库表 CREATE TABLE `od_risk` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL COMMENT '姓名', `work_id` varchar(20) DEFAULT NULL COMMENT '工号', `pdu` varchar(255) DEFAULT NULL COMMENT 'PDU', `dept` varchar(255) DEFAULT NULL COMMENT '开发部', `week_start` date DEFAULT NULL COMMENT '统计开始时间', `last_time` varchar(500) DEFAULT NULL COMMENT '下班时间集合,降序(使用中文;分割)', `status` int(11) DEFAULT '0' COMMENT '是否闭环', `detail` varchar(500) DEFAULT NULL COMMENT '详细描述', `edit_record` varchar(500) DEFAULT NULL COMMENT '最近一次修改记录', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `update_by` varchar(50) DEFAULT NULL COMMENT '更新人', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OD风险表'; CREATE TABLE `od_last_time` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL COMMENT '姓名', `work_id` varchar(20) DEFAULT NULL COMMENT '工号', `prepare_date` datetime DEFAULT NULL COMMENT '考勤日期', `first_time` datetime DEFAULT NULL COMMENT '首次打卡时间', `last_time` datetime DEFAULT NULL COMMENT '末次打卡时间/下班时间', `pdu` varchar(255) DEFAULT NULL COMMENT 'PDU', `dept` varchar(255) DEFAULT NULL COMMENT '开发部', `hw_dept_name` varchar(255) DEFAULT NULL COMMENT '华为部门名称', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 下面是对风险统计规则的解释和举例:风险有两种情况: 1、 加班至凌晨3点及以后的情况 2、 连续3天加班至0点之后的情况 统计上周一开始,识别每个人是否存在连续2周内的风险情况: 1、如果存在风险,并且当前数据库中无此风险问题,则创建一个风险问题; 2、如果已经有风险问题,则刷新此风险中的下班时间。3、如果连续两周的风险问题存在包含关系,则后一周的不记录。 例如,员工A凌晨加班时间为2025-07-29 01:04:39;2025-07-31 00:07:36;2025-08-01 03:23:00;2025-08-05 00:09:59; 2025-08-07 00:04:03; 2025-08-08 00:41:37;2025-08-09 00:39:00; 1)统计时间2025-07-28:存在高风险问题,问题记录的下班时间为:2025-07-29 01:04:39;2025-07-31 00:07:36;2025-08-01 03:23:00;2025-08-05 00:09:59; 2025-08-07 00:04:03; 2025-08-08 00:41:37;2025-08-09 00:39:00; 2)统计时间2025-08-04: 5、7、8、9日已经包含在7月28日的问题中,因此不记录。 因为统计是从周一开始,识别每个人是否存在连续2周内的风险情况,所以要考虑识别出的风险加入到哪个风险记录 帮我生成一个识别风险的方法
09-07
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值