|
@@ -0,0 +1,1194 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Service;
|
|
|
+
|
|
|
+
|
|
|
+use App\Model\BasicRollFilm;
|
|
|
+use App\Model\Construction;
|
|
|
+use App\Model\Employee;
|
|
|
+use App\Model\EmployeeDepartPermission;
|
|
|
+use App\Model\EmployeeTeamPermission;
|
|
|
+use App\Model\Oa;
|
|
|
+use App\Model\OaOrder;
|
|
|
+use App\Model\OaOrderSub;
|
|
|
+use App\Model\OaOrderSubEmployee;
|
|
|
+use App\Model\OaSub;
|
|
|
+use App\Model\OaSubRule;
|
|
|
+use App\Model\RollFilm;
|
|
|
+use App\Model\RollFilmCombine;
|
|
|
+use App\Model\RollFilmCompany;
|
|
|
+use App\Model\SysMenu;
|
|
|
+use App\Model\Team;
|
|
|
+use Illuminate\Support\Facades\App;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Route;
|
|
|
+
|
|
|
+/**
|
|
|
+ * bom相关
|
|
|
+ * @package App\Models
|
|
|
+ */
|
|
|
+class OaService extends Service
|
|
|
+{
|
|
|
+
|
|
|
+ public function oaList($data)
|
|
|
+ {
|
|
|
+
|
|
|
+ $list = Oa::from('oa as o')
|
|
|
+ ->leftjoin('sys_menu as s', 's.id', 'o.menu_id')
|
|
|
+ ->select('o.id', 'o.menu_id', 'o.crt_time', 's.title')
|
|
|
+ ->where('o.del_time', 0);
|
|
|
+
|
|
|
+ $list = $this->limit($list, '', $data);
|
|
|
+
|
|
|
+
|
|
|
+ return [true, $list];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaDetail($data)
|
|
|
+ {
|
|
|
+
|
|
|
+// $id = $data['id'];
|
|
|
+//
|
|
|
+//// if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
|
|
|
+// $detail = OaSub::from('oa_sub as os')
|
|
|
+// ->leftJoin('employee as e', 'e.id', 'os.employee_id')
|
|
|
+// ->leftJoin('area as a', 'a.id', 'os.area_id')
|
|
|
+// ->where('oa_id', $id)
|
|
|
+// ->where('os.del_time', 0)
|
|
|
+// ->select('os.sort', 'os.type', 'os.employee_id', 'os.remark', 'e.emp_name','os.type','os.area_id','a.title as area_name')
|
|
|
+// ->orderBy('os.sort', 'asc')->get()->toArray();
|
|
|
+// $first = Oa::from('oa as o')
|
|
|
+// ->leftjoin('sys_menu as s', 's.id', 'o.menu_id')
|
|
|
+// ->select('o.id', 'o.menu_id', 'o.crt_time', 's.title','o.type')
|
|
|
+// ->where('o.del_time', 0)->where('o.id', $id)->first()->toArray();
|
|
|
+//
|
|
|
+// $first['detail'] = $detail;
|
|
|
+
|
|
|
+ $detail = [
|
|
|
+ 'id' => 1,
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'id' => 2,
|
|
|
+ 'name' => '张三',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 4,
|
|
|
+ 'name' => '张三三',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 5,
|
|
|
+ 'name' => '张五',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ], [
|
|
|
+ 'id' => 7,
|
|
|
+ 'name' => '张六',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ], [
|
|
|
+ 'id' => 44,
|
|
|
+ 'name' => '张四四',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 55,
|
|
|
+ 'name' => '张四四1',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 66,
|
|
|
+ 'name' => '李六1',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 77,
|
|
|
+ 'name' => 'li7',
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ], [
|
|
|
+ 'id' => 77,
|
|
|
+ 'name' => '张四四2',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ]
|
|
|
+ ], [
|
|
|
+ 'id' => 3,
|
|
|
+ 'name' => '李四',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 8,
|
|
|
+ 'name' => '李五',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 9,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+
|
|
|
+ return [true, $detail];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaUserDetail($data)
|
|
|
+ {
|
|
|
+
|
|
|
+ $detail = [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ];
|
|
|
+ return [true, $detail];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaParam($data)
|
|
|
+ {
|
|
|
+ $detail = [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '地区',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '数量',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => '品牌',
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ return [true, $detail];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaFormula($data)
|
|
|
+ {
|
|
|
+ $detail = [
|
|
|
+ [
|
|
|
+ 'key' => 'dengyu',
|
|
|
+ 'value' => '等于',
|
|
|
+ ], [
|
|
|
+ 'key' => 'dayu',
|
|
|
+ 'value' => '大于',
|
|
|
+ ], [
|
|
|
+ 'key' => 'baohan',
|
|
|
+ 'value' => '包含',
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ return [true, $detail];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaAdd($data)
|
|
|
+ {
|
|
|
+
|
|
|
+ $detail = [
|
|
|
+ 'id' => 1,
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'id' => 2,
|
|
|
+ 'name' => '张三',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 4,
|
|
|
+ 'name' => '张三三',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 5,
|
|
|
+ 'name' => '张五',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ], [
|
|
|
+ 'id' => 7,
|
|
|
+ 'name' => '张六',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ], [
|
|
|
+ 'id' => 44,
|
|
|
+ 'name' => '张四四',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 55,
|
|
|
+ 'name' => '张四四1',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 66,
|
|
|
+ 'name' => '李六1',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 77,
|
|
|
+ 'name' => 'li7',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ], [
|
|
|
+ 'id' => 77,
|
|
|
+ 'name' => '张四四2',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ]
|
|
|
+ ], [
|
|
|
+ 'id' => 3,
|
|
|
+ 'name' => '李四',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 8,
|
|
|
+ 'name' => '李五',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 9,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => [
|
|
|
+ [
|
|
|
+ 'id' => 6,
|
|
|
+ 'name' => '李六',
|
|
|
+ 'rule' => [
|
|
|
+ 'detail' => [
|
|
|
+ [
|
|
|
+ 'key' => 'area',
|
|
|
+ 'value' => '南区',
|
|
|
+ 'formula' => 'dengyu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'num',
|
|
|
+ 'value' => '40',
|
|
|
+ 'formula' => 'dayu',
|
|
|
+ ], [
|
|
|
+ 'key' => 'brand',
|
|
|
+ 'value' => 'A,B,C',
|
|
|
+ 'formula' => 'baohan',
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ 'click' => [
|
|
|
+ 'area',
|
|
|
+ 'num',
|
|
|
+ 'brand',
|
|
|
+ ],
|
|
|
+ 'string' => '(area 并且 num) 或者 num'
|
|
|
+ ],
|
|
|
+ 'list' => []
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ file_put_contents('121.txt', json_encode($detail));
|
|
|
+ die;
|
|
|
+
|
|
|
+
|
|
|
+ Log::channel('request')->info('request', ['param' => $data]);
|
|
|
+
|
|
|
+// $first = Oa::where('del_time', 0)->where('menu_id', $data['menu_id']);
|
|
|
+// if(isset($data['type'])) $first = $first->where('type',$data['type']);
|
|
|
+// $first = $first->first();
|
|
|
+
|
|
|
+// if ($first) return [false, '该菜单oa已存在!'];
|
|
|
+ $oa = new Oa();
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+ $oa->menu_id = $data['menu_id'];
|
|
|
+ $oa->type = $data['type'];
|
|
|
+ $oa->save();
|
|
|
+ $id = $oa->id;
|
|
|
+ $insert = [];
|
|
|
+ foreach ($data['detail'] as $v) {
|
|
|
+ foreach ($v['employee_list'] as $vv) {
|
|
|
+ $insert[] = [
|
|
|
+ 'oa_id' => $id,
|
|
|
+ 'remark' => $v['remark'],
|
|
|
+ 'employee_id' => $vv['employee_id'],
|
|
|
+ 'sort' => $v['sort'],
|
|
|
+ 'type' => $v['type'],
|
|
|
+ 'crt_time' => time(),
|
|
|
+ 'upd_time' => time(),
|
|
|
+ 'area_id' => $vv['area_id'],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ OaSub::insert($insert);
|
|
|
+ DB::commit();
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ return [false, $e->getLine() . ':' . $e->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, '保存成功!'];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaEdit($data)
|
|
|
+ {
|
|
|
+ $first = Oa::where('del_time', 0)->where('id', '<>', $data['id'])->where('menu_id', $data['menu_id']);
|
|
|
+ if (isset($data['type'])) $first = $first->where('type', $data['type']);
|
|
|
+ $first = $first->first();
|
|
|
+
|
|
|
+ if ($first) return [false, '该菜单oa已存在!'];
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+ $oa = Oa::where('id', $data['id'])->first();
|
|
|
+ $oa->menu_id = $data['menu_id'];
|
|
|
+ $oa->type = $data['type'];
|
|
|
+ $oa->save();
|
|
|
+ $id = $oa->id;
|
|
|
+ $insert = [];
|
|
|
+ OaSub::where('oa_id', $id)->update([
|
|
|
+ 'del_time' => time()
|
|
|
+ ]);
|
|
|
+ foreach ($data['detail'] as $v) {
|
|
|
+ foreach ($v['employee_list'] as $vv) {
|
|
|
+ $insert[] = [
|
|
|
+ 'oa_id' => $id,
|
|
|
+ 'remark' => $v['remark'],
|
|
|
+ 'employee_id' => $vv['employee_id'],
|
|
|
+ 'sort' => $v['sort'],
|
|
|
+ 'type' => $v['type'],
|
|
|
+ 'crt_time' => time(),
|
|
|
+ 'upd_time' => time(),
|
|
|
+ 'area_id' => $vv['area_id'],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ OaSub::insert($insert);
|
|
|
+ DB::commit();
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ return [false, $e->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, '更新成功'];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaDel($data)
|
|
|
+ {
|
|
|
+ $id = $data['id'];
|
|
|
+ Oa::where('id', $id)->update([
|
|
|
+ 'del_time' => time(),
|
|
|
+ ]);
|
|
|
+
|
|
|
+ OaSub::where('oa_id', $id)->update([
|
|
|
+ 'del_time' => time(),
|
|
|
+ ]);
|
|
|
+
|
|
|
+ return [true, '删除成功'];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaSubType($data)
|
|
|
+ {
|
|
|
+ $service = new CheckService();
|
|
|
+ $list = $service->map;
|
|
|
+
|
|
|
+ $return = [];
|
|
|
+ foreach ($list as $k => $v) {
|
|
|
+ $return[] = [
|
|
|
+ 'id' => $k,
|
|
|
+ 'title' => $v,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ return [true, $return];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function createOaOrder($data)
|
|
|
+ {
|
|
|
+
|
|
|
+// $crt_id = request()->userData->id;
|
|
|
+ Log::channel('request')->info('request', ['param' => $data]);
|
|
|
+ if(!isset($data['order_number'])) $data['order_number'] = $data['order_no'];
|
|
|
+ $orderObject = $data['order_number'];
|
|
|
+ $menu_id = $data['menu_id'];
|
|
|
+ $order_no = $data['order_number'];
|
|
|
+ $type = isset($data['opt_case']) ? $data['opt_case'] : 0;
|
|
|
+// $this->returnOa($order_no,1,$type);
|
|
|
+// return [200,''];
|
|
|
+ $list = Oa::from('oa as o')
|
|
|
+ ->leftJoin('oa_sub as os', 'os.oa_id', 'o.id')
|
|
|
+ ->select('os.sort', 'os.type', 'os.sub_id')
|
|
|
+ ->where('o.menu_id', $menu_id);
|
|
|
+ if (!empty($type)) $list = $list->where('os.sort', 1);
|
|
|
+ $list = $list->orderBy('os.sort')
|
|
|
+ ->get()->toArray();
|
|
|
+ if(empty($list)) {
|
|
|
+ $this->returnOa($order_no,1,$type);
|
|
|
+ return [200,''];
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+
|
|
|
+ list($employee_ids,$oa_sub_id) = $this->oaCommon($menu_id,['order_number'=>$orderObject],1);
|
|
|
+ if(empty($employee_ids)){
|
|
|
+ $this->returnOa($order_no,1,$type);
|
|
|
+ DB::commit();
|
|
|
+ return [true,'审核成功'];
|
|
|
+ }
|
|
|
+ $order = new OaOrder();
|
|
|
+ $order->menu_id = $menu_id;
|
|
|
+ $order->order_no = $order_no;
|
|
|
+ $order->opt_case = $type;
|
|
|
+ $order->save();
|
|
|
+ $id = $order->id;
|
|
|
+
|
|
|
+ $oa_order_sub = new OaOrderSub();
|
|
|
+ $oa_order_sub->oa_order_id = $id;
|
|
|
+ $oa_order_sub->sort = 1;
|
|
|
+ $oa_order_sub->remark = '';
|
|
|
+ $oa_order_sub->type = 1;
|
|
|
+ $oa_order_sub->oa_sub_id = $oa_sub_id;
|
|
|
+ $oa_order_sub->save();
|
|
|
+ $oa_order_sub_id = $oa_order_sub->id;
|
|
|
+
|
|
|
+ $insert = [];
|
|
|
+ foreach ($employee_ids as $employee_id){
|
|
|
+ $insert[] = [
|
|
|
+ 'oa_order_id' => $id,
|
|
|
+ 'oa_order_sub_id' => $oa_order_sub_id,
|
|
|
+ 'employee_id' => $employee_id,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ OaOrderSubEmployee::insert($insert);
|
|
|
+ DB::commit();
|
|
|
+ return [true, '']; //success
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ $this->returnOa($order_no,2,$type);
|
|
|
+ return [false, $e->getLine().':'.$e->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaCommon($menu_id, $param, $sort = 1,$parent_id = 0)
|
|
|
+ {
|
|
|
+ $request = request();
|
|
|
+ foreach ($param as $k=>$v){
|
|
|
+ $request->$k = $v;
|
|
|
+ }
|
|
|
+ $all = $request->all();
|
|
|
+ if(!isset($all['order_number'])) $request->merge($param);
|
|
|
+// $request->merge($param);
|
|
|
+ $detail = $this->oaGetData($menu_id,$request);
|
|
|
+ $oa_id = Oa::where('menu_id',$menu_id)->value('id');
|
|
|
+ $parent_ids = [$parent_id,0];
|
|
|
+// var_dump($parent_ids);
|
|
|
+ if($sort>2) {
|
|
|
+ $sorts = $sort - 1;
|
|
|
+ $oa_sub_ids = OaSub::where('sort','<',$sorts)->wherein('parent_id',$parent_ids)->pluck('id')->toArray();
|
|
|
+// var_dump($oa_sub_ids);die;
|
|
|
+ $parent_ids = array_merge($parent_ids,$oa_sub_ids);
|
|
|
+ }
|
|
|
+ $list = OaSub::where('oa_id',$oa_id)->where('sort',$sort)->wherein('parent_id',$parent_ids);
|
|
|
+ $list = $list->select('*')->get()->toArray();
|
|
|
+// dd($list);
|
|
|
+ if(empty($list)) return [[],''];
|
|
|
+ $oa_sub_ids = [];
|
|
|
+ $oa_sub_key = [];
|
|
|
+ foreach ($list as $v){
|
|
|
+ $oa_sub_ids[] = $v['id'];
|
|
|
+ $oa_sub_key[$v['id']] = $v;
|
|
|
+ $rule_key_list[$v['id']] = [];
|
|
|
+ }
|
|
|
+ $rule_list = OaSubRule::wherein('oa_sub_id',$oa_sub_ids)->select('*')->get()->toArray();
|
|
|
+
|
|
|
+ foreach ($rule_list as $v){
|
|
|
+ $rule_key_list[$v['oa_sub_id']][] = $v;
|
|
|
+ }
|
|
|
+
|
|
|
+ //规则开始判断
|
|
|
+ $employee_ids = [];
|
|
|
+ $oa_sub_id = 0;
|
|
|
+ foreach ($rule_key_list as $k=>$v){
|
|
|
+
|
|
|
+ $status = $this->formulaRule($v,$detail);
|
|
|
+ if($status){
|
|
|
+ if($oa_sub_key[$k]['type'] == 2){
|
|
|
+ $employee_ids = EmployeeTeamPermission::where('team_id',$oa_sub_key[$k]['sub_id'])->pluck('employee_id')->toArray();
|
|
|
+ }else{
|
|
|
+ $employee_ids[] = [$oa_sub_key[$k]['sub_id']];
|
|
|
+ }
|
|
|
+ $oa_sub_id = $k;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return [$employee_ids,$oa_sub_id];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function formulaRule($params,$detail){
|
|
|
+ $rule = '';
|
|
|
+// dd($params);
|
|
|
+ if(empty($params)) return true;
|
|
|
+ foreach ($params as $param){
|
|
|
+ if(!$param['key']) continue;
|
|
|
+ if(!empty($param['right_formula'])) $rule .= ' '.$param['right_formula'].' ';
|
|
|
+ $rule .= '"'.$detail[$param['key']].'"'.' '.$param['formula'] .' '.'"'.$param['value'].'"';
|
|
|
+
|
|
|
+ }
|
|
|
+// dd($rule);
|
|
|
+ if(empty($rule)) return true;
|
|
|
+// var_dump($rule);
|
|
|
+ if(eval("return $rule;")) {
|
|
|
+// var_dump($rule);die;
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaCheck($data, $user)
|
|
|
+ {
|
|
|
+ $user_id = $user['id'];
|
|
|
+// $user_id = '482';
|
|
|
+ $id = $data['id'];
|
|
|
+ $state = $data['state'];
|
|
|
+ if($state == 0) $state = 2;
|
|
|
+ $remark = $data['remark'];
|
|
|
+ $detail = OaOrderSub::from('oa_order_sub as s')
|
|
|
+ ->leftJoin('oa_order_sub_employee as e','e.oa_order_sub_id','s.id')
|
|
|
+ ->where('e.employee_id',$user_id)->where('s.state',0)
|
|
|
+ ->where('s.id',$id)
|
|
|
+ ->select('s.oa_order_id','sort','oa_sub_id')->first();
|
|
|
+ if(empty($detail)) return [false,'没有审核权限'];
|
|
|
+ $detail = $detail->toArray();
|
|
|
+ $oaOrder = OaOrder::where('id',$detail['oa_order_id'])->first();
|
|
|
+ try {
|
|
|
+ DB::beginTransaction();
|
|
|
+ switch ($state) {
|
|
|
+ case 1:
|
|
|
+ $sort = $detail['sort'] + 1;
|
|
|
+ list($employee_ids,$oa_sub_id) = $this->oaCommon($oaOrder->menu_id, ['order_number' => $oaOrder->order_no], $sort,$detail['oa_sub_id']);
|
|
|
+// var_dump($employee_ids);
|
|
|
+// var_dump($oa_sub_id);die;
|
|
|
+ if (empty($employee_ids)) {
|
|
|
+ $oaOrder->state = 2;
|
|
|
+ $oaOrder->save();
|
|
|
+ $this->returnOa($oaOrder->order_no, 1, $oaOrder->opt_case);
|
|
|
+ } else {
|
|
|
+ $oaOrder->state = 1;
|
|
|
+ $oaOrder->save();
|
|
|
+ $oa_order_sub = new OaOrderSub();
|
|
|
+ $oa_order_sub->oa_order_id = $oaOrder->id;
|
|
|
+ $oa_order_sub->sort = $sort;
|
|
|
+ $oa_order_sub->remark = '';
|
|
|
+ $oa_order_sub->type = 1;
|
|
|
+ $oa_order_sub->oa_sub_id = $oa_sub_id;
|
|
|
+ $oa_order_sub->save();
|
|
|
+ $oa_order_sub_id = $oa_order_sub->id;
|
|
|
+
|
|
|
+ $insert = [];
|
|
|
+ foreach ($employee_ids as $employee_id) {
|
|
|
+ $insert[] = [
|
|
|
+ 'oa_order_id' => $oaOrder->id,
|
|
|
+ 'oa_order_sub_id' => $oa_order_sub_id,
|
|
|
+ 'employee_id' => $employee_id,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ OaOrderSubEmployee::insert($insert);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+
|
|
|
+ if ($detail['sort'] == 1) {
|
|
|
+ $oaOrder->state = 3;
|
|
|
+ $oaOrder->save();
|
|
|
+ $this->returnOa($oaOrder->order_no, 2, $oaOrder->opt_case);
|
|
|
+ }
|
|
|
+ OaOrderSub::where('sort', ($detail['sort'] - 1))->where('oa_order_id', $oaOrder->id)->update([
|
|
|
+ 'state' => 0,
|
|
|
+ 'remark' => $remark,
|
|
|
+ ]);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ OaOrderSub::where('id', $id)->update([
|
|
|
+ 'state' => $state,
|
|
|
+ 'remark' => $remark,
|
|
|
+ ]);
|
|
|
+ DB::commit();
|
|
|
+ return [true,'操作成功!'];
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ return [false, $e->getLine().':'.$e->getMessage()];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function returnOa($order_no,$type,$opt_case){
|
|
|
+ $service = new CheckService();
|
|
|
+ $service->createRecordAndInventory([
|
|
|
+ 'order_number' => $order_no,
|
|
|
+ 'type' => $type,
|
|
|
+ 'opt_case' => $opt_case,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaGetData($menu_id,$request)
|
|
|
+ {
|
|
|
+ $api = SysMenu::where('id',$menu_id)->value('api');
|
|
|
+ $path = $this->getMenu();
|
|
|
+ $control = '\\'.$path[$api]["controller"];
|
|
|
+ $act = $path[$api]["act"];
|
|
|
+ $new = new $control();
|
|
|
+ $detail = $new->$act($request);
|
|
|
+// if(!isset($detail['data']['data'][0])) $detail['data']['data'][0] = $detail['data'];
|
|
|
+ return $detail['data']['data'][0];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getMenu(){
|
|
|
+ $app = App();
|
|
|
+ $routes = $app->routes->getRoutes();
|
|
|
+ $path = [];
|
|
|
+ foreach ($routes as $k => $value) {
|
|
|
+ if(!isset($value->action['controller'])) continue;
|
|
|
+ $act = explode('@',$value->action['controller']);
|
|
|
+ if(!isset($act[1])) continue;
|
|
|
+ $path[$value->uri]['act'] = $act[1];
|
|
|
+ $path[$value->uri]['controller'] = $act[0];
|
|
|
+ }
|
|
|
+
|
|
|
+ return $path;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaOrderList($data){
|
|
|
+ $order_no = $data['order_no'];
|
|
|
+ $menu_id = $data['menu_id'];
|
|
|
+ $oa = OaOrder::where('order_no',$order_no)->where('menu_id',$menu_id)->first();
|
|
|
+ if(empty($oa)) return [false,'审核不存在'];
|
|
|
+ $list = OaOrderSub::where('oa_order_id',$oa->id)->orderBy('sort','asc')->select('*')->get()->toArray();
|
|
|
+ return [true,$list];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaOrderState($data,$user){
|
|
|
+ $user_id = $user->id;
|
|
|
+ $order_no = $data['order_no'];
|
|
|
+ $menu_id = $data['menu_id'];
|
|
|
+ $detail = OaOrder::where('order_no',$order_no)->orderBy('id','desc')->where('menu_id',$menu_id)->first();
|
|
|
+ if(empty($detail)) return [false,'审核不存在'];
|
|
|
+ if($detail->state == 2) return [true,['state'=>0]];
|
|
|
+ $oa_detail = OaOrderSubEmployee::where('employee_id',$user_id)->where('oa_order_id',$detail->id)->pluck('oa_order_sub_id')->toArray();
|
|
|
+ if(empty($oa_detail)) return [true ,['state'=>0]];
|
|
|
+ $state = OaOrderSub::wherein('id',$oa_detail)->where('state','<>',2)->orderBy('sort','desc')->first();
|
|
|
+ if(in_array($state->state,[0,2])) return [true,['state'=> 1,'id'=>$state->id]];
|
|
|
+
|
|
|
+ return [true,['state'=> 0]];
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function checkAllOver($data){
|
|
|
+ $order_no = $data['order_number'];
|
|
|
+ $menu_id = $data['menu_id'];
|
|
|
+ $op_case = $data['opt_case'];
|
|
|
+// $oaOrder = OaOrder::where('order_no',$order_no)->first();
|
|
|
+// $id = OaOrderSub::where('oa_order_id',$oaOrder->id)->orderBy('id','desc')->value('id');
|
|
|
+// OaOrderSub::where('id',$id)->update([
|
|
|
+// 'state' => 1
|
|
|
+// ]);
|
|
|
+// $oaOrder->state = 1;
|
|
|
+// $oaOrder->save();
|
|
|
+ $this->returnOa($order_no,3,$op_case);
|
|
|
+ return [true,'弃审成功'];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function oaCheckMove($data,$user_id){
|
|
|
+ $id = $data['id'];
|
|
|
+ $employee_id = $data['employee_id'];
|
|
|
+ if(empty($employee_id)) return [false,'用户不存在'];
|
|
|
+ $oaOrderSub = OaOrderSub::where('id',$id)->first();
|
|
|
+ OaOrderSubEmployee::where('oa_order_sub_id',$oaOrderSub->id)->delete();
|
|
|
+ $add = [
|
|
|
+ 'oa_order_id' => $oaOrderSub->oa_order_id,
|
|
|
+ 'oa_order_sub_id' => $oaOrderSub->id,
|
|
|
+ 'employee_id' => $employee_id
|
|
|
+ ];
|
|
|
+ $oaOrder = OaOrder::where('id',$oaOrderSub->oa_order_id)->first();
|
|
|
+ OaOrderSubEmployee::insert($add);
|
|
|
+ Construction::where('order_number',$oaOrder->order_no)->update([
|
|
|
+ 'is_transfer' => 1
|
|
|
+ ]);
|
|
|
+// $this->returnOa($order_no,3,$op_case);
|
|
|
+ return [true,'转签成功'];
|
|
|
+
|
|
|
+ }
|
|
|
+ public function oaSubUserDetail($data){
|
|
|
+ $order_no = $data['order_no'];
|
|
|
+ $first = OaOrder::where('order_no',$order_no)->first();
|
|
|
+ if(empty($first)) return [true,[]];
|
|
|
+ $oa_order_id = $first->id;
|
|
|
+ $oa_order_sub_id = OaOrderSub::where('oa_order_id',$oa_order_id)->orderBy('sort','desc')->value('id');
|
|
|
+ $employee_list = Employee::pluck('emp_name','id')->toArray();
|
|
|
+ $oa_order_sub_employee_ids = OaOrderSubEmployee::where('oa_order_sub_id',$oa_order_sub_id)->pluck('employee_id')->toArray();
|
|
|
+ $list = [];
|
|
|
+ foreach ($oa_order_sub_employee_ids as $v){
|
|
|
+ $list[] = $employee_list[$v];
|
|
|
+ }
|
|
|
+// $this->returnOa($order_no,3,$op_case);
|
|
|
+ return [true,$list];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaGetTeamDetail($data){
|
|
|
+ $order_no = $data['order_no'];
|
|
|
+ $oa_order_id = OaOrder::where('order_no',$order_no)->pluck('id')->toArray();
|
|
|
+ if(empty($oa_order_id)) return [true,[]];
|
|
|
+// $oa_order_id = $first->id;
|
|
|
+ $list = OaOrderSub::wherein('oa_order_id',$oa_order_id)->select('*')->orderBy('id','asc')->get()->toArray();
|
|
|
+ $team_key_list = Team::pluck('title','id')->toArray();
|
|
|
+ $oa_sub_ids = [];
|
|
|
+ foreach ($list as $v){
|
|
|
+ $oa_sub_ids[] = $v['oa_sub_id'];
|
|
|
+ }
|
|
|
+ $team_ids = OaSub::wherein('id',$oa_sub_ids)->pluck('sub_id','id')->toArray();
|
|
|
+ $return = [];
|
|
|
+ foreach ($list as $v){
|
|
|
+ $return[] = [
|
|
|
+ 'sort' => $v['sort'],
|
|
|
+ 'team' => $team_key_list[$team_ids[$v['oa_sub_id']]],
|
|
|
+ 'remark' => $v['remark']?? '',
|
|
|
+ 'state' => $v['state'],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+// $this->returnOa($order_no,3,$op_case);
|
|
|
+ return [true,$return];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function oaSubRemark($data){
|
|
|
+ $order_no = $data['order_no'];
|
|
|
+ $first = OaOrder::where('del_time',0)->where('order_no',$order_no)->orderBy('id','desc')->first();
|
|
|
+ if(empty($first)) return [true,[]];
|
|
|
+ $oa_order_id = $first->id;
|
|
|
+ $remark = OaOrderSub::where('oa_order_id',$oa_order_id)->orderBy('sort','desc')->value('remark');
|
|
|
+
|
|
|
+// $this->returnOa($order_no,3,$op_case);
|
|
|
+ return [true,$remark];
|
|
|
+
|
|
|
+ }
|
|
|
+}
|