|
|
@ -16,6 +16,7 @@ use app\service\admin\campus\CampusService; |
|
|
use app\service\api\apiService\AttendanceService; |
|
|
use app\service\api\apiService\AttendanceService; |
|
|
use app\service\api\apiService\CommonService; |
|
|
use app\service\api\apiService\CommonService; |
|
|
use core\base\BaseApiService; |
|
|
use core\base\BaseApiService; |
|
|
|
|
|
use think\facade\Db; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 员工考勤控制器相关接口 |
|
|
* 员工考勤控制器相关接口 |
|
|
@ -115,21 +116,51 @@ class Attendance extends BaseApiService |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//插入打卡记录 |
|
|
//获取今天请假的数据(leave_end_time>当前时间的 && attendance_date=当前日期的)请假数据,更新leave_end_time=当前时间 |
|
|
$data = [ |
|
|
//请假的id |
|
|
'campus_id'=>$campus_id ?? 0,// |
|
|
$leave_id_arr = new \app\model\attendance\Attendance(); |
|
|
'staff_id'=>$staff_id,// |
|
|
if($campus_id === '0' || $campus_id === 0 || !empty($campus_id)){ |
|
|
'attendance_date'=>$attendance_date,// |
|
|
$leave_id_arr = $leave_id_arr->where('campus_id',$campus_id); |
|
|
'check_in_time'=>$date_h,// |
|
|
} |
|
|
'status'=>$status,// |
|
|
$leave_id_arr = $leave_id_arr->where('staff_id',$staff_id) |
|
|
'coordinate'=>$coordinate,//坐标|经度,纬度 |
|
|
->where('status','leave') |
|
|
'remarks'=>$remarks,// |
|
|
->where('attendance_date',$attendance_date) |
|
|
]; |
|
|
->where('leave_end_time','>=',$date_h)->column('id'); |
|
|
$res = $obj->addData($data); |
|
|
|
|
|
if(!$res['code']){ |
|
|
Db::startTrans(); |
|
|
return fail($res['msg']); |
|
|
try { |
|
|
|
|
|
if($leave_id_arr){ |
|
|
|
|
|
$update = \app\model\attendance\Attendance::whereIn('id',$leave_id_arr)->update([ |
|
|
|
|
|
'leave_end_time'=>$date_h, |
|
|
|
|
|
'updated_at'=>$date_h, |
|
|
|
|
|
]); |
|
|
|
|
|
if(!$update){ |
|
|
|
|
|
// Db::rollback(); |
|
|
|
|
|
// return fail('更新请假数据失败'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//插入打卡记录 |
|
|
|
|
|
$data = [ |
|
|
|
|
|
'campus_id'=>$campus_id ?? 0,// |
|
|
|
|
|
'staff_id'=>$staff_id,// |
|
|
|
|
|
'attendance_date'=>$attendance_date,// |
|
|
|
|
|
'check_in_time'=>$date_h,// |
|
|
|
|
|
'status'=>$status,// |
|
|
|
|
|
'coordinate'=>$coordinate,//坐标|经度,纬度 |
|
|
|
|
|
'remarks'=>$remarks,// |
|
|
|
|
|
]; |
|
|
|
|
|
$res = $obj->addData($data); |
|
|
|
|
|
Db::commit(); |
|
|
|
|
|
if(!$res['code']){ |
|
|
|
|
|
Db::rollback(); |
|
|
|
|
|
return fail($res['msg']); |
|
|
|
|
|
} |
|
|
|
|
|
return success($res['data']); |
|
|
|
|
|
}catch (\Exception $e){ |
|
|
|
|
|
Db::rollback(); |
|
|
|
|
|
return fail('操作失败'); |
|
|
} |
|
|
} |
|
|
return success($res['data']); |
|
|
|
|
|
} |
|
|
} |
|
|
//判断是签退 |
|
|
//判断是签退 |
|
|
if($status == 'sign_out'){ |
|
|
if($status == 'sign_out'){ |
|
|
|