|
@@ -9,6 +9,7 @@ use App\Model\Product;
|
|
|
use App\Model\ProductActivity;
|
|
|
use App\Model\ProductActivityPrice;
|
|
|
use App\Model\Schedule;
|
|
|
+use App\Model\ScheduleDetail;
|
|
|
use App\Model\ScheduleInfo;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
@@ -28,13 +29,24 @@ class ScheduleService extends Service
|
|
|
$model->save();
|
|
|
|
|
|
$time = time();
|
|
|
+ ScheduleDetail::where('schedule_id',$data['id'])
|
|
|
+ ->where('del_time',0)
|
|
|
+ ->update(['del_time' => $time]);
|
|
|
ScheduleInfo::where('schedule_id',$data['id'])
|
|
|
->where('del_time',0)
|
|
|
->update(['del_time' => $time]);
|
|
|
|
|
|
if(! empty($data['day_time'])){
|
|
|
- $insert = [];
|
|
|
+ $insert_detail = $insert = [];
|
|
|
foreach ($data['day_time'] as $value){
|
|
|
+ $insert_detail[] = [
|
|
|
+ 'schedule_id' => $model->id,
|
|
|
+ 'crt_time' => $time,
|
|
|
+ 'start_time' => $value['start_time'] ?? "",
|
|
|
+ 'end_time' => $value['end_time'] ?? "",
|
|
|
+ 'num' => $value['num'] ?? 0,
|
|
|
+ ];
|
|
|
+
|
|
|
for ($i=0;$i<$value['num'];$i++){
|
|
|
foreach ($data['time_range'] as $range){
|
|
|
$date = date('Y-m-d',$range);
|
|
@@ -50,6 +62,7 @@ class ScheduleService extends Service
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ ScheduleDetail::insert($insert_detail);
|
|
|
ScheduleInfo::insert($insert);
|
|
|
}
|
|
|
|
|
@@ -80,8 +93,16 @@ class ScheduleService extends Service
|
|
|
|
|
|
$time = time();
|
|
|
if(! empty($data['day_time'])){
|
|
|
- $insert = [];
|
|
|
+ $insert_detail = $insert = [];
|
|
|
foreach ($data['day_time'] as $value){
|
|
|
+ $insert_detail[] = [
|
|
|
+ 'schedule_id' => $model->id,
|
|
|
+ 'crt_time' => $time,
|
|
|
+ 'start_time' => $value['start_time'] ?? "",
|
|
|
+ 'end_time' => $value['end_time'] ?? "",
|
|
|
+ 'num' => $value['num'] ?? 0,
|
|
|
+ ];
|
|
|
+
|
|
|
for ($i=0;$i<$value['num'];$i++){
|
|
|
foreach ($data['time_range'] as $range){
|
|
|
$date = date('Y-m-d',$range);
|
|
@@ -123,6 +144,10 @@ class ScheduleService extends Service
|
|
|
|
|
|
Schedule::where('id',$data['id'])->update(['del_time' => $time]);
|
|
|
|
|
|
+ ScheduleDetail::where('schedule_id',$data['id'])
|
|
|
+ ->where('del_time',0)
|
|
|
+ ->update(['del_time' => $time]);
|
|
|
+
|
|
|
ScheduleInfo::where('schedule_id',$data['id'])
|
|
|
->where('del_time',0)
|
|
|
->update(['del_time' => $time]);
|
|
@@ -144,6 +169,31 @@ class ScheduleService extends Service
|
|
|
if(empty($schedule)) return [false,'排班设置不存在或已被删除'];
|
|
|
$schedule = $schedule->toArray();
|
|
|
|
|
|
+ $info = ScheduleDetail::where('del_time',0)
|
|
|
+ ->where('schedule_id',$data['id'])
|
|
|
+ ->select('start_time','end_time','num')
|
|
|
+ ->get()->toArray();
|
|
|
+ foreach ($info as $key => $value){
|
|
|
+ $info[$key]['choose'] = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ $schedule['detail'] = array_values($info);
|
|
|
+
|
|
|
+ $schedule['crt_name'] = Employee::where('id',$schedule['crt_id'])->value('emp_name');
|
|
|
+ $schedule['crt_time'] = $schedule['crt_time'] ? date("Y-m-d H:i:s",$schedule['crt_time']): '';
|
|
|
+
|
|
|
+ return [true, $schedule];
|
|
|
+ }
|
|
|
+
|
|
|
+ //暂时不用
|
|
|
+ public function detail2($data,$user){
|
|
|
+ if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
|
+ $schedule = Schedule::where('del_time',0)
|
|
|
+ ->where('id',$data['id'])
|
|
|
+ ->first();
|
|
|
+ if(empty($schedule)) return [false,'排班设置不存在或已被删除'];
|
|
|
+ $schedule = $schedule->toArray();
|
|
|
+
|
|
|
$date1 = date("Y-m-d", $schedule['start_time']);
|
|
|
$date2 = date("Y-m-d", $schedule['end_time']);
|
|
|
$datetime1 = new \DateTime($date1);
|
|
@@ -153,7 +203,7 @@ class ScheduleService extends Service
|
|
|
|
|
|
$info = ScheduleInfo::where('del_time',0)
|
|
|
->where('schedule_id',$data['id'])
|
|
|
- ->select('start_time','end_time')
|
|
|
+ ->select('start_time','end_time','num')
|
|
|
->get()->toArray();
|
|
|
$infos = [];
|
|
|
foreach ($info as $value){
|
|
@@ -166,6 +216,7 @@ class ScheduleService extends Service
|
|
|
'start_time' => $start_time,
|
|
|
'end_time' => $end_time,
|
|
|
'num' => 1,
|
|
|
+ 'choose' => 1,
|
|
|
];
|
|
|
}
|
|
|
}
|
|
@@ -327,4 +378,35 @@ class ScheduleService extends Service
|
|
|
|
|
|
return $zeroTimestamps;
|
|
|
}
|
|
|
+
|
|
|
+ public function getScheduleSetting($data,$user){
|
|
|
+ if(empty($data['schedule'])) return [true,''];
|
|
|
+ // 获取指定年月的开始日期时间戳
|
|
|
+ $startTimestamp = strtotime($data['schedule'] . "-01");
|
|
|
+ // 获取下个月的开始日期时间戳,然后减去一秒得到本月的结束日期时间戳
|
|
|
+ $endTimestamp = strtotime("+1 month", $startTimestamp) - 1;
|
|
|
+
|
|
|
+ $model = Schedule::TopClear($user,$data);
|
|
|
+ $schedule = $model->where('del_time',0)
|
|
|
+ ->where('start_time', '>=', $startTimestamp)
|
|
|
+ ->where('end_time', '<=', $endTimestamp)
|
|
|
+ ->get()->toArray();
|
|
|
+ if(empty($schedule)) return [true,''];
|
|
|
+
|
|
|
+ $schedule_detail_list = ScheduleDetail::where('del_time',0)
|
|
|
+ ->whereIn('schedule_id',array_column($schedule,'id'))
|
|
|
+ ->select('schedule_id','num','start_time','end_time')
|
|
|
+ ->get()->toArray();
|
|
|
+ if(empty($schedule_detail_list)) return [true,''];
|
|
|
+ $schedule_detail_list_map = [];
|
|
|
+ foreach ($schedule_detail_list as $key => $value){
|
|
|
+ $schedule_detail_list_map[$value['schedule_id']][] = $value;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($schedule as $key => $value){
|
|
|
+ $schedule[$key]['detail'] = $schedule_detail_list_map[$value['id']] ?? [];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, $schedule];
|
|
|
+ }
|
|
|
}
|