cqpCow 1 éve
szülő
commit
0d9fa76c11
2 módosított fájl, 42 hozzáadás és 1 törlés
  1. 34 1
      app/Service/ConstructionService.php
  2. 8 0
      config/oa.php

+ 34 - 1
app/Service/ConstructionService.php

@@ -51,6 +51,8 @@ class ConstructionService extends Service
             $model->address2 = $data['address2'] ?? '';
             $model->introduction = $data['introduction'] ?? '';
             $model->storehouse_id = $data['storehouse_id'] ?? 0;
+            $model->start_time = $data['start_time'] ?? 0;
+            $model->end_time = $data['end_time'] ?? 0;
             $model->save();
             $time = time();
 
@@ -156,6 +158,8 @@ class ConstructionService extends Service
             $model->depart_id = $data['depart_id'] ?? 0;
             $model->top_depart_id = $data['top_depart_id'] ?? 0;
             $model->storehouse_id = $data['storehouse_id'] ?? 0;
+            $model->start_time = $data['start_time'] ?? 0;
+            $model->end_time = $data['end_time'] ?? 0;
             $model->save();
             $time = time();
 
@@ -383,6 +387,11 @@ class ConstructionService extends Service
                 $model->where('crt_time','<=',$end);
             }
         }
+        if(! empty($data['construction_period'][0]) && ! empty($data['construction_period'][1])) {
+            $return = $this->changeDateToTimeStampAboutRange($data['construction_period']);
+            $model->where('start_time','>=',$return[0]);
+            $model->where('end_time','<=',$return[1]);
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list);
@@ -406,7 +415,11 @@ class ConstructionService extends Service
         $sale = SalesOrder::where('del_time',0)->where('id',$data['sales_order_id'])->first();
         if(empty($sale)) return [false,'合同不存在或已被删除'];
         if($sale['state'] < SalesOrder::State_two) return [false,'合同未派单,不允许新建施工单'];
+        $sale = $sale->toArray();
         if(empty($data['product'])) return [false,'请选择产品'];
+        if(empty($data['construction_period'][0]) || empty($data['construction_period'][1])) return [false,'请填写施工时间范围'];
+        $data['start_time'] = $this->changeDateToDateMin($data['construction_period'][0]);
+        $data['end_time'] = $this->changeDateToDateMin($data['construction_period'][1]);
 
         if(! empty($data['construction_fee'])){
             $res = $this->checkNumber($data['construction_fee']);
@@ -470,11 +483,28 @@ class ConstructionService extends Service
         list($status,$msg) = (new ProductInventoryService())->compareStock($user,$product_id, $product_submit, $product_save);
         if(! $status) return [false, $msg];
 
+        $start_time = date("Y-m-d H:i",$data['start_time']);
+        $end_time = date("Y-m-d H:i",$data['end_time']);
         if($is_add){
-            $bool = Construction::where('del_time',0)->where('order_number',$data['order_number'])->exists();
+            $bool = Construction::where('del_time',0)
+                ->where('order_number',$data['order_number'])
+                ->exists();
             if($bool) return [false,'工单编号已存在,请重新获取'];
+            $bool = Construction::where('del_time',0)
+                ->where('sales_order_id',$data['sales_order_id'])
+                ->where('start_time', '<=', $data['end_time'])
+                ->where('end_time', '>=', $data['start_time'])
+                ->exists();
+            if($bool)  return [false,'合同:' . $sale['order_number'] . '在' . $start_time . '——' . $end_time . '已下施工单'];
         }else{
             if(empty($data['id'])) return [false,'ID不能为空'];
+            $bool = Construction::where('del_time',0)
+                ->where('id','<>',$data['id'])
+                ->where('sales_order_id',$data['sales_order_id'])
+                ->where('start_time', '<=', $data['end_time'])
+                ->where('end_time', '>=', $data['start_time'])
+                ->exists();
+            if($bool)  return [false,'合同:' . $sale['order_number'] . '在' . $start_time . '——' . $end_time . '已下施工单'];
         }
 
         return [true, [$product_submit, $product_save]];
@@ -510,6 +540,9 @@ class ConstructionService extends Service
                 $tmp .= ' ' . $value['address2'];
                 $address = $tmp;
             }
+            $start_time = $value['start_time'] ? date("Y-m-d H:i",$value['start_time']) : '';
+            $end_time = $value['end_time'] ? date("Y-m-d H:i",$value['end_time']) : '';
+            $data['data'][$key]['construction_period'] = $start_time . '——' . $end_time;
             $data['data'][$key]['address'] = $address;
             $data['data'][$key]['install_position_title'] = $basic_map[$value['install_position']] ?? '';
             $data['data'][$key]['install_method_title'] = $basic_map[$value['install_method']] ?? '';

+ 8 - 0
config/oa.php

@@ -411,6 +411,14 @@ return [
                 'key' => 'storehouse_id',
                 'title' => '仓库ID',
             ],
+            [
+                'key' => 'start_time',
+                'title' => '施工开始日期',
+            ],
+            [
+                'key' => 'end_time',
+                'title' => '施工结束日期',
+            ],
         ]
     ],
     [