cqpCow 10 months ago
parent
commit
daff7a698c

+ 1 - 0
app/Model/ConstructionInfo.php

@@ -12,6 +12,7 @@ class ConstructionInfo extends Model
     protected $dateFormat = 'U';
     const type_one = 1; // 联系方式
     const type_two = 2; // 协同人
+    const type_three = 3; // 负责人
     public static $type = [
         self::type_one,
         self::type_two

+ 2 - 0
app/Model/OrderOperation.php

@@ -39,6 +39,7 @@ class OrderOperation extends Model
     const twenty_three = 23;
     const twenty_four = 24;
     const twenty_five = 25;
+    const twenty_six = 26;
 
     public static $type = [
         self::zero => '系统设置变更 ',
@@ -67,5 +68,6 @@ class OrderOperation extends Model
         self::twenty_three => '客户分配',
         self::twenty_four => '客户移交',
         self::twenty_five => '合同批量确认',
+        self::twenty_six => '施工单分配/调配',
     ];
 }

+ 7 - 1
app/Service/ConstructionService.php

@@ -436,7 +436,7 @@ class ConstructionService extends Service
         $construction['storehouse_title'] = Storehouse::where('id',$construction['storehouse_id'])->value('title');
         $emp_title = Employee::where('id',$construction['customer_contact_id'])->value('emp_name');
         $construction['customer_contact_title'] = $emp_title;
-        $construction['employee_one'] = $construction['construction_contact'] = $construction['product'] = [];
+        $construction['employee_two'] = $construction['employee_one'] = $construction['construction_contact'] = $construction['product'] = [];
         $array = [
             $construction['install_method'],
             $construction['install_position'],
@@ -490,6 +490,12 @@ class ConstructionService extends Service
                     'name' => $emp_map[$value['employee_id']] ?? '',
                 ];
                 $construction['employee_one'][] = $tmp;
+            }elseif ($value['type'] == ConstructionInfo::type_three){
+                $tmp = [
+                    'id' => $value['employee_id'],
+                    'name' => $emp_map[$value['employee_id']] ?? '',
+                ];
+                $construction['employee_two'][] = $tmp;
             }
         }
 

+ 33 - 0
app/Service/DeleteService.php

@@ -3,6 +3,7 @@
 namespace App\Service;
 
 use App\Model\Construction;
+use App\Model\ConstructionInfo;
 use App\Model\Customer;
 use App\Model\CustomerInfo;
 use App\Model\Employee;
@@ -97,6 +98,8 @@ class DeleteService extends Service
                 $this->fpSaleOrderMan($data,$user);
             }elseif ($data['type'] == 2){
                 $this->fpCustomerMan($data,$user);
+            }elseif($data['type'] == 3){
+                $this->fpConstructionMan($data,$user);
             }
 
             DB::commit();
@@ -208,6 +211,36 @@ class DeleteService extends Service
         }
     }
 
