|
|
@@ -7,6 +7,7 @@ use App\Model\Order;
|
|
|
use App\Model\OrderDetails;
|
|
|
use App\Model\Reminder;
|
|
|
use App\Model\ReminderDetails;
|
|
|
+use App\Model\TodoList;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
class OrderService extends Service
|
|
|
@@ -540,4 +541,192 @@ class OrderService extends Service
|
|
|
public function createOrderNumber(){
|
|
|
return date('YmdHis',time()) . rand(1000,9999);
|
|
|
}
|
|
|
+
|
|
|
+ //催单管理---------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+ //待办管理---------------------------------------------
|
|
|
+
|
|
|
+ public function toDoEdit($data,$user){
|
|
|
+ list($status,$msg) = $this->toDoRule($data, $user, false);
|
|
|
+ if(!$status) return [$status,$msg];
|
|
|
+
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+
|
|
|
+ $model = TodoList::where('id',$data['id'])->first();
|
|
|
+ $model->title = $data['title'] ?? "";
|
|
|
+ $model->type = $data['type'] ?? '';
|
|
|
+ $model->remind_start = $data['remind_start'] ?? '';
|
|
|
+ $model->remind_interval = $data['remind_interval'] ?? 0;
|
|
|
+ $model->last_remind_time = $data['last_remind_time'] ?? 0;
|
|
|
+ $model->man_type = $data['man_type'] ?? '';
|
|
|
+ $model->organization_name = $data['organization_name'] ?? '';
|
|
|
+ $model->contact = $data['contact'] ?? '';
|
|
|
+ $model->address = $data['address'] ?? '';
|
|
|
+ $model->content = $data['content'] ?? '';
|
|
|
+ $model->save();
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ }catch (\Exception $exception){
|
|
|
+ DB::rollBack();
|
|
|
+ return [false,$exception->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, ''];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function toDoAdd($data,$user){
|
|
|
+ list($status,$msg) = $this->toDoRule($data, $user);
|
|
|
+ if(!$status) return [$status,$msg];
|
|
|
+
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+
|
|
|
+ $model = new Reminder();
|
|
|
+ $model->title = $data['title'] ?? "";
|
|
|
+ $model->type = $data['type'] ?? '';
|
|
|
+ $model->remind_start = $data['remind_start'] ?? '';
|
|
|
+ $model->remind_interval = $data['remind_interval'] ?? 0;
|
|
|
+ $model->last_remind_time = $data['last_remind_time'] ?? 0;
|
|
|
+ $model->man_type = $data['man_type'] ?? '';
|
|
|
+ $model->organization_name = $data['organization_name'] ?? '';
|
|
|
+ $model->contact = $data['contact'] ?? '';
|
|
|
+ $model->address = $data['address'] ?? '';
|
|
|
+ $model->content = $data['content'] ?? '';
|
|
|
+ $model->crt_id = $user['id'];
|
|
|
+ $model->save();
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ }catch (\Exception $exception){
|
|
|
+ DB::rollBack();
|
|
|
+ return [false,$exception->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, ''];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function toDoDel($data){
|
|
|
+ if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
|
+
|
|
|
+// $bool = TodoList::where('del_time',0)
|
|
|
+// ->whereIn('id',$data['id'])
|
|
|
+// ->where('status','>',TodoList::status_zero)
|
|
|
+// ->exists();
|
|
|
+// if($bool) return [false, '待办状态已变更,删除失败'];
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+ $time = time();
|
|
|
+
|
|
|
+ TodoList::where('del_time',0)
|
|
|
+ ->whereIn('id',$data['id'])
|
|
|
+ ->update(['del_time' => $time]);
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ }catch (\Exception $exception){
|
|
|
+ DB::rollBack();
|
|
|
+ return [false,$exception->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, ''];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function toDoDetail($data, $user){
|
|
|
+ if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
|
|
|
+ $customer = TodoList::where('del_time',0)
|
|
|
+ ->where('id',$data['id'])
|
|
|
+ ->first();
|
|
|
+ if(empty($customer)) return [false,'催单不存在或已被删除'];
|
|
|
+ $customer = $customer->toArray();
|
|
|
+ $customer['crt_name'] = Employee::where('id',$customer['crt_id'])->value('emp_name');
|
|
|
+ $customer['crt_time'] = $customer['crt_time'] ? date("Y-m-d H:i:s",$customer['crt_time']): '';
|
|
|
+ $customer['remind_start'] = $customer['remind_start'] ? date("Y-m-d H:i",$customer['remind_start']): '';
|
|
|
+ $customer['type_title'] = TodoList::$type_name[$customer['df_type']] ?? "";
|
|
|
+ $customer['status_title'] = TodoList::$status_name[$customer['status']] ?? "";
|
|
|
+
|
|
|
+ return [true, $customer];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function toDoCommon($data,$user, $field = []){
|
|
|
+ if(empty($field)) $field = TodoList::$field;
|
|
|
+
|
|
|
+ $model = TodoList::Clear($user,$data);
|
|
|
+ $model = $model->where('del_time',0)
|
|
|
+ ->select($field)
|
|
|
+ ->orderby('id', 'desc');
|
|
|
+
|
|
|
+ if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
|
|
|
+ if(! empty($data['id'])) $model->whereIn('id', $data['id']);
|
|
|
+ if(isset($data['status'])) $model->where('status', $data['status']);
|
|
|
+ if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
|
|
|
+ $return = $this->changeDateToTimeStampAboutRange($data['crt_time']);
|
|
|
+ $model->where('crt_time','>=',$return[0]);
|
|
|
+ $model->where('crt_time','<=',$return[1]);
|
|
|
+ }
|
|
|
+ if(! empty($data['remind_start'][0]) && ! empty($data['remind_start'][1])) {
|
|
|
+ $return = $this->changeDateToTimeStampAboutRange($data['remind_start']);
|
|
|
+ $model->where('remind_start','>=',$return[0]);
|
|
|
+ $model->where('remind_start','<=',$return[1]);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $model;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function toDoList($data,$user){
|
|
|
+ $model = $this->toDoCommon($data, $user);
|
|
|
+ $list = $this->limit($model,'',$data);
|
|
|
+ $list = $this->fillToDoData($list,$user,$data);
|
|
|
+
|
|
|
+ return [true, $list];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function toDoRule(&$data, $user, $is_add = true){
|
|
|
+ if(empty($data['title'])) return [false, '待办标题不能为空'];
|
|
|
+ if(empty($data['type'])) return [false, '间隔时长不能为空'];
|
|
|
+ if(! isset(TodoList::$type_value[$data['type']])) return [false, '间隔时长错误'];
|
|
|
+ $data['remind_interval'] = TodoList::$type_value[$data['type']];
|
|
|
+ if(empty($data['remind_start'])) return [false, '提醒开始时间不能为空'];
|
|
|
+ $data['remind_start'] = $this->changeDateToDateMin($data['remind_start']);
|
|
|
+ $now = strtotime(date("Y-m-d H:i"));
|
|
|
+ if ($data['remind_start'] - $now < 300) return [false, '提醒开始时间必须至少比当前时间晚5分钟'];
|
|
|
+
|
|
|
+// if(empty($data['man_type'])) return [false, '拜访人员类型不能为空'];
|
|
|
+// if(empty($data['organization_name'])) return [false, '组织名称不能为空'];
|
|
|
+// if(empty($data['contact'])) return [false, '联系人不能为空'];
|
|
|
+// if(empty($data['address'])) return [false, '地点不能为空'];
|
|
|
+ if(empty($data['content'])) return [false, '内容不能为空'];
|
|
|
+
|
|
|
+ if($is_add){
|
|
|
+
|
|
|
+ }else{
|
|
|
+ if(empty($data['id'])) return [false,'ID不能为空'];
|
|
|
+ $order = TodoList::where('id',$data['id'])
|
|
|
+ ->where('del_time',0)
|
|
|
+ ->first();
|
|
|
+ if(empty($order)) return [false, '待办事项不存在或已被删除'];
|
|
|
+ $order = $order->toArray();
|
|
|
+ if($order['status'] > TodoList::status_zero) return [false, '待办事项状态已变更,编辑失败'];
|
|
|
+ if ($order->remind_start != $data['remind_start'] || $order->remind_interval != $data['remind_interval']) {
|
|
|
+ $data['last_remind_time'] = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, $data];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function fillToDoData($data, $user, $search){
|
|
|
+ if(empty($data['data'])) return $data;
|
|
|
+
|
|
|
+ $emp = (new EmployeeService())->getEmployeeMap(array_unique(array_column($data['data'],'id')));
|
|
|
+ foreach ($data['data'] as $key => $value){
|
|
|
+ $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
|
+ $data['data'][$key]['remind_start'] = $value['remind_start'] ? date('Y-m-d H:i',$value['remind_start']) : '';
|
|
|
+ $data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
|
+
|
|
|
+ $data['data'][$key]['type_title'] = TodoList::$type_name[$value['df_type']] ?? "";
|
|
|
+ $data['data'][$key]['status_title'] = TodoList::$status_name[$value['status']] ?? "";
|
|
|
+ }
|
|
|
+
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
}
|