|
@@ -36,12 +36,15 @@ class ScheduleService extends Service
|
|
foreach ($data['day_time'] as $value){
|
|
foreach ($data['day_time'] as $value){
|
|
for ($i=0;$i<$value['num'];$i++){
|
|
for ($i=0;$i<$value['num'];$i++){
|
|
foreach ($data['time_range'] as $range){
|
|
foreach ($data['time_range'] as $range){
|
|
|
|
+ $date = date('Y-m-d',$range);
|
|
|
|
+ $start_time = strtotime($date . " " .$value['start_time']);
|
|
|
|
+ $end_time = strtotime($date . " " .$value['end_time']);
|
|
$insert[] = [
|
|
$insert[] = [
|
|
'schedule_id' => $model->id,
|
|
'schedule_id' => $model->id,
|
|
'crt_time' => $time,
|
|
'crt_time' => $time,
|
|
- 'day' => $range ?? 0,
|
|
|
|
- 'start_time' => $value['start_time'] ?? "",
|
|
|
|
- 'end_time' => $value['end_time'] ?? "",
|
|
|
|
|
|
+ 'day' => $range ?? 0, //0点的时间戳
|
|
|
|
+ 'start_time' => $start_time ?? 0, //加上开始时间段
|
|
|
|
+ 'end_time' => $end_time ?? 0,//加上结束时间段
|
|
];
|
|
];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -80,12 +83,15 @@ class ScheduleService extends Service
|
|
foreach ($data['day_time'] as $value){
|
|
foreach ($data['day_time'] as $value){
|
|
for ($i=0;$i<$value['num'];$i++){
|
|
for ($i=0;$i<$value['num'];$i++){
|
|
foreach ($data['time_range'] as $range){
|
|
foreach ($data['time_range'] as $range){
|
|
|
|
+ $date = date('Y-m-d',$range);
|
|
|
|
+ $start_time = strtotime($date . " " .$value['start_time']);
|
|
|
|
+ $end_time = strtotime($date . " " .$value['end_time']);
|
|
$insert[] = [
|
|
$insert[] = [
|
|
'schedule_id' => $model->id,
|
|
'schedule_id' => $model->id,
|
|
'crt_time' => $time,
|
|
'crt_time' => $time,
|
|
- 'day' => $range ?? 0,
|
|
|
|
- 'start_time' => $value['start_time'] ?? "",
|
|
|
|
- 'end_time' => $value['end_time'] ?? "",
|
|
|
|
|
|
+ 'day' => $range ?? 0, //0点的时间戳
|
|
|
|
+ 'start_time' => $start_time ?? 0, //加上开始时间段
|
|
|
|
+ 'end_time' => $end_time ?? 0,//加上结束时间段
|
|
];
|
|
];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -169,20 +175,22 @@ class ScheduleService extends Service
|
|
$data['end_time'] = $this->changeDateToDate($data['schedule'][1]);
|
|
$data['end_time'] = $this->changeDateToDate($data['schedule'][1]);
|
|
$data['time_range'] = $this->getTimestampRange($data['start_time'],$data['end_time']);
|
|
$data['time_range'] = $this->getTimestampRange($data['start_time'],$data['end_time']);
|
|
if(empty($data['day_time'])) return [false,'排班时间段不能为空'];
|
|
if(empty($data['day_time'])) return [false,'排班时间段不能为空'];
|
|
- foreach ($data['day_time'] as $key => $value){
|
|
|
|
|
|
+ foreach ($data['day_time'] as $value){
|
|
if(empty($value['start_time'])) return [false,'排班时间段开始时间不能为空'];
|
|
if(empty($value['start_time'])) return [false,'排班时间段开始时间不能为空'];
|
|
if(empty($value['end_time'])) return [false,'排班时间段结束时间不能为空'];
|
|
if(empty($value['end_time'])) return [false,'排班时间段结束时间不能为空'];
|
|
if(empty($value['num'])) return [false,'排班车间数量不能为空'];
|
|
if(empty($value['num'])) return [false,'排班车间数量不能为空'];
|
|
}
|
|
}
|
|
|
|
|
|
if($is_add){
|
|
if($is_add){
|
|
- $bool = Schedule::where('del_time',0)
|
|
|
|
|
|
+ $model = Schedule::TopClear($user,$data);
|
|
|
|
+ $bool = $model->where('del_time',0)
|
|
->where('start_time', '<=', $data['end_time'])
|
|
->where('start_time', '<=', $data['end_time'])
|
|
->where('end_time', '>=', $data['start_time'])
|
|
->where('end_time', '>=', $data['start_time'])
|
|
->exists();
|
|
->exists();
|
|
}else{
|
|
}else{
|
|
if(empty($data['id'])) return [false,'ID不能为空'];
|
|
if(empty($data['id'])) return [false,'ID不能为空'];
|
|
- $bool = Schedule::where('del_time',0)
|
|
|
|
|
|
+ $model = Schedule::TopClear($user,$data);
|
|
|
|
+ $bool = $model->where('del_time',0)
|
|
->where('id','<>',$data['id'])
|
|
->where('id','<>',$data['id'])
|
|
->where('start_time', '<=', $data['end_time'])
|
|
->where('start_time', '<=', $data['end_time'])
|
|
->where('end_time', '>=', $data['start_time'])
|
|
->where('end_time', '>=', $data['start_time'])
|
|
@@ -215,6 +223,42 @@ class ScheduleService extends Service
|
|
return $data;
|
|
return $data;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public function scheduleGetForConstruction($data,$user){
|
|
|
|
+ if(empty($data['schedule'])) return [false,'请选择日期!'];
|
|
|
|
+ $schedule = $this->changeDateToDate($data['schedule']);
|
|
|
|
+ $model = Schedule::TopClear($user,$data);
|
|
|
|
+ $schedule_id = $model->where('del_time',0)
|
|
|
|
+ ->where('start_time', '>=', $schedule)
|
|
|
|
+ ->where('end_time', '<=', $schedule)
|
|
|
|
+ ->select('id')->get()->toArray();
|
|
|
|
+ $schedule_id = array_column($schedule_id,'id');
|
|
|
|
+ if(empty($schedule_id)) return [false,'该时间排班设置不存在或已被删除!'];
|
|
|
|
+
|
|
|
|
+ $schedule_detail_list = ScheduleInfo::where('del_time',0)
|
|
|
|
+ ->whereIn('schedule_id',$schedule_id)
|
|
|
|
+ ->where('day',$schedule)
|
|
|
|
+ ->where('is_use',ScheduleInfo::not_use)
|
|
|
|
+ ->select('schedule_id','day','start_time','end_time')
|
|
|
|
+ ->get()->toArray();
|
|
|
|
+ if(empty($schedule_detail_list)) return [false,'该时间排班已满、不存在或已被删除!'];
|
|
|
|
+
|
|
|
|
+ $return = [];
|
|
|
|
+ foreach ($schedule_detail_list as $value){
|
|
|
|
+ if(isset($return[$value['start_time'] . $value['end_time']])){
|
|
|
|
+ $return[$value['start_time'] . $value['end_time']]['num'] += 1;
|
|
|
|
+ }else{
|
|
|
|
+ $tmp['num'] = 1;
|
|
|
|
+ $tmp['day'] = date('Y-m-d',$value['day']);
|
|
|
|
+ $tmp['start_time'] = date('H:i',$value['start_time']);
|
|
|
|
+ $tmp['end_time'] = date('H:i',$value['end_time']);
|
|
|
|
+ $return[$value['start_time'] . $value['end_time']] = $tmp;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ksort($return);
|
|
|
|
+
|
|
|
|
+ return [true, array_values($return)];
|
|
|
|
+ }
|
|
|
|
+
|
|
public function getTimestampRange($startTimestamp, $endTimestamp){
|
|
public function getTimestampRange($startTimestamp, $endTimestamp){
|
|
// 将时间戳转换为日期格式
|
|
// 将时间戳转换为日期格式
|
|
$startDate = date('Y-m-d', $startTimestamp);
|
|
$startDate = date('Y-m-d', $startTimestamp);
|