+    public function fpConstructionMan($data,$user){
+        $time = time();
+        if(! empty($data['man'])){
+            //负责人清除
+            ConstructionInfo::where('del_time',0)
+                ->whereIn('construction_id',$data['id'])
+                ->where('type', CustomerInfo::type_three)
+                ->update(['del_time' => $time]);
+
+            $insert = [];
+            foreach ($data['man'] as $value){
+                $insert[] = [
+                    'construction_id' => $data['id'],
+                    'employee_id' => $value,
+                    'type' => ConstructionInfo::type_three,
+                    'crt_time' => $time,
+                ];
+            }
+            ConstructionInfo::insert($insert);
+
+            $order = Construction::where('id',$data['id'])->first();
+            $order = $order->toArray();
+            (new OrderOperationService())->add([
+                'order_number' => $order['order_number'],
+                'msg' => OrderOperation::$type[OrderOperation::twenty_six] ?? "",
+                'type' => OrderOperation::twenty_six
+            ],$user);
+        }
+    }
+
     public function yj($data,$user){
         if(empty($data['id']) || empty($data['type']) || empty($data['man'])) return [false, '必填参数不能为空!'];
 

+ 28 - 0
app/Service/OrderNoService.php

@@ -3,10 +3,38 @@
 namespace App\Service;
 
 use App\Model\Construction;
+use App\Model\OrderNoCount;
 use App\Model\SalesOrder;
 
 class OrderNoService extends Service
 {
+    function generateOrderNumberNew($prefix, $user) {
+        $data['depart_id'] = $this->getDepart($user);
+        $top_depart_id = $user['depart_map'][$data['depart_id']] ?? 0;
+
+        // 使用 strtotime 将日期字符串转换为时间戳,并设置为当天零时
+        $timestampZero = strtotime(date('Y-m-d') . ' 00:00:00');
+
+        $order_no_count = OrderNoCount::where('prefix',$prefix)
+            ->where('top_depart_id',$top_depart_id)
+            ->where('time', $timestampZero)
+            ->first();
+
+        if(empty($order_no_count)) {
+            $counter = 1;
+        }else{
+            $counter = $order_no_count->count + 1;
+        }
+
+        // 格式化计数器为至少三位数
+        $number = str_pad($counter, ($counter >= 1000 ? 4 : 3), '0', STR_PAD_LEFT);
+
+        // 生成订单单号
+        $orderNumber = $prefix . date('Ymd') . $number;
+
+        return $orderNumber;
+    }
+
     //采购 收货 发货 单号生成
     public function createOrderNumber($prefix){
         return $prefix . date('YmdHis',time()) . rand(1000,9999);

+ 8 - 9
app/Service/RangeService.php

@@ -495,24 +495,23 @@ class RangeService extends Service
     public function RangeConstructionEmpDetail($data_id = 0){
         if(empty($data_id)) return [];
 
-        $see = SeeRange::where('del_time',0)
-            ->whereIn('data_id',$data_id)
-            ->where('data_type',SeeRange::type_two)
-            ->where('type',SeeRange::data_two)
+        $see = ConstructionInfo::where('del_time',0)
+            ->whereIn('construction_id',$data_id)
+            ->where('type',ConstructionInfo::type_three)
             ->get()->toArray();
         $emp_map = Employee::where('del_time',0)
-            ->whereIn('id',array_column($see,'param_id'))
+            ->whereIn('id',array_column($see,'employee_id'))
             ->pluck('emp_name','id')->toArray();
 
         $employee = [];
         foreach ($see as $value){
-            $name = $emp_map[$value['param_id']] ?? '';
+            $name = $emp_map[$value['employee_id']] ?? '';
             if(! empty($name)){
                 $tmp = [
-                    'id' => $value['param_id'],
-                    'emp_name' => $emp_map[$value['param_id']] ?? '',
+                    'id' => $value['employee_id'],
+                    'emp_name' => $emp_map[$value['employee_id']] ?? '',
                 ];
-                $employee[$value['data_id']][] = $tmp;
+                $employee[$value['construction_id']][] = $tmp;
             }
         }
 

+ 3 - 1
app/Service/ScheduleService.php

@@ -608,7 +608,7 @@ class ScheduleService extends Service
 
         $construction = Construction::where('del_time',0)
             ->whereIn('id',$order_id)
-            ->select('id','order_number','crt_id','start_time','end_time')
+            ->select('id','order_number','crt_id','start_time','end_time','state')
             ->get()->toArray();
         if(empty($construction)) return [true, ""];
         $emp = Employee::whereIn('id',array_unique(array_column($construction,'crt_id')))
@@ -647,6 +647,8 @@ class ScheduleService extends Service
                 'crt_name' => $emp[$value['crt_id']] ?? "",
                 'product' => $product_title[$value['id']],
                 'crt_time' => $str,
+                'state' => $value['state'],
+                'state_title' => Construction::$name[$value['state']] ?? "",
             ];
             $tmp = $tmp + ($construction_oa[$value['order_number']] ?? []);
             $return[] = $tmp;