diff --git a/apps/hrm/services.py b/apps/hrm/services.py index 2a7e477e..7f7e8b6b 100755 --- a/apps/hrm/services.py +++ b/apps/hrm/services.py @@ -278,16 +278,16 @@ class HrmService: # 先直接创建记录 cr = ClockRecord.objects.filter(employee=ep, create_time=s_time_f).first() if cr: - ClockRecord.objects.filter(id=cr.id).update(exception_type=None, detail=detail, type=card_type, trigger=trigger) + pass else: cr = ClockRecord() - cr.type = card_type - cr.exception_type = None cr.employee = ep - cr.trigger = trigger - cr.detail = detail cr.create_time = s_time_f - cr.save() + cr.type = card_type + cr.exception_type = None + cr.trigger = trigger + cr.detail = detail + cr.save() if card_type == 10: # 查找当天的进门记录 @@ -304,17 +304,21 @@ class HrmService: # 判断是否有异常 # 找到最近的上下打卡时间不一定是当天的 cr_e = ClockRecord.objects.filter(create_time__lt=last_obj.create_time, employee=ep, type__in=[10, 20]).order_by('-create_time').first() - if cr_e: + if cr_e and last_obj: time_d = last_obj.create_time - cr_e.create_time if cr_e.type == 10: if time_d < timedelta(hours=7): - ClockRecord.objects.filter(id=last_obj.id).update(type=ClockRecord.E_TYPE_LESS) + last_obj.type = ClockRecord.E_TYPE_LESS + last_obj.save() elif time_d > timedelta(hours=14): - ClockRecord.objects.filter(id=last_obj.id).update(type=ClockRecord.E_TYPE_MORE) + last_obj.type = ClockRecord.E_TYPE_MORE + last_obj.save() elif time_d > timedelta(hours=10): - ClockRecord.objects.filter(id=last_obj.id).update(type=ClockRecord.E_TYPE_ADD) + last_obj.type = ClockRecord.E_TYPE_ADD + last_obj.save() elif cr_e.type == 20: - ClockRecord.objects.filter(id=last_obj.id).update(type=ClockRecord.E_TYPE_MISS) + last_obj.type = ClockRecord.E_TYPE_MISS + last_obj.save() # 记录在岗情况 last_obj_t = ClockRecord.objects.filter(employee=ep, type__in=[10,20]).order_by('-create_time').first()