cqp 2 ماه پیش
والد
کامیت
1af5a4c008
2فایلهای تغییر یافته به همراه28 افزوده شده و 5 حذف شده
  1. 11 4
      app/Model/Item.php
  2. 17 1
      app/Service/ItemService.php

+ 11 - 4
app/Model/Item.php

@@ -10,15 +10,22 @@ class Item extends DataScopeBaseModel
     protected $dateFormat = 'U';
     const employee_column = "crt_id";
 
-    public static $field = ['title','id','code','start_time','end_time','mark','crt_id','crt_time','state'];
+    public static $field = ['title','id','code','start_time','end_time','mark','crt_id','crt_time','state','budget','charge_id','item_attribute','field'];
 
-    const TYPE_ONE = 1; // 在职
-    const TYPE_TWO = 2; // 离职
-    const TYPE_THREE = 3; // 休假
+    const TYPE_ONE = 1;
+    const TYPE_TWO = 2;
+    const TYPE_THREE = 3;
     const State_Type = [
         self::TYPE_ONE => '待开始',
         self::TYPE_TWO => '进行中',
         self::TYPE_THREE => '已完成',
     ];
 
+
+    const Attr_TYPE_ONE = 1;
+    const Attr_TYPE_TWO = 2;
+    const Item_Attribute = [
+        self::TYPE_ONE => '自主开发',
+        self::TYPE_TWO => '合作开发',
+    ];
 }

+ 17 - 1
app/Service/ItemService.php

@@ -24,6 +24,10 @@ class ItemService extends Service
             $model->start_time = $data['start_time'] ?? 0;
             $model->end_time = $data['end_time'] ?? 0;
             $model->state = $data['state'] ?? 0;
+            $model->budget = $data['budget'] ?? 0;
+            $model->charge_id = $data['charge_id'] ?? 0;
+            $model->field = $data['field'] ?? 0;
+            $model->item_attribute = $data['item_attribute'] ?? 0;
             $model->save();
 
             $time = time();
@@ -55,6 +59,10 @@ class ItemService extends Service
             $model->start_time = $data['start_time'] ?? 0;
             $model->end_time = $data['end_time'] ?? 0;
             $model->state = $data['state'] ?? 0;
+            $model->budget = $data['budget'] ?? 0;
+            $model->charge_id = $data['charge_id'] ?? 0;
+            $model->field = $data['field'] ?? 0;
+            $model->item_attribute = $data['item_attribute'] ?? 0;
             $model->crt_id = $user['id'];
             $model->top_depart_id = $data['top_depart_id'];
             $model->save();
@@ -198,6 +206,7 @@ class ItemService extends Service
         $customer['start_time']  = ! empty($customer['start_time']) ? date("Y-m-d", $customer['start_time']) : "";
         $customer['end_time']  = ! empty($customer['end_time']) ? date("Y-m-d", $customer['end_time']) : "";
         $customer['crt_name'] = Employee::where('id',$customer['crt_id'])->value('title');
+        $customer['charge_name'] = Employee::where('id',$customer['charge_id'])->value('title');
         $customer['crt_time'] = $customer['crt_time'] ? date("Y-m-d H:i:s",$customer['crt_time']): '';
         $customer['state_title'] = Employee::State_Type[$customer['state']] ?? '';
 
@@ -266,6 +275,12 @@ class ItemService extends Service
         list($status, $msg) = $this->checkArrayRepeat($data['device_list'],'data_id','设备');
         if(! $status) return [false, $msg];
 
+        if(isset($data['budget'])){
+            $res = $this->checkNumber($data['budget'],2,'non-negative');
+            if(! $res['valid']) return [false,'预算:' . $res['error']];
+        }
+        if(! empty($data['item_attribute']) && ! isset(Item::Item_Attribute[$data['item_attribute']])) return [false, '项目属性不存在'];
+
         if($is_add){
             $bool = Item::where('code',$data['code'])
                 ->where('top_depart_id', $data['top_depart_id'])
@@ -287,12 +302,13 @@ class ItemService extends Service
     public function fillData($data){
         if(empty($data['data'])) return $data;
 
-        $emp = (new EmployeeService())->getEmployeeMap(array_unique(array_column($data['data'],'crt_id')));
+        $emp = (new EmployeeService())->getEmployeeMap(array_unique(array_merge_recursive(array_column($data['data'],'crt_id')),array_column($data['data'],'charge_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]['start_time'] = $value['start_time'] ? date('Y-m-d',$value['start_time']) : '';
             $data['data'][$key]['end_time'] = $value['end_time'] ? date('Y-m-d',$value['end_time']) : '';
             $data['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
+            $data['data'][$key]['charge_name'] = $emp[$value['charge_id']] ?? '';
             $data['data'][$key]['state_title'] = Item::State_Type[$value['state']] ?? "";
         